Function at 0x4b30c4
Capabilities:
Copy file

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x56
push 0
push 0
dec ecx
jne 0x4b30cd
push ecx
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov esi, ecx
mov dword [ebp - 4], edx
mov ebx, eax
mov eax, dword [ebp - 4]
call fcn.00404ec0
xor eax, eax
push ebp
push 0x4b393a
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, ebx
call fcn.004b02ec
mov edx, dword [ebp - 4]
lea eax, [ebp - 0x168]
call fcn.00402f68
mov eax, dword [0x4ba728]
mov byte [eax], 2
test esi, esi
jne 0x4b3130
mov edx, 1
lea eax, [ebp - 0x168]
call fcn.004034c8
call fcn.00402944
jmp 0x4b3167
mov edx, 1
lea eax, [ebp - 0x168]
call fcn.004034ac
call fcn.00402944
lea eax, [ebp - 0x168]
call fcn.0040331c
call fcn.00402944
mov edx, eax
lea eax, [ebp - 0x168]
call fcn.004034d4
call fcn.00402944
lea eax, [ebp - 0x168]
call fcn.004032cc
call fcn.00402944
mov dword [ebp - 0x14], eax
push 0
lea edx, [ebx + 0x50aa4]
mov ecx, 0x724
lea eax, [ebp - 0x168]
call fcn.004030ec
call fcn.00402944
lea eax, [ebp - 0x168]
call fcn.004032cc
call fcn.00402944
mov dword [ebx + 0x50b50], eax
lea eax, [ebp - 0x168]
call fcn.0040310c
call fcn.00402944
lea eax, [ebp - 0xc]
push eax
mov cl, 1
mov edx, dword [ebx + 0x4c4]
mov eax, ebx
call fcn.004b3a80
push 0x4b3958
push 0
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x16c]
mov ecx, 0x4b396c
mov edx, dword [ebp - 0xc]
call fcn.00404d1c
mov edx, dword [ebp - 0x16c]
mov ecx, 0x4b3984
mov eax, ebx
call fcn.004ab1f4
cmp dword [ebp - 0x1c], 0
je 0x4b3274
push dword [ebp - 0xc]
push 0x4b3994
push dword [ebp - 0x1c]
lea eax, [ebp - 0x170]
mov edx, 3
call fcn.00404d90
mov eax, dword [ebp - 0x170]
call fcn.00409790
test al, al
je 0x4b3274
lea eax, [ebp - 0x174]
mov ecx, 0x4b396c
mov edx, dword [ebp - 0xc]
call fcn.00404d1c
mov eax, dword [ebp - 0x174]
call fcn.004098e8
push dword [ebp - 0xc]
push 0x4b3994
push dword [ebp - 0x1c]
lea eax, [ebp - 0x178]
mov edx, 3
call fcn.00404d90
mov eax, dword [ebp - 0x178]
call fcn.004098e8
lea edx, [ebp - 0x17c]
mov eax, dword [ebx + 0x4b4]
call fcn.00447218
cmp dword [ebp - 0x17c], 0
je 0x4b336b
lea edx, [ebp - 0x180]
mov eax, dword [ebx + 0x4b4]
call fcn.00447218
mov eax, dword [ebp - 0x180]
call fcn.00409790
test al, al
je 0x4b336b
lea edx, [ebp - 0x184]
mov eax, dword [ebx + 0x4b4]
call fcn.00447218
mov eax, dword [ebp - 0x184]
lea edx, [ebp - 0x18]
call fcn.004099ec
push 0
push dword [ebp - 0xc]
push 0x4b39a0
push dword [ebp - 0x18]
lea eax, [ebp - 0x188]
mov edx, 3
call fcn.00404d90
mov eax, dword [ebp - 0x188]
call fcn.00404ed0
push eax
lea edx, [ebp - 0x18c]
mov eax, dword [ebx + 0x4b4]
call fcn.00447218
mov eax, dword [ebp - 0x18c]
call fcn.00404ed0
push eax
call sub.kernel32.dll_CopyFileA
push 0x4b3958
lea eax, [ebp - 0x194]
mov ecx, dword [ebp - 0x18]
mov edx, 0x4b39b4
call fcn.00404d1c
mov eax, dword [ebp - 0x194]
push eax
lea eax, [ebp - 0x190]
push eax
lea eax, [ebp - 0x198]
mov ecx, 0x4b396c
mov edx, dword [ebp - 0xc]
call fcn.00404d1c
mov edx, dword [ebp - 0x198]
mov ecx, 0x4b3984
mov eax, ebx
call fcn.004ab2b4
mov eax, dword [ebp - 0xc]
push eax
mov ecx, dword [ebx + 0x4c4]
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.004b3b8c
mov dword [ebx + 0x50b54], eax
mov edx, dword [ebp - 4]
lea eax, [ebp - 0x168]
call fcn.00402f68
mov eax, dword [0x4ba728]
mov byte [eax], 2
mov edx, 1
lea eax, [ebp - 0x168]
call fcn.004034ac
call fcn.00402944
lea eax, [ebp - 0x168]
call fcn.0040331c
call fcn.00402944
mov dword [ebx + 0x50b8c], eax
lea eax, [ebp - 0x168]
call fcn.0040331c
call fcn.00402944
mov edx, eax
lea eax, [ebp - 0x168]
call fcn.004034d4
call fcn.00402944
mov esi, dword [ebx + 0x509e8]
test esi, esi
jle 0x4b341c
mov edi, 1
push 0
imul eax, edi, 0x29
lea edx, [ebx + eax*8 + 0x4d0]
mov ecx, 0x148
lea eax, [ebp - 0x168]
call fcn.004030ec
call fcn.00402944
inc edi
dec esi
jne 0x4b33f7
lea eax, [ebp - 0x168]
call fcn.004032cc
call fcn.00402944
mov dword [ebx + 0x50b58], eax
lea eax, [ebp - 0x168]
call fcn.0040310c
call fcn.00402944
lea eax, [ebp - 0xc]
push eax
mov cl, 1
mov edx, dword [ebx + 0x4c8]
mov eax, ebx
call fcn.004b3a80
mov eax, dword [ebp - 0xc]
push eax
mov ecx, dword [ebx + 0x4c8]
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.004b3b8c
mov dword [ebx + 0x50b7c], eax
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.004b5c7c
mov dword [ebx + 0x50b80], eax
lea edx, [ebp - 0x1a0]
mov eax, dword [ebx + 0x3e8]
call fcn.00447218
mov eax, dword [ebp - 0x1a0]
lea edx, [ebp - 0x19c]
call fcn.00408e88
cmp dword [ebp - 0x19c], 0
je 0x4b34f6
lea eax, [ebp - 0xc]
mov ecx, 0x4b39c8
mov edx, dword [ebx + 0x50a04]
call fcn.00404d1c
mov eax, dword [ebx + 0x3e8]
mov eax, dword [eax + 0x220]
mov edx, dword [ebp - 0xc]
mov ecx, dword [eax]
call dword [ecx + 0x74]
push 0
push 0
push 0
push 0
push 0
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0xc]
mov eax, ebx
call fcn.004b0fa0
mov dword [ebx + 0x50b84], eax
mov eax, dword [ebp - 0xc]
call fcn.004098e8
mov eax, dword [ebx + 0x511d0]
call fcn.00409790
test al, al
jne 0x4b3543
mov edx, dword [ebx + 0x511d0]
lea eax, [ebp - 0x168]
call fcn.00402f68
mov eax, dword [0x4ba728]
mov byte [eax], 2
mov edx, 1
lea eax, [ebp - 0x168]
call fcn.004034c8
call fcn.00402944
lea eax, [ebp - 0x168]
call fcn.0040310c
call fcn.00402944
lea eax, [ebp - 0x1a4]
mov ecx, 0x4b39dc
mov edx, dword [ebx + 0x511d0]
call fcn.00404d1c
mov eax, dword [ebp - 0x1a4]
call fcn.00482f60
lea eax, [ebp - 0x1a8]
mov ecx, 0x4b39ec
mov edx, dword [ebx + 0x511d0]
call fcn.00404d1c
mov edx, dword [ebp - 0x1a8]
mov eax, dword [ebx + 0x334]
mov eax, dword [eax + 0x254]
mov ecx, dword [eax]
call dword [ecx + 0x74]
lea eax, [ebp - 0x1ac]
mov ecx, 0x4b3a04
mov edx, dword [ebx + 0x511d0]
call fcn.00404d1c
mov edx, dword [ebp - 0x1ac]
mov eax, dword [ebx + 0x3f8]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x74]
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.004b5c7c
mov dword [ebx + 0x50d54], eax
lea eax, [ebp - 0xc]
mov ecx, 0x4b3a20
mov edx, dword [ebx + 0x511d0]
call fcn.00404d1c
mov eax, dword [ebp - 0xc]
push eax
mov ecx, dword [ebx + 0x511d0]
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.004b3b8c
mov dword [ebx + 0x50d58], eax
mov eax, dword [ebx + 0x408]
mov edx, dword [eax]
call dword [edx + 0xc8]
cmp al, 1
jne 0x4b3616
mov byte [ebx + 0x50da4], 1
jmp 0x4b361d
mov byte [ebx + 0x50da4], 0
mov eax, dword [ebx + 0x509e8]
mov dword [ebx + 0x50b3c], eax
mov eax, dword [ebx + 0x509ec]
mov dword [ebx + 0x50b88], eax
lea eax, [ebp - 0x2ac]
mov edx, dword [ebx + 0x5169c]
mov ecx, 0xff
call fcn.00404cac
lea edx, [ebp - 0x2ac]
lea eax, [ebx + 0x50cc7]
mov cl, 0x14
call fcn.004031a0
call fcn.0040ae84
add esp, 0xfffffff8
fstp qword [esp]
wait
lea eax, [ebp - 0x10]
mov edx, 0x4b3a30
call fcn.0040ba60
lea eax, [ebp - 0x2ac]
mov edx, dword [ebp - 0x10]
mov ecx, 0xff
call fcn.00404cac
lea edx, [ebp - 0x2ac]
lea eax, [ebx + 0x50bf7]
mov cl, 0x1e
call fcn.004031a0
lea edx, [ebp - 0x2b0]
mov eax, dword [ebx + 0x344]
call fcn.00447218
mov edx, dword [ebp - 0x2b0]
lea eax, [ebp - 0x2ac]
mov ecx, 0xff
call fcn.00404cac
lea edx, [ebp - 0x2ac]
lea eax, [ebx + 0x50c16]
mov cl, 0x1e
call fcn.004031a0
cmp byte [ebx + 0x516a1], 0xc
jne 0x4b36f4
mov eax, 0x1e
call fcn.00403388
add al, 0x1e
mov byte [ebx + 0x50c54], al
jmp 0x4b3706
mov eax, 0x1e
call fcn.00403388
add al, 0x46
mov byte [ebx + 0x50c54], al
cmp byte [ebx + 0x516a1], 0xc
jne 0x4b3733
mov eax, dword [ebx + 0x5169c]
mov edx, 0x4b3a4c
call fcn.00404e1c
jne 0x4b3733
mov eax, 0x1e
call fcn.00403388
add al, 0xb4
mov byte [ebx + 0x50c54], al
cmp dword [ebx + 0x50a88], 0xd
je 0x4b376c
mov eax, 6
call fcn.00403388
cmp eax, 4
jge 0x4b376c
mov eax, dword [ebp - 0x10]
mov edx, 0x4b3a60
call fcn.00404e1c
jbe 0x4b376c
mov eax, 0x1e
call fcn.00403388
add al, 0xc8
mov byte [ebx + 0x50c54], al
push 0x3af
lea edx, [ebp - 0x2b4]
mov eax, dword [0x4ba614]
mov eax, dword [eax]
call fcn.004672e4
mov edx, dword [ebp - 0x2b4]
xor ecx, ecx
mov eax, ebx
call fcn.004aec38
sub eax, 0xe
imul eax, eax, 0x64
add dword [ebx + 0x50b54], eax
call fcn.0040ae84
add esp, 0xfffffff8
fstp qword [esp]
wait
lea eax, [ebp - 0x10]
mov edx, 0x4b3a74
call fcn.0040ba60
lea eax, [ebp - 0x2ac]
mov edx, dword [ebp - 0x10]
mov ecx, 0xff
call fcn.00404cac
lea edx, [ebp - 0x2ac]
lea eax, [ebx + 0x50b67]
mov cl, 0x14
call fcn.004031a0
push 0x3af
lea edx, [ebp - 0x2b8]
mov eax, dword [0x4ba614]
mov eax, dword [eax]
call fcn.004672e4
mov edx, dword [ebp - 0x2b8]
xor ecx, ecx
mov eax, ebx
call fcn.004af5e0
call fcn.00402c14
lea edx, [ebx + 0x50aa4]
mov eax, ebx
call fcn.004b4618
sub al, byte [ebx + 0x50a88]
add al, 0xd
mov byte [ebx + 0x511c7], al
mov edx, dword [ebp - 4]
lea eax, [ebp - 0x168]
call fcn.00402f68
mov eax, dword [0x4ba728]
mov byte [eax], 2
mov edx, 1
lea eax, [ebp - 0x168]
call fcn.004034ac
call fcn.00402944
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x168]
call fcn.004034d4
call fcn.00402944
push 0
lea edx, [ebx + 0x50aa4]
mov ecx, 0x724
lea eax, [ebp - 0x168]
call fcn.004030ec
call fcn.00402944
lea eax, [ebp - 0x168]
call fcn.0040310c
call fcn.00402944
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4b3944
lea eax, [ebp - 0x2b8]
mov edx, 2
call fcn.00404a34
lea eax, [ebp - 0x2b0]
call fcn.00404a10
lea eax, [ebp - 0x1ac]
mov edx, 3
call fcn.00404a34
lea eax, [ebp - 0x1a0]
call fcn.00404a10
lea eax, [ebp - 0x19c]
mov edx, 4
call fcn.00404a34
lea eax, [ebp - 0x18c]
call fcn.00404a10
lea eax, [ebp - 0x188]
call fcn.00404a10
lea eax, [ebp - 0x184]
mov edx, 3
call fcn.00404a34
lea eax, [ebp - 0x178]
mov edx, 4
call fcn.00404a34
lea eax, [ebp - 0x1c]
mov edx, 2
call fcn.00404a34
lea eax, [ebp - 0x10]
mov edx, 2
call fcn.00404a34
lea eax, [ebp - 4]
call fcn.00404a10
ret