; ; copy_environment from 0x18013b3ec to 0x18013b4d1 (229 bytes) ; ; 3 xrefs: ; > common_set_variable_in_environment_nolock @ 0x18013ae1e ; > common_set_variable_in_environment_nolock @ 0x18013ae6e ; > @ 0x1802038e4 ; ; This function is hookable on this platform! ; ; Using BromaIDA 8.0.0 @ https:;github.com/Stazzical/BromaIDA ; Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https:;github.com/geode-sdk/bindings ; mov [rsp+arg_0], rbx ; +0x0, 0x18013b3ec mov [rsp+arg_8], rsi ; +0x5, 0x18013b3f1 mov [rsp+arg_10], rdi ; +0xa, 0x18013b3f6 push r14 ; +0xf, 0x18013b3fb sub rsp, 30h ; +0x11, 0x18013b3fd mov rdi, rcx ; +0x15, 0x18013b401 test rcx, rcx ; +0x18, 0x18013b404 jnz short loc_18013B421 ; +0x1b, 0x18013b407 xor eax, eax ; +0x1d, 0x18013b409 mov rbx, [rsp+38h+arg_0] ; +0x1f, 0x18013b40b mov rsi, [rsp+38h+arg_8] ; +0x24, 0x18013b410 mov rdi, [rsp+38h+arg_10] ; +0x29, 0x18013b415 add rsp, 30h ; +0x2e, 0x18013b41a pop r14 ; +0x32, 0x18013b41e retn ; +0x34, 0x18013b420 xor ecx, ecx ; +0x35, 0x18013b421 mov rax, rdi ; +0x37, 0x18013b423 cmp [rdi], rcx ; +0x3a, 0x18013b426 jz short loc_18013B438 ; +0x3d, 0x18013b429 inc rcx ; +0x3f, 0x18013b42b lea rax, [rax+8] ; +0x42, 0x18013b42e cmp qword ptr [rax], 0 ; +0x46, 0x18013b432 jnz short loc_18013B42B ; +0x4a, 0x18013b436 inc rcx; Count ; +0x4c, 0x18013b438 mov edx, 8; Size ; +0x4f, 0x18013b43b call _calloc_base ; +0x54, 0x18013b440 mov rbx, rax ; +0x59, 0x18013b445 test rax, rax ; +0x5c, 0x18013b448 jz short loc_18013B4CB ; +0x5f, 0x18013b44b mov rax, [rdi] ; +0x61, 0x18013b44d test rax, rax ; +0x64, 0x18013b450 jz short loc_18013B4A6 ; +0x67, 0x18013b453 mov r14, rbx ; +0x69, 0x18013b455 sub r14, rdi ; +0x6c, 0x18013b458 or rsi, 0FFFFFFFFFFFFFFFFh ; +0x6f, 0x18013b45b inc rsi ; +0x73, 0x18013b45f cmp byte ptr [rax+rsi], 0 ; +0x76, 0x18013b462 jnz short loc_18013B45F ; +0x7a, 0x18013b466 mov edx, 1; Size ; +0x7c, 0x18013b468 lea rcx, [rsi+1]; Count ; +0x81, 0x18013b46d call _calloc_base ; +0x85, 0x18013b471 xor ecx, ecx; Block ; +0x8a, 0x18013b476 mov [r14+rdi], rax ; +0x8c, 0x18013b478 call _free_base ; +0x90, 0x18013b47c mov rcx, [r14+rdi]; Destination ; +0x95, 0x18013b481 test rcx, rcx ; +0x99, 0x18013b485 jz short loc_18013B4CB ; +0x9c, 0x18013b488 mov r8, [rdi]; Source ; +0x9e, 0x18013b48a lea rdx, [rsi+1]; SizeInBytes ; +0xa1, 0x18013b48d call strcpy_s ; +0xa5, 0x18013b491 test eax, eax ; +0xaa, 0x18013b496 jnz short loc_18013B4B5 ; +0xac, 0x18013b498 add rdi, 8 ; +0xae, 0x18013b49a mov rax, [rdi] ; +0xb2, 0x18013b49e test rax, rax ; +0xb5, 0x18013b4a1 jnz short loc_18013B45B ; +0xb8, 0x18013b4a4 xor ecx, ecx; Block ; +0xba, 0x18013b4a6 call _free_base ; +0xbc, 0x18013b4a8 mov rax, rbx ; +0xc1, 0x18013b4ad jmp loc_18013B40B ; +0xc4, 0x18013b4b0 and [rsp+38h+var_18], 0 ; +0xc9, 0x18013b4b5 xor r9d, r9d; LineNo ; +0xcf, 0x18013b4bb xor r8d, r8d; FileName ; +0xd2, 0x18013b4be xor edx, edx; FunctionName ; +0xd5, 0x18013b4c1 xor ecx, ecx; Expression ; +0xd7, 0x18013b4c3 call _invoke_watson ; +0xd9, 0x18013b4c5 db 0CCh ; +0xde, 0x18013b4ca call abort ; +0xdf, 0x18013b4cb db 0CCh ; +0xe4, 0x18013b4d0