Function at 0x487374
Capabilities:
Create process on windows
Delete file

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x2d
push 0
push 0
dec ecx
jne 0x48737c
push ecx
push ebx
push esi
push edi
mov dword [ebp - 4], eax
lea esi, [ebp - 4]
xor eax, eax
push ebp
push 0x488130
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0x21], 1
mov eax, dword [esi]
mov eax, dword [eax + 4]
mov dword [ebp - 0x48], eax
mov byte [ebp - 0x44], 0x11
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x4c]
call fcn.0047790c
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
pop edx
call fcn.0045d1dc
mov eax, dword [esi]
cmp byte [eax + 0xc], 0
je 0x4873dd
mov eax, dword [esi]
cmp byte [eax + 0x59], 0
jne 0x487402
mov eax, dword [esi]
cmp byte [eax + 0xf9], 0
jne 0x487402
lea eax, [ebp - 0x54]
call fcn.0047799c
mov ecx, dword [ebp - 0x54]
lea eax, [ebp - 0x50]
mov edx, 0x488150
call fcn.004075e0
mov eax, dword [ebp - 0x50]
call fcn.0045d124
jmp 0x4880ac
lea eax, [ebp - 0x5c]
call fcn.00477ad8
mov ecx, dword [ebp - 0x5c]
lea eax, [ebp - 0x58]
mov edx, 0x488150
call fcn.004075e0
mov eax, dword [ebp - 0x58]
mov edx, dword [esi]
movzx edx, byte [edx + 0x59]
mov dword [ebp - 0x6c], edx
mov byte [ebp - 0x68], 0
mov edx, dword [esi]
movzx edx, byte [edx + 0xf9]
mov dword [ebp - 0x64], edx
mov byte [ebp - 0x60], 0
lea edx, [ebp - 0x6c]
mov ecx, 1
call fcn.0045d298
mov eax, dword [esi]
push dword [eax + 0xf4]
push dword [eax + 0xf0]
mov eax, dword [esi]
add eax, 0x70
call fcn.0048e4a4
test al, al
je 0x4874a4
lea eax, [ebp - 0x74]
call fcn.00477bc8
mov ecx, dword [ebp - 0x74]
lea eax, [ebp - 0x70]
mov edx, 0x488150
call fcn.004075e0
mov eax, dword [ebp - 0x70]
call fcn.0045d124
mov eax, dword [esi]
cmp byte [eax + 0x130], 0
jne 0x4874a4
mov eax, dword [esi]
push eax
push 0
mov eax, dword [esi]
mov ecx, dword [eax + 4]
mov dl, 0xd
mov eax, dword [0x4b37fc]
call fcn.0048fce8
mov byte [ebp - 0x21], 0
mov eax, dword [esi]
mov ebx, dword [eax + 0x6c]
mov eax, ebx
call fcn.0040892c
push eax
lea eax, [ebp - 8]
push eax
lea edx, [ebp - 0x78]
mov eax, dword [esi]
call fcn.0048cc90
mov edx, dword [ebp - 0x78]
mov ecx, ebx
mov ebx, dword [esi]
mov eax, dword [ebx + 0xf4]
call dword [ebx + 0xf0]
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x8c]
call fcn.00477cdc
mov eax, dword [ebp - 0x8c]
lea ecx, [ebp - 0x88]
xor edx, edx
call fcn.004483bc
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0x84], eax
mov eax, dword [0x4adb24]
mov eax, dword [eax]
mov dword [ebp - 0x80], eax
mov eax, dword [esi]
mov eax, dword [eax + 0xe0]
mov dword [ebp - 0x7c], eax
lea eax, [ebp - 0x84]
mov ecx, 0x488160
mov edx, 2
call fcn.00449888
lea edx, [ebp - 0x10]
mov eax, dword [esi]
call fcn.0048f714
mov eax, dword [esi]
mov byte [eax + 0x60], 0
lea eax, [ebp - 0x1c]
xor edx, edx
call fcn.00407178
mov eax, dword [esi]
mov eax, dword [eax + 0x5c]
call fcn.0040892c
mov edi, eax
test edi, edi
jl 0x4875b0
inc edi
xor ebx, ebx
mov eax, dword [esi]
cmp byte [eax + 0x60], 0
jne 0x487576
imul eax, ebx, 0xe
mov edx, dword [esi]
mov edx, dword [edx + 0x5c]
cmp byte [edx + eax*8 + 0x14], 0
jne 0x487576
xor eax, eax
jmp 0x487578
mov al, 1
mov edx, dword [esi]
mov byte [edx + 0x60], al
imul eax, ebx, 0xe
mov edx, dword [esi]
mov edx, dword [edx + 0x5c]
cmp byte [edx + eax*8 + 0x14], 0
je 0x4875ac
push dword [ebp - 0x1c]
push 0x488170
imul eax, ebx, 0xe
mov edx, dword [esi]
mov edx, dword [edx + 0x5c]
push dword [edx + eax*8]
lea eax, [ebp - 0x1c]
mov edx, 3
call fcn.004076c4
inc ebx
dec edi
jne 0x48755b
mov eax, dword [esi]
cmp byte [eax + 0x130], 0
jne 0x4875c2
mov eax, dword [esi]
call fcn.0048c7c0
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x48], eax
mov byte [ebp - 0x44], 0x11
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x94]
call fcn.00477d1c
mov ecx, dword [ebp - 0x94]
lea eax, [ebp - 0x90]
mov edx, 0x488150
call fcn.004075e0
mov eax, dword [ebp - 0x90]
xor ecx, ecx
pop edx
call fcn.0045d1dc
mov edx, dword [ebp - 0xc]
mov eax, dword [esi]
call fcn.0048a220
test al, al
je 0x487ebe
push 0x1388
call sub.kernel32.dll_Sleep_1
mov eax, dword [ebp - 0xc]
call fcn.0044a080
mov dword [ebp - 0x48], eax
mov byte [ebp - 0x44], 0
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x9c]
call fcn.00477d98
mov ecx, dword [ebp - 0x9c]
lea eax, [ebp - 0x98]
mov edx, 0x488150
call fcn.004075e0
mov eax, dword [ebp - 0x98]
xor ecx, ecx
pop edx
call fcn.0045d1dc
mov eax, dword [esi]
cmp byte [eax + 0x59], 0
je 0x48779a
mov eax, dword [esi]
cmp byte [eax + 0x60], 0
je 0x48779a
mov eax, dword [esi]
call fcn.0048c608
push eax
lea eax, [ebp - 0x20]
mov ecx, 1
mov edx, dword [0x485c70]
call fcn.00408aec
add esp, 4
mov eax, dword [esi]
mov eax, dword [eax + 0x5c]
call fcn.0040892c
mov edi, eax
test edi, edi
jl 0x4876d1
inc edi
xor ebx, ebx
imul eax, ebx, 0xe
mov edx, dword [esi]
mov edx, dword [edx + 0x5c]
lea eax, [edx + eax*8]
lea edx, [ebp - 0xa0]
call fcn.00482e0c
mov edx, dword [ebp - 0xa0]
mov eax, dword [ebp - 0x20]
lea eax, [eax + ebx*4]
call fcn.00407124
inc ebx
dec edi
jne 0x4876a6
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x20]
call fcn.0040892c
mov edx, eax
mov ecx, 0x488180
mov eax, dword [ebp - 0x20]
call fcn.00449888
lea eax, [ebp - 0xa4]
call fcn.00477e28
mov eax, dword [ebp - 0xa4]
mov edx, dword [ebp - 0x10]
call fcn.00407ad8
test eax, eax
jle 0x487767
push 0
lea eax, [ebp - 0xa8]
push eax
lea eax, [ebp - 0xb4]
call fcn.00477eb0
mov eax, dword [ebp - 0xb4]
lea ecx, [ebp - 0xb0]
mov edx, dword [ebp - 0x18]
call fcn.00495494
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0x44], eax
lea ecx, [ebp - 0x48]
mov ebx, dword [esi]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebx + 0xf4]
call dword [ebx + 0xf0]
mov edx, dword [ebp - 0xa8]
lea eax, [ebp - 0x10]
call fcn.00407178
jmp 0x48779a
lea eax, [ebp - 0xb8]
push eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x48]
mov ecx, 0x488180
mov edx, 1
call fcn.00449888
mov edx, dword [ebp - 0xb8]
lea eax, [ebp - 0x10]
call fcn.00407178
push 0x488190
push dword [ebp - 0xc]
lea eax, [ebp - 0xbc]
call fcn.00477f2c
push dword [ebp - 0xbc]
push dword [ebp - 0x10]
lea eax, [ebp - 0x14]
mov edx, 4
call fcn.004076c4
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x48], eax
mov byte [ebp - 0x44], 0x11
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0xc4]
call fcn.00477f60
mov ecx, dword [ebp - 0xc4]
lea eax, [ebp - 0xc0]
mov edx, 0x488150
call fcn.004075e0
mov eax, dword [ebp - 0xc0]
xor ecx, ecx
pop edx
call fcn.0045d1dc
mov dword [ebp - 0x28], 3
mov eax, dword [esi]
cmp byte [eax + 0xec], 0
je 0x48787f
lea edx, [ebp - 0x38]
mov eax, dword [ebp - 0x14]
call fcn.0048f508
mov ebx, eax
test bl, bl
je 0x487874
mov eax, dword [ebp - 0x38]
push eax
push 0
push 0x100400
call sub.kernel32.dll_OpenProcess
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x487842
cmp eax, 0xffffffff
jne 0x487855
mov eax, dword [ebp - 0x38]
push eax
push 0
push 0x101000
call sub.kernel32.dll_OpenProcess
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x487861
cmp eax, 0xffffffff
jne 0x487874
mov eax, dword [ebp - 0x38]
push eax
push 0
push 0x100000
call sub.kernel32.dll_OpenProcess
mov dword [ebp - 0x40], eax
mov eax, dword [esi]
mov byte [eax + 0x131], 1
jmp 0x48788c
lea edx, [ebp - 0x40]
mov eax, dword [ebp - 0x14]
call fcn.0044963c
mov ebx, eax
test bl, bl
je 0x487c6f
mov eax, dword [esi]
cmp dword [eax + 0x118], 0
je 0x4878d1
push 1
push 0
push 0
mov eax, dword [esi]
mov eax, dword [eax + 0x118]
call fcn.004071b0
push eax
lea eax, [ebp - 0xc8]
call fcn.00477fd8
mov eax, dword [ebp - 0xc8]
call fcn.004071b0
push eax
push 0
call sub.shell32.dll_ShellExecuteW
mov eax, dword [esi]
mov byte [eax + 0x131], 1
push 0xffffffffffffffff
mov eax, dword [ebp - 0x40]
push eax
call sub.kernel32.dll_WaitForSingleObject
test eax, eax
sete byte [ebp - 0x21]
mov eax, dword [esi]
mov dword [eax + 0x124], 1
cmp byte [ebp - 0x21], 0
jne 0x487a6c
call sub.kernel32.dll_GetLastError_1
mov edx, dword [esi]
mov dword [edx + 0x124], eax
lea eax, [ebp - 0xd0]
call fcn.00478018
mov ecx, dword [ebp - 0xd0]
lea eax, [ebp - 0xcc]
mov edx, 0x488150
call fcn.004075e0
mov eax, dword [ebp - 0xcc]
mov edx, dword [esi]
mov ebx, dword [edx + 0x124]
mov dword [ebp - 0x6c], ebx
mov byte [ebp - 0x68], 0
mov dword [ebp - 0x64], ebx
mov byte [ebp - 0x60], 0
lea edx, [ebp - 0x6c]
mov ecx, 1
call fcn.0045d1dc
mov eax, dword [esi]
mov eax, dword [eax + 0x124]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0xd4]
call fcn.00410500
mov eax, dword [ebp - 0xd4]
push eax
lea eax, [ebp - 0xd8]
call fcn.004781b8
mov eax, dword [ebp - 0xd8]
push eax
lea eax, [ebp - 0xdc]
call fcn.00478118
mov eax, dword [ebp - 0xdc]
mov edx, dword [esi]
pop ecx
call fcn.0048c460
mov dl, 1
mov eax, dword [0x45dedc]
call fcn.00460788
mov ebx, eax
lea eax, [ebx + 0x24]
mov edx, dword [0x4b37fc]
mov edx, dword [edx + 0x9c]
call fcn.00407124
lea eax, [ebx + 0x28]
mov edx, dword [0x4b37fc]
mov edx, dword [edx + 0x60]
call fcn.00407124
lea edx, [ebp - 0xe0]
mov eax, dword [0x4b37fc]
call fcn.00484c58
mov edx, dword [ebp - 0xe0]
lea eax, [ebx + 0x30]
call fcn.00407124
lea eax, [ebx + 0x38]
mov edx, dword [0x4b37fc]
mov edx, dword [edx + 0xa0]
call fcn.00407124
lea eax, [ebp - 0xe4]
call fcn.00478200
mov edx, dword [ebp - 0xe4]
lea eax, [ebx + 0x34]
call fcn.00407124
lea eax, [ebx + 0x3c]
mov edx, dword [esi]
mov edx, dword [edx + 4]
call fcn.00407124
mov eax, dword [esi]
cmp byte [eax + 0xc], 0
setne al
mov byte [ebx + 0x2c], al
lea eax, [ebx + 0x4c]
mov edx, dword [ebp - 0xc]
call fcn.00407124
lea eax, [ebx + 0x50]
mov edx, dword [ebp - 0x10]
call fcn.00407124
mov eax, dword [esi]
mov eax, dword [eax + 0x124]
mov dword [ebx + 0x54], eax
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 4]
mov eax, ebx
call fcn.00405008
jmp 0x487c58
mov eax, dword [esi]
mov byte [eax + 0x120], 1
mov eax, dword [esi]
add eax, 0x124
push eax
mov eax, dword [ebp - 0x40]
push eax
call sub.kernel32.dll_GetExitCodeProcess
test eax, eax
jne 0x487b24
call sub.kernel32.dll_GetLastError_1
mov edx, dword [esi]
mov dword [edx + 0x124], eax
mov dl, 1
mov eax, dword [0x45dedc]
call fcn.00460788
mov ebx, eax
lea eax, [ebx + 0x38]
mov edx, dword [0x4b37fc]
mov edx, dword [edx + 0xa0]
call fcn.00407124
lea eax, [ebp - 0xe8]
call fcn.00478290
mov edx, dword [ebp - 0xe8]
lea eax, [ebx + 0x34]
call fcn.00407124
lea eax, [ebx + 0x3c]
mov edx, dword [esi]
mov edx, dword [edx + 4]
call fcn.00407124
mov eax, dword [esi]
cmp byte [eax + 0xc], 0
setne al
mov byte [ebx + 0x2c], al
lea eax, [ebx + 0x4c]
mov edx, dword [ebp - 0xc]
call fcn.00407124
lea eax, [ebx + 0x50]
mov edx, dword [ebp - 0x10]
call fcn.00407124
mov eax, dword [esi]
mov eax, dword [eax + 0x124]
mov dword [ebx + 0x54], eax
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 4]
mov eax, ebx
call fcn.00405008
mov byte [ebp - 0x29], 1
jmp 0x487b6e
mov byte [ebp - 0x29], 0
mov eax, dword [esi]
mov eax, dword [eax + 0x11c]
call fcn.00408924
mov edi, eax
dec edi
test edi, edi
jl 0x487b6e
inc edi
xor ebx, ebx
mov eax, dword [esi]
mov eax, dword [eax + 0x11c]
mov eax, dword [eax + ebx*4]
cdq
push edx
push eax
mov eax, dword [esi]
mov eax, dword [eax + 0x124]
xor edx, edx
cmp edx, dword [esp + 4]
jne 0x487b60
cmp eax, dword [esp]
pop edx
pop eax
jne 0x487b6a
mov byte [ebp - 0x29], 1
jmp 0x487b6e
inc ebx
dec edi
jne 0x487b3f
push ebp
mov eax, dword [esi]
mov eax, dword [eax + 0x124]
call fcn.00487218
pop ecx
cmp byte [ebp - 0x29], 0
jne 0x487b98
mov eax, dword [esi]
mov eax, dword [eax + 0x11c]
call fcn.00408924
test eax, eax
je 0x487b98
xor eax, eax
jmp 0x487b9a
mov al, 1
mov byte [ebp - 0x21], al
lea eax, [ebp - 0xf0]
call fcn.00478320
mov ecx, dword [ebp - 0xf0]
lea eax, [ebp - 0xec]
mov edx, 0x488150
call fcn.004075e0
mov eax, dword [ebp - 0xec]
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x108], edx
mov byte [ebp - 0x104], 0
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x100], edx
mov byte [ebp - 0xfc], 0
mov edx, dword [esi]
mov edx, dword [edx + 0x124]
mov dword [ebp - 0xf8], edx
mov byte [ebp - 0xf4], 0
lea edx, [ebp - 0x108]
mov ecx, 2
call fcn.0045d1dc
cmp byte [ebp - 0x21], 0
jne 0x487c58
mov eax, dword [esi]
mov eax, dword [eax + 0x124]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x10c]
call fcn.00410500
mov eax, dword [ebp - 0x10c]
push eax
lea eax, [ebp - 0x110]
call fcn.004784c8
mov eax, dword [ebp - 0x110]
push eax
lea eax, [ebp - 0x114]
call fcn.00478420
mov eax, dword [ebp - 0x114]
mov edx, dword [esi]
pop ecx
call fcn.0048c460
mov eax, dword [ebp - 0x40]
push eax
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [ebp - 0x3c]
push eax
call sub.kernel32.dll_CloseHandle_1
jmp 0x487dc8
call sub.kernel32.dll_GetLastError_1
mov edx, dword [esi]
mov dword [edx + 0x124], eax
lea eax, [ebp - 0x11c]
call fcn.00478528
mov ecx, dword [ebp - 0x11c]
lea eax, [ebp - 0x118]
mov edx, 0x488150
call fcn.004075e0
mov eax, dword [ebp - 0x118]
mov edx, dword [esi]
mov edx, dword [edx + 0x124]
mov dword [ebp - 0x48], edx
mov byte [ebp - 0x44], 0
lea edx, [ebp - 0x48]
xor ecx, ecx
call fcn.0045d1dc
mov eax, dword [esi]
mov eax, dword [eax + 0x124]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x120]
call fcn.00410500
mov eax, dword [ebp - 0x120]
push eax
lea eax, [ebp - 0x124]
call fcn.00478698
mov eax, dword [ebp - 0x124]
push eax
lea eax, [ebp - 0x128]
call fcn.00478610
mov eax, dword [ebp - 0x128]
mov edx, dword [esi]
pop ecx
call fcn.0048c460
mov dl, 1
mov eax, dword [0x45dedc]
call fcn.00460788
mov ebx, eax
lea eax, [ebx + 0x24]
mov edx, dword [0x4b37fc]
mov edx, dword [edx + 0x9c]
call fcn.00407124
lea eax, [ebx + 0x28]
mov edx, dword [0x4b37fc]
mov edx, dword [edx + 0x60]
call fcn.00407124
lea edx, [ebp - 0x12c]
mov eax, dword [0x4b37fc]
call fcn.00484c58
mov edx, dword [ebp - 0x12c]
lea eax, [ebx + 0x30]
call fcn.00407124
lea eax, [ebx + 0x38]
mov edx, dword [0x4b37fc]
mov edx, dword [edx + 0xa0]
call fcn.00407124
lea eax, [ebp - 0x130]
call fcn.004786e0
mov edx, dword [ebp - 0x130]
lea eax, [ebx + 0x34]
call fcn.00407124
lea eax, [ebx + 0x3c]
mov edx, dword [esi]
mov edx, dword [edx + 4]
call fcn.00407124
mov eax, dword [esi]
cmp byte [eax + 0xc], 0
setne al
mov byte [ebx + 0x2c], al
lea eax, [ebx + 0x4c]
mov edx, dword [ebp - 0xc]
call fcn.00407124
lea eax, [ebx + 0x50]
mov edx, dword [ebp - 0x10]
call fcn.00407124
call sub.kernel32.dll_GetLastError_1
mov dword [ebx + 0x54], eax
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 4]
mov eax, ebx
call fcn.00405008
lea eax, [ebp - 0x134]
call fcn.00478758
mov edx, dword [ebp - 0x134]
mov eax, dword [esi]
mov eax, dword [eax + 8]
call fcn.00407884
jne 0x487e28
mov eax, dword [esi]
cmp dword [eax + 0x124], 0x652
jne 0x487e28
dec dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0
jle 0x487e28
push 0xea60
call sub.kernel32.dll_Sleep_1
lea eax, [ebp - 0x138]
call fcn.00478794
mov edx, dword [ebp - 0x138]
mov ecx, dword [esi]
mov eax, dword [0x4b37fc]
call fcn.0048fec0
jmp 0x487807
push 0xea60
call sub.kernel32.dll_Sleep_1
cmp byte [ebp - 0x21], 0
je 0x48805f
mov eax, dword [esi]
push dword [eax + 0xf4]
push dword [eax + 0xf0]
mov eax, dword [esi]
add eax, 0xa8
call fcn.0048e4a4
test al, al
jne 0x48805f
lea eax, [ebp - 0x13c]
call fcn.0047881c
mov eax, dword [ebp - 0x13c]
mov edx, dword [esi]
call fcn.0048c410
mov eax, dword [esi]
mov eax, dword [eax + 4]
mov dword [ebp - 0x48], eax
mov byte [ebp - 0x44], 0x11
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x144]
call fcn.004788c8
mov ecx, dword [ebp - 0x144]
lea eax, [ebp - 0x140]
mov edx, 0x488150
call fcn.004075e0
mov eax, dword [ebp - 0x140]
xor ecx, ecx
pop edx
call fcn.0045d1dc
mov byte [ebp - 0x21], 0
jmp 0x48805f
mov eax, dword [esi]
mov ebx, dword [eax + 0x6c]
mov eax, ebx
call fcn.0040892c
push eax
lea eax, [ebp - 0x148]
push eax
lea edx, [ebp - 0x14c]
mov eax, dword [esi]
call fcn.0048cc90
mov edx, dword [ebp - 0x14c]
mov ecx, ebx
mov ebx, dword [esi]
mov eax, dword [ebx + 0xf4]
call dword [ebx + 0xf0]
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0x48], eax
mov byte [ebp - 0x44], 0x11
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x154]
call fcn.00478968
mov ecx, dword [ebp - 0x154]
lea eax, [ebp - 0x150]
mov edx, 0x488150
call fcn.004075e0
mov eax, dword [ebp - 0x150]
xor ecx, ecx
pop edx
call fcn.0045d1dc
lea eax, [ebp - 0x158]
call fcn.00478a10
mov eax, dword [ebp - 0x158]
mov edx, dword [esi]
call fcn.0048c410
mov dl, 1
mov eax, dword [0x45dedc]
call fcn.00460788
mov ebx, eax
lea eax, [ebx + 0x24]
mov edx, dword [0x4b37fc]
mov edx, dword [edx + 0x9c]
call fcn.00407124
lea eax, [ebx + 0x28]
mov edx, dword [0x4b37fc]
mov edx, dword [edx + 0x60]
call fcn.00407124
lea edx, [ebp - 0x15c]
mov eax, dword [0x4b37fc]
call fcn.00484c58
mov edx, dword [ebp - 0x15c]
lea eax, [ebx + 0x30]
call fcn.00407124
lea eax, [ebx + 0x38]
mov edx, dword [0x4b37fc]
mov edx, dword [edx + 0xa0]
call fcn.00407124
lea eax, [ebp - 0x160]
call fcn.00478ab8
mov edx, dword [ebp - 0x160]
lea eax, [ebx + 0x34]
call fcn.00407124
lea eax, [ebx + 0x3c]
mov edx, dword [esi]
mov edx, dword [edx + 4]
call fcn.00407124
mov eax, dword [esi]
cmp byte [eax + 0xc], 0
setne al
mov byte [ebx + 0x2c], al
mov eax, dword [esi]
mov eax, dword [eax + 0x6c]
mov dword [ebp - 0x30], eax
call fcn.0040892c
push eax
lea eax, [ebp - 0x164]
push eax
lea edx, [ebp - 0x168]
mov eax, dword [esi]
call fcn.0048cc90
mov edx, dword [ebp - 0x168]
mov ecx, dword [ebp - 0x30]
mov edi, dword [esi]
mov eax, dword [edi + 0xf4]
call dword [edi + 0xf0]
mov edx, dword [ebp - 0x164]
lea eax, [ebx + 0x40]
call fcn.00407124
lea eax, [ebx + 0x48]
mov edx, dword [0x4b37fc]
mov edx, dword [edx + 0x6c]
call fcn.00407124
lea eax, [ebx + 0x4c]
mov edx, dword [ebp - 0xc]
call fcn.00407124
lea eax, [ebx + 0x44]
xor edx, edx
call fcn.00407124
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 4]
mov eax, ebx
call fcn.00405008
mov eax, dword [ebp - 0xc]
call fcn.004071b0
push eax
call sub.kernel32.dll_DeleteFileW
mov eax, dword [esi]
mov eax, dword [eax + 4]
mov dword [ebp - 0x48], eax
mov byte [ebp - 0x44], 0x11
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x16c]
call fcn.00478b34
mov eax, dword [ebp - 0x16c]
xor ecx, ecx
pop edx
call fcn.0045d1dc
mov eax, dword [esi]
cmp byte [eax + 0x130], 0
jne 0x4880ac
movzx edx, byte [ebp - 0x21]
mov eax, dword [esi]
call fcn.00483ccc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x488137
lea eax, [ebp - 0x16c]
mov edx, 0x19
call fcn.0040711c
lea eax, [ebp - 0xf0]
mov edx, 0x10
call fcn.0040711c
lea eax, [ebp - 0xb0]
mov edx, dword [0x49003c]
call fcn.00407e58
lea eax, [ebp - 0xa8]
mov edx, 9
call fcn.0040711c
lea eax, [ebp - 0x78]
mov edx, 3
call fcn.0040711c
lea eax, [ebp - 0x5c]
mov edx, 5
call fcn.0040711c
lea eax, [ebp - 0x20]
mov edx, dword [0x485c70]
call fcn.00408af8
lea eax, [ebp - 0x1c]
mov edx, 6
call fcn.0040711c
ret