Function at 0x549aa8
Capabilities:
Copy file

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x48
push 0
push 0
dec ecx
jne 0x549ab1
push ecx
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov dword [ebp - 8], ecx
mov ebx, edx
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
call fcn.004051e0
lea eax, [ebp - 0x188]
mov edx, dword [0x4086fc]
call fcn.004056f0
xor eax, eax
push ebp
push 0x54ab56
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
push ebp
push 0x54aadd
push dword fs:[edx]
mov dword fs:[edx], esp
mov byte [ebp - 9], 1
lea edx, [ebp - 0x10]
mov eax, ebx
call fcn.0040eca4
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x18]
mov edx, dword [ebp - 0x10]
call fcn.00404dc8
mov eax, dword [ebp - 0x30]
call fcn.0045bd7c
test al, al
jne 0x549b77
lea ecx, [ebp - 0x18c]
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 8]
xor edx, edx
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x18c]
mov edx, 0x54ab74
call fcn.0040513c
je 0x549b6a
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 8]
mov ecx, 0x54ab74
xor edx, edx
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
call fcn.00597b7c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x54ab02
lea eax, [ebp - 0x190]
mov ecx, 0x54ab84
mov edx, dword [ebp - 0x10]
call fcn.0040503c
mov eax, dword [ebp - 0x190]
lea ecx, [ebp - 0x188]
mov edx, 0x3f
call fcn.0040a1c4
test eax, eax
jne 0x54aac8
mov eax, dword [ebp - 0x17c]
mov edx, 0x54ab90
call fcn.0040513c
je 0x54aab5
mov eax, dword [ebp - 0x17c]
mov edx, 0x54ab9c
call fcn.0040513c
je 0x54aab5
mov eax, dword [ebp - 0x30]
call fcn.0045bd7c
test al, al
jne 0x549c30
lea ecx, [ebp - 0x194]
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 8]
xor edx, edx
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x194]
mov edx, 0x54ab74
call fcn.0040513c
je 0x549c23
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 8]
mov ecx, 0x54ab74
xor edx, edx
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
call fcn.00597b7c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x54ab02
mov eax, dword [0x5a5f50]
mov eax, dword [eax]
call fcn.0049fa8c
lea eax, [ebp - 0x24]
mov edx, dword [ebp - 0x17c]
call fcn.00404dc8
lea eax, [ebp - 0x14]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x10]
call fcn.0040503c
lea edx, [ebp - 0x20]
mov eax, dword [ebp + 0x1c]
call fcn.0040eca4
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x17c]
call fcn.00404ff8
test byte [ebp - 0x180], 0x10
je 0x549e51
cmp byte [ebp + 0x10], 0
je 0x54aab5
mov eax, dword [ebp - 0x20]
call fcn.004d9000
test al, al
jne 0x549d7e
lea ecx, [ebp - 0x198]
mov edx, 1
mov eax, dword [ebp + 8]
call fcn.0043e44c
mov eax, dword [ebp - 0x198]
mov edx, 0x54aba8
call fcn.0040513c
jne 0x549d7e
mov eax, dword [ebp - 0x20]
call fcn.004d9008
test al, al
jne 0x549d7e
push 0x54abb4
push dword [ebp - 0x20]
push 0x54abc8
lea eax, [ebp - 0x19c]
mov edx, 3
call fcn.004050b0
mov edx, dword [ebp - 0x19c]
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 2
call fcn.005978d0
mov eax, dword [ebp - 0x20]
call fcn.004d9008
test al, al
jne 0x549d4a
push 0x54abe8
push dword [ebp - 0x20]
push 0x54abf8
lea eax, [ebp - 0x1a0]
mov edx, 3
call fcn.004050b0
mov edx, dword [ebp - 0x1a0]
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 2
call fcn.005978d0
jmp 0x54aab5
push 0x54ac18
push dword [ebp - 0x20]
push 0x54ac2c
lea eax, [ebp - 0x1a4]
mov edx, 3
call fcn.004050b0
mov edx, dword [ebp - 0x1a4]
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 1
call fcn.005978d0
lea ecx, [ebp - 0x1a8]
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 8]
xor edx, edx
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x1a8]
mov edx, 0x54ac3c
call fcn.0040513c
je 0x549db5
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 8]
mov ecx, 0x54ac3c
xor edx, edx
mov ebx, dword [eax]
call dword [ebx + 0x20]
push 2
mov ecx, 0x54ac4c
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 4]
call fcn.0054af04
mov eax, dword [ebp - 0x30]
call fcn.0045bd7c
test al, al
jne 0x549e23
lea ecx, [ebp - 0x1ac]
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 8]
xor edx, edx
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x1ac]
mov edx, 0x54ab74
call fcn.0040513c
je 0x549e16
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 8]
mov ecx, 0x54ab74
xor edx, edx
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
call fcn.00597b7c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x54ab02
mov eax, dword [ebp - 0x20]
push eax
mov eax, dword [ebp + 0x18]
push eax
mov eax, dword [ebp + 0x14]
push eax
mov al, byte [ebp + 0x10]
push eax
mov eax, dword [ebp - 0x30]
push eax
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
call fcn.00549aa8
mov byte [ebp - 9], al
jmp 0x54aab5
mov eax, dword [ebp - 0x30]
call fcn.0045bd7c
test al, al
jne 0x549ead
lea ecx, [ebp - 0x1b0]
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 8]
xor edx, edx
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x1b0]
mov edx, 0x54ab74
call fcn.0040513c
je 0x549ea0
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 8]
mov ecx, 0x54ab74
xor edx, edx
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
call fcn.00597b7c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x54ab02
mov eax, dword [0x5a5f50]
mov eax, dword [eax]
call fcn.0049fa8c
lea ecx, [ebp - 0x1b4]
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 8]
mov edx, 1
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x1b4]
lea edx, [ebp - 0x1c]
call fcn.0040eca4
lea edx, [ebp - 0x1b8]
mov eax, dword [ebp + 0x1c]
call fcn.0040eca4
mov edx, dword [ebp - 0x1b8]
lea eax, [ebp - 0x20]
mov ecx, dword [ebp - 0x17c]
call fcn.0040503c
mov eax, dword [ebp + 0x18]
mov edx, 0x54ac64
call fcn.0040513c
je 0x54a707
lea ecx, [ebp - 0x1bc]
mov edx, 1
mov eax, dword [ebp + 0x18]
call fcn.0043e44c
mov eax, dword [ebp - 0x1bc]
mov edx, 0x54aba8
call fcn.0040513c
jne 0x54a321
mov edx, dword [ebp - 0x24]
mov eax, 0x54ab90
call fcn.00405334
test eax, eax
jle 0x54aa72
lea edx, [ebp - 0x1c0]
mov eax, dword [ebp + 0x14]
call fcn.00409448
mov eax, dword [ebp - 0x1c0]
push eax
lea edx, [ebp - 0x1cc]
mov eax, dword [ebp - 0x24]
call fcn.0040a4d4
mov ecx, dword [ebp - 0x1cc]
lea eax, [ebp - 0x1c8]
mov edx, 0x54ac70
call fcn.0040503c
mov eax, dword [ebp - 0x1c8]
lea edx, [ebp - 0x1c4]
call fcn.00409448
mov eax, dword [ebp - 0x1c4]
pop edx
call fcn.00405334
test eax, eax
jle 0x54aa72
mov eax, dword [ebp + 0x1c]
call fcn.004d9000
test al, al
jne 0x549fc2
mov eax, dword [ebp + 0x1c]
call fcn.004d9008
mov eax, dword [ebp - 0x30]
call fcn.0045bd7c
test al, al
jne 0x54a01e
lea ecx, [ebp - 0x1d0]
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 8]
xor edx, edx
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x1d0]
mov edx, 0x54ab74
call fcn.0040513c
je 0x54a011
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 8]
mov ecx, 0x54ab74
xor edx, edx
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
call fcn.00597b7c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x54ab02
mov eax, dword [0x5a5f50]
mov eax, dword [eax]
call fcn.0049fa8c
mov eax, dword [ebp - 0x20]
call fcn.00409f60
test al, al
je 0x54a219
xor eax, eax
push ebp
push 0x54a067
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 4]
call fcn.0054ad34
push edx
push eax
lea eax, [ebp - 0x28]
call fcn.00409ad0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x54a07e
xor eax, eax
push ebp
push 0x54a0b0
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 4]
call fcn.0054ae18
add esp, 0xfffffff8
fstp qword [esp]
wait
lea eax, [ebp - 0x2c]
call fcn.0040cd9c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x54a0c7
lea edx, [ebp - 0x1d4]
mov eax, dword [ebp - 0x184]
call fcn.004099e4
mov eax, dword [ebp - 0x1d4]
mov edx, dword [ebp - 0x28]
call fcn.0040513c
jne 0x54a111
mov eax, dword [ebp - 0x188]
call fcn.0040a630
fstp qword [ebp - 0x1dc]
wait
mov eax, dword [ebp - 0x2c]
call fcn.0040d68c
fcomp qword [ebp - 0x1dc]
fnstsw ax
sahf
je 0x54aa72
lea ecx, [ebp - 0x1e0]
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 8]
xor edx, edx
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x1e0]
mov edx, 0x54ac88
call fcn.0040513c
je 0x54a148
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 8]
mov ecx, 0x54ac88
xor edx, edx
mov ebx, dword [eax]
call dword [ebx + 0x20]
push 1
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 4]
call fcn.0054af04
mov eax, dword [ebp - 4]
mov byte [eax + 0x6a], 1
push 0
mov eax, dword [ebp - 0x20]
call fcn.004051f0
mov esi, eax
push esi
mov eax, dword [ebp - 0x14]
call fcn.004051f0
mov ebx, eax
push ebx
call sub.kernel32.dll_CopyFileA
test eax, eax
jne 0x54aa72
push 0x54ac98
push dword [ebp - 0x14]
push 0x54aca8
lea eax, [ebp - 0x1e4]
mov edx, 3
call fcn.004050b0
mov edx, dword [ebp - 0x1e4]
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 2
call fcn.005978d0
push 0
push esi
push ebx
call sub.kernel32.dll_CopyFileA
test eax, eax
jne 0x54a1e0
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 2
mov edx, 0x54acd8
call fcn.005978d0
jmp 0x54aa72
push 0x54ad08
push dword [ebp - 0x14]
push 0x54ad2c
lea eax, [ebp - 0x1e8]
mov edx, 3
call fcn.004050b0
mov edx, dword [ebp - 0x1e8]
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 1
call fcn.005978d0
jmp 0x54aa72
lea ecx, [ebp - 0x1ec]
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 8]
xor edx, edx
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x1ec]
mov edx, 0x54ac88
call fcn.0040513c
je 0x54a250
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 8]
mov ecx, 0x54ac88
xor edx, edx
mov ebx, dword [eax]
call dword [ebx + 0x20]
push 1
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 4]
call fcn.0054af04
mov eax, dword [ebp - 4]
mov byte [eax + 0x6a], 1
push 0
mov eax, dword [ebp - 0x20]
call fcn.004051f0
mov esi, eax
push esi
mov eax, dword [ebp - 0x14]
call fcn.004051f0
mov ebx, eax
push ebx
call sub.kernel32.dll_CopyFileA
test eax, eax
jne 0x54aa72
push 0x54ac98
push dword [ebp - 0x14]
push 0x54aca8
lea eax, [ebp - 0x1f0]
mov edx, 3
call fcn.004050b0
mov edx, dword [ebp - 0x1f0]
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 2
call fcn.005978d0
push 0
push esi
push ebx
call sub.kernel32.dll_CopyFileA
test eax, eax
jne 0x54a2e8
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 2
mov edx, 0x54acd8
call fcn.005978d0
jmp 0x54aa72
push 0x54ad08
push dword [ebp - 0x14]
push 0x54ad2c
lea eax, [ebp - 0x1f4]
mov edx, 3
call fcn.004050b0
mov edx, dword [ebp - 0x1f4]
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 1
call fcn.005978d0
jmp 0x54aa72
mov edx, dword [ebp - 0x24]
mov eax, 0x54ab90
call fcn.00405334
test eax, eax
jle 0x54aa72
lea edx, [ebp - 0x1f8]
mov eax, dword [ebp + 0x14]
call fcn.00409448
mov eax, dword [ebp - 0x1f8]
push eax
lea edx, [ebp - 0x204]
mov eax, dword [ebp - 0x24]
call fcn.0040a4d4
mov ecx, dword [ebp - 0x204]
lea eax, [ebp - 0x200]
mov edx, 0x54ac70
call fcn.0040503c
mov eax, dword [ebp - 0x200]
lea edx, [ebp - 0x1fc]
call fcn.00409448
mov eax, dword [ebp - 0x1fc]
pop edx
call fcn.00405334
test eax, eax
jg 0x54aa72
mov eax, dword [ebp + 0x1c]
call fcn.004d9000
test al, al
jne 0x54a3a8
mov eax, dword [ebp + 0x1c]
call fcn.004d9008
mov eax, dword [ebp - 0x30]
call fcn.0045bd7c
test al, al
jne 0x54a404
lea ecx, [ebp - 0x208]
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 8]
xor edx, edx
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x208]
mov edx, 0x54ab74
call fcn.0040513c
je 0x54a3f7
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 8]
mov ecx, 0x54ab74
xor edx, edx
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
call fcn.00597b7c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x54ab02
mov eax, dword [0x5a5f50]
mov eax, dword [eax]
call fcn.0049fa8c
mov eax, dword [ebp - 0x20]
call fcn.00409f60
test al, al
je 0x54a5ff
xor eax, eax
push ebp
push 0x54a44d
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 4]
call fcn.0054ad34
push edx
push eax
lea eax, [ebp - 0x28]
call fcn.00409ad0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x54a464
xor eax, eax
push ebp
push 0x54a496
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 4]
call fcn.0054ae18
add esp, 0xfffffff8
fstp qword [esp]
wait
lea eax, [ebp - 0x2c]
call fcn.0040cd9c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x54a4ad
lea edx, [ebp - 0x20c]
mov eax, dword [ebp - 0x184]
call fcn.004099e4
mov eax, dword [ebp - 0x20c]
mov edx, dword [ebp - 0x28]
call fcn.0040513c
jne 0x54a4f7
mov eax, dword [ebp - 0x188]
call fcn.0040a630
fstp qword [ebp - 0x1dc]
wait
mov eax, dword [ebp - 0x2c]
call fcn.0040d68c
fcomp qword [ebp - 0x1dc]
fnstsw ax
sahf
je 0x54aa72
lea ecx, [ebp - 0x210]
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 8]
xor edx, edx
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x210]
mov edx, 0x54ac88
call fcn.0040513c
je 0x54a52e
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 8]
mov ecx, 0x54ac88
xor edx, edx
mov ebx, dword [eax]
call dword [ebx + 0x20]
push 1
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 4]
call fcn.0054af04
mov eax, dword [ebp - 4]
mov byte [eax + 0x6a], 1
push 0
mov eax, dword [ebp - 0x20]
call fcn.004051f0
mov esi, eax
push esi
mov eax, dword [ebp - 0x14]
call fcn.004051f0
mov ebx, eax
push ebx
call sub.kernel32.dll_CopyFileA
test eax, eax
jne 0x54aa72
push 0x54ac98
push dword [ebp - 0x14]
push 0x54aca8
lea eax, [ebp - 0x214]
mov edx, 3
call fcn.004050b0
mov edx, dword [ebp - 0x214]
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 2
call fcn.005978d0
push 0
push esi
push ebx
call sub.kernel32.dll_CopyFileA
test eax, eax
jne 0x54a5c6
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 2
mov edx, 0x54acd8
call fcn.005978d0
jmp 0x54aa72
push 0x54ad08
push dword [ebp - 0x14]
push 0x54ad2c
lea eax, [ebp - 0x218]
mov edx, 3
call fcn.004050b0
mov edx, dword [ebp - 0x218]
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 1
call fcn.005978d0
jmp 0x54aa72
lea ecx, [ebp - 0x21c]
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 8]
xor edx, edx
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x21c]
mov edx, 0x54ac88
call fcn.0040513c
je 0x54a636
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 8]
mov ecx, 0x54ac88
xor edx, edx
mov ebx, dword [eax]
call dword [ebx + 0x20]
push 1
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 4]
call fcn.0054af04
mov eax, dword [ebp - 4]
mov byte [eax + 0x6a], 1
push 0
mov eax, dword [ebp - 0x20]
call fcn.004051f0
mov esi, eax
push esi
mov eax, dword [ebp - 0x14]
call fcn.004051f0
mov ebx, eax
push ebx
call sub.kernel32.dll_CopyFileA
test eax, eax
jne 0x54aa72
push 0x54ac98
push dword [ebp - 0x14]
push 0x54aca8
lea eax, [ebp - 0x220]
mov edx, 3
call fcn.004050b0
mov edx, dword [ebp - 0x220]
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 2
call fcn.005978d0
push 0
push esi
push ebx
call sub.kernel32.dll_CopyFileA
test eax, eax
jne 0x54a6ce
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 2
mov edx, 0x54acd8
call fcn.005978d0
jmp 0x54aa72
push 0x54ad08
push dword [ebp - 0x14]
push 0x54ad2c
lea eax, [ebp - 0x224]
mov edx, 3
call fcn.004050b0
mov edx, dword [ebp - 0x224]
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 1
call fcn.005978d0
jmp 0x54aa72
mov eax, dword [ebp + 0x1c]
call fcn.004d9000
test al, al
jne 0x54a71b
mov eax, dword [ebp + 0x1c]
call fcn.004d9008
mov eax, dword [ebp - 0x30]
call fcn.0045bd7c
test al, al
jne 0x54a777
lea ecx, [ebp - 0x228]
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 8]
xor edx, edx
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x228]
mov edx, 0x54ab74
call fcn.0040513c
je 0x54a76a
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 8]
mov ecx, 0x54ab74
xor edx, edx
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
call fcn.00597b7c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x54ab02
mov eax, dword [0x5a5f50]
mov eax, dword [eax]
call fcn.0049fa8c
mov eax, dword [ebp - 0x20]
call fcn.00409f60
test al, al
je 0x54a972
xor eax, eax
push ebp
push 0x54a7c0
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 4]
call fcn.0054ad34
push edx
push eax
lea eax, [ebp - 0x28]
call fcn.00409ad0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x54a7d7
xor eax, eax
push ebp
push 0x54a809
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 4]
call fcn.0054ae18
add esp, 0xfffffff8
fstp qword [esp]
wait
lea eax, [ebp - 0x2c]
call fcn.0040cd9c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x54a820
lea edx, [ebp - 0x22c]
mov eax, dword [ebp - 0x184]
call fcn.004099e4
mov eax, dword [ebp - 0x22c]
mov edx, dword [ebp - 0x28]
call fcn.0040513c
jne 0x54a86a
mov eax, dword [ebp - 0x188]
call fcn.0040a630
fstp qword [ebp - 0x1dc]
wait
mov eax, dword [ebp - 0x2c]
call fcn.0040d68c
fcomp qword [ebp - 0x1dc]
fnstsw ax
sahf
je 0x54aa72
lea ecx, [ebp - 0x230]
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 8]
xor edx, edx
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x230]
mov edx, 0x54ac88
call fcn.0040513c
je 0x54a8a1
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 8]
mov ecx, 0x54ac88
xor edx, edx
mov ebx, dword [eax]
call dword [ebx + 0x20]
push 1
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 4]
call fcn.0054af04
mov eax, dword [ebp - 4]
mov byte [eax + 0x6a], 1
push 0
mov eax, dword [ebp - 0x20]
call fcn.004051f0
mov esi, eax
push esi
mov eax, dword [ebp - 0x14]
call fcn.004051f0
mov ebx, eax
push ebx
call sub.kernel32.dll_CopyFileA
test eax, eax
jne 0x54aa72
push 0x54ac98
push dword [ebp - 0x14]
push 0x54aca8
lea eax, [ebp - 0x234]
mov edx, 3
call fcn.004050b0
mov edx, dword [ebp - 0x234]
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 2
call fcn.005978d0
push 0
push esi
push ebx
call sub.kernel32.dll_CopyFileA
test eax, eax
jne 0x54a939
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 2
mov edx, 0x54acd8
call fcn.005978d0
jmp 0x54aa72
push 0x54ad08
push dword [ebp - 0x14]
push 0x54ad2c
lea eax, [ebp - 0x238]
mov edx, 3
call fcn.004050b0
mov edx, dword [ebp - 0x238]
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 1
call fcn.005978d0
jmp 0x54aa72
lea ecx, [ebp - 0x23c]
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 8]
xor edx, edx
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x23c]
mov edx, 0x54ac88
call fcn.0040513c
je 0x54a9a9
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 8]
mov ecx, 0x54ac88
xor edx, edx
mov ebx, dword [eax]
call dword [ebx + 0x20]
push 1
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 4]
call fcn.0054af04
mov eax, dword [ebp - 4]
mov byte [eax + 0x6a], 1
push 0
mov eax, dword [ebp - 0x20]
call fcn.004051f0
mov esi, eax
push esi
mov eax, dword [ebp - 0x14]
call fcn.004051f0
mov ebx, eax
push ebx
call sub.kernel32.dll_CopyFileA
test eax, eax
jne 0x54aa72
push 0x54ac98
push dword [ebp - 0x14]
push 0x54aca8
lea eax, [ebp - 0x240]
mov edx, 3
call fcn.004050b0
mov edx, dword [ebp - 0x240]
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 2
call fcn.005978d0
push 0
push esi
push ebx
call sub.kernel32.dll_CopyFileA
test eax, eax
jne 0x54aa3e
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 2
mov edx, 0x54acd8
call fcn.005978d0
jmp 0x54aa72
push 0x54ad08
push dword [ebp - 0x14]
push 0x54ad2c
lea eax, [ebp - 0x244]
mov edx, 3
call fcn.004050b0
mov edx, dword [ebp - 0x244]
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 1
call fcn.005978d0
lea ecx, [ebp - 0x248]
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 8]
xor edx, edx
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x248]
mov edx, 0x54ac3c
call fcn.0040513c
je 0x54aab5
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 8]
mov ecx, 0x54ac3c
xor edx, edx
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
call fcn.00597b7c
lea eax, [ebp - 0x188]
call fcn.0040a214
test eax, eax
je 0x549ba8
lea eax, [ebp - 0x188]
call fcn.0040a238
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x54ab02
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x54ab5d
lea eax, [ebp - 0x248]
mov edx, 0x1b
call fcn.00404d54
lea eax, [ebp - 0x1d4]
mov edx, 0x13
call fcn.00404d54
lea eax, [ebp - 0x188]
mov edx, dword [0x4086fc]
call fcn.004057c0
lea eax, [ebp - 0x2c]
mov edx, 8
call fcn.00404d54
lea eax, [ebp + 8]
call fcn.00404d30
ret