Function at 0x421c1e
Capabilities:
Write file on windows

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x620
mov esi, dword [esp + 0x634]
or word [0x441aa8], 0x9fbe
mov eax, dword [0x45167c]
inc eax
mov dword [0x45167c], eax
or dword [0x45280c], eax
mov eax, dword [0x44fd40]
shl eax, 0xa
add eax, 0x6be67b34
imul eax, dword [0x44b574]
mov dword [0x44b574], eax
cmp dword [esi + 8], 0x8001
jb 0x42211e
mov eax, dword [0x44fb5c]
imul eax, dword [0x453b34]
mov dword [0x453b34], eax
mov eax, 0xc3bd2456
sub eax, dword [0x450bec]
xor eax, dword [0x453994]
xor dword [0x44b040], eax
mov eax, dword [0x447230]
cmp eax, 0x681dc6a3
jne 0x421cc1
movsx eax, word [0x4466e4]
lea ecx, [eax + 1]
mov word [0x4466e4], cx
mov ecx, 0x31273fa6
sub ecx, eax
add dword [0x4548cc], ecx
add word [0x43f5d2], 0x91eb
lea ebp, [esp + 0x508]
push ebp
call fcn.0040771e
add esp, 4
imul ecx, dword [0x44bc90], 0x7155f75b
mov dword [0x44bc90], ecx
lea edi, [esp + eax + 0x508]
call fcn.0040797e
and al, 3
movzx eax, al
add eax, 7
push eax
push edi
call fcn.00407818
add esp, 8
mov eax, dword [0x44e620]
movsx ecx, word [0x440d7a]
xor ecx, eax
cmp ecx, 0x11526ef0
jl 0x421d33
mov eax, dword [0x453be4]
movzx ecx, word [0x446226]
sub ecx, eax
mov word [0x446226], cx
push 5
push 0x3615
call fcn.004033fd
add esp, 8
mov edi, eax
imul eax, dword [0x44b1a4], 0x97d96dea
cmp eax, 0xcfdffefe
jg 0x421d5f
and dword [0x45192c], 0x9c0c3c25
push edi
push ebp
call sub.msvcrt.dll_strcat
add esp, 8
add dword [0x4525f8], 0xe0870742
push 3
push 0x1cb7
call fcn.004033fd
add esp, 8
mov ebx, eax
add dword [0x4555f8], 0xd13a0aa8
push edi
push 5
call fcn.004065a6
add esp, 8
or dword [0x450890], 0xfcf5afff
push ebx
push ebp
call sub.msvcrt.dll_fopen
add esp, 8
mov edi, eax
movsx eax, word [0x440082]
mov ecx, dword [0x454318]
lea eax, [eax + ecx - 0xcdb6fce]
mov ecx, dword [0x44c5a8]
lea edx, [ecx - 1]
mov dword [0x44c5a8], edx
imul edx, dword [0x454fe0], 0x57cd8100
add edx, ecx
cmp eax, edx
jl 0x421dec
and dword [0x44a150], 0x3a420491
push ebx
push 3
call fcn.004065a6
add esp, 8
or word [0x43f2e2], 0xa353
test edi, edi
je 0x4220ea
movsx eax, word [0x443216]
mov ecx, 0x1b8d5b9f
sub ecx, eax
cmp ecx, 0xdd39efd7
jg 0x421e32
movsx eax, word [0x446392]
mov ecx, 0x27b059d7
sub ecx, eax
xor dword [0x44ead4], ecx
mov eax, dword [0x44a6b8]
inc eax
mov dword [0x44a6b8], eax
xor dword [0x44ebac], eax
and dword [0x44f280], 0x23258d67
movsx eax, word [0x44251e]
mov ecx, dword [0x449f04]
shl ecx, 5
or ecx, 0xed7bfcf3
cmp eax, ecx
jg 0x421e76
imul eax, dword [0x448514], 0x8a0bc412
mov dword [0x448514], eax
mov eax, dword [esi + 4]
mov ecx, dword [0x45167c]
inc ecx
mov dword [0x45167c], ecx
or dword [0x45280c], ecx
mov ecx, dword [0x44fd40]
shl ecx, 0xa
add ecx, 0x6be67b34
imul ecx, dword [0x44b574]
mov dword [0x44b574], ecx
push edi
push 1
push dword [esi + 8]
push eax
call sub.msvcrt.dll_fwrite
add esp, 0x10
add dword [0x44ee90], 0x7c8fa2df
push edi
call sub.msvcrt.dll_fclose
add esp, 4
mov eax, dword [0x4541a0]
cmp eax, 0x8588ccb6
jne 0x421ee2
mov dword [0x448bf0], 0x9c1e7aaf
jmp 0x421f1a
movsx eax, word [0x445f88]
lea ecx, [eax + 1]
mov word [0x445f88], cx
imul eax, eax, 0xb2ed2f4a
mov ecx, dword [0x452320]
dec ecx
mov dword [0x452320], ecx
and ecx, eax
cmp ecx, 0x71897a96
jne 0x421f1a
add dword [0x452d30], 0xec9b1989
mov ecx, esi
push 0
call fcn.004165ee
or dword [0x44c204], 0x562b8e2e
mov byte [esp + 0x106], 0
movzx eax, word [0x44675a]
dec eax
mov word [0x44675a], ax
cwde
or dword [0x44f8ac], eax
lea edi, [esp + 2]
push 0x104
push edi
push 0
call dword [0x43f13c]
movzx eax, word [0x442fb8]
lea ecx, [eax + 1]
mov word [0x442fb8], cx
mov ecx, dword [0x44fb1c]
lea edx, [ecx + 1]
mov dword [0x44fb1c], edx
mov edx, 0x8e50
sub edx, ecx
lea eax, [edx + eax + 1]
movzx ecx, word [0x44348e]
xor ecx, eax
mov word [0x44348e], cx
mov byte [esp + 0x507], 0
mov eax, dword [0x451154]
push 0x15
push 0x1adf
call fcn.004033fd
add esp, 8
mov esi, eax
add dword [0x44d68c], 0xffffdba8
lea ebx, [esp + 0x107]
push dword [0x456160]
push dword [0x456148]
push edi
push esi
push ebx
call sub.msvcrt.dll_sprintf
add esp, 0x14
mov eax, dword [0x453f10]
add eax, 0x3cf7
or eax, 0xbecb
movzx ecx, word [0x4427ec]
and ecx, eax
mov word [0x4427ec], cx
push esi
push 0x15
call fcn.004065a6
add esp, 8
mov eax, dword [0x4497b4]
cmp eax, 0xfdbfff6f
je 0x42201d
mov dword [0x4554c8], 0xe60addc5
push dword [0x456160]
call fcn.00412880
add esp, 4
mov eax, dword [0x449f24]
lea ecx, [eax + 1]
mov dword [0x449f24], ecx
add eax, 0xded0033b
or dword [0x44d6fc], eax
push ebx
push ebp
call fcn.00407d4d
add esp, 8
xor dword [0x446ab8], 0x189eae13
push 0x401
push ebx
call fcn.00407f6b
add esp, 8
mov eax, dword [0x44a720]
dec eax
mov dword [0x44a720], eax
mov word [0x442738], ax
push 0x105
push edi
call fcn.00407f6b
add esp, 8
mov eax, dword [0x4525e4]
movsx ecx, word [0x4422a4]
sub eax, ecx
mov ecx, dword [0x4478b8]
not ecx
add ecx, eax
or dword [0x447fb0], ecx
push 0x15f90
call dword [0x43f198]
mov eax, dword [0x44da5c]
shl eax, 0xa
and eax, 0x5c91d400
movsx ecx, word [0x442caa]
add ecx, 0x9890c766
cmp eax, ecx
jl 0x4220d9
movsx eax, word [0x44397a]
add dword [0x44a120], eax
push ebp
call dword [0x43f0e8]
mov dword [0x4488d8], 0xa862c283
and dword [0x448240], 0xf1e240b4
push 0x118
push ebp
call fcn.00407f6b
add esp, 8
mov eax, dword [0x448c10]
mov eax, 0x76c375b4
and eax, dword [0x451074]
imul eax, dword [0x4549dc]
mov dword [0x4549dc], eax
imul eax, dword [0x44de8c], 0x9bde8d9b
mov dword [0x44de8c], eax
add esp, 0x620
pop esi
pop edi
pop ebx
pop ebp
ret