Function at 0x4231b0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
mov edx, 0xffff
push 0xffffffffffffffff
push 0x4de568
push eax
mov dword fs:[0], esp
sub esp, 0x28
push ebx
push edi
mov edi, dword [ebp + 8]
mov ebx, ecx
cmp dx, di
jne 0x4231f0
pop edi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebx + 0x20]
push esi
mov ecx, dword [eax]
test ecx, ecx
je 0x423233
mov edx, dword [ebx + 0x30]
mov esi, dword [edx]
lea eax, [ecx + esi*2]
cmp ecx, eax
jae 0x42322e
lea ecx, [esi - 1]
mov ax, di
mov dword [edx], ecx
mov edx, dword [ebx + 0x20]
mov esi, dword [edx]
lea ecx, [esi + 2]
mov dword [edx], ecx
mov word [esi], di
pop esi
pop edi
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4
mov edx, 0xffff
cmp dword [ebx + 0x4c], 0
jne 0x42324f
pop esi
pop edi
mov ax, dx
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4
mov esi, dword [ebx + 0xc]
lea eax, [ebx + 0x3c]
cmp dword [esi], eax
jne 0x42326f
mov edx, dword [ebx + 0x54]
mov ecx, dword [ebx + 0x50]
sub edx, ecx
mov dword [esi], ecx
mov eax, dword [ebx + 0x1c]
sar edx, 1
mov dword [eax], ecx
mov eax, dword [ebx + 0x2c]
mov dword [eax], edx
cmp dword [ebx + 0x38], 0
jne 0x4232a7
push dword [ebx + 0x4c]
push edi
call fcn.004c6094
mov ecx, 0xffff
add esp, 8
cmp ax, cx
movzx eax, di
jne 0x423434
pop esi
pop edi
mov eax, ecx
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4
movzx eax, di
mov ecx, 0xf
mov dword [ebp - 0x10], eax
xorps xmm0, xmm0
lea eax, [ebp - 0x34]
mov dword [ebp - 0x20], ecx
movq qword [ebp - 0x34], xmm0
mov dword [ebp - 0x24], 8
mov byte [eax + 8], 0
mov dword [ebp - 4], 0
mov esi, dword [ebp - 0x34]
mov edi, dword [ebp - 0x20]
cmp edi, 0x10
lea eax, [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x24]
lea ecx, [ebp - 0x34]
cmovae ecx, esi
lea edx, [ebp - 0x34]
cmovae edx, esi
mov esi, dword [ebx + 0x38]
add eax, ecx
mov ecx, esi
push eax
push edx
mov edi, dword [esi]
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0xe]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebx + 0x40]
push eax
call dword [edi + 0x1c]
test eax, eax
js 0x4233f4
cmp eax, 1
jg 0x4233b3
mov edi, dword [ebp - 0x20]
lea eax, [ebp - 0x34]
mov esi, dword [ebp - 0x34]
cmp edi, 0x10
mov ecx, dword [ebp - 0x14]
cmovae eax, esi
sub ecx, eax
mov dword [ebp - 0x18], ecx
je 0x42335b
push dword [ebx + 0x4c]
cmp edi, 0x10
lea eax, [ebp - 0x34]
push ecx
cmovae eax, esi
push 1
push eax
call fcn.004c0114
mov ecx, dword [ebp - 0x18]
add esp, 0x10
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x34]
cmp ecx, eax
jne 0x423385
lea eax, [ebp - 0x10]
mov byte [ebx + 0x3e], 1
cmp dword [ebp - 0x1c], eax
jne 0x4233a2
test ecx, ecx
jne 0x4232d8
cmp dword [ebp - 0x24], 0x20
jae 0x423395
push ecx
push 8
lea ecx, [ebp - 0x34]
call fcn.00407ae0
jmp 0x4232d2
mov eax, 0xffff
movzx eax, ax
movzx eax, ax
movzx ebx, ax
jmp 0x4233ff
mov eax, 0xffff
movzx eax, ax
movzx ebx, ax
jmp 0x4233ff
mov eax, dword [ebp + 8]
movzx eax, ax
movzx eax, ax
movzx eax, ax
movzx ebx, ax
jmp 0x4233ff
cmp eax, 3
jne 0x4233f4
push dword [ebx + 0x4c]
push dword [ebp - 0x10]
call fcn.004c6094
mov ecx, 0xffff
add esp, 8
cmp ax, cx
je 0x4233e4
mov eax, dword [ebp + 8]
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x34]
movzx eax, ax
movzx eax, ax
movzx ebx, ax
jmp 0x4233ff
mov edi, dword [ebp - 0x20]
mov eax, ecx
mov esi, dword [ebp - 0x34]
movzx eax, ax
movzx ebx, ax
jmp 0x4233ff
mov edi, dword [ebp - 0x20]
mov ebx, 0xffff
mov esi, dword [ebp - 0x34]
cmp edi, 0x10
jb 0x423431
lea eax, [edi + 1]
mov ecx, esi
cmp eax, 0x1000
jb 0x423428
test cl, 0x1f
jne 0x423447
mov esi, dword [esi - 4]
cmp esi, ecx
jae 0x42344c
sub ecx, esi
cmp ecx, 4
jb 0x423451
cmp ecx, 0x23
ja 0x423456
push esi
call fcn.004943b0
add esp, 4
mov ax, bx
mov ecx, dword [ebp - 0xc]
pop esi
pop edi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4
call fcn.004af5bc
call fcn.004af5bc
call fcn.004af5bc
call fcn.004af5bc
int3