Function at 0x409d7c
Capabilities:
Resolve function by parsing pe exports

Disassembly:
jmp 0x474d80
sub esp, 0x700
mov eax, dword [0xa0b130]
xor eax, esp
mov dword [esp + 0x6fc], eax
mov edx, dword [esp + 0x708]
mov eax, ecx
mov ecx, dword [esp + 0x70c]
push ebx
mov ebx, dword [esp + 0x708]
push ebp
mov dword [esp + 0xa8], ecx
mov ebp, edx
xor ecx, ecx
mov dword [esp + 0x10], eax
cmp dword [edx + 0x10], 4
push esi
cmovne ebp, ecx
mov dword [esp + 0xb8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x18], ebp
push edi
test ebp, ebp
jne 0x474dfb
lea ecx, [esp + 0x34]
mov word [esp + 0x3c], 0x103
push ecx
mov ecx, dword [eax]
push edx
mov dword [esp + 0x3c], str.expected_mapping_node_for_file_or_directory_entry
call fcn.004137af
mov dword [ebx], ebp
jmp 0x4763ba
lea eax, [esp + 0x70c]
mov word [esp + 0x6f0], cx
mov dword [esp + 0x74], eax
lea eax, [esp + 0x6d0]
mov dword [esp + 0x70], eax
lea eax, [esp + 0x74]
push eax
lea eax, [esp + 0x74]
mov word [esp + 0x700], cx
mov word [esp + 0x70c], cx
lea ecx, [esp + 0x28]
push eax
mov dword [esp + 0x6d8], 0x925ae8
mov dword [esp + 0x6dc], 4
mov word [esp + 0x6e0], 1
mov dword [esp + 0x6e4], 0x925af0
mov dword [esp + 0x6e8], 4
mov word [esp + 0x6ec], 1
mov dword [esp + 0x6f0], 0x925af8
mov dword [esp + 0x6f4], 8
mov dword [esp + 0x6fc], 0x925b04
mov dword [esp + 0x700], 0x11
mov dword [esp + 0x708], 0x925b1c
mov dword [esp + 0x70c], 0x11
call fcn.0040b154
lea eax, [esp + 0x25c]
mov byte [esp + 0x17], 0
mov dword [esp + 0x250], eax
xor esi, esi
lea eax, [esp + 0x150]
mov dword [esp + 0x34], 0
mov dword [esp + 0x144], eax
xor edi, edi
xor eax, eax
mov dword [esp + 0x38], esi
mov ecx, ebp
mov dword [esp + 0x3c], edi
mov dword [esp + 0x254], esi
mov dword [esp + 0x258], 0x100
mov dword [esp + 0x148], esi
mov dword [esp + 0x14c], 0x100
mov dword [esp + 0x70], esi
mov dword [esp + 0xb8], eax
mov dword [esp + 0x74], eax
mov byte [ebp + 0x28], al
call fcn.004137d7
mov ebp, dword [ebp + 0x2c]
mov eax, dword [esp + 0x1c]
mov ebx, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov dword [esp + 0xb4], ebp
mov dword [esp + 0x58], eax
test ebp, ebp
je 0x475568
lea eax, [esp + 0x368]
mov dword [esp + 0x360], 0
mov ecx, ebp
mov dword [esp + 0x35c], eax
mov dword [esp + 0x364], 0x100
call fcn.004030c1
cmp dword [eax + 0x10], 1
jne 0x475c53
lea ecx, [esp + 0x35c]
push ecx
lea ecx, [esp + 0x138]
push ecx
mov ecx, eax
call fcn.0040d490
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x44], ecx
mov ecx, ebp
mov dword [esp + 0xa4], eax
mov dword [esp + 0x48], eax
call fcn.004030c1
mov dword [esp + 0xc0], eax
lea ecx, [esp + 0x24]
lea eax, [esp + 0x78]
push eax
lea eax, [esp + 0x48]
push eax
call fcn.00410a05
test al, al
je 0x475b62
lea eax, [esp + 0xac]
push eax
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x2c]
call fcn.00410a05
mov edx, dword [esp + 0xac]
test al, al
jne 0x4750a6
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
inc eax
mov dword [esp + 0x78], eax
shl eax, 2
lea ecx, [ecx + ecx*2]
cmp eax, ecx
mov eax, dword [esp + 0x30]
jb 0x47504a
add eax, eax
lea ecx, [esp + 0x24]
push eax
call fcn.0040e9da
lea eax, [esp + 0xe8]
push eax
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x2c]
call fcn.00410a05
mov edx, dword [esp + 0xe8]
jmp 0x475086
mov ecx, eax
shr eax, 3
sub ecx, dword [esp + 0x78]
sub ecx, dword [esp + 0x2c]
cmp ecx, eax
ja 0x475086
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x24]
push eax
call fcn.0040e9da
lea eax, [esp + 0xe4]
push eax
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x2c]
call fcn.00410a05
mov edx, dword [esp + 0xe4]
inc dword [esp + 0x28]
cmp dword [edx], 0xffffffff
je 0x475093
dec dword [esp + 0x2c]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov word [edx + 8], 0
cmp byte [edx + 9], 0
jne 0x475aee
mov eax, dword [esp + 0xa4]
mov byte [edx + 9], 1
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
cmp eax, 4
jne 0x475268
push eax
push str.name
push dword [esp + 0x28]
call fcn.004031ed
add esp, 0xc
test eax, eax
jne 0x4751bf
mov ecx, ebp
call fcn.00404539
cmp dword [eax + 0x10], 1
jne 0x4755f0
lea ecx, [esp + 0x35c]
push ecx
lea ecx, [esp + 0x140]
push ecx
mov ecx, eax
call fcn.0040d490
mov ecx, ebp
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x60], eax
call fcn.00404539
push dword [esp + 0x60]
mov dword [esp + 0x74], eax
lea eax, [esp + 0x46c]
push dword [esp + 0x60]
push eax
call fcn.0046e650
xor ecx, ecx
add esp, 0xc
mov ebp, dword [eax + 4]
mov edx, dword [eax]
mov dword [esp + 0xa4], edx
mov dword [esp + 0x148], ecx
lea eax, [edx + ebp]
mov dword [esp + 0x78], eax
cmp ebp, dword [esp + 0x14c]
jbe 0x475190
push 1
push ebp
lea eax, [esp + 0x158]
push eax
lea ecx, [esp + 0x150]
call fcn.00405e1b
mov ecx, dword [esp + 0x148]
mov edx, dword [esp + 0xa4]
mov eax, dword [esp + 0x144]
add eax, ecx
cmp edx, dword [esp + 0x78]
je 0x4751b1
push ebp
push edx
push eax
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [esp + 0x154]
add esp, 0xc
add ecx, ebp
mov dword [esp + 0x148], ecx
jmp 0x4754e8
push 4
push str.type
push dword [esp + 0x28]
call fcn.004031ed
add esp, 0xc
test eax, eax
jne 0x475380
mov ecx, ebp
call fcn.00404539
cmp dword [eax + 0x10], 1
jne 0x4757c4
lea ecx, [esp + 0x35c]
push ecx
lea ecx, [esp + 0xdc]
push ecx
mov ecx, eax
call fcn.0040d490
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], eax
cmp eax, 4
jne 0x47523f
push eax
push str.file
push ecx
call fcn.004031ed
add esp, 0xc
test eax, eax
jne 0x4756e2
mov dword [esp + 0x58], 1
jmp 0x475533
cmp eax, 9
jne 0x4756e2
push eax
push str.directory
push ecx
call fcn.004031ed
add esp, 0xc
test eax, eax
jne 0x4756e2
mov dword [esp + 0x58], eax
jmp 0x475533
cmp eax, 8
jne 0x475361
push eax
push str.contents
push dword [esp + 0x28]
call fcn.004031ed
add esp, 0xc
test eax, eax
jne 0x475380
mov ecx, ebp
cmp byte [esp + 0x17], al
jne 0x47599d
mov byte [esp + 0x17], 1
call fcn.00404539
mov ebp, eax
cmp dword [ebp + 0x10], 5
jne 0x475904
mov ecx, ebp
mov byte [ebp + 0x28], 0
call fcn.0040bff5
mov ecx, dword [ebp + 0x2c]
test ecx, ecx
je 0x475533
nop dword [eax]
nop word [eax + eax]
push 0
push dword [esp + 0xb4]
lea eax, [esp + 0xa8]
push ecx
mov ecx, dword [esp + 0x24]
push eax
call fcn.00409d7c
mov ebx, dword [eax]
mov dword [eax], 0
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x20], ebx
test ecx, ecx
je 0x475308
mov eax, dword [ecx]
push 1
call dword [eax]
test ebx, ebx
je 0x4758a6
cmp esi, edi
je 0x47531f
mov dword [esi], ebx
add esi, 4
mov dword [esp + 0x38], esi
jmp 0x475344
lea eax, [esp + 0x20]
push eax
push esi
lea ecx, [esp + 0x3c]
call fcn.00409566
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x47533c
mov eax, dword [ecx]
push 1
call dword [eax]
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
mov ecx, ebp
call fcn.0040bff5
mov ecx, dword [ebp + 0x2c]
test ecx, ecx
jne 0x4752d0
mov ebx, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
jmp 0x475533
cmp eax, 0x11
jne 0x475380
push eax
push str.external_contents
push dword [esp + 0x28]
call fcn.004031ed
add esp, 0xc
test eax, eax
jne 0x475380
mov al, 1
jmp 0x475382
xor al, al
mov ecx, ebp
test al, al
je 0x475502
cmp byte [esp + 0x17], 0
jne 0x475a84
lea eax, [esp + 0x35c]
mov byte [esp + 0x17], 1
push eax
lea eax, [esp + 0x60]
push eax
call fcn.00404539
mov ecx, dword [esp + 0x20]
push eax
call fcn.0040c1d5
test al, al
je 0x475aa9
lea eax, [esp + 0x474]
mov dword [esp + 0x46c], 0
mov dword [esp + 0x468], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x470], 0x100
cmp byte [eax + 0x4d], 0
je 0x475477
lea ecx, [esp + 0x4c]
push ecx
mov ecx, eax
call fcn.00409d59
lea ecx, [esp + 0x468]
push dword [eax + 4]
push dword [eax]
call fcn.00409d81
lea eax, [esp + 0x5c]
mov word [esp + 0x104], 0x101
mov dword [esp + 0x11c], eax
lea eax, [esp + 0xfc]
push eax
lea eax, [esp + 0xf0]
mov word [esp + 0xf8], 0x101
push eax
lea eax, [esp + 0x9c]
mov word [esp + 0xa4], 0x101
push eax
lea eax, [esp + 0x128]
mov word [esp + 0x130], 0x105
push eax
lea eax, [esp + 0x478]
push eax
call fcn.004153a7
add esp, 0x14
jmp 0x47548b
push dword [esp + 0x60]
lea ecx, [esp + 0x46c]
push dword [esp + 0x60]
call fcn.00409d81
push dword [esp + 0x46c]
lea eax, [esp + 0x5c8]
push dword [esp + 0x46c]
push eax
call fcn.0046e650
add esp, 0xc
lea ecx, [esp + 0x468]
push eax
call fcn.00409eda
mov eax, dword [esp + 0x5c4]
lea ecx, [esp + 0x5d0]
cmp eax, ecx
je 0x4754ce
push eax
call ebx
add esp, 4
push dword [esp + 0x46c]
lea ecx, [esp + 0x254]
push dword [esp + 0x46c]
call fcn.00409d81
mov eax, dword [esp + 0x468]
lea ecx, [esp + 0x474]
cmp eax, ecx
je 0x475533
push eax
call ebx
add esp, 4
jmp 0x475533
lea eax, [esp + 0x43]
push eax
call fcn.00404539
mov ecx, dword [esp + 0x1c]
push eax
call fcn.0040a8df
test al, al
je 0x475aa9
xor eax, eax
cmp byte [esp + 0x43], al
sete al
inc eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x35c]
lea ecx, [esp + 0x368]
cmp eax, ecx
je 0x47554b
push eax
call ebx
add esp, 4
mov ebp, dword [esp + 0x1c]
mov ecx, ebp
call fcn.004137d7
mov ebp, dword [ebp + 0x2c]
mov dword [esp + 0xb4], ebp
test ebp, ebp
jne 0x474f52
mov ebp, dword [esp + 0x18]
mov ecx, dword [ebp]
call fcn.00414ca9
test al, al
je 0x475d20
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x150]
mov dword [eax], 0
mov eax, dword [esp + 0x144]
cmp eax, ecx
je 0x47559e
push eax
call ebx
add esp, 4
mov eax, dword [esp + 0x250]
lea ecx, [esp + 0x25c]
cmp eax, ecx
je 0x4755b6
push eax
call ebx
add esp, 4
mov ebp, dword [esp + 0x34]
test ebp, ebp
je 0x475c31
mov ebx, ebp
cmp ebx, esi
je 0x4755db
mov ecx, dword [ebx]
test ecx, ecx
je 0x4755d4
mov eax, dword [ecx]
push 1
call dword [eax]
add ebx, 4
cmp ebx, esi
jne 0x4755c8
sub edi, ebp
lea ecx, [esp + 0x34]
sar edi, 2
push edi
push ebp
call fcn.004073a1
jmp 0x475c31
lea ecx, [esp + 0xc4]
mov word [esp + 0xcc], 0x103
push ecx
push eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0xcc], str.expected_string
mov ecx, dword [eax]
call fcn.004137af
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x368]
mov dword [eax], 0
mov eax, dword [esp + 0x35c]
cmp eax, ecx
je 0x47563b
push eax
call ebx
add esp, 4
mov eax, dword [esp + 0x144]
lea ecx, [esp + 0x150]
cmp eax, ecx
je 0x475653
push eax
call ebx
add esp, 4
mov eax, dword [esp + 0x250]
lea ecx, [esp + 0x25c]
cmp eax, ecx
je 0x47566b
push eax
call ebx
add esp, 4
mov ebp, dword [esp + 0x34]
test ebp, ebp
je 0x4756c0
mov ebx, ebp
cmp ebx, esi
je 0x475693
nop dword [eax]
mov ecx, dword [ebx]
test ecx, ecx
je 0x47568c
mov eax, dword [ecx]
push 1
call dword [eax]
add ebx, 4
cmp ebx, esi
jne 0x475680
sub edi, ebp
mov eax, ebp
and edi, 0xfffffffc
cmp edi, 0x1000
jb 0x4756b6
mov ebp, dword [ebp - 4]
add edi, 0x23
sub eax, ebp
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x475d1a
push edi
push ebp
call fcn.004036ca
add esp, 8
mov eax, dword [esp + 0x30]
push 4
lea eax, [eax + eax*2]
shl eax, 2
push eax
push dword [esp + 0x2c]
call fcn.00415398
mov eax, dword [esp + 0x1c]
add esp, 0xc
jmp 0x4763bc
mov ecx, ebp
mov word [esp + 0xcc], 0x103
mov dword [esp + 0xc4], str.unknown_value_for_type
call fcn.00404539
lea ecx, [esp + 0xc4]
push ecx
push eax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
call fcn.004137af
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x368]
mov dword [eax], 0
mov eax, dword [esp + 0x35c]
cmp eax, ecx
je 0x475734
push eax
call ebx
add esp, 4
mov eax, dword [esp + 0x144]
lea ecx, [esp + 0x150]
cmp eax, ecx
je 0x47574c
push eax
call ebx
add esp, 4
mov eax, dword [esp + 0x250]
lea ecx, [esp + 0x25c]
cmp eax, ecx
je 0x475764
push eax
call ebx
add esp, 4
mov ebp, dword [esp + 0x34]
test ebp, ebp
je 0x4757b2
mov ebx, ebp
cmp ebx, esi
je 0x475785
mov ecx, dword [ebx]
test ecx, ecx
je 0x47577e
mov eax, dword [ecx]
push 1
call dword [eax]
add ebx, 4
cmp ebx, esi
jne 0x475772
sub edi, ebp
mov eax, ebp
and edi, 0xfffffffc
cmp edi, 0x1000
jb 0x4757a8
mov ebp, dword [ebp - 4]
add edi, 0x23
sub eax, ebp
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x475d1a
push edi
push ebp
call fcn.004036ca
add esp, 8
lea ecx, [esp + 0x24]
call fcn.00414f7e
mov eax, dword [esp + 0x10]
jmp 0x4763bc
lea ecx, [esp + 0x64]
mov word [esp + 0x6c], 0x103
push ecx
push eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x6c], str.expected_string
mov ecx, dword [eax]
call fcn.004137af
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x368]
mov dword [eax], 0
mov eax, dword [esp + 0x35c]
cmp eax, ecx
je 0x475806
push eax
call ebx
add esp, 4
mov eax, dword [esp + 0x144]
lea ecx, [esp + 0x150]
cmp eax, ecx
je 0x47581e
push eax
call ebx
add esp, 4
mov eax, dword [esp + 0x250]
lea ecx, [esp + 0x25c]
cmp eax, ecx
je 0x475836
push eax
call ebx
add esp, 4
mov ebp, dword [esp + 0x34]
test ebp, ebp
je 0x475884
mov ebx, ebp
cmp ebx, esi
je 0x475857
mov ecx, dword [ebx]
test ecx, ecx
je 0x475850
mov eax, dword [ecx]
push 1
call dword [eax]
add ebx, 4
cmp ebx, esi
jne 0x475844
sub edi, ebp
mov eax, ebp
and edi, 0xfffffffc
cmp edi, 0x1000
jb 0x47587a
mov ebp, dword [ebp - 4]
add edi, 0x23
sub eax, ebp
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x475d1a
push edi
push ebp
call fcn.004036ca
add esp, 8
mov eax, dword [esp + 0x30]
push 4
lea eax, [eax + eax*2]
shl eax, 2
push eax
push dword [esp + 0x2c]
call fcn.00415398
mov eax, dword [esp + 0x1c]
add esp, 0xc
jmp 0x4763bc
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x368]
mov esi, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov dword [eax], 0
mov eax, dword [esp + 0x35c]
cmp eax, ecx
je 0x4758ce
push eax
call esi
add esp, 4
mov eax, dword [esp + 0x144]
lea ecx, [esp + 0x150]
cmp eax, ecx
je 0x4758e6
push eax
call esi
add esp, 4
mov eax, dword [esp + 0x250]
lea ecx, [esp + 0x25c]
cmp eax, ecx
je 0x475982
push eax
call esi
jmp 0x47597f
mov ecx, dword [esp + 0xb4]
mov word [esp + 0x6c], 0x103
mov dword [esp + 0x64], str.expected_array
call fcn.00404539
lea ecx, [esp + 0x64]
push ecx
push eax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
call fcn.004137af
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x368]
mov dword [eax], 0
mov eax, dword [esp + 0x35c]
cmp eax, ecx
je 0x475952
push eax
call ebx
add esp, 4
mov eax, dword [esp + 0x144]
lea ecx, [esp + 0x150]
cmp eax, ecx
je 0x47596a
push eax
call ebx
add esp, 4
mov eax, dword [esp + 0x250]
lea ecx, [esp + 0x25c]
cmp eax, ecx
je 0x475982
push eax
call ebx
add esp, 4
lea ecx, [esp + 0x34]
call fcn.004090ca
lea ecx, [esp + 0x24]
call fcn.00414f7e
mov eax, dword [esp + 0x10]
jmp 0x4763bc
mov word [esp + 0x6c], 0x103
mov dword [esp + 0x64], str.entry_already_has_contents_or_external_contents
call fcn.004030c1
lea ecx, [esp + 0x64]
push ecx
push eax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
call fcn.004137af
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x368]
mov dword [eax], 0
mov eax, dword [esp + 0x35c]
cmp eax, ecx
je 0x4759e4
push eax
call ebx
add esp, 4
mov eax, dword [esp + 0x144]
lea ecx, [esp + 0x150]
cmp eax, ecx
je 0x4759fc
push eax
call ebx
add esp, 4
mov eax, dword [esp + 0x250]
lea ecx, [esp + 0x25c]
cmp eax, ecx
je 0x475a14
push eax
call ebx
add esp, 4
mov ebp, dword [esp + 0x34]
test ebp, ebp
je 0x475a62
mov ebx, ebp
cmp ebx, esi
je 0x475a35
mov ecx, dword [ebx]
test ecx, ecx
je 0x475a2e
mov eax, dword [ecx]
push 1
call dword [eax]
add ebx, 4
cmp ebx, esi
jne 0x475a22
sub edi, ebp
mov eax, ebp
and edi, 0xfffffffc
cmp edi, 0x1000
jb 0x475a58
mov ebp, dword [ebp - 4]
add edi, 0x23
sub eax, ebp
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x475d1a
push edi
push ebp
call fcn.004036ca
add esp, 8
mov eax, dword [esp + 0x30]
push 4
lea eax, [eax + eax*2]
shl eax, 2
push eax
push dword [esp + 0x2c]
call fcn.00415398
mov eax, dword [esp + 0x1c]
add esp, 0xc
jmp 0x4763bc
mov word [esp + 0x6c], 0x103
mov dword [esp + 0x64], str.entry_already_has_contents_or_external_contents
call fcn.004030c1
lea ecx, [esp + 0x64]
push ecx
push eax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
call fcn.004137af
mov ebx, dword [esp + 0x10]
lea ecx, [esp + 0x35c]
mov dword [ebx], 0
call fcn.0040d049
lea ecx, [esp + 0x144]
call fcn.0040d049
lea ecx, [esp + 0x250]
call fcn.0040d049
lea ecx, [esp + 0x34]
call fcn.004090ca
lea ecx, [esp + 0x24]
call fcn.00414f7e
jmp 0x4763ba
lea eax, [esp + 0x44]
mov word [esp + 0x9c], 0x103
mov dword [esp + 0x50], eax
lea eax, [esp + 0x4c]
mov dword [esp + 0xd8], eax
lea eax, [esp + 0xd8]
mov dword [esp + 0x94], 0x924774
mov word [esp + 0xf4], 0x105
mov word [esp + 0x104], 0x103
mov dword [esp + 0xfc], str.duplicate_key_
mov dword [esp + 0x4c], str.duplicate_key_
mov word [esp + 0x54], 0x503
mov dword [esp + 0xdc], 0x924774
mov word [esp + 0xe0], 0x302
jmp 0x475b7e
mov word [esp + 0x130], 0x103
lea eax, [esp + 0x128]
mov dword [esp + 0x128], str.unknown_key
push eax
mov eax, dword [esp + 0x1c]
push dword [esp + 0xc4]
mov ecx, dword [eax]
call fcn.004137af
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x368]
mov dword [eax], 0
mov eax, dword [esp + 0x35c]
cmp eax, ecx
je 0x475bb3
push eax
call ebx
add esp, 4
mov eax, dword [esp + 0x144]
lea ecx, [esp + 0x150]
cmp eax, ecx
je 0x475bcb
push eax
call ebx
add esp, 4
mov eax, dword [esp + 0x250]
lea ecx, [esp + 0x25c]
cmp eax, ecx
je 0x475be3
push eax
call ebx
add esp, 4
mov ebp, dword [esp + 0x34]
test ebp, ebp
je 0x475c31
mov ebx, ebp
cmp ebx, esi
je 0x475c04
mov ecx, dword [ebx]
test ecx, ecx
je 0x475bfd
mov eax, dword [ecx]
push 1
call dword [eax]
add ebx, 4
cmp ebx, esi
jne 0x475bf1
sub edi, ebp
mov eax, ebp
and edi, 0xfffffffc
cmp edi, 0x1000
jb 0x475c27
mov ebp, dword [ebp - 4]
add edi, 0x23
sub eax, ebp
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x475d1a
push edi
push ebp
call fcn.004036ca
add esp, 8
mov eax, dword [esp + 0x30]
push 4
lea eax, [eax + eax*2]
shl eax, 2
push eax
push dword [esp + 0x2c]
call fcn.00415398
mov eax, dword [esp + 0x1c]
add esp, 0xc
jmp 0x4763bc
lea ecx, [esp + 0x7c]
mov word [esp + 0x84], 0x103
push ecx
push eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x84], str.expected_string
mov ecx, dword [eax]
call fcn.004137af
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x368]
mov dword [eax], 0
mov eax, dword [esp + 0x35c]
cmp eax, ecx
je 0x475c9b
push eax
call ebx
add esp, 4
mov eax, dword [esp + 0x144]
lea ecx, [esp + 0x150]
cmp eax, ecx
je 0x475cb3
push eax
call ebx
add esp, 4
mov eax, dword [esp + 0x250]
lea ecx, [esp + 0x25c]
cmp eax, ecx
je 0x475ccb
push eax
call ebx
add esp, 4
mov ebp, dword [esp + 0x34]
test ebp, ebp
je 0x475c31
mov ebx, ebp
cmp ebx, esi
je 0x475cf3
nop dword [eax]
mov ecx, dword [ebx]
test ecx, ecx
je 0x475cec
mov eax, dword [ecx]
push 1
call dword [eax]
add ebx, 4
cmp ebx, esi
jne 0x475ce0
sub edi, ebp
mov eax, ebp
and edi, 0xfffffffc
cmp edi, 0x1000
jb 0x475c27
mov ebp, dword [ebp - 4]
add edi, 0x23
sub eax, ebp
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x475c27
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
cmp byte [esp + 0x17], 0
jne 0x475dc8
mov ecx, dword [ebp]
lea eax, [esp + 0x7c]
push eax
push dword [esp + 0xc0]
mov word [esp + 0x8c], 0x103
mov dword [esp + 0x84], str.missing_key_contents_or_external_contents
call fcn.004137af
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x150]
mov dword [eax], 0
mov eax, dword [esp + 0x144]
cmp eax, ecx
je 0x475d76
push eax
call ebx
add esp, 4
mov eax, dword [esp + 0x250]
lea ecx, [esp + 0x25c]
cmp eax, ecx
je 0x475d8e
push eax
call ebx
add esp, 4
mov ebp, dword [esp + 0x34]
test ebp, ebp
je 0x475c31
mov ebx, ebp
cmp ebx, esi
je 0x475db3
mov ecx, dword [ebx]
test ecx, ecx
je 0x475dac
mov eax, dword [ecx]
push 1
call dword [eax]
add ebx, 4
cmp ebx, esi
jne 0x475da0
sub edi, ebp
lea ecx, [esp + 0x34]
sar edi, 2
push edi
push ebp
call fcn.004073a1
jmp 0x475c31
mov esi, dword [esp + 0xbc]
lea eax, [esp + 0x24]
push eax
push esi
mov ecx, ebp
call fcn.004074f5
test al, al
jne 0x475e43
mov esi, dword [esp + 0x10]
lea ecx, [esp + 0x150]
mov eax, dword [esp + 0x144]
mov dword [esi], 0
cmp eax, ecx
je 0x475e02
push eax
call ebx
add esp, 4
mov eax, dword [esp + 0x250]
lea ecx, [esp + 0x25c]
cmp eax, ecx
je 0x475e1a
push eax
call ebx
add esp, 4
lea ecx, [esp + 0x34]
call fcn.004090ca
mov eax, dword [esp + 0x30]
push 4
lea eax, [eax + eax*2]
shl eax, 2
push eax
push dword [esp + 0x2c]
call fcn.00415398
add esp, 0xc
mov eax, esi
jmp 0x4763bc
cmp dword [esp + 0x58], 0
jne 0x475ee2
cmp dword [esp + 0xb8], 0
je 0x475ee2
mov ecx, dword [ebp]
lea eax, [esp + 0x7c]
push eax
push esi
mov word [esp + 0x8c], 0x103
mov dword [esp + 0x84], str.use_external_name_is_not_supported_for_directories
call fcn.004137af
mov esi, dword [esp + 0x10]
lea ecx, [esp + 0x150]
mov eax, dword [esp + 0x144]
mov dword [esi], 0
cmp eax, ecx
je 0x475ea1
push eax
call ebx
add esp, 4
mov eax, dword [esp + 0x250]
lea ecx, [esp + 0x25c]
cmp eax, ecx
je 0x475eb9
push eax
call ebx
add esp, 4
lea ecx, [esp + 0x34]
call fcn.004090ca
mov eax, dword [esp + 0x30]
push 4
lea eax, [eax + eax*2]
shl eax, 2
push eax
push dword [esp + 0x2c]
call fcn.00415398
add esp, 0xc
mov eax, esi
jmp 0x4763bc
cmp byte [esp + 0x720], 0
mov esi, 2
mov dword [esp + 0x20], esi
je 0x475f2a
lea eax, [esp + 0x144]
mov word [esp + 0x84], 0x106
mov dword [esp + 0x7c], eax
lea eax, [esp + 0x7c]
push 1
push eax
call fcn.0040cc8e
add esp, 8
test al, al
je 0x476031
mov esi, 1
mov dword [esp + 0x20], esi
mov edi, dword [esp + 0x148]
lea eax, [esp + 0x4c]
mov ebp, dword [esp + 0x144]
push esi
push edi
push ebp
push eax
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], edi
call fcn.0040e877
add esp, 0x10
mov eax, dword [eax + 4]
mov dword [esp + 0x1c], eax
cmp edi, eax
jbe 0x475fbe
mov ebx, eax
nop dword [eax]
mov al, byte [edi + ebp - 1]
mov byte [esp + 0x1c], al
push esi
push dword [esp + 0x20]
call fcn.0040d913
add esp, 8
test al, al
je 0x475fb8
lea eax, [edi - 1]
mov dword [esp + 0xa4], 0
test eax, eax
mov dword [esp + 0xa0], eax
lea ecx, [esp + 0xa0]
lea edx, [esp + 0xa4]
cmove ecx, edx
lea eax, [esp + 0x48]
cmp edi, dword [ecx]
cmovae eax, ecx
mov edi, dword [eax]
mov dword [esp + 0x44], ebp
mov dword [esp + 0x48], edi
cmp edi, ebx
ja 0x475f60
mov ebx, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
push esi
push edi
lea eax, [esp + 0x11c]
push ebp
push eax
call fcn.00410b36
mov eax, dword [esp + 0x68]
xor esi, esi
add esp, 0x10
mov dword [esp + 0x18], esi
sub eax, esi
je 0x476095
sub eax, 1
jne 0x476135
lea eax, [esp + 0x74]
push eax
lea eax, [esp + 0x254]
push eax
lea eax, [esp + 0x11c]
push eax
lea eax, [esp + 0x28]
push eax
call fcn.004067e4
add esp, 0x10
mov esi, dword [eax]
mov dword [eax], 0
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x18], esi
test ecx, ecx
je 0x476135
mov eax, dword [ecx]
push 1
call dword [eax]
jmp 0x476135
lea eax, [esp + 0x144]
mov word [esp + 0x84], 0x106
mov dword [esp + 0x7c], eax
lea eax, [esp + 0x7c]
push 0
push eax
call fcn.0040cc8e
add esp, 8
test al, al
je 0x476060
xor esi, esi
jmp 0x475f26
mov ecx, dword [ebp]
lea eax, [esp + 0x7c]
push eax
push dword [esp + 0x74]
mov word [esp + 0x8c], 0x103
mov dword [esp + 0x84], str.entry_with_relative_path_at_the_root_level_is_not_discoverable
call fcn.004137af
mov ebx, dword [esp + 0x10]
mov dword [ebx], 0
jmp 0x475abf
mov word [esp + 0x9c], 0x101
call sub.MSVCP140.dll__Xtime_get_ticks
push 0x1ff
push 3
push 0
push 0
push 0
push 0
sub esp, 8
mov esi, esp
push 0
push 0x64
push edx
push eax
call fcn.0040646a
mov dword [esi], eax
lea eax, [esp + 0x10c]
push eax
mov dword [esi + 4], edx
call fcn.0040a713
sub esp, 0xc
mov ecx, esp
movups xmm0, xmmword [eax]
lea eax, [esp + 0xc4]
push eax
movups xmmword [ecx], xmm0
lea ecx, [esp + 0x5a8]
call fcn.0040d5f3
push eax
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x11c]
push eax
lea eax, [esp + 0x28]
push eax
call fcn.00402b58
add esp, 0x10
mov esi, dword [eax]
mov dword [eax], 0
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x18], esi
test ecx, ecx
je 0x476129
mov eax, dword [ecx]
push 1
call dword [eax]
lea ecx, [esp + 0x574]
call fcn.004026e4
push dword [esp + 0x20]
lea eax, [esp + 0xd4]
push edi
push ebp
push eax
call fcn.0040e313
mov eax, dword [esp + 0xe4]
add esp, 0x10
test eax, eax
jne 0x4761b5
mov edi, dword [esp + 0x10]
lea ecx, [esp + 0x150]
mov eax, dword [esp + 0x144]
mov dword [edi], esi
cmp eax, ecx
je 0x476174
push eax
call ebx
add esp, 4
mov eax, dword [esp + 0x250]
lea ecx, [esp + 0x25c]
cmp eax, ecx
je 0x47618c
push eax
call ebx
add esp, 4
lea ecx, [esp + 0x34]
call fcn.004090ca
mov eax, dword [esp + 0x30]
push 4
lea eax, [eax + eax*2]
shl eax, 2
push eax
push dword [esp + 0x2c]
call fcn.00415398
add esp, 0xc
mov eax, edi
jmp 0x4763bc
push dword [esp + 0x20]
push eax
push dword [esp + 0xd8]
lea eax, [esp + 0x108]
push eax
call fcn.0040933b
push dword [esp + 0xe4]
lea eax, [esp + 0x90]
push dword [esp + 0xe4]
push eax
call fcn.00413f4d
add esp, 0x1c
lea eax, [esp + 0x7c]
lea ecx, [esp + 0xfc]
push eax
call fcn.004081f2
test al, al
jne 0x47635c
nop word [eax + eax]
lea eax, [esp + 0x18]
mov dword [esp + 0x4c], 0
push eax
push 0
lea ecx, [esp + 0x54]
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
call fcn.00409566
mov word [esp + 0x9c], 0x101
call sub.MSVCP140.dll__Xtime_get_ticks
push 0x1ff
push 3
push 0
push 0
push 0
push 0
sub esp, 8
mov esi, esp
push 0
push 0x64
push edx
push eax
call fcn.0040646a
mov dword [esi], eax
lea eax, [esp + 0x10c]
push eax
mov dword [esi + 4], edx
call fcn.0040a713
sub esp, 0xc
mov ecx, esp
movups xmm0, xmmword [eax]
lea eax, [esp + 0xc4]
push eax
movups xmmword [ecx], xmm0
lea ecx, [esp + 0x5a8]
call fcn.0040d5f3
push eax
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x10c]
push eax
lea eax, [esp + 0x28]
push eax
call fcn.00410618
mov ecx, dword [esp + 0x28]
add esp, 0x10
mov esi, dword [eax]
mov dword [eax], 0
mov dword [esp + 0x18], esi
test ecx, ecx
je 0x4762cc
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x4762da
mov eax, dword [ecx]
push 1
call dword [eax]
lea ecx, [esp + 0x574]
call fcn.004026e4
mov ebp, dword [esp + 0x4c]
test ebp, ebp
je 0x476337
mov ebx, dword [esp + 0x50]
mov edi, ebp
cmp edi, ebx
je 0x47630b
mov ecx, dword [edi]
test ecx, ecx
je 0x476304
mov eax, dword [ecx]
push 1
call dword [eax]
add edi, 4
cmp edi, ebx
jne 0x4762f8
mov eax, dword [esp + 0x54]
lea ecx, [esp + 0x4c]
sub eax, ebp
sar eax, 2
push eax
push ebp
call fcn.004073a1
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
lea ecx, [esp + 0xfc]
call fcn.004021f3
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0x100]
call fcn.004081f2
test al, al
je 0x476210
mov ebx, dword [esp + 0x10]
lea ecx, [esp + 0x150]
mov eax, dword [esp + 0x144]
mov dword [ebx], esi
mov esi, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
cmp eax, ecx
je 0x476380
push eax
call esi
add esp, 4
mov eax, dword [esp + 0x250]
lea ecx, [esp + 0x25c]
cmp eax, ecx
je 0x476398
push eax
call esi
add esp, 4
lea ecx, [esp + 0x34]
call fcn.004090ca
mov eax, dword [esp + 0x30]
push 4
lea eax, [eax + eax*2]
shl eax, 2
push eax
push dword [esp + 0x2c]
call fcn.00415398
add esp, 0xc
mov eax, ebx
mov ecx, dword [esp + 0x70c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004087b5
add esp, 0x700
ret 0x10