Function at 0x459070
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x134
mov eax, dword [0x55e2f4]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
push 0x180000
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x11c], 0
call fcn.004f1588
mov ebx, eax
add esp, 4
mov dword [ebp - 0x110], ebx
test ebx, ebx
jne 0x4590cb
mov dword [ebp - 0x10c], 1
jmp 0x459387
push 0x180000
call fcn.004f1588
mov edi, eax
add esp, 4
mov dword [ebp - 0x11c], edi
test edi, edi
jne 0x4590f3
mov dword [ebp - 0x10c], 1
jmp 0x459387
call fcn.004b81c0
mov dword [ebp - 0x118], eax
test eax, eax
jne 0x459111
mov dword [ebp - 0x10c], 2
jmp 0x459387
mov esi, dword [sym.imp.KERNEL32.DLL_VirtualLock]
lea eax, [ebp - 0x104]
push 0x100
push eax
call esi
push 3
lea eax, [ebp - 0x108]
push eax
call esi
push 0x180000
push ebx
call esi
push 0x180000
push edi
call esi
mov esi, dword [ebp - 0x118]
lea eax, [ebp - 0x104]
push 1
push 0x100
push eax
mov dword [esi], 1
mov dword [esi + 4], 1
call fcn.004bfdb0
add esp, 0xc
test eax, eax
jne 0x45917c
mov dword [ebp - 0x10c], 0x12
jmp 0x459387
lea eax, [ebp - 0x104]
push eax
push esi
call fcn.004b6f80
add esp, 8
mov dword [ebp - 0x10c], eax
test eax, eax
jne 0x459387
push esi
push 0xc00
lea eax, [ebp - 0x128]
push eax
push edi
call fcn.004b7a50
mov ax, word [edi]
mov ecx, 0x100
mov word [ebp - 0x108], ax
add esp, 0x10
mov al, byte [edi + 2]
mov esi, ecx
mov byte [ebp - 0x106], al
lea eax, [ebp - 0x104]
mov edx, eax
mov byte [edx], 0
lea edx, [edx + 1]
sub esi, 1
jne 0x4591d2
nop dword [eax]
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x4591e0
mov edi, dword [ebp + 0x10]
xorps xmm0, xmm0
movlpd qword [ebp - 0x130], xmm0
test edi, edi
jb 0x459387
mov edx, dword [ebp + 0xc]
ja 0x45920e
test edx, edx
je 0x459387
mov esi, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x130]
mov dword [ebp - 0x114], esi
mov ecx, ebx
mov eax, esi
add ecx, 0x180000
adc eax, 0
cmp eax, edi
jb 0x45923d
ja 0x459237
cmp ecx, edx
jbe 0x45923d
mov esi, edx
sub esi, ebx
jmp 0x459242
mov esi, 0x180000
push dword [ebp + 0x14]
mov edi, 1
call fcn.0042d840
add esp, 4
cmp eax, edi
jl 0x45931f
nop word [eax + eax]
push esi
push dword [ebp - 0x110]
lea eax, [ebp - 0x108]
push edi
push eax
push dword [ebp + 0x14]
call fcn.0042da00
add esp, 0x14
test eax, eax
jne 0x4592cc
mov ecx, dword [ebp - 0x114]
mov eax, ebx
push dword [ebp - 0x118]
shrd eax, ecx, 9
mov dword [ebp - 0x128], eax
mov eax, esi
shr eax, 9
push eax
lea eax, [ebp - 0x128]
shr ecx, 9
push eax
push dword [ebp - 0x11c]
mov dword [ebp - 0x124], ecx
call fcn.004b7a50
push esi
push dword [ebp - 0x11c]
push dword [ebp - 0x110]
call fcn.004e4130
add esp, 0x1c
push 0
push 0
push dword [ebp - 0x114]
push ebx
push dword [ebp - 0x120]
call dword [sym.imp.KERNEL32.DLL_SetFilePointerEx]
test eax, eax
je 0x45936b
push 0
lea eax, [ebp - 0x134]
push eax
push esi
push dword [ebp - 0x110]
push dword [ebp - 0x120]
call dword [sym.imp.KERNEL32.DLL_WriteFile]
test eax, eax
je 0x45936b
push dword [ebp + 0x14]
inc edi
call fcn.0042d840
add esp, 4
cmp edi, eax
jle 0x459260
add ebx, esi
mov esi, dword [ebp - 0x114]
adc esi, 0
cmp dword [0x56f870], 0
push esi
mov dword [ebp - 0x114], esi
push ebx
jne 0x459342
call fcn.0041efe0
jmp 0x459347
call fcn.00459cd0
mov eax, dword [ebp + 0x18]
add esp, 8
cmp dword [eax], 0
jne 0x459377
mov edi, dword [ebp + 0x10]
cmp esi, edi
ja 0x459381
mov edx, dword [ebp + 0xc]
jb 0x459220
cmp ebx, edx
jae 0x459381
jmp 0x459220
mov dword [ebp - 0x10c], 1
jmp 0x459381
mov dword [ebp - 0x10c], 0x21
mov ebx, dword [ebp - 0x110]
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x118]
test eax, eax
je 0x4593a6
push eax
call fcn.004b8120
add esp, 4
lea ecx, [ebp - 0x104]
mov eax, 0x100
mov esi, eax
mov edx, ecx
mov byte [edx], 0
lea edx, [edx + 1]
sub esi, 1
jne 0x4593b5
mov byte [ecx], 0
lea ecx, [ecx + 1]
sub eax, 1
jne 0x4593c0
mov edi, dword [sym.imp.KERNEL32.DLL_VirtualUnlock]
lea eax, [ebp - 0x104]
push 0x100
push eax
call edi
lea eax, [ebp - 0x108]
mov ecx, 3
mov esi, ecx
mov edx, eax
nop
mov byte [edx], 0
lea edx, [edx + 1]
sub esi, 1
jne 0x4593f0
nop dword [eax + eax]
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x459400
push 3
lea eax, [ebp - 0x108]
push eax
call edi
mov edi, dword [ebp - 0x11c]
test edi, edi
je 0x459454
mov ecx, 0x180000
mov eax, edi
mov esi, ecx
mov edx, edi
nop dword [eax + eax]
mov byte [edx], 0
lea edx, [edx + 1]
sub esi, 1
jne 0x459430
nop dword [eax + eax]
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x459440
push edi
call fcn.004ec0b7
add esp, 4
test ebx, ebx
je 0x459484
mov ecx, 0x180000
mov eax, ebx
mov esi, ecx
mov edx, ebx
mov byte [edx], 0
lea edx, [edx + 1]
sub esi, 1
jne 0x459463
nop
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x459470
push ebx
call fcn.004ec0b7
add esp, 4
push dword [ebp - 0x120]
call dword [sym.imp.KERNEL32.DLL_SetLastError]
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x10c]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.004e1f40
mov esp, ebp
pop ebp
ret