Function at 0x46c150
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x38
push 0
push 0
dec ecx
jne 0x46c159
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x20], eax
xor eax, eax
push ebp
push 0x46cd1e
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
push ebp
push 0x46ccd4
push dword fs:[edx]
mov dword fs:[edx], esp
push 0
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [0x7788a4]
push eax
push 0x7778a4
mov eax, dword [ebp - 0x20]
push eax
call sub.kernel32.dll_WriteFile_1
call fcn.0044cf74
add esp, 0xfffffff8
fstp qword [esp]
wait
lea eax, [ebp - 0x38]
call fcn.0046b870
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x20]
call fcn.0046bb64
mov edx, 0x46cd38
mov eax, dword [ebp - 0x20]
call fcn.0046bb64
call fcn.004035a8
xor edx, edx
call fcn.00422384
mov dword [ebp - 0x30], eax
call fcn.004035a8
mov edx, dword [0x4480dc]
call fcn.00404f7c
test al, al
je 0x46c28b
xor eax, eax
push ebp
push 0x46c230
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.004035a8
mov eax, dword [eax]
lea edx, [ebp - 0x138]
call fcn.00404cc8
lea edx, [ebp - 0x138]
lea eax, [ebp - 4]
call fcn.00406034
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x46c247
xor eax, eax
push ebp
push 0x46c272
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.004035a8
mov edx, dword [eax + 4]
lea eax, [ebp - 8]
call fcn.00405e68
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x46c2fd
call fcn.004035a8
test eax, eax
je 0x46c2ed
xor eax, eax
push ebp
push 0x46c2cc
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.004035a8
mov eax, dword [eax]
lea edx, [ebp - 0x138]
call fcn.00404cc8
lea edx, [ebp - 0x138]
lea eax, [ebp - 4]
call fcn.00406034
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x46c2e3
lea eax, [ebp - 8]
call fcn.00405dd0
jmp 0x46c2fd
lea eax, [ebp - 4]
call fcn.00405dd0
lea eax, [ebp - 8]
call fcn.00405dd0
mov eax, dword [ebp + 0x24]
mov edx, dword [0x4480dc]
call fcn.00404f7c
test al, al
je 0x46c3a2
xor eax, eax
push ebp
push 0x46c349
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0x138]
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
call fcn.00404cc8
lea edx, [ebp - 0x138]
lea eax, [ebp - 0xc]
call fcn.00406034
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x46c360
xor eax, eax
push ebp
push 0x46c389
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x10]
mov edx, dword [ebp + 0x24]
mov edx, dword [edx + 4]
call fcn.00405e68
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x46c40f
cmp dword [ebp + 0x24], 0
je 0x46c3ff
xor eax, eax
push ebp
push 0x46c3de
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0x138]
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
call fcn.00404cc8
lea edx, [ebp - 0x138]
lea eax, [ebp - 0xc]
call fcn.00406034
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x46c3f5
lea eax, [ebp - 0x10]
call fcn.00405dd0
jmp 0x46c40f
lea eax, [ebp - 0xc]
call fcn.00405dd0
lea eax, [ebp - 0x10]
call fcn.00405dd0
cmp dword [ebp - 0x30], 0
jne 0x46c52a
cmp dword [ebp - 4], 0
jne 0x46c52a
mov eax, dword [ebp + 0x28]
xor edx, edx
push edx
push eax
lea edx, [ebp - 0x13c]
mov eax, 8
call fcn.00449eb8
mov edx, dword [ebp - 0x13c]
mov eax, dword [ebp - 0x20]
call fcn.0046bb64
lea edx, [ebp - 0x140]
mov eax, dword [ebp + 0x28]
call dword [ebp + 8]
mov edx, dword [ebp - 0x140]
mov eax, dword [ebp - 0x20]
call fcn.0046bb64
push 0x46cda0
push dword [ebp - 0x24]
push 0x46cdac
push dword [ebp - 0xc]
lea eax, [ebp - 0x14c]
mov edx, 4
call fcn.00406180
mov eax, dword [ebp - 0x14c]
lea edx, [ebp - 0x148]
call fcn.0046b918
mov ecx, dword [ebp - 0x148]
lea eax, [ebp - 0x144]
mov edx, 0x46cdb8
call fcn.00406104
mov edx, dword [ebp - 0x144]
mov eax, dword [ebp - 0x20]
call fcn.0046bb64
mov edx, 0x46cdd4
mov eax, dword [ebp - 0x20]
call fcn.0046bb64
cmp dword [ebp - 0x10], 0
je 0x46c509
push dword [ebp - 0x10]
push 0x46cdf0
push dword [ebp - 0x28]
lea eax, [ebp - 0x154]
mov edx, 3
call fcn.00406180
mov eax, dword [ebp - 0x154]
lea edx, [ebp - 0x150]
call fcn.0046b918
mov edx, dword [ebp - 0x150]
mov eax, dword [ebp - 0x20]
call fcn.0046bb64
jmp 0x46c629
lea edx, [ebp - 0x158]
mov eax, dword [ebp - 0x28]
call fcn.0046b918
mov edx, dword [ebp - 0x158]
mov eax, dword [ebp - 0x20]
call fcn.0046bb64
jmp 0x46c629
mov eax, dword [ebp - 0x30]
xor edx, edx
push edx
push eax
lea edx, [ebp - 0x15c]
mov eax, 8
call fcn.00449eb8
mov edx, dword [ebp - 0x15c]
mov eax, dword [ebp - 0x20]
call fcn.0046bb64
lea edx, [ebp - 0x160]
mov eax, dword [ebp - 0x30]
call dword [ebp + 8]
mov edx, dword [ebp - 0x160]
mov eax, dword [ebp - 0x20]
call fcn.0046bb64
push 0x46cda0
push dword [ebp - 0x24]
push 0x46cdac
push dword [ebp - 4]
lea eax, [ebp - 0x16c]
mov edx, 4
call fcn.00406180
mov eax, dword [ebp - 0x16c]
lea edx, [ebp - 0x168]
call fcn.0046b918
mov ecx, dword [ebp - 0x168]
lea eax, [ebp - 0x164]
mov edx, 0x46cdb8
call fcn.00406104
mov edx, dword [ebp - 0x164]
mov eax, dword [ebp - 0x20]
call fcn.0046bb64
mov edx, 0x46cdd4
mov eax, dword [ebp - 0x20]
call fcn.0046bb64
cmp dword [ebp - 8], 0
je 0x46c60d
push dword [ebp - 8]
push 0x46cdf0
push dword [ebp - 0x28]
lea eax, [ebp - 0x174]
mov edx, 3
call fcn.00406180
mov eax, dword [ebp - 0x174]
lea edx, [ebp - 0x170]
call fcn.0046b918
mov edx, dword [ebp - 0x170]
mov eax, dword [ebp - 0x20]
call fcn.0046bb64
jmp 0x46c629
lea edx, [ebp - 0x178]
mov eax, dword [ebp - 0x28]
call fcn.0046b918
mov edx, dword [ebp - 0x178]
mov eax, dword [ebp - 0x20]
call fcn.0046bb64
mov edx, 0x46cdfc
mov eax, dword [ebp - 0x20]
call fcn.0046bb64
xor ebx, ebx
call fcn.004220f8
lea ecx, [ebp - 0x17c]
mov dl, 1
call fcn.00420a9c
mov eax, dword [ebp - 0x17c]
lea edx, [ebp - 0x14]
call fcn.00420f40
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x46c664
sub eax, 4
mov eax, dword [eax]
movzx ecx, bx
mov edx, eax
mov eax, dword [ebp - 0x14]
call fcn.0046bb00
mov ebx, eax
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x46c67f
sub eax, 4
mov eax, dword [eax]
movzx ecx, bx
mov edx, eax
mov eax, dword [ebp - 0x24]
call fcn.0046bb00
mov ebx, eax
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x46c69a
sub eax, 4
mov eax, dword [eax]
movzx ecx, bx
mov edx, eax
mov eax, dword [ebp - 0x28]
call fcn.0046bb00
mov ebx, eax
movzx ecx, bx
lea eax, [ebp - 0x30]
mov edx, 4
call fcn.0046bb00
mov ebx, eax
movzx ecx, bx
lea eax, [ebp + 0x28]
mov edx, 4
call fcn.0046bb00
mov ebx, eax
mov eax, dword [ebp - 4]
test eax, eax
je 0x46c6d9
sub eax, 4
mov eax, dword [eax]
movzx ecx, bx
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.0046bb00
mov ebx, eax
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x46c6f4
sub eax, 4
mov eax, dword [eax]
movzx ecx, bx
mov edx, eax
mov eax, dword [ebp - 0xc]
call fcn.0046bb00
mov ebx, eax
lea ecx, [ebp - 0x180]
movzx eax, bx
mov edx, 4
call fcn.00449e90
mov edx, dword [ebp - 0x180]
mov eax, dword [ebp - 0x20]
call fcn.0046bb64
mov edx, 0x46ce1c
mov eax, dword [ebp - 0x20]
call fcn.0046bb64
lea edx, [ebp - 0x184]
mov eax, dword [ebp - 0x24]
call fcn.0046b918
mov edx, dword [ebp - 0x184]
mov eax, dword [ebp - 0x20]
call fcn.0046bb90
mov edx, 0x46ce70
mov eax, dword [ebp - 0x20]
call fcn.0046bb64
lea edx, [ebp - 0x188]
mov eax, dword [ebp - 0x28]
call fcn.0046b918
mov edx, dword [ebp - 0x188]
mov eax, dword [ebp - 0x20]
call fcn.0046bb90
mov edx, 0x46ce88
mov eax, dword [ebp - 0x20]
call fcn.0046bb64
mov eax, dword [ebp + 0x2c]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x18c]
call fcn.00449e68
mov edx, dword [ebp - 0x18c]
mov eax, dword [ebp - 0x20]
call fcn.0046bb90
mov edx, 0x46cea8
mov eax, dword [ebp - 0x20]
call fcn.0046bb64
mov eax, dword [ebp + 0x28]
xor edx, edx
push edx
push eax
lea edx, [ebp - 0x190]
mov eax, 8
call fcn.00449eb8
mov edx, dword [ebp - 0x190]
mov eax, dword [ebp - 0x20]
call fcn.0046bb64
lea edx, [ebp - 0x194]
mov eax, dword [ebp + 0x28]
call dword [ebp + 8]
mov edx, dword [ebp - 0x194]
mov eax, dword [ebp - 0x20]
call fcn.0046bb90
mov edx, 0x46cee0
mov eax, dword [ebp - 0x20]
call fcn.0046bb64
lea edx, [ebp - 0x198]
mov eax, dword [ebp - 0xc]
call fcn.0046b918
mov edx, dword [ebp - 0x198]
mov eax, dword [ebp - 0x20]
call fcn.0046bb90
mov edx, 0x46cf14
mov eax, dword [ebp - 0x20]
call fcn.0046bb64
lea edx, [ebp - 0x19c]
mov eax, dword [ebp - 0x10]
call fcn.0046b918
mov edx, dword [ebp - 0x19c]
mov eax, dword [ebp - 0x20]
call fcn.0046bb90
mov edx, 0x46cf4c
mov eax, dword [ebp - 0x20]
call fcn.0046bb64
mov eax, dword [ebp - 0x30]
xor edx, edx
push edx
push eax
lea edx, [ebp - 0x1a0]
mov eax, 8
call fcn.00449eb8
mov edx, dword [ebp - 0x1a0]
mov eax, dword [ebp - 0x20]
call fcn.0046bb64
lea edx, [ebp - 0x1a4]
mov eax, dword [ebp - 0x30]
call dword [ebp + 8]
mov edx, dword [ebp - 0x1a4]
mov eax, dword [ebp - 0x20]
call fcn.0046bb90
mov edx, 0x46cf68
mov eax, dword [ebp - 0x20]
call fcn.0046bb64
lea edx, [ebp - 0x1a8]
mov eax, dword [ebp - 4]
call fcn.0046b918
mov edx, dword [ebp - 0x1a8]
mov eax, dword [ebp - 0x20]
call fcn.0046bb90
mov edx, 0x46cf8c
mov eax, dword [ebp - 0x20]
call fcn.0046bb64
lea edx, [ebp - 0x1ac]
mov eax, dword [ebp - 8]
call fcn.0046b918
mov edx, dword [ebp - 0x1ac]
mov eax, dword [ebp - 0x20]
call fcn.0046bb90
xor eax, eax
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x18]
call fcn.00405dd0
lea eax, [ebp - 0x1c]
call fcn.00405dd0
cmp dword [ebp + 0x20], 0
je 0x46c902
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x34], eax
jmp 0x46c919
cmp dword [ebp + 0x18], 0
je 0x46c919
push 0
mov eax, dword [ebp + 0x18]
xor ecx, ecx
xor edx, edx
call fcn.0041131c
mov dword [ebp - 0x34], eax
cmp dword [ebp + 0x1c], 0
je 0x46ca20
mov eax, dword [ebp + 0x1c]
mov edx, dword [0x4480dc]
call fcn.00404f7c
test al, al
je 0x46c9c5
xor eax, eax
push ebp
push 0x46c96f
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0x138]
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax]
call fcn.00404cc8
lea edx, [ebp - 0x138]
lea eax, [ebp - 0x18]
call fcn.00406034
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x46c986
xor eax, eax
push ebp
push 0x46c9ac
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x1c]
mov edx, dword [ebp + 0x1c]
mov edx, dword [edx + 4]
call fcn.00405e68
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x46ca20
cmp dword [ebp + 0x1c], 0
je 0x46ca20
xor eax, eax
push ebp
push 0x46ca01
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0x138]
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax]
call fcn.00404cc8
lea edx, [ebp - 0x138]
lea eax, [ebp - 0x18]
call fcn.00406034
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x46ca18
lea eax, [ebp - 0x1c]
call fcn.00405dd0
cmp dword [ebp - 0x18], 0
jne 0x46cbcd
cmp dword [ebp - 0x1c], 0
jne 0x46cbcd
cmp dword [ebp + 0x18], 0
je 0x46cbcd
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
and eax, 0xffff0000
cmp eax, 0xeed0000
jne 0x46cb38
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
cmp eax, 0xeedfade
je 0x46ca9b
cmp eax, 0xeedfadf
je 0x46ca9b
cmp eax, 0xeedfae0
je 0x46ca9b
cmp eax, 0xeedfae1
je 0x46ca9b
cmp eax, 0xeedfae2
je 0x46ca9b
cmp eax, 0xeedfae3
je 0x46ca9b
cmp eax, 0xeedfae4
je 0x46ca9b
cmp eax, 0xeedfae5
je 0x46ca9b
cmp eax, 0xeefface
jne 0x46cb38
mov ebx, dword [ebp + 0x18]
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0x34], eax
xor eax, eax
push ebp
push 0x46cada
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0x138]
mov eax, dword [ebx + 0x18]
mov eax, dword [eax]
call fcn.00404cc8
lea edx, [ebp - 0x138]
lea eax, [ebp - 0x18]
call fcn.00406034
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x46caec
xor eax, eax
push ebp
push 0x46cb26
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 0x18]
mov ebx, dword [eax + 0x18]
mov eax, ebx
mov edx, dword [0x4480dc]
call fcn.00404f7c
test al, al
je 0x46cb1c
lea eax, [ebp - 0x1c]
mov edx, dword [ebx + 4]
call fcn.00405e68
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x46cb38
cmp dword [ebp - 0x18], 0
jne 0x46cbcd
cmp dword [ebp - 0x1c], 0
jne 0x46cbcd
lea eax, [ebp - 0x18]
mov edx, 0x46cfb0
call fcn.00405e68
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
xor edx, edx
push edx
push eax
lea edx, [ebp - 0x1b0]
mov eax, 8
call fcn.00449eb8
mov ecx, dword [ebp - 0x1b0]
lea eax, [ebp - 0x1c]
mov edx, 0x46cfd0
call fcn.00406104
mov eax, dword [ebp + 0x18]
mov ebx, dword [eax + 0x10]
dec ebx
test ebx, ebx
jl 0x46cbcd
inc ebx
xor esi, esi
push dword [ebp - 0x1c]
push 0x46cfec
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + esi*4 + 0x14]
xor edx, edx
push edx
push eax
lea edx, [ebp - 0x1b4]
mov eax, 8
call fcn.00449eb8
push dword [ebp - 0x1b4]
lea eax, [ebp - 0x1c]
mov edx, 3
call fcn.00406180
inc esi
dec ebx
jne 0x46cb93
mov edx, 0x46cff8
mov eax, dword [ebp - 0x20]
call fcn.0046bb64
mov eax, dword [ebp - 0x34]
xor edx, edx
push edx
push eax
lea edx, [ebp - 0x1b8]
mov eax, 8
call fcn.00449eb8
mov edx, dword [ebp - 0x1b8]
mov eax, dword [ebp - 0x20]
call fcn.0046bb64
lea edx, [ebp - 0x1bc]
mov eax, dword [ebp - 0x34]
call dword [ebp + 8]
mov edx, dword [ebp - 0x1bc]
mov eax, dword [ebp - 0x20]
call fcn.0046bb90
mov edx, 0x46d028
mov eax, dword [ebp - 0x20]
call fcn.0046bb64
lea edx, [ebp - 0x1c0]
mov eax, dword [ebp - 0x18]
call fcn.0046b918
mov edx, dword [ebp - 0x1c0]
mov eax, dword [ebp - 0x20]
call fcn.0046bb90
mov edx, 0x46d054
mov eax, dword [ebp - 0x20]
call fcn.0046bb64
lea edx, [ebp - 0x1c4]
mov eax, dword [ebp - 0x1c]
call fcn.0046b918
mov edx, dword [ebp - 0x1c4]
mov eax, dword [ebp - 0x20]
call fcn.0046bb90
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x20]
call fcn.0046bb64
mov edx, 0x46d084
mov eax, dword [ebp - 0x20]
call fcn.0046bb64
cmp dword [ebp + 0xc], 0
jne 0x46cc98
mov edx, 0x46d0c4
mov eax, dword [ebp - 0x20]
call fcn.0046bb64
jmp 0x46cca3
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x20]
call fcn.0046bb64
push 0
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [0x7798a8]
push eax
push 0x7788a8
mov eax, dword [ebp - 0x20]
push eax
call sub.kernel32.dll_WriteFile_1
push ebp
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x20]
call fcn.0046beb0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x46cceb
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x46cd25
lea eax, [ebp - 0x1c4]
mov edx, 0x23
call fcn.00405df4
lea eax, [ebp - 0x38]
call fcn.00405dd0
lea eax, [ebp - 0x1c]
mov edx, 7
call fcn.00405df4
ret