Function at 0x4456b1
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x10020
call fcn.004c5de0
push ebx
push esi
lea eax, [ebp - 0x1001e]
push edi
push eax
push dword [ebp + 8]
call fcn.0046c0c4
pop ecx
cmp eax, 1
pop ecx
jne 0x445767
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [ebp - 0xfff2]
push eax
call esi
mov ebx, eax
lea eax, [ebp - 0xfff2]
xor edi, edi
test eax, eax
je 0x445721
lea eax, [ebp - 0xfff2]
push eax
call esi
mov esi, eax
inc esi
lea eax, [esi + esi]
add eax, 3
and al, 0xfc
call fcn.004c5de0
mov eax, esp
lea ecx, [ebp - 0xfff2]
push esi
push ecx
push eax
call fcn.00404eef
cmp ebx, edi
lea ecx, [ebp - 0xfff2]
je 0x445741
lea edx, [ebp - 0xfff2]
sub eax, edx
lea edx, [ebx]
mov si, word [eax + ecx]
mov word [ecx], si
inc ecx
inc ecx
dec edx
jne 0x445735
mov eax, dword [ebp + 8]
push edi
push 0x2000000
push 3
mov eax, dword [eax]
push edi
push edi
push SysReAllocStringLen
push eax
mov word [ecx], di
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
mov dword [ebp - 0x14], eax
jne 0x44576e
xor eax, eax
jmp 0x445991
lea eax, [ebx + ebx + 0x30]
lea ecx, [ebp - 4]
mov word [ebp - 0x10020], ax
push edi
movzx eax, ax
push ecx
push eax
lea eax, [ebp - 0x10020]
mov dword [ebp - 0x18], edi
push eax
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x445985
mov ebx, dword [ebp - 4]
xor esi, esi
mov dword [ebp - 0xc], ebx
mov dword [ebp - 8], esi
mov dword [ebp - 0x10], edi
lea eax, [ebp - 0x10]
mov dword [ebp - 0x1c], 0x16
push eax
push edi
lea eax, [ebp + 8]
push edi
push eax
lea eax, [ebp - 0x1001e]
push 0x14
push eax
push dword [ebp - 0x14]
call dword [0x4d9ac0]
test eax, eax
je 0x445913
cmp dword [ebp + 8], edi
je 0x445904
mov esi, dword [ebp - 0x1000e]
xor ebx, ebx
add esi, dword [ebp - 0x10016]
push edi
push 2
adc ebx, dword [ebp - 0x10012]
push ebx
push esi
call fcn.004c5f90
mov dword [ebp - 0x20], eax
mov word [ebp - 0x10020], ax
cmp ebx, edi
mov eax, 0xffea
jg 0x445818
jl 0x445816
cmp esi, eax
jae 0x445818
mov eax, esi
lea ecx, [ebp - 0x10]
push ecx
push edi
lea ecx, [ebp + 8]
push edi
push ecx
push eax
lea eax, [ebp - 0x1000a]
push eax
push dword [ebp - 0x14]
call dword [0x4d9ac0]
test eax, eax
je 0x44590d
call fcn.004712c4
test eax, eax
jne 0x4458b7
mov ecx, dword [ebp - 0x1c]
lea eax, [ebp - 4]
push edi
push eax
mov eax, dword [ebp + 8]
add eax, ecx
push eax
lea eax, [ebp - 0x10020]
push eax
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x4458df
mov eax, dword [ebp - 4]
mov dword [ebp - 0x1c], edi
add dword [ebp - 0xc], eax
adc dword [ebp - 8], edi
sub esi, dword [ebp + 8]
sbb ebx, edi
js 0x4458c2
jg 0x44587f
cmp esi, edi
jbe 0x4458c2
cmp ebx, edi
jl 0x445894
jg 0x44588d
cmp esi, 0x10000
jbe 0x445894
mov eax, 0x10000
jmp 0x445896
mov eax, esi
lea ecx, [ebp - 0x10]
push ecx
push edi
lea ecx, [ebp + 8]
push edi
push ecx
push eax
lea eax, [ebp - 0x10020]
push eax
push dword [ebp - 0x14]
call dword [0x4d9ac0]
test eax, eax
je 0x4458df
jmp 0x44583b
mov eax, dword [ebp + 0x10]
mov dword [eax], 1
jmp 0x4458ec
cmp dword [ebp - 0x20], edi
je 0x4458ec
lea eax, [ebp - 4]
push edi
push eax
lea eax, [ebp - 0x20]
push 1
push eax
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x4458e5
or dword [ebp - 4], 0xffffffff
jmp 0x4458ec
add dword [ebp - 0xc], 1
adc dword [ebp - 8], edi
mov eax, dword [ebp + 0x10]
cmp dword [eax], edi
jne 0x44590d
cmp dword [ebp - 4], 0xffffffff
je 0x44590d
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 8]
jmp 0x4457ab
mov dword [ebp - 0x18], 1
jmp 0x445913
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 8]
cmp dword [ebp - 0x10], edi
je 0x445934
lea eax, [ebp - 0x10]
push eax
push edi
lea eax, [ebp + 8]
push 1
push eax
lea eax, [ebp - 0x10020]
push edi
push eax
push dword [ebp - 0x14]
call dword [0x4d9ac0]
cmp dword [ebp - 0x18], edi
je 0x445960
lea eax, [ebp - 4]
or word [ebp - 0x10020], 0xffff
push edi
push eax
lea eax, [ebp - 0x10020]
push 2
push eax
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_WriteFile]
cmp eax, edi
mov dword [ebp - 0x18], eax
jne 0x445985
lea eax, [ebp - 8]
push 1
neg ebx
push eax
push ebx
push dword [ebp + 0xc]
mov dword [ebp - 0xc], ebx
adc esi, edi
neg esi
mov dword [ebp - 8], esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x18]
lea esp, [ebp - 0x1002c]
pop edi
pop esi
pop ebx
leave
ret