Function at 0x478900
Capabilities:
Copy file

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x196
push 0
push 0
dec ecx
jne 0x478908
push ecx
push ebx
push esi
push edi
mov dword [ebp - 8], eax
lea eax, [ebp - 0x50]
mov edx, dword [0x478884]
call fcn.00405138
xor eax, eax
push ebp
push 0x47a49e
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 0x38], eax
xor eax, eax
mov dword [0x485cec], eax
xor eax, eax
mov dword [0x485cf0], eax
xor eax, eax
mov dword [0x485cf4], eax
xor eax, eax
mov dword [0x485cf8], eax
xor eax, eax
mov dword [0x485cfc], eax
mov byte [0x484cbf], 0
mov byte [0x484cbe], 0
lea edx, [ebp - 0xaf4]
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 0x36c]
mov eax, ebx
call fcn.0044bcd8
mov eax, dword [ebp - 0xaf4]
lea edx, [ebp - 0xaf0]
call fcn.00408b40
mov eax, dword [ebp - 0xaf0]
lea edx, [ebp - 0xaec]
call fcn.0040d688
mov edx, dword [ebp - 0xaec]
mov eax, ebx
call fcn.0044bd08
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x380]
xor edx, edx
call fcn.00436020
push 0x47a4b8
lea eax, [ebp - 0xaf8]
push eax
mov ecx, 0x47a4d4
mov edx, 0x47a4e0
mov eax, dword [0x484cac]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0xaf8]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x37c]
call fcn.0044bd08
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x36c]
mov edx, dword [eax]
call dword [edx + 0x50]
test al, al
jne 0x478b81
lea edx, [ebp - 0xafc]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x36c]
call fcn.0044bcd8
lea eax, [ebp - 0xafc]
mov edx, 0x47a4f0
call fcn.00404a68
mov eax, dword [ebp - 0xafc]
call fcn.004092b0
test al, al
je 0x478b81
push 0
lea eax, [ebp - 0xb00]
mov ecx, 0x47a508
mov edx, dword [0x484cc4]
call fcn.00404aac
mov eax, dword [ebp - 0xb00]
call fcn.00404c60
push eax
lea edx, [ebp - 0xb04]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x36c]
call fcn.0044bcd8
lea eax, [ebp - 0xb04]
mov edx, 0x47a4f0
call fcn.00404a68
mov eax, dword [ebp - 0xb04]
call fcn.00404c60
push eax
call sub.kernel32.dll_CopyFileA
test eax, eax
je 0x478bae
lea eax, [ebp - 0xb08]
mov ecx, 0x47a508
mov edx, dword [0x484cc4]
call fcn.00404aac
mov ecx, dword [ebp - 0xb08]
mov dl, 1
mov eax, dword [0x432d9c]
call fcn.00432e4c
mov dword [0x484cb0], eax
mov ecx, dword [0x484ce0]
mov edx, 0x47a524
mov eax, dword [0x484cb0]
mov ebx, dword [eax]
call dword [ebx + 0x40]
mov eax, dword [0x484ce0]
mov edx, dword [eax]
call dword [edx + 0x14]
mov dword [0x485cf8], eax
mov ecx, dword [0x484ce0]
mov edx, 0x47a534
mov eax, dword [0x484cb0]
mov ebx, dword [eax]
call dword [ebx + 0x40]
mov eax, dword [0x484ce0]
mov edx, dword [eax]
call dword [edx + 0x14]
mov dword [0x485cf4], eax
mov ecx, dword [0x484ce0]
mov edx, 0x47a544
mov eax, dword [0x484cb0]
mov ebx, dword [eax]
call dword [ebx + 0x40]
mov eax, dword [0x484ce0]
mov edx, dword [eax]
call dword [edx + 0x14]
mov dword [0x485cec], eax
mov ecx, dword [0x484ce0]
mov edx, 0x47a55c
mov eax, dword [0x484cb0]
mov ebx, dword [eax]
call dword [ebx + 0x40]
mov eax, dword [0x484ce0]
mov edx, dword [eax]
call dword [edx + 0x14]
mov dword [0x485cf0], eax
mov ecx, dword [0x484ce0]
mov edx, 0x47a574
mov eax, dword [0x484cb0]
mov ebx, dword [eax]
call dword [ebx + 0x40]
mov eax, dword [0x484ce0]
mov edx, dword [eax]
call dword [edx + 0x14]
mov dword [0x485cfc], eax
jmp 0x478bae
lea eax, [ebp - 0xb0c]
mov ecx, 0x47a508
mov edx, dword [0x484cc4]
call fcn.00404aac
mov ecx, dword [ebp - 0xb0c]
mov dl, 1
mov eax, dword [0x432d9c]
call fcn.00432e4c
mov dword [0x484cb0], eax
push 0
lea eax, [ebp - 0xb14]
push eax
mov ecx, 0x47a588
mov edx, 0x47a594
mov eax, dword [0x484cac]
mov ebx, dword [eax]
call dword [ebx]
mov eax, dword [ebp - 0xb14]
lea edx, [ebp - 0xb10]
call fcn.00475a48
mov eax, dword [ebp - 0xb10]
push eax
mov ecx, 0x47a588
mov edx, 0x47a5a8
mov eax, dword [0x484cb0]
mov ebx, dword [eax]
call dword [ebx + 4]
push 0
lea eax, [ebp - 0xb1c]
push eax
mov ecx, 0x47a5bc
mov edx, 0x47a594
mov eax, dword [0x484cac]
mov ebx, dword [eax]
call dword [ebx]
mov eax, dword [ebp - 0xb1c]
lea edx, [ebp - 0xb18]
call fcn.00475a48
mov eax, dword [ebp - 0xb18]
push eax
mov ecx, 0x47a5bc
mov edx, 0x47a5a8
mov eax, dword [0x484cb0]
mov ebx, dword [eax]
call dword [ebx + 4]
push 0
lea eax, [ebp - 0xb24]
push eax
mov ecx, 0x47a4d4
mov edx, 0x47a594
mov eax, dword [0x484cac]
mov ebx, dword [eax]
call dword [ebx]
mov eax, dword [ebp - 0xb24]
lea edx, [ebp - 0xb20]
call fcn.00475a48
mov eax, dword [ebp - 0xb20]
push eax
mov ecx, 0x47a4d4
mov edx, 0x47a5a8
mov eax, dword [0x484cb0]
mov ebx, dword [eax]
call dword [ebx + 4]
push 0
lea eax, [ebp - 0xb2c]
push eax
mov ecx, 0x47a5c8
mov edx, 0x47a594
mov eax, dword [0x484cac]
mov ebx, dword [eax]
call dword [ebx]
mov eax, dword [ebp - 0xb2c]
lea edx, [ebp - 0xb28]
call fcn.00475a48
mov eax, dword [ebp - 0xb28]
push eax
mov ecx, 0x47a5c8
mov edx, 0x47a5a8
mov eax, dword [0x484cb0]
mov ebx, dword [eax]
call dword [ebx + 4]
push 0
lea eax, [ebp - 0xb34]
push eax
mov ecx, 0x47a5d4
mov edx, 0x47a594
mov eax, dword [0x484cac]
mov ebx, dword [eax]
call dword [ebx]
mov eax, dword [ebp - 0xb34]
lea edx, [ebp - 0xb30]
call fcn.00475a48
mov eax, dword [ebp - 0xb30]
push eax
mov ecx, 0x47a5d4
mov edx, 0x47a5a8
mov eax, dword [0x484cb0]
mov ebx, dword [eax]
call dword [ebx + 4]
push 0
lea eax, [ebp - 0xb3c]
push eax
mov ecx, 0x47a5e0
mov edx, 0x47a594
mov eax, dword [0x484cac]
mov ebx, dword [eax]
call dword [ebx]
mov eax, dword [ebp - 0xb3c]
lea edx, [ebp - 0xb38]
call fcn.00475a48
mov eax, dword [ebp - 0xb38]
push eax
mov ecx, 0x47a5e0
mov edx, 0x47a5a8
mov eax, dword [0x484cb0]
mov ebx, dword [eax]
call dword [ebx + 4]
push 0
lea eax, [ebp - 0xb44]
push eax
mov ecx, 0x47a5ec
mov edx, 0x47a594
mov eax, dword [0x484cac]
mov ebx, dword [eax]
call dword [ebx]
mov eax, dword [ebp - 0xb44]
lea edx, [ebp - 0xb40]
call fcn.00475a48
mov eax, dword [ebp - 0xb40]
push eax
mov ecx, 0x47a5ec
mov edx, 0x47a5a8
mov eax, dword [0x484cb0]
mov ebx, dword [eax]
call dword [ebx + 4]
push 0
lea eax, [ebp - 0xb4c]
push eax
mov ecx, 0x47a588
mov edx, 0x47a5f8
mov eax, dword [0x484cac]
mov ebx, dword [eax]
call dword [ebx]
mov eax, dword [ebp - 0xb4c]
lea edx, [ebp - 0xb48]
call fcn.00475a48
mov eax, dword [ebp - 0xb48]
push eax
mov ecx, 0x47a588
mov edx, 0x47a5f8
mov eax, dword [0x484cb0]
mov ebx, dword [eax]
call dword [ebx + 4]
push 0
lea eax, [ebp - 0xb54]
push eax
mov ecx, 0x47a5bc
mov edx, 0x47a5f8
mov eax, dword [0x484cac]
mov ebx, dword [eax]
call dword [ebx]
mov eax, dword [ebp - 0xb54]
lea edx, [ebp - 0xb50]
call fcn.00475a48
mov eax, dword [ebp - 0xb50]
push eax
mov ecx, 0x47a5bc
mov edx, 0x47a5f8
mov eax, dword [0x484cb0]
mov ebx, dword [eax]
call dword [ebx + 4]
push 0
lea eax, [ebp - 0xb5c]
push eax
mov ecx, 0x47a4d4
mov edx, 0x47a5f8
mov eax, dword [0x484cac]
mov ebx, dword [eax]
call dword [ebx]
mov eax, dword [ebp - 0xb5c]
lea edx, [ebp - 0xb58]
call fcn.00475a48
mov eax, dword [ebp - 0xb58]
push eax
mov ecx, 0x47a4d4
mov edx, 0x47a5f8
mov eax, dword [0x484cb0]
mov ebx, dword [eax]
call dword [ebx + 4]
push 0
lea eax, [ebp - 0xb64]
push eax
mov ecx, 0x47a5c8
mov edx, 0x47a5f8
mov eax, dword [0x484cac]
mov ebx, dword [eax]
call dword [ebx]
mov eax, dword [ebp - 0xb64]
lea edx, [ebp - 0xb60]
call fcn.00475a48
mov eax, dword [ebp - 0xb60]
push eax
mov ecx, 0x47a5c8
mov edx, 0x47a5f8
mov eax, dword [0x484cb0]
mov ebx, dword [eax]
call dword [ebx + 4]
push 0
lea eax, [ebp - 0xb6c]
push eax
mov ecx, 0x47a5d4
mov edx, 0x47a5f8
mov eax, dword [0x484cac]
mov ebx, dword [eax]
call dword [ebx]
mov eax, dword [ebp - 0xb6c]
lea edx, [ebp - 0xb68]
call fcn.00475a48
mov eax, dword [ebp - 0xb68]
push eax
mov ecx, 0x47a5d4
mov edx, 0x47a5f8
mov eax, dword [0x484cb0]
mov ebx, dword [eax]
call dword [ebx + 4]
push 0
lea eax, [ebp - 0xb74]
push eax
mov ecx, 0x47a5e0
mov edx, 0x47a5f8
mov eax, dword [0x484cac]
mov ebx, dword [eax]
call dword [ebx]
mov eax, dword [ebp - 0xb74]
lea edx, [ebp - 0xb70]
call fcn.00475a48
mov eax, dword [ebp - 0xb70]
push eax
mov ecx, 0x47a5e0
mov edx, 0x47a5f8
mov eax, dword [0x484cb0]
mov ebx, dword [eax]
call dword [ebx + 4]
push 0
lea eax, [ebp - 0xb7c]
push eax
mov ecx, 0x47a5ec
mov edx, 0x47a5f8
mov eax, dword [0x484cac]
mov ebx, dword [eax]
call dword [ebx]
mov eax, dword [ebp - 0xb7c]
lea edx, [ebp - 0xb78]
call fcn.00475a48
mov eax, dword [ebp - 0xb78]
push eax
mov ecx, 0x47a5ec
mov edx, 0x47a5f8
mov eax, dword [0x484cb0]
mov ebx, dword [eax]
call dword [ebx + 4]
push 0
lea eax, [ebp - 0xb84]
push eax
mov ecx, 0x47a608
mov edx, 0x47a5f8
mov eax, dword [0x484cac]
mov ebx, dword [eax]
call dword [ebx]
mov eax, dword [ebp - 0xb84]
lea edx, [ebp - 0xb80]
call fcn.00475a48
mov eax, dword [ebp - 0xb80]
push eax
mov ecx, 0x47a608
mov edx, 0x47a5f8
mov eax, dword [0x484cb0]
mov ebx, dword [eax]
call dword [ebx + 4]
push 0
lea eax, [ebp - 0xb8c]
push eax
mov ecx, 0x47a614
mov edx, 0x47a5f8
mov eax, dword [0x484cac]
mov ebx, dword [eax]
call dword [ebx]
mov eax, dword [ebp - 0xb8c]
lea edx, [ebp - 0xb88]
call fcn.00475a48
mov eax, dword [ebp - 0xb88]
push eax
mov ecx, 0x47a614
mov edx, 0x47a5f8
mov eax, dword [0x484cb0]
mov ebx, dword [eax]
call dword [ebx + 4]
lea edx, [ebp - 0xb90]
mov al, 0x1c
call fcn.004746b8
mov eax, dword [ebp - 0xb90]
push eax
mov ecx, 0x47a620
mov edx, 0x47a630
mov eax, dword [0x484cb0]
mov ebx, dword [eax]
call dword [ebx + 4]
lea edx, [ebp - 0xb94]
mov al, 0x1d
call fcn.004746b8
mov eax, dword [ebp - 0xb94]
push eax
mov ecx, 0x47a640
mov edx, 0x47a630
mov eax, dword [0x484cb0]
mov ebx, dword [eax]
call dword [ebx + 4]
push 0
mov ecx, 0x47a654
mov edx, 0x47a664
mov eax, dword [0x484ca8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
push eax
mov ecx, 0x47a654
mov edx, 0x47a630
mov eax, dword [0x484cb0]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov al, byte [0x484cc0]
push eax
mov ecx, 0x47a674
mov edx, 0x47a630
mov eax, dword [0x484cb0]
mov ebx, dword [eax]
call dword [ebx + 0x14]
push 0
lea eax, [ebp - 0xb98]
push eax
mov ecx, 0x47a680
mov edx, 0x47a664
mov eax, dword [0x484ca8]
mov ebx, dword [eax]
call dword [ebx]
cmp dword [ebp - 0xb98], 0
je 0x479130
push 0
lea eax, [ebp - 0xba0]
push eax
mov ecx, 0x47a680
mov edx, 0x47a664
mov eax, dword [0x484ca8]
mov ebx, dword [eax]
call dword [ebx]
mov eax, dword [ebp - 0xba0]
lea edx, [ebp - 0xb9c]
call fcn.00475a48
mov eax, dword [ebp - 0xb9c]
push eax
mov ecx, 0x47a680
mov edx, 0x47a630
mov eax, dword [0x484cb0]
mov ebx, dword [eax]
call dword [ebx + 4]
push 1
mov ecx, 0x47a698
mov edx, 0x47a664
mov eax, dword [0x484ca8]
mov ebx, dword [eax]
call dword [ebx + 8]
dec eax
jne 0x47918a
lea edx, [ebp - 0xba4]
mov al, 0x18
call fcn.004746b8
push dword [ebp - 0xba4]
push 0x47a6ac
lea edx, [ebp - 0xba8]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x3f0]
call fcn.0044bcd8
push dword [ebp - 0xba8]
lea eax, [ebp - 0x18]
mov edx, 3
call fcn.00404b20
jmp 0x4791c9
lea edx, [ebp - 0xbac]
mov al, 0x14
call fcn.004746b8
push dword [ebp - 0xbac]
push 0x47a6ac
lea edx, [ebp - 0xbb0]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x3f0]
call fcn.0044bcd8
push dword [ebp - 0xbb0]
lea eax, [ebp - 0x18]
mov edx, 3
call fcn.00404b20
lea edx, [ebp - 0xbb4]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x36c]
call fcn.0044bcd8
mov eax, dword [ebp - 0xbb4]
push eax
mov ecx, 0x47a6b8
mov edx, 0x47a630
mov eax, dword [0x484cb0]
mov ebx, dword [eax]
call dword [ebx + 4]
mov eax, dword [ebp - 0x18]
push eax
mov ecx, 0x47a6cc
mov edx, 0x47a630
mov eax, dword [0x484cb0]
mov ebx, dword [eax]
call dword [ebx + 4]
cmp byte [0x484cbd], 0
je 0x479318
push 0
mov ecx, 0x47a6e4
mov edx, 0x47a664
mov eax, dword [0x484ca8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
test al, al
je 0x479281
push 0
lea eax, [ebp - 0xbbc]
push eax
mov ecx, 0x47a700
mov edx, 0x47a664
mov eax, dword [0x484ca8]
mov ebx, dword [eax]
call dword [ebx]
mov eax, dword [ebp - 0xbbc]
lea edx, [ebp - 0xbb8]
call fcn.00475a48
mov eax, dword [ebp - 0xbb8]
push eax
mov ecx, 0x47a700
mov edx, 0x47a630
mov eax, dword [0x484cb0]
mov ebx, dword [eax]
call dword [ebx + 4]
jmp 0x479297
push 0
mov ecx, 0x47a700
mov edx, 0x47a630
mov eax, dword [0x484cb0]
mov ebx, dword [eax]
call dword [ebx + 4]
push 0
mov ecx, 0x47a718
mov edx, 0x47a664
mov eax, dword [0x484ca8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
push eax
mov ecx, 0x47a718
mov edx, 0x47a630
mov eax, dword [0x484cb0]
mov ebx, dword [eax]
call dword [ebx + 0x14]
push 0
mov ecx, 0x47a730
mov edx, 0x47a664
mov eax, dword [0x484ca8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
push eax
mov ecx, 0x47a730
mov edx, 0x47a630
mov eax, dword [0x484cb0]
mov ebx, dword [eax]
call dword [ebx + 0x14]
push 0
mov ecx, 0x47a74c
mov edx, 0x47a664
mov eax, dword [0x484ca8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
push eax
mov ecx, 0x47a764
mov edx, 0x47a630
mov eax, dword [0x484cb0]
mov ebx, dword [eax]
call dword [ebx + 0x14]
push 0
mov ecx, 0x47a5f8
mov edx, 0x47a664
mov eax, dword [0x484ca8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
test al, al
je 0x47937a
push 0
lea eax, [ebp - 0xbc4]
push eax
mov ecx, 0x47a778
mov edx, 0x47a664
mov eax, dword [0x484ca8]
mov ebx, dword [eax]
call dword [ebx]
mov eax, dword [ebp - 0xbc4]
lea edx, [ebp - 0xbc0]
call fcn.00475a48
mov eax, dword [ebp - 0xbc0]
push eax
mov ecx, 0x47a778
mov edx, 0x47a630
mov eax, dword [0x484cb0]
mov ebx, dword [eax]
call dword [ebx + 4]
cmp byte [0x484cc0], 0
je 0x4793da
xor eax, eax
push ebp
push 0x4793d0
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 0x14], eax
push 0x47a784
push 0x47a7a4
call sub.kernel32.dll_GetModuleHandleA_2
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [ebp - 0xc], eax
push 0x47a7b4
push 0x47a7a4
call sub.kernel32.dll_GetModuleHandleA_2
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [ebp - 0x10], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4793da
lea edx, [ebp - 0xbc8]
xor eax, eax
call fcn.00402aec
mov edx, dword [ebp - 0xbc8]
lea eax, [ebp - 0x19c]
call fcn.00402e68
mov eax, dword [0x483b98]
mov byte [eax], 0
mov edx, 1
lea eax, [ebp - 0x19c]
call fcn.004032f8
call fcn.00402894
push 0
mov ecx, 0x47a7dc
mov edx, 0x47a664
mov eax, dword [0x484ca8]
mov ebx, dword [eax]
call dword [ebx + 8]
mov dword [ebp - 0x24], eax
mov dl, 1
mov eax, dword [0x416368]
call fcn.00403a20
mov dword [ebp - 4], eax
cmp byte [0x484cc0], 0
je 0x47946f
xor eax, eax
push ebp
push 0x479465
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x14]
push eax
call dword [ebp - 0xc]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x47946f
mov eax, dword [ebp - 0x24]
dec eax
test eax, eax
jl 0x479fa0
inc eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x1c], 0
push 0
lea eax, [ebp - 0xbcc]
push eax
lea edx, [ebp - 0xbd0]
mov eax, dword [ebp - 0x1c]
call fcn.00408da8
mov ecx, dword [ebp - 0xbd0]
mov edx, 0x47a534
mov eax, dword [0x484ca8]
mov ebx, dword [eax]
call dword [ebx]
cmp dword [ebp - 0xbcc], 0
je 0x479f94
mov al, byte [0x47a7e8]
push eax
lea eax, [ebp - 0xbd4]
push eax
push 0
lea eax, [ebp - 0xbd8]
push eax
lea edx, [ebp - 0xbdc]
mov eax, dword [ebp - 0x1c]
call fcn.00408da8
mov ecx, dword [ebp - 0xbdc]
mov edx, 0x47a534
mov eax, dword [0x484ca8]
mov ebx, dword [eax]
call dword [ebx]
mov eax, dword [ebp - 0xbd8]
mov ecx, 0x47a7f4
mov edx, 0x47a800
call fcn.0040de64
mov edx, dword [ebp - 0xbd4]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
xor eax, eax
push ebp
push 0x4795fe
push dword fs:[eax]
mov dword fs:[eax], esp
lea ecx, [ebp - 0xbe4]
xor edx, edx
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0xbe4]
lea edx, [ebp - 0xbe0]
call fcn.00475a48
mov edx, dword [ebp - 0xbe0]
lea eax, [ebp - 0x50]
call fcn.00404838
lea ecx, [ebp - 0xbec]
mov edx, 1
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0xbec]
lea edx, [ebp - 0xbe8]
call fcn.00408b40
mov eax, dword [ebp - 0xbe8]
call fcn.00408ee4
mov dword [ebp - 0x48], eax
lea ecx, [ebp - 0xbf4]
mov edx, 2
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0xbf4]
lea edx, [ebp - 0xbf0]
call fcn.004088f0
mov edx, dword [ebp - 0xbf0]
lea eax, [ebp - 0x4c]
call fcn.00404838
lea ecx, [ebp - 0xbfc]
mov edx, 3
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0xbfc]
lea edx, [ebp - 0xbf8]
call fcn.004088f0
mov eax, dword [ebp - 0xbf8]
mov edx, 0x47a80c
call fcn.00404bac
sete al
mov byte [ebp - 0x44], al
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x479636
lea edx, [ebp - 0xc00]
mov eax, dword [ebp - 0x50]
call fcn.00475f74
mov edx, dword [ebp - 0xc00]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x378]
call fcn.0044bd08
mov eax, dword [ebp - 0x50]
call fcn.004092b0
test al, al
je 0x4797f1
cmp dword [ebp - 0x38], 0
jne case.0x4796d4.0
mov eax, dword [ebp - 0x4c]
mov edx, 0x47a838
call fcn.00404bac
jne case.0x4796d4.0
push 0
push 0
lea eax, [ebp - 0xc08]
push eax
mov ecx, 0x47a844
mov edx, 0x47a5a8
mov eax, dword [0x484cac]
mov ebx, dword [eax]
call dword [ebx]
mov eax, dword [ebp - 0xc08]
lea ecx, [ebp - 0xc04]
mov edx, dword [ebp - 0x50]
call fcn.00475d88
mov eax, dword [ebp - 0xc04]
mov cx, word [0x47a848]
xor edx, edx
call fcn.0042e4c4
cmp eax, 0xa
ja case.0x4796d4.0
jmp dword [eax*4 + 0x4796db]
lea eax, [ebp - 0x4c]
mov edx, 0x47a854
call fcn.00404838
jmp case.0x4796d4.0
lea eax, [ebp - 0x4c]
mov edx, 0x47a868
call fcn.00404838
jmp case.0x4796d4.0
mov dword [ebp - 0x38], 1
lea eax, [ebp - 0x4c]
mov edx, 0x47a854
call fcn.00404838
jmp case.0x4796d4.0
mov dword [ebp - 0x38], 2
lea eax, [ebp - 0x4c]
mov edx, 0x47a868
call fcn.00404838
jmp case.0x4796d4.0
mov eax, dword [ebp - 8]
call fcn.004680e8
cmp byte [0x484cbf], 0
je 0x479779
lea eax, [ebp - 0x19c]
call fcn.00403000
call fcn.00402894
push ebp
call fcn.004788a8
pop ecx
mov eax, dword [ebp - 0x48]
add dword [0x484cb4], eax
jmp 0x479f94
mov eax, dword [ebp - 0x4c]
mov edx, 0x47a868
call fcn.00404bac
je 0x47979c
cmp dword [ebp - 0x38], 2
jne 0x4797b2
mov eax, dword [ebp - 0x48]
add dword [0x484cb4], eax
mov eax, dword [ebp - 0x50]
call fcn.00478744
jmp 0x479f94
mov eax, dword [ebp - 0x4c]
mov edx, 0x47a854
call fcn.00404bac
je 0x4797c7
cmp dword [ebp - 0x38], 1
jne 0x4797f1
xor eax, eax
push ebp
push 0x4797e7
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x50]
call fcn.004094fc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4797f1
lea eax, [ebp - 0xc0c]
push eax
mov ecx, 2
mov edx, 1
mov eax, dword [ebp - 0x50]
call fcn.00404cc0
mov eax, dword [ebp - 0xc0c]
mov edx, 0x47a878
call fcn.00404bac
jne 0x47984c
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x50]
call fcn.00404a60
mov ecx, eax
mov edx, 3
mov eax, dword [ebp - 0x50]
call fcn.00404cc0
mov edx, dword [ebp - 0x18]
mov eax, 0x47a6ac
call fcn.00404da4
add eax, 3
mov dword [ebp - 0x2c], eax
jmp 0x479853
mov dword [ebp - 0x2c], 3
mov eax, dword [ebp - 0x2c]
push eax
mov eax, dword [ebp - 0x50]
call fcn.00404a60
pop edx
sub eax, edx
jl 0x4799e2
inc eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x20]
cmp byte [eax + edx - 1], 0x5c
jne 0x4799d6
lea eax, [ebp - 0xc10]
push eax
mov ebx, dword [ebp - 0x20]
dec ebx
mov ecx, ebx
mov edx, 1
mov eax, dword [ebp - 0x50]
call fcn.00404cc0
mov eax, dword [ebp - 0xc10]
call fcn.004092c0
test al, al
jne 0x4799d6
xor eax, eax
push ebp
push 0x4798ee
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0xc14]
push eax
mov ecx, ebx
mov edx, 1
mov eax, dword [ebp - 0x50]
call fcn.00404cc0
mov eax, dword [ebp - 0xc14]
call fcn.00402934
call fcn.00402894
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x47997d
cmp byte [0x484cbd], 0
je 0x4799d6
cmp byte [ebp - 0x44], 0
je 0x4799d6
lea eax, [ebp - 0xc24]
push eax
mov ecx, dword [ebp - 0x20]
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x50]
call fcn.00404cc0
mov eax, dword [ebp - 0xc24]
push eax
lea edx, [ebp - 0xc28]
mov eax, dword [0x485cf8]
call fcn.00408da8
mov ecx, dword [ebp - 0xc28]
mov edx, 0x47a524
mov eax, dword [0x484cb0]
mov ebx, dword [eax]
call dword [ebx + 4]
inc dword [0x485cf8]
inc dword [ebp - 0x20]
dec dword [ebp - 0x40]
jne 0x47986f
mov edx, dword [0x484cb4]
lea eax, [ebp - 0x19c]
call fcn.00403320
call fcn.00402894
lea eax, [ebp - 0xc2c]
mov ecx, 0x47a898
mov edx, dword [0x484cc4]
call fcn.00404aac
mov edx, dword [ebp - 0xc2c]
lea eax, [ebp - 0x2e8]
call fcn.00402e68
mov eax, dword [0x483b98]
mov byte [eax], 1
mov edx, 1
lea eax, [ebp - 0x2e8]
call fcn.00403314
call fcn.00402894
xor edx, edx
push ebp
push 0x479b74
push dword fs:[edx]
mov dword fs:[edx], esp
xor ebx, ebx
mov esi, dword [ebp - 0x48]
mov eax, esi
sub eax, ebx
cmp eax, 0x800
jl 0x479a7b
lea eax, [ebp - 0x28]
push eax
lea edx, [ebp - 0xae8]
mov ecx, 0x800
lea eax, [ebp - 0x19c]
call fcn.00402fc0
call fcn.00402894
jmp 0x479a97
lea edx, [ebp - 0x28]
push edx
mov ecx, eax
lea edx, [ebp - 0xae8]
lea eax, [ebp - 0x19c]
call fcn.00402fc0
call fcn.00402894
push 0
lea edx, [ebp - 0xae8]
mov ecx, dword [ebp - 0x28]
lea eax, [ebp - 0x2e8]
call fcn.00402fe0
call fcn.00402894
add ebx, dword [ebp - 0x28]
imul eax, dword [ebp - 0x1c], 0x64
mov dword [ebp - 0xc30], eax
fild dword [ebp - 0xc30]
fild dword [ebp - 0x24]
fdivp st(1)
call fcn.00402bc4
mov edi, eax
fild dword [ebp - 0x24]
fdivr dword [0x47a8a4]
call fcn.00402bc4
push edx
push eax
mov eax, ebx
cdq
call fcn.004055f4
mov dword [ebp - 0xc38], eax
mov dword [ebp - 0xc34], edx
fild qword [ebp - 0xc38]
inc esi
mov dword [ebp - 0xc3c], esi
fild dword [ebp - 0xc3c]
fdivp st(1)
call fcn.00402bc4
add edi, eax
mov edx, edi
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x380]
call fcn.00436020
mov eax, dword [0x483af4]
mov eax, dword [eax]
call fcn.0046b67c
cmp byte [0x484cbf], 0
je 0x479b5d
lea eax, [ebp - 0x19c]
call fcn.00403000
call fcn.00402894
lea eax, [ebp - 0x2e8]
call fcn.00403000
call fcn.00402894
push ebp
call fcn.004788a8
pop ecx
cmp dword [ebp - 0x28], 0x800
je 0x479a4c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x479bf2
lea eax, [ebp - 0x2e8]
call fcn.00403000
call fcn.00402894
mov eax, dword [0x483af4]
mov eax, dword [eax]
call fcn.0046b67c
xor ecx, ecx
mov dl, 1
mov eax, dword [0x46eac4]
call fcn.0046f470
mov dword [0x484ca4], eax
mov eax, dword [ebp - 0x4c]
mov edx, 0x47a8ec
call fcn.00404bac
jne 0x479d3d
mov eax, dword [ebp - 0x50]
call fcn.004092b0
test al, al
je 0x479d3d
mov al, byte [0x47a904]
push eax
lea eax, [ebp - 0xc48]
mov ecx, 0x47a898
mov edx, dword [0x484cc4]
call fcn.00404aac
mov edx, dword [ebp - 0xc48]
mov ecx, dword [0x484cc4]
mov eax, dword [0x484ca4]
call fcn.0046fb7c
push dword [0x484cc4]
push 0x47a6ac
lea edx, [ebp - 0xc50]
mov eax, dword [ebp - 0x50]
call fcn.0040961c
push dword [ebp - 0xc50]
lea eax, [ebp - 0xc4c]
mov edx, 3
call fcn.00404b20
mov eax, dword [ebp - 0xc4c]
mov edx, dword [ebp - 0x50]
call fcn.00478408
test al, al
je 0x479ce3
xor eax, eax
push ebp
push 0x479cd7
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x50]
call fcn.004094fc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x479d3d
mov eax, dword [0x484ca4]
call fcn.00403a50
push dword [0x484cc4]
push 0x47a6ac
lea edx, [ebp - 0xc58]
mov eax, dword [ebp - 0x50]
call fcn.0040961c
push dword [ebp - 0xc58]
lea eax, [ebp - 0xc54]
mov edx, 3
call fcn.00404b20
mov eax, dword [ebp - 0xc54]
call fcn.004094fc
mov eax, dword [ebp - 0x48]
add dword [0x484cb4], eax
mov eax, dword [ebp - 0x50]
call fcn.00478744
jmp 0x479f94
mov eax, dword [ebp - 0x50]
call fcn.004092b0
test al, al
je 0x479dcd
lea edx, [ebp - 0xc60]
mov eax, dword [ebp - 0x50]
call fcn.00409654
mov eax, dword [ebp - 0xc60]
lea edx, [ebp - 0xc5c]
call fcn.004088f0
mov eax, dword [ebp - 0xc5c]
mov edx, 0x47a910
call fcn.00404bac
je 0x479daf
lea edx, [ebp - 0xc68]
mov eax, dword [ebp - 0x50]
call fcn.00409654
mov eax, dword [ebp - 0xc68]
lea edx, [ebp - 0xc64]
call fcn.004088f0
mov eax, dword [ebp - 0xc64]
mov edx, 0x47a920
call fcn.00404bac
jne 0x479dcd
mov eax, dword [ebp - 0x50]
call fcn.00478670
push 0x12c
call sub.kernel32.dll_Sleep_1
mov eax, dword [0x483af4]
mov eax, dword [eax]
call fcn.0046b67c
xor eax, eax
push ebp
push 0x479e64
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0x2e], 0
mov eax, dword [ebp - 0x50]
call fcn.004092b0
test al, al
je 0x479e15
xor eax, eax
push ebp
push 0x479e0b
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x50]
call fcn.004094fc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x479e15
mov al, byte [0x47a904]
push eax
lea edx, [ebp - 0xc6c]
mov eax, dword [ebp - 0x50]
call fcn.004095c8
mov eax, dword [ebp - 0xc6c]
push eax
lea eax, [ebp - 0xc70]
mov ecx, 0x47a898
mov edx, dword [0x484cc4]
call fcn.00404aac
mov edx, dword [ebp - 0xc70]
mov eax, dword [0x484ca4]
pop ecx
call fcn.0046fb7c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x479f2d
cmp byte [ebp - 0x2e], 0
jne 0x479dcd
mov eax, dword [0x484ca4]
call fcn.00403a50
mov eax, dword [ebp - 0x48]
add dword [0x484cb4], eax
cmp byte [0x484cbd], 0
je 0x479f88
cmp byte [ebp - 0x44], 0
je 0x479f88
mov eax, dword [ebp - 0x50]
push eax
lea edx, [ebp - 0xc7c]
mov eax, dword [0x485cf4]
call fcn.00408da8
mov ecx, dword [ebp - 0xc7c]
mov edx, 0x47a534
mov eax, dword [0x484cb0]
mov ebx, dword [eax]
call dword [ebx + 4]
inc dword [0x485cf4]
mov eax, dword [0x483af4]
mov eax, dword [eax]
call fcn.0046b67c
inc dword [ebp - 0x1c]
dec dword [ebp - 0x3c]
jne 0x479486
lea eax, [ebp - 0x19c]
call fcn.00403000
call fcn.00402894
cmp byte [0x484cc0], 0
je 0x479fe2
xor eax, eax
push ebp
push 0x479fd8
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x14]
push eax
call dword [ebp - 0x10]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x479fe2
mov eax, dword [0x483af4]
mov eax, dword [eax]
call fcn.0046b67c
cmp byte [0x484cbd], 0
je 0x47a05f
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x36c]
mov edx, dword [eax]
call dword [edx + 0x50]
test al, al
je 0x47a05f
lea edx, [ebp - 0xc80]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x36c]
call fcn.0044bcd8
lea eax, [ebp - 0xc80]
mov edx, 0x47a4f0
call fcn.00404a68
mov eax, dword [ebp - 0xc80]
push eax
lea edx, [ebp - 0xc84]
mov eax, dword [0x485cf4]
call fcn.00408da8
mov ecx, dword [ebp - 0xc84]
mov edx, 0x47a534
mov eax, dword [0x484cb0]
mov ebx, dword [eax]
call dword [ebx + 4]
inc dword [0x485cf4]
push 0x47a95c
lea eax, [ebp - 0xc88]
push eax
mov ecx, 0x47a5c8
mov edx, 0x47a4e0
mov eax, dword [0x484cac]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0xc88]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x37c]
call fcn.0044bd08
mov ecx, dword [ebp - 4]
mov edx, 0x47a97c
mov eax, dword [0x484ca8]
mov ebx, dword [eax]
call dword [ebx + 0x40]
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x47a100
inc eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x1c], 0
push 0
lea eax, [ebp - 0xc8c]
push eax
lea ecx, [ebp - 0xc90]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov ecx, dword [ebp - 0xc90]
mov edx, 0x47a97c
mov eax, dword [0x484ca8]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0xc8c]
mov eax, dword [ebp - 8]
call fcn.004769ec
inc dword [ebp - 0x1c]
dec dword [ebp - 0x3c]
jne 0x47a0bc
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x378]
xor edx, edx
call fcn.0044bd08
push 0x47a990
lea eax, [ebp - 0xc94]
push eax
mov ecx, 0x47a5d4
mov edx, 0x47a4e0
mov eax, dword [0x484cac]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0xc94]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x37c]
call fcn.0044bd08
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x2f8]
mov ecx, dword [eax + 0x218]
mov edx, 0x47a9b8
mov eax, dword [0x484ca8]
mov ebx, dword [eax]
call dword [ebx + 0x40]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x2f8]
mov eax, dword [eax + 0x218]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x47a1de
inc eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x1c], 0
cmp byte [0x484cbf], 0
jne 0x47a1de
push 0
lea eax, [ebp - 0xc98]
push eax
lea ecx, [ebp - 0xc9c]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x2f8]
mov eax, dword [eax + 0x218]
mov edx, dword [ebp - 0x1c]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov ecx, dword [ebp - 0xc9c]
mov edx, 0x47a9b8
mov eax, dword [0x484ca8]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0xc98]
mov eax, dword [ebp - 8]
call fcn.004772d0
inc dword [ebp - 0x1c]
dec dword [ebp - 0x3c]
jne 0x47a185
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x378]
xor edx, edx
call fcn.0044bd08
push 0x47a9cc
lea eax, [ebp - 0xca0]
push eax
mov ecx, 0x47a5e0
mov edx, 0x47a4e0
mov eax, dword [0x484cac]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0xca0]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x37c]
call fcn.0044bd08
mov ecx, dword [ebp - 4]
mov edx, 0x47a9ec
mov eax, dword [0x484ca8]
mov ebx, dword [eax]
call dword [ebx + 0x40]
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x47a28f
inc eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x1c], 0
push 0
lea eax, [ebp - 0xca4]
push eax
lea ecx, [ebp - 0xca8]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov ecx, dword [ebp - 0xca8]
mov edx, 0x47a9ec
mov eax, dword [0x484ca8]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0xca4]
mov eax, dword [ebp - 8]
call fcn.00477d58
inc dword [ebp - 0x1c]
dec dword [ebp - 0x3c]
jne 0x47a24b
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x378]
xor edx, edx
call fcn.0044bd08
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x380]
mov edx, 0x64
call fcn.00436020
push 0x47a9f8
lea eax, [ebp - 0xcac]
push eax
mov ecx, 0x47aa14
mov edx, 0x47a4e0
mov eax, dword [0x484cac]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0xcac]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x37c]
call fcn.0044bd08
mov eax, dword [0x483af4]
mov eax, dword [eax]
call fcn.0046b67c
cmp byte [0x484cbd], 0
je 0x47a31c
push 0
mov ecx, 0x47aa20
mov edx, 0x47a664
mov eax, dword [0x484ca8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
test al, al
je 0x47a31c
mov eax, dword [ebp - 8]
call fcn.0047641c
mov eax, dword [ebp - 4]
call fcn.00403a50
mov eax, dword [0x484cb0]
call fcn.00403a50
cmp byte [0x484cbd], 0
je 0x47a390
push 0
lea edx, [ebp - 0xcb0]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x36c]
call fcn.0044bcd8
lea eax, [ebp - 0xcb0]
mov edx, 0x47a4f0
call fcn.00404a68
mov eax, dword [ebp - 0xcb0]
call fcn.00404c60
push eax
lea eax, [ebp - 0xcb4]
mov ecx, 0x47a508
mov edx, dword [0x484cc4]
call fcn.00404aac
mov eax, dword [ebp - 0xcb4]
call fcn.00404c60
push eax
call sub.kernel32.dll_CopyFileA
mov eax, dword [0x483af4]
mov eax, dword [eax]
call fcn.0046b67c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x47a4a8
lea eax, [ebp - 0xcb4]
call fcn.004047a0
lea eax, [ebp - 0xcb0]
call fcn.004047a0
lea eax, [ebp - 0xcac]
mov edx, 0xb
call fcn.004047c4
lea eax, [ebp - 0xc80]
call fcn.004047a0
lea eax, [ebp - 0xc7c]
mov edx, 0x10
call fcn.004047c4
lea eax, [ebp - 0xc2c]
mov edx, 0x1e
call fcn.004047c4
lea eax, [ebp - 0xbb4]
mov edx, 2
call fcn.004047c4
lea eax, [ebp - 0xbac]
call fcn.004047a0
lea eax, [ebp - 0xba8]
call fcn.004047a0
lea eax, [ebp - 0xba4]
mov edx, 0x24
call fcn.004047c4
lea eax, [ebp - 0xb14]
mov edx, 4
call fcn.004047c4
lea eax, [ebp - 0xb04]
call fcn.004047a0
lea eax, [ebp - 0xb00]
call fcn.004047a0
lea eax, [ebp - 0xafc]
call fcn.004047a0
lea eax, [ebp - 0xaf8]
call fcn.004047a0
lea eax, [ebp - 0xaf4]
call fcn.004047a0
lea eax, [ebp - 0xaf0]
mov edx, 2
call fcn.004047c4
lea eax, [ebp - 0x50]
mov edx, dword [0x478884]
call fcn.00405208
lea eax, [ebp - 0x18]
call fcn.004047a0
ret