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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x188
lea ecx, [esp + 0x80]
call fcn.00539210
cmp dword [esp + 0x80], 0
js 0x40cb07
mov esi, dword [ebp + 8]
lea eax, [esp + 0x150]
push eax
push dword [ebp + 0xc]
call fcn.0043a0e0
add esp, 8
cmp eax, 0xffffffff
je 0x40ca02
movzx eax, word [esp + 0x156]
and eax, 0xf000
cmp eax, 0x4000
jne 0x40ca67
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov esi, eax
mov al, 1
mov dword [esp + 0x70], ecx
mov dword [esp + 0x6c], eax
mov al, 1
mov dword [esp + 0x68], eax
cmp esi, dword [esp + 0x70]
je 0x40cbef
mov al, 1
mov dword [esp + 0x34], eax
nop word [eax + eax]
mov ebx, dword [esi]
lea eax, [esp + 0x120]
lea ecx, [esp + 0x80]
mov edx, ebx
push eax
call fcn.0040af00
add esp, 4
test al, al
mov dword [esp + 4], ebx
je 0x40bde0
movzx eax, word [esp + 0x126]
mov ecx, eax
rol cx, 3
and ecx, 0xffff8007
xor ecx, 4
cmp cx, 7
ja case.0x40bd5b.1
movzx ecx, cx
jmp dword [ecx*4 + 0x5847c0]
mov dword [esp + 0x44], esi
cmp byte [esp + 0x6c], 0
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x20], 0
je 0x40bfd3
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x30], 0
push ebx
call sub.msvcrt.dll_strlen
add esp, 4
cmp eax, 0xfffffff0
jae 0x40ccd3
mov ebx, eax
cmp eax, 0xb
jae 0x40bec3
mov eax, ebx
lea esi, [esp + 0x29]
add al, bl
test ebx, ebx
mov byte [esp + 0x28], al
jne 0x40bee5
jmp 0x40bef3
mov edi, dword [sym.imp.msvcrt.dll__errno]
call edi
cmp dword [eax], 0x7b
jne 0x40be20
push dword [esp + 4]
push str.remote_object__s_does_not_exist
lea eax, [esp + 0x88]
push eax
call fcn.00538ef0
add esp, 0xc
mov dword [esp + 0x34], 0
jmp 0x40c9f0
call edi
push dword [eax]
call fcn.00439f20
add esp, 4
push eax
push dword [esp + 8]
push str.failed_to_stat_remote_object__s:__s
lea eax, [esp + 0x8c]
push eax
call fcn.00538ef0
add esp, 0x10
mov dword [esp + 0x34], 0
jmp 0x40c9f0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x30], 0
push dword [ebp + 0xc]
call sub.msvcrt.dll_strlen
add esp, 4
cmp eax, 0xfffffff0
jae 0x40ccd3
mov ebx, eax
cmp eax, 0xb
mov dword [esp + 0x44], esi
jae 0x40c0b3
mov eax, ebx
lea esi, [esp + 0x29]
add al, bl
test ebx, ebx
mov byte [esp + 0x28], al
jne 0x40c0d5
jmp 0x40c0e2
push eax
push ebx
push str.skipping_special_file__s__mode__0o_o_
lea eax, [esp + 0x8c]
push eax
call fcn.005390b0
add esp, 0x10
jmp 0x40c9f0
mov edi, ebx
add edi, 0x10
and edi, 0xfffffff0
push edi
call fcn.004fc150
add esp, 4
or edi, 1
mov dword [esp + 0x30], eax
mov esi, eax
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], ebx
push ebx
push dword [esp + 8]
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea eax, [esp + 0x28]
mov byte [esi + ebx], 0
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.004dcf30
add esp, 8
test byte [esp + 0x38], 1
lea eax, [esp + 0x39]
je 0x40bf18
mov eax, dword [esp + 0x40]
push eax
push 0x5c
push dword [ebp + 0xc]
push str._s_c_s
lea eax, [esp + 0x18]
push eax
call fcn.004deac0
add esp, 0x14
test byte [esp + 0x18], 1
jne 0x40bf44
mov ebx, dword [esp + 4]
mov word [esp + 0x18], 0
jmp 0x40bf72
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 4]
mov byte [eax], 0
mov dword [esp + 0x1c], 0
test byte [esp + 0x18], 1
je 0x40bf72
push dword [esp + 0x20]
call fcn.004fc300
add esp, 4
mov dword [esp + 0x18], 0
movsd xmm0, qword [esp + 8]
mov eax, dword [esp + 0x10]
test byte [esp + 0x38], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 0x20], eax
movsd qword [esp + 0x18], xmm0
je 0x40bfb1
push dword [esp + 0x40]
call fcn.004fc300
add esp, 4
test byte [esp + 0x28], 1
je 0x40bfc4
push dword [esp + 0x30]
call fcn.004fc300
add esp, 4
test byte [esp + 0x18], 1
lea esi, [esp + 0x19]
je 0x40bfd3
mov esi, dword [esp + 0x20]
call fcn.004e2710
mov dword [esp + 0xd8], eax
lea eax, [esp + 0xe0]
mov dword [esp + 0xdc], edx
mov edi, dword [esp + 0x13c]
lea ecx, [esp + 0x80]
mov edx, ebx
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov eax, dword [esp + 0x138]
mov dword [esp + 0xfc], edi
mov dword [esp + 0xf8], eax
mov byte [esp + 0x100], 0
push edi
push eax
push dword [ebp + 0x14]
push esi
call 0x40cd00
add esp, 0x10
test al, al
je 0x40c1dc
cmp byte [ebp + 0x10], 0
je 0x40c1fd
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 0x10], 0
push esi
call sub.msvcrt.dll_strlen
add esp, 4
cmp eax, 0xfffffff0
jae 0x40ccca
mov ebx, eax
cmp eax, 0xb
jae 0x40c11e
mov eax, ebx
lea ecx, [esp + 9]
add al, bl
test ebx, ebx
mov edi, ecx
mov byte [esp + 8], al
jne 0x40c140
jmp 0x40c14b
mov edi, ebx
add edi, 0x10
and edi, 0xfffffff0
push edi
call fcn.004fc150
add esp, 4
or edi, 1
mov dword [esp + 0x30], eax
mov esi, eax
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], ebx
push ebx
push dword [ebp + 0xc]
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov byte [esi + ebx], 0
cmp byte [esp + 0x68], 0
mov esi, dword [esp + 0x44]
mov ebx, dword [esp + 4]
je 0x40c3ea
cmp byte [esp + 0x6c], 0
je 0x40c2b8
movzx eax, byte [esp + 0x28]
test al, 1
je 0x40c2f6
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
jmp 0x40c2fc
mov edi, ebx
add edi, 0x10
and edi, 0xfffffff0
push edi
call fcn.004fc150
add esp, 4
or edi, 1
mov dword [esp + 0x10], eax
mov dword [esp + 8], edi
mov edi, eax
mov dword [esp + 0xc], ebx
push ebx
push esi
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov byte [edi + ebx], 0
mov eax, dword [esp + 0x144]
movzx edi, word [esp + 0x126]
test byte [esp + 8], 1
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
lea eax, [esp + 9]
je 0x40c175
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x38]
push ecx
push eax
call fcn.004382d0
add esp, 8
mov ebx, eax
push 0
call sub.msvcrt.dll__umask
add esp, 4
mov esi, eax
movzx eax, si
push eax
call sub.msvcrt.dll__umask
add esp, 4
test byte [esp + 8], 1
lea eax, [esp + 9]
je 0x40c1ac
mov eax, dword [esp + 0x10]
not esi
and esi, edi
push esi
push eax
call fcn.00438350
add esp, 8
mov esi, eax
test ebx, ebx
cmovne esi, ebx
test byte [esp + 8], 1
je 0x40c1d4
push dword [esp + 0x10]
call fcn.004fc300
add esp, 4
mov ebx, dword [esp + 4]
test esi, esi
je 0x40c1fd
mov esi, dword [esp + 0x44]
mov dword [esp + 0x34], 0
mov ebx, 3
test byte [esp + 0x18], 1
jne 0x40c2af
jmp 0x40c2e0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 0x10], 0
push ebx
call sub.msvcrt.dll_strlen
add esp, 4
cmp eax, 0xfffffff0
jae 0x40ccca
mov ebx, eax
cmp eax, 0xb
jae 0x40c240
mov eax, ebx
lea esi, [esp + 9]
add al, bl
test ebx, ebx
mov byte [esp + 8], al
jne 0x40c262
jmp 0x40c270
mov edi, ebx
add edi, 0x10
and edi, 0xfffffff0
push edi
call fcn.004fc150
add esp, 4
or edi, 1
mov dword [esp + 0x10], eax
mov esi, eax
mov dword [esp + 8], edi
mov dword [esp + 0xc], ebx
push ebx
push dword [esp + 8]
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov byte [esi + ebx], 0
lea ecx, [esp + 0xd8]
push 1
lea eax, [esp + 0xc]
push eax
lea eax, [esp + 0x110]
push eax
call fcn.00539780
test byte [esp + 8], 1
je 0x40c2a2
push dword [esp + 0x10]
call fcn.004fc300
add esp, 4
mov esi, dword [esp + 0x44]
xor ebx, ebx
test byte [esp + 0x18], 1
je 0x40c2e0
push dword [esp + 0x20]
jmp 0x40c9dc
push dword [ebp + 0xc]
push str.target__s_is_not_a_directory
lea ebx, [esp + 0x88]
push ebx
call fcn.00538ef0
add esp, 0xc
mov ebx, 1
test byte [esp + 0x28], 1
jne 0x40c9d8
cmp ebx, 3
je 0x40c9f0
test ebx, ebx
je 0x40c9f0
jmp 0x40cb07
shr eax, 1
lea ecx, [esp + 0x29]
mov al, byte [ecx + eax - 1]
cmp al, 0x2f
je 0x40c313
cmp al, 0x5c
je 0x40c313
lea ecx, [esp + 0x28]
push 0x5c
call fcn.00556a60
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 0x10], 0
push ebx
call sub.msvcrt.dll_strlen
add esp, 4
cmp eax, 0xfffffff0
jae 0x40ccca
mov ebx, eax
cmp eax, 0xb
jae 0x40c356
mov eax, ebx
lea esi, [esp + 9]
add al, bl
test ebx, ebx
mov byte [esp + 8], al
jne 0x40c378
jmp 0x40c386
mov edi, ebx
add edi, 0x10
and edi, 0xfffffff0
push edi
call fcn.004fc150
add esp, 4
or edi, 1
mov dword [esp + 0x10], eax
mov esi, eax
mov dword [esp + 8], edi
mov dword [esp + 0xc], ebx
push ebx
push dword [esp + 8]
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea eax, [esp + 8]
mov byte [esi + ebx], 0
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.004dcf30
add esp, 8
movzx eax, byte [esp + 0x18]
test al, 1
je 0x40c3af
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
jmp 0x40c3b5
shr eax, 1
lea edx, [esp + 0x19]
mov ebx, dword [esp + 4]
lea ecx, [esp + 0x28]
push eax
push edx
call fcn.00555860
test byte [esp + 0x18], 1
je 0x40c3d7
push dword [esp + 0x20]
call fcn.004fc300
add esp, 4
test byte [esp + 8], 1
je 0x40c3ea
push dword [esp + 0x10]
call fcn.004fc300
add esp, 4
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x50], 0
push ebx
call sub.msvcrt.dll_strlen
add esp, 4
cmp eax, 0xfffffff0
jae 0x40ccdc
mov ebx, eax
cmp eax, 0xb
jae 0x40c42d
mov eax, ebx
lea esi, [esp + 0x49]
add al, bl
test ebx, ebx
mov byte [esp + 0x48], al
jne 0x40c44f
jmp 0x40c45d
mov edi, ebx
add edi, 0x10
and edi, 0xfffffff0
push edi
call fcn.004fc150
add esp, 4
or edi, 1
mov dword [esp + 0x50], eax
mov esi, eax
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], ebx
push ebx
push dword [esp + 8]
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
test byte [esp + 0x28], 1
lea eax, [esp + 0x29]
mov byte [esi + ebx], 0
mov edi, eax
je 0x40c472
mov edi, dword [esp + 0x30]
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
push edi
call sub.msvcrt.dll_strlen
add esp, 4
cmp eax, 0xfffffff0
jae 0x40cce5
mov ebx, eax
cmp eax, 0xb
jae 0x40c4b5
mov eax, ebx
lea esi, [esp + 0x59]
add al, bl
test ebx, ebx
mov byte [esp + 0x58], al
jne 0x40c4df
jmp 0x40c4ea
mov dword [esp + 4], edi
mov edi, ebx
add edi, 0x10
and edi, 0xfffffff0
push edi
call fcn.004fc150
add esp, 4
or edi, 1
mov dword [esp + 0x60], eax
mov esi, eax
mov dword [esp + 0x58], edi
mov edi, dword [esp + 4]
mov dword [esp + 0x5c], ebx
push ebx
push edi
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov byte [esi + ebx], 0
call fcn.004e2710
mov dword [esp + 0xd8], eax
lea eax, [esp + 0xe0]
mov dword [esp + 0xdc], edx
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x1c], 0
mov dword [eax + 0x18], 0
movzx eax, byte [esp + 0x58]
test al, 1
je 0x40c552
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x5c]
jmp 0x40c558
shr eax, 1
lea ecx, [esp + 0x59]
mov al, byte [ecx + eax - 1]
lea esi, [esp + 0x80]
cmp al, 0x2f
je 0x40c576
cmp al, 0x5c
je 0x40c576
lea ecx, [esp + 0x58]
push 0x5c
call fcn.00556a60
movzx eax, byte [esp + 0x48]
test al, 1
je 0x40c590
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x4c]
cmp byte [ecx + eax - 1], 0x2f
jne 0x40c59d
jmp 0x40c5a8
shr eax, 1
lea ecx, [esp + 0x49]
cmp byte [ecx + eax - 1], 0x2f
je 0x40c5a8
lea ecx, [esp + 0x48]
push 0x2f
call fcn.00556a60
push str.pull:_building_file_list...
push esi
call fcn.00538f90
add esp, 8
test byte [esp + 0x48], 1
lea eax, [esp + 0x49]
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov edi, eax
je 0x40c5df
mov edi, dword [esp + 0x50]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
push edi
call sub.msvcrt.dll_strlen
add esp, 4
cmp eax, 0xfffffff0
jae 0x40ccca
mov ebx, eax
cmp eax, 0xb
jae 0x40c622
mov eax, ebx
lea esi, [esp + 9]
add al, bl
test ebx, ebx
mov byte [esp + 8], al
jne 0x40c64c
jmp 0x40c657
mov dword [esp + 4], edi
mov edi, ebx
add edi, 0x10
and edi, 0xfffffff0
push edi
call fcn.004fc150
add esp, 4
or edi, 1
mov dword [esp + 0x10], eax
mov esi, eax
mov dword [esp + 8], edi
mov edi, dword [esp + 4]
mov dword [esp + 0xc], ebx
push ebx
push edi
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
test byte [esp + 0x58], 1
lea eax, [esp + 0x59]
mov byte [esi + ebx], 0
mov edi, eax
je 0x40c66c
mov edi, dword [esp + 0x60]
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
push edi
call sub.msvcrt.dll_strlen
add esp, 4
cmp eax, 0xfffffff0
jae 0x40ccee
mov ebx, eax
cmp eax, 0xb
jae 0x40c6af
mov eax, ebx
lea esi, [esp + 0x39]
add al, bl
test ebx, ebx
mov byte [esp + 0x38], al
jne 0x40c6d9
jmp 0x40c6e4
mov dword [esp + 4], edi
mov edi, ebx
add edi, 0x10
and edi, 0xfffffff0
push edi
call fcn.004fc150
add esp, 4
or edi, 1
mov dword [esp + 0x40], eax
mov esi, eax
mov dword [esp + 0x38], edi
mov edi, dword [esp + 4]
mov dword [esp + 0x3c], ebx
push ebx
push edi
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea eax, [esp + 0x38]
mov byte [esi + ebx], 0
lea ecx, [esp + 0x80]
lea edx, [esp + 0x18]
push eax
lea eax, [esp + 0xc]
push eax
call fcn.0040d6e0
add esp, 8
test byte [esp + 0x38], 1
mov ebx, eax
jne 0x40c71f
test byte [esp + 8], 1
jne 0x40c732
test bl, bl
je 0x40c937
jmp 0x40c746
push dword [esp + 0x40]
call fcn.004fc300
add esp, 4
test byte [esp + 8], 1
je 0x40c715
push dword [esp + 0x10]
call fcn.004fc300
add esp, 4
test bl, bl
je 0x40c937
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xfc], 0
mov dword [esp + 0xf8], 0
cmp ebx, esi
je 0x40c8bd
xor eax, eax
xor ecx, ecx
mov edx, ebx
nop word cs:[eax + eax]
nop dword [eax]
cmp byte [edx + 0x30], 0
jne 0x40c79a
add eax, dword [edx + 0x28]
adc ecx, dword [edx + 0x2c]
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], ecx
add edx, 0x38
cmp esi, edx
jne 0x40c780
xor edi, edi
mov byte [esp + 0x100], 1
nop dword [eax + eax]
cmp byte [ebx + 0x30], 0
je 0x40c7c0
inc edi
jmp 0x40c8b0
mov eax, dword [ebx + 0x20]
mov ecx, 0xf000
and eax, ecx
cmp eax, 0x4000
jne 0x40c7e7
push ebx
call fcn.0041a470
add esp, 4
test al, al
jne 0x40c8b0
jmp 0x40c904
test byte [ebx + 0xc], 1
mov dword [esp + 4], edi
jne 0x40c7fe
lea edx, [ebx + 0xd]
test byte [ebx], 1
je 0x40c806
mov eax, dword [ebx + 8]
jmp 0x40c809
mov edx, dword [ebx + 0x14]
test byte [ebx], 1
jne 0x40c7f9
lea eax, [ebx + 1]
lea ecx, [esp + 0x80]
push dword [ebx + 0x2c]
push dword [ebx + 0x28]
push 0
push eax
call 0x40cd00
add esp, 0x10
test al, al
je 0x40c937
cmp byte [ebp + 0x10], 0
je 0x40c8ac
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebx + 0x20]
mov dword [esp + 8], eax
mov dword [esp + 0xc], eax
lea eax, [ebx + 1]
mov dword [esp + 0x7c], ecx
test byte [ebx], 1
mov dword [esp + 0x78], eax
je 0x40c850
mov eax, dword [ebx + 8]
lea ecx, [esp + 8]
push ecx
push eax
call fcn.004382d0
add esp, 8
mov dword [esp + 0x74], eax
push 0
call sub.msvcrt.dll__umask
add esp, 4
movzx edi, ax
push edi
call sub.msvcrt.dll__umask
add esp, 4
test byte [ebx], 1
mov ecx, dword [esp + 0x78]
je 0x40c884
mov ecx, dword [ebx + 8]
mov eax, dword [esp + 0x7c]
not edi
and eax, edi
push eax
push ecx
call fcn.00438350
add esp, 8
mov ecx, dword [esp + 0x74]
mov edi, dword [esp + 4]
test ecx, ecx
cmovne eax, ecx
test eax, eax
je 0x40c8b0
jmp 0x40c937
mov edi, dword [esp + 4]
add ebx, 0x38
cmp esi, ebx
jne 0x40c7b0
jmp 0x40c8c7
mov byte [esp + 0x100], 1
xor edi, edi
add dword [esp + 0xe8], edi
lea ecx, [esp + 0xd8]
adc dword [esp + 0xec], 0
add dword [esp + 0xb8], edi
adc dword [esp + 0xbc], 0
push 1
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x110]
push eax
call fcn.00539780
mov bl, 1
jmp 0x40c939
test byte [ebx], 1
mov eax, dword [sym.imp.msvcrt.dll__errno]
jne 0x40c911
inc ebx
jmp 0x40c914
mov ebx, dword [ebx + 8]
call eax
push dword [eax]
call fcn.00439f20
add esp, 4
push eax
push ebx
push str.failed_to_create_directory__s:__s
lea ebx, [esp + 0x8c]
push ebx
call fcn.00538ef0
add esp, 0x10
xor ebx, ebx
mov esi, dword [esp + 0x18]
test esi, esi
je 0x40c994
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x1c]
cmp ebx, esi
je 0x40c981
nop dword [eax]
test byte [ebx - 0x2c], 1
je 0x40c961
push dword [ebx - 0x24]
call fcn.004fc300
add esp, 4
test byte [ebx - 0x38], 1
lea edi, [ebx - 0x38]
je 0x40c975
push dword [ebx - 0x30]
call fcn.004fc300
add esp, 4
cmp esi, edi
mov ebx, edi
jne 0x40c950
mov eax, dword [esp + 0x18]
jmp 0x40c983
mov eax, esi
mov dword [esp + 0x1c], esi
push eax
call fcn.004fc300
add esp, 4
mov ebx, dword [esp + 4]
test byte [esp + 0x58], 1
je 0x40c9a7
push dword [esp + 0x60]
call fcn.004fc300
add esp, 4
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x44]
and al, bl
test byte [esp + 0x48], 1
mov ebx, 3
mov dword [esp + 0x34], eax
je 0x40c9cd
push dword [esp + 0x50]
call fcn.004fc300
add esp, 4
test byte [esp + 0x28], 1
je 0x40c2e0
push dword [esp + 0x30]
call fcn.004fc300
add esp, 4
cmp ebx, 3
jne 0x40c2e9
nop dword [eax]
add esi, 4
cmp esi, dword [esp + 0x70]
jne 0x40bd10
jmp 0x40cbf5
mov eax, dword [esi + 4]
sub eax, dword [esi]
cmp eax, 4
jne 0x40ca8a
call dword [sym.imp.msvcrt.dll__errno]
cmp dword [eax], 2
jne 0x40ca8a
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 0x10], 0
push dword [ebp + 0xc]
call sub.msvcrt.dll_strlen
add esp, 4
cmp eax, 0xfffffff0
jae 0x40ccca
mov ebx, eax
cmp eax, 0xb
jae 0x40cb0e
mov eax, ebx
lea edi, [esp + 9]
add al, bl
test ebx, ebx
mov byte [esp + 8], al
jne 0x40cb3a
jmp 0x40cb47
mov al, 1
mov dword [esp + 0x68], eax
mov eax, dword [esi + 4]
mov edi, dword [esi]
mov dword [esp + 0x70], eax
sub eax, edi
sar eax, 2
cmp eax, 2
jb 0x40cab5
push dword [ebp + 0xc]
push str.target__s_is_not_a_directory
jmp 0x40caf7
call dword [sym.imp.msvcrt.dll__errno]
push dword [eax]
call fcn.00439f20
add esp, 4
push eax
push dword [ebp + 0xc]
push str.failed_to_access__s:__s
lea eax, [esp + 0x8c]
push eax
call fcn.00538ef0
add esp, 0x10
jmp 0x40cb07
mov eax, dword [ebp + 0xc]
mov esi, eax
push eax
call sub.msvcrt.dll_strlen
add esp, 4
mov al, byte [esi + eax - 1]
mov dword [esp + 0x6c], 0
cmp al, 0x5c
setne cl
cmp al, 0x2f
setne al
test cl, al
jne 0x40cbe3
mov eax, dword [esp + 0x68]
xor al, 1
mov esi, edi
jne 0x40bcf7
push dword [ebp + 0xc]
push str.failed_to_access__s:_Not_a_directory
lea eax, [esp + 0x88]
push eax
call fcn.00538ef0
add esp, 0xc
xor ebx, ebx
jmp 0x40ccb4
mov dword [esp + 4], ebx
mov ebx, dword [esp + 4]
add ebx, 0x10
and ebx, 0xfffffff0
push ebx
call fcn.004fc150
add esp, 4
or ebx, 1
mov dword [esp + 0x10], eax
mov edi, eax
mov dword [esp + 8], ebx
mov ebx, dword [esp + 4]
mov dword [esp + 0xc], ebx
push ebx
push dword [ebp + 0xc]
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea eax, [esp + 8]
mov byte [edi + ebx], 0
lea ecx, [esp + 0x18]
push eax
push ecx
call fcn.004dcea0
add esp, 8
test byte [esp + 0x18], 1
je 0x40cb6a
mov eax, dword [esp + 0x20]
jmp 0x40cb6e
lea eax, [esp + 0x19]
lea ecx, [esp + 0x120]
push ecx
push eax
call fcn.0043a0e0
add esp, 8
test byte [esp + 0x18], 1
mov edi, eax
jne 0x40cba1
test byte [esp + 8], 1
jne 0x40cbb4
cmp edi, 0xffffffff
je 0x40cbc5
mov dword [esp + 0x68], 0
jmp 0x40ca6d
push dword [esp + 0x20]
call fcn.004fc300
add esp, 4
test byte [esp + 8], 1
je 0x40cb8f
push dword [esp + 0x10]
call fcn.004fc300
add esp, 4
cmp edi, 0xffffffff
jne 0x40cb94
call dword [sym.imp.msvcrt.dll__errno]
push dword [eax]
call fcn.00439f20
add esp, 4
push eax
push dword [ebp + 0xc]
push str.cannot_create_file_directory__s:__s
jmp 0x40caa3
mov esi, edi
cmp esi, dword [esp + 0x70]
jne 0x40bd01
mov al, 1
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xe4]
mov ebx, dword [esp + 0x34]
xor ecx, dword [esp + 0xb4]
xor eax, dword [esp + 0xb0]
or eax, ecx
jne 0x40cc59
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
xor ecx, dword [esp + 0xbc]
xor eax, dword [esp + 0xb8]
or eax, ecx
jne 0x40cc59
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp + 0xf4]
xor ecx, dword [esp + 0xc4]
xor eax, dword [esp + 0xc0]
or eax, ecx
je 0x40ccb1
lea ecx, [esp + 0xa8]
lea eax, [esp + 0x108]
mov dword [esp + 0x124], 0
mov dword [esp + 0x120], 0
mov dword [esp + 0x128], 0
lea edx, [esp + 0x120]
push 1
push edx
push eax
call fcn.00539780
test byte [esp + 0x120], 1
je 0x40ccb1
push dword [esp + 0x128]
call fcn.004fc300
add esp, 4
and bl, 1
lea ecx, [esp + 0x80]
call fcn.005394c0
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea ecx, [esp + 8]
call fcn.0053ebb0
lea ecx, [esp + 0x28]
call fcn.0053ebb0
lea ecx, [esp + 0x48]
call fcn.0053ebb0
lea ecx, [esp + 0x58]
call fcn.0053ebb0
lea ecx, [esp + 0x38]
call fcn.0053ebb0
nop word [eax + eax]
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
mov eax, 0x10080
call fcn.00521450
mov edi, edx
mov esi, ecx
push edx
push 0x56434552
call fcn.00538810
test al, al
je 0x40cf00
mov dword [esp + 0x10], esi
mov esi, dword [ebp + 8]
mov dword [esp + 0x18], edi
push esi
call fcn.004381a0
add esp, 4
push 0x1a4
push esi
call fcn.00433230
add esp, 8
mov esi, dword [sym.imp.msvcrt.dll__errno]
mov ebx, eax
call esi
mov edi, dword [eax]
call esi
test ebx, ebx
mov dword [eax], edi
mov dword [esp + 0x14], ebx
js 0x40cf07
lea eax, [esp + 0x30]
push 8
push eax
mov esi, dword [esp + 0x18]
push dword [esi]
call fcn.004181e0
add esp, 0xc
mov ebx, dword [ebp + 8]
test al, al
je 0x40cf5d
mov eax, dword [ebp + 0xc]
lea edx, [esi + 0x58]
lea ecx, [esi + 0x88]
mov dword [esp + 0x20], 0
mov dword [esp + 0x2c], edx
lea edx, [esp + 0x7c]
mov dword [esp + 0x28], ecx
test eax, eax
cmove eax, dword [esp + 0x18]
xor edi, edi
mov dword [esp + 0x1c], eax
nop word cs:[eax + eax]
nop
mov eax, dword [esp + 0x30]
cmp eax, 0x41544144
jne 0x40cf2e
mov eax, dword [esp + 0x34]
mov ecx, dword [esi + 4]
cmp eax, ecx
ja 0x40cf4d
mov ebx, edi
push eax
push edx
push dword [esi]
mov edi, edx
call fcn.004181e0
add esp, 0xc
test al, al
je 0x40cf95
push dword [esp + 0x34]
push edi
push dword [esp + 0x1c]
call fcn.00418570
add esp, 0xc
test al, al
je 0x40cf9a
mov eax, dword [esp + 0x34]
mov edi, ebx
add dword [esp + 0x20], eax
adc edi, 0
add dword [esi + 0x70], eax
adc dword [esi + 0x74], 0
add dword [esi + 0x40], eax
adc dword [esi + 0x44], 0
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [esp + 8], 0
push dword [esp + 0x1c]
call sub.msvcrt.dll_strlen
add esp, 4
cmp eax, 0xfffffff0
jae 0x40cfde
mov ebx, eax
cmp eax, 0xb
jae 0x40ce70
mov eax, ebx
lea esi, [esp + 1]
add al, bl
test ebx, ebx
mov byte [esp], al
jne 0x40ce99
jmp 0x40cea7
mov dword [esp + 0x24], edi
mov edi, ebx
add edi, 0x10
and edi, 0xfffffff0
push edi
call fcn.004fc150
add esp, 4
or edi, 1
mov dword [esp + 8], eax
mov esi, eax
mov dword [esp], edi
mov edi, dword [esp + 0x24]
mov dword [esp + 4], ebx
push ebx
push dword [esp + 0x20]
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ecx, dword [esp + 0x2c]
mov byte [esi + ebx], 0
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push edi
push dword [esp + 0x2c]
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x3c]
call fcn.00539590
test byte [esp], 1
je 0x40ceda
push dword [esp + 8]
call fcn.004fc300
add esp, 4
push 8
lea eax, [esp + 0x34]
push eax
mov esi, dword [esp + 0x18]
push dword [esi]
call fcn.004181e0
add esp, 0xc
mov ebx, dword [ebp + 8]
test al, al
lea edx, [esp + 0x7c]
jne 0x40cdc0
jmp 0x40cf5d
xor ebx, ebx
jmp 0x40cf8b
call dword [sym.imp.msvcrt.dll__errno]
push dword [eax]
call fcn.00439f20
add esp, 4
push eax
push dword [ebp + 8]
push str.cannot_create__s:__s
push dword [esp + 0x1c]
call fcn.00538ef0
add esp, 0x10
jmp 0x40cf66
cmp eax, 0x454e4f44
jne 0x40cfc2
add dword [esi + 0x60], 1
mov bl, 1
adc dword [esi + 0x64], 0
add dword [esi + 0x30], 1
adc dword [esi + 0x34], 0
jmp 0x40cf68
push ecx
push eax
push str.msg.data.size_too_large:__u__max__zu_
push esi
call fcn.00538ef0
add esp, 0x10
push ebx
call fcn.004381a0
add esp, 4
xor ebx, ebx
call dword [sym.imp.msvcrt.dll__errno]
mov esi, dword [eax]
cmp dword [esp + 0x14], 0xffffffff
je 0x40cf83
push dword [esp + 0x14]
call fcn.0041a210
add esp, 4
call dword [sym.imp.msvcrt.dll__errno]
mov dword [eax], esi
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push dword [ebp + 8]
jmp 0x40cf5e
call dword [sym.imp.msvcrt.dll__errno]
push dword [eax]
call fcn.00439f20
add esp, 4
push eax
mov eax, dword [ebp + 8]
mov edi, eax
push eax
push str.cannot_write__s:__s
push esi
call fcn.00538ef0
add esp, 0x10
push edi
jmp 0x40cf5e
push ebx
call fcn.004381a0
add esp, 4
lea eax, [esp + 0x30]
mov ecx, esi
push eax
push ebx
push dword [esp + 0x20]
call fcn.00538e00
jmp 0x40cf66
mov ecx, esp
call fcn.0053ebb0
nop word cs:[eax + eax]
nop