Function at 0x458ae0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x4158
call fcn.004e1f60
mov eax, dword [0x55e2f4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
xor esi, esi
push 0x180000
mov dword [ebp - 0x4128], edi
mov dword [ebp - 0x4120], esi
call fcn.004f1588
mov ebx, eax
add esp, 4
mov dword [ebp - 0x4130], ebx
test ebx, ebx
jne 0x458b33
mov dword [ebp - 0x411c], 1
jmp 0x458f35
push 0x180000
call fcn.004f1588
mov esi, eax
add esp, 4
mov dword [ebp - 0x4120], esi
test esi, esi
jne 0x458b5b
mov dword [ebp - 0x411c], 1
jmp 0x458f35
call fcn.004b81c0
mov esi, eax
mov dword [ebp - 0x412c], esi
test esi, esi
jne 0x458b7b
mov dword [ebp - 0x411c], 2
jmp 0x458f35
mov esi, dword [sym.imp.KERNEL32.DLL_VirtualLock]
lea eax, [ebp - 0x104]
push 0x100
push eax
call esi
push 3
lea eax, [ebp - 0x4118]
push eax
call esi
push 0x180000
push ebx
call esi
mov ebx, dword [ebp - 0x4120]
push 0x180000
push ebx
call esi
mov esi, dword [ebp - 0x412c]
lea eax, [ebp - 0x104]
push 1
push 0x100
push eax
mov dword [esi], 1
mov dword [esi + 0x43ec], 1
mov dword [esi + 4], 1
call fcn.004bfdb0
add esp, 0xc
test eax, eax
jne 0x458bf6
mov dword [ebp - 0x411c], 0x12
jmp 0x458f35
lea eax, [ebp - 0x104]
push eax
push esi
call fcn.004b6f80
add esp, 8
mov dword [ebp - 0x411c], eax
test eax, eax
jne 0x458f35
push esi
push 0xc00
lea eax, [ebp - 0x4154]
push eax
push ebx
call fcn.004b7a50
mov ax, word [ebx]
mov ecx, 0x100
mov word [ebp - 0x4118], ax
add esp, 0x10
mov al, byte [ebx + 2]
mov esi, ecx
mov byte [ebp - 0x4116], al
lea eax, [ebp - 0x104]
mov edx, eax
nop dword [eax]
mov byte [edx], 0
lea edx, [edx + 1]
sub esi, 1
jne 0x458c50
nop dword [eax + eax]
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x458c60
mov eax, dword [ebp + 0xc]
xorps xmm0, xmm0
mov dword [ebp - 0x410c], eax
mov eax, dword [ebp + 0x10]
movlpd qword [ebp - 0x4114], xmm0
mov dword [ebp - 0x4108], eax
nop dword [eax + eax]
push 0
lea eax, [ebp - 0x4144]
push eax
push 0x4000
lea eax, [ebp - 0x4104]
push eax
push 0x10
lea eax, [ebp - 0x4114]
push eax
push 0x940cf
push edi
call dword [sym.imp.KERNEL32.DLL_DeviceIoControl]
mov dword [ebp - 0x414c], eax
test eax, eax
jne 0x458cd5
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp eax, 0xea
jne 0x458f06
mov ecx, dword [ebp - 0x4144]
shr ecx, 4
mov dword [ebp - 0x413c], ecx
mov dword [ebp - 0x4140], 0
test ecx, ecx
je 0x458efd
lea eax, [ebp - 0x40fc]
mov dword [ebp - 0x4134], eax
mov ebx, dword [eax - 8]
mov edx, ebx
mov esi, dword [eax - 4]
mov edi, esi
add edx, dword [eax]
mov dword [ebp - 0x4124], esi
adc edi, dword [eax + 4]
mov dword [ebp - 0x4138], edx
mov dword [ebp - 0x4148], edi
cmp esi, edi
ja 0x458e94
jb 0x458d35
cmp ebx, edx
jae 0x458e94
mov ecx, ebx
mov eax, esi
add ecx, 0x180000
adc eax, 0
cmp eax, edi
jb 0x458d52
ja 0x458d4c
cmp ecx, edx
jbe 0x458d52
mov esi, edx
sub esi, ebx
jmp 0x458d57
mov esi, 0x180000
push dword [ebp + 0x14]
mov edi, 1
call fcn.0042d840
add esp, 4
cmp eax, edi
jl 0x458e33
nop
push esi
push dword [ebp - 0x4130]
lea eax, [ebp - 0x4118]
push edi
push eax
push dword [ebp + 0x14]
call fcn.0042da00
add esp, 0x14
test eax, eax
jne 0x458ddc
mov ecx, dword [ebp - 0x4124]
mov eax, ebx
push dword [ebp - 0x412c]
shrd eax, ecx, 9
mov dword [ebp - 0x4154], eax
mov eax, esi
shr eax, 9
push eax
lea eax, [ebp - 0x4154]
shr ecx, 9
push eax
push dword [ebp - 0x4120]
mov dword [ebp - 0x4150], ecx
call fcn.004b7a50
push esi
push dword [ebp - 0x4120]
push dword [ebp - 0x4130]
call fcn.004e4130
add esp, 0x1c
push 0
push 0
push dword [ebp - 0x4124]
push ebx
push dword [ebp - 0x4128]
call dword [sym.imp.KERNEL32.DLL_SetFilePointerEx]
test eax, eax
je 0x458f19
push 0
lea eax, [ebp - 0x4158]
push eax
push esi
push dword [ebp - 0x4130]
push dword [ebp - 0x4128]
call dword [sym.imp.KERNEL32.DLL_WriteFile]
test eax, eax
je 0x458f19
push dword [ebp + 0x14]
inc edi
call fcn.0042d840
add esp, 4
cmp edi, eax
jle 0x458d70
add ebx, esi
mov esi, dword [ebp - 0x4124]
adc esi, 0
cmp dword [0x56f870], 0
push esi
mov dword [ebp - 0x4124], esi
push ebx
jne 0x458e56
call fcn.0041efe0
jmp 0x458e5b
call fcn.00459cd0
mov eax, dword [ebp + 0x18]
add esp, 8
cmp dword [eax], 0
jne 0x458f25
mov edi, dword [ebp - 0x4148]
mov edx, dword [ebp - 0x4138]
cmp esi, edi
jb 0x458d35
ja 0x458e88
cmp ebx, edx
jb 0x458d35
mov ecx, dword [ebp - 0x413c]
mov eax, dword [ebp - 0x4134]
mov edx, dword [ebp - 0x4140]
add eax, 0x10
inc edx
mov dword [ebp - 0x4134], eax
mov dword [ebp - 0x4140], edx
cmp edx, ecx
jb 0x458d02
mov edi, dword [ebp - 0x4128]
test ecx, ecx
je 0x458efd
shl ecx, 4
mov eax, dword [ebp + ecx - 0x410c]
add eax, dword [ebp + ecx - 0x4114]
mov edx, dword [ebp + ecx - 0x4108]
adc edx, dword [ebp + ecx - 0x4110]
mov ecx, dword [ebp + 0xc]
sub ecx, eax
mov dword [ebp - 0x4114], eax
mov eax, dword [ebp + 0x10]
sbb eax, edx
mov dword [ebp - 0x4110], edx
mov dword [ebp - 0x410c], ecx
mov dword [ebp - 0x4108], eax
cmp dword [ebp - 0x414c], 0
jne 0x458f2f
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp eax, 0xea
je 0x458c90
jmp 0x458f2f
mov dword [ebp - 0x411c], 1
jmp 0x458f2f
mov dword [ebp - 0x411c], 0x21
mov esi, dword [ebp - 0x412c]
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov ebx, eax
test esi, esi
je 0x458f4a
push esi
call fcn.004b8120
add esp, 4
lea ecx, [ebp - 0x104]
mov eax, 0x100
mov esi, eax
mov edx, ecx
nop dword [eax]
mov byte [edx], 0
lea edx, [edx + 1]
sub esi, 1
jne 0x458f60
nop dword [eax + eax]
mov byte [ecx], 0
lea ecx, [ecx + 1]
sub eax, 1
jne 0x458f70
mov edi, dword [sym.imp.KERNEL32.DLL_VirtualUnlock]
lea eax, [ebp - 0x104]
push 0x100
push eax
call edi
lea eax, [ebp - 0x4118]
mov ecx, 3
mov esi, ecx
mov edx, eax
nop
mov byte [edx], 0
lea edx, [edx + 1]
sub esi, 1
jne 0x458fa0
nop dword [eax + eax]
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x458fb0
push 3
lea eax, [ebp - 0x4118]
push eax
call edi
mov edi, dword [ebp - 0x4120]
test edi, edi
je 0x459004
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 0x458fe0
nop dword [eax + eax]
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x458ff0
push edi
call fcn.004ec0b7
add esp, 4
mov edi, dword [ebp - 0x4130]
test edi, edi
je 0x459044
mov ecx, 0x180000
mov eax, edi
mov esi, ecx
mov edx, edi
nop dword [eax]
mov byte [edx], 0
lea edx, [edx + 1]
sub esi, 1
jne 0x459020
nop dword [eax + eax]
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x459030
push edi
call fcn.004ec0b7
add esp, 4
push ebx
call dword [sym.imp.KERNEL32.DLL_SetLastError]
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x411c]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.004e1f40
mov esp, ebp
pop ebp
ret