Function at 0x401212
Capabilities:
Write file on windows

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x73c
mov ecx, dword [esp + 0x750]
mov ax, word [0x4889e6]
lea edx, [eax + 1]
mov word [0x4889e6], dx
cwde
xor dword [0x48dcac], eax
call fcn.0041eb10
cmp eax, 0x8060
jb 0x401692
mov ax, word [0x48977c]
add eax, 0xcb0
mov word [0x48977c], ax
mov eax, dword [0x490be8]
shl eax, 7
and eax, 0x9e4d0c00
cmp eax, 0xf3de7ffe
jg 0x401279
and dword [0x490650], 0x9ff5fa76
mov ax, word [0x48a4aa]
lea ecx, [eax - 1]
mov word [0x48a4aa], cx
cwde
mov ecx, dword [0x48df38]
inc ecx
mov dword [0x48df38], ecx
sub eax, ecx
xor eax, 0x468674e6
cmp eax, 0xcb04a40f
jg 0x4012c3
mov ax, word [0x48a10a]
lea ecx, [eax - 1]
mov word [0x48a10a], cx
cwde
mov ecx, 0xdfd855ed
sub ecx, eax
xor dword [0x48fe70], ecx
mov ax, word [0x4885f2]
cwde
shl eax, 3
mov dword [0x48ffdc], eax
lea ebp, [esp + 0x5c5]
push ebp
call fcn.0042bcc7
add esp, 4
mov edi, eax
mov ax, word [0x4888e8]
mov cx, word [0x489066]
mov edx, 0x3f12
sub edx, eax
add edx, ecx
mov word [0x489066], dx
call fcn.00402a87
and al, 3
movzx eax, al
add eax, 7
lea ecx, [esp + edi + 0x5c5]
push eax
push ecx
call fcn.0040aaa4
add esp, 8
mov dword [0x48f18c], 0xb2223281
mov esi, 5
push esi
push 0x548
call fcn.00407b14
add esp, 8
mov edi, eax
xor dword [0x48ec1c], 0x6196ef03
push edi
push ebp
call fcn.0043cda0
add esp, 8
and dword [0x490fb4], 0xd802080
mov eax, 3
push eax
push 0x4787
call fcn.00407b14
add esp, 8
mov ebx, eax
mov ax, word [0x488880]
lea ecx, [eax - 1]
mov word [0x488880], cx
cwde
mov ecx, dword [0x48d254]
mov edx, dword [0x48ce4c]
imul edx, ecx
shl edx, 8
xor edx, eax
mov eax, dword [0x491750]
sub eax, edx
mov dword [0x491750], eax
push edi
push esi
call fcn.00409272
add esp, 8
mov eax, dword [0x48e9a8]
lea ecx, [eax + 1]
mov dword [0x48e9a8], ecx
or eax, 0x83b
mov cx, word [0x4886aa]
xor ecx, eax
mov word [0x4886aa], cx
push ebx
push ebp
call fcn.0043f482
add esp, 8
mov edi, eax
mov eax, dword [0x48f218]
or eax, 0xd860c
xor eax, 0xfff279f3
mov ecx, dword [0x490068]
imul ecx, eax
mov dword [0x490068], ecx
push ebx
mov eax, 3
push eax
call fcn.00409272
add esp, 8
mov eax, dword [0x4906a8]
add eax, 0x813975e2
and eax, 0xb776953e
mov dword [0x48b5e8], eax
test edi, edi
je 0x401641
add dword [0x48ca38], 0x25315282
mov eax, dword [0x491144]
cmp eax, 0x2c2eed3c
je 0x401465
mov eax, dword [0x491508]
imul eax, eax, 0x5712ce7e
mov ecx, dword [0x48aed8]
inc ecx
mov dword [0x48aed8], ecx
sub eax, ecx
mov cx, word [0x487b8a]
imul ecx, eax
mov word [0x487b8a], cx
mov esi, dword [esp + 0x750]
mov ecx, esi
call fcn.0041eb10
mov ebx, eax
mov ecx, esi
call fcn.00417506
push edi
push 1
push ebx
push eax
call fcn.0043fad7
add esp, 0x10
xor dword [0x48c340], 0xef36d7f6
push edi
call fcn.0043fbbd
add esp, 4
add dword [0x48b780], 0x5102d36f
mov ecx, esi
call fcn.004168b6
mov ax, word [0x487808]
or eax, 0x6d24
mov word [0x487808], ax
xor ebx, ebx
mov byte [esp + 0x164], bl
or dword [0x48ad20], 0x8c018024
mov eax, 0x163
lea edi, [esp + 1]
push eax
push edi
push 0
call dword [0x4870fc]
add dword [0x490ca8], 0xe97fe41e
mov byte [esp + 0x5c4], bl
mov dword [0x48b210], 0xb5195d11
push 0x15
push 0x1589
call fcn.00407b14
add esp, 8
mov esi, eax
add dword [0x48bd30], 0xbff9e8f0
lea ebx, [esp + 0x165]
push dword [0x4921f4]
push dword [0x4921dc]
push edi
push esi
push ebx
call fcn.0041d2d2
add esp, 0x14
mov eax, dword [0x48c0d0]
or eax, 0x9200d7b6
mov ecx, dword [0x48dfe0]
or ecx, 0x95a6d82e
cmp eax, ecx
jne 0x40156a
mov ax, word [0x488936]
cwde
sar eax, 7
mov ecx, dword [0x490e4c]
sub ecx, eax
mov dword [0x490e4c], ecx
push esi
push 0x15
call fcn.00409272
add esp, 8
xor dword [0x48f860], 0xfff76dfd
push dword [0x4921f4]
call fcn.00430247
add esp, 4
mov ax, word [0x487e8c]
dec eax
mov word [0x487e8c], ax
cwde
and dword [0x48b4a8], eax
push ebx
push ebp
call fcn.0040569b
add esp, 8
mov ax, word [0x4872fc]
mov eax, dword [0x490de8]
lea ecx, [eax - 1]
mov dword [0x490de8], ecx
mov ecx, 0x26089e79
sub ecx, eax
xor dword [0x48b5ac], ecx
push 0x460
push ebx
call fcn.0040be43
add esp, 8
mov ax, word [0x48a5e8]
and eax, 0x491f
mov word [0x48a5e8], ax
push 0x164
push edi
call fcn.0040be43
add esp, 8
and dword [0x490b50], 0x7e2faffd
push 0x16349
call dword [0x487158]
mov ax, word [0x48a1e2]
add eax, 0xfffffcd4
mov word [0x48a1e2], ax
push ebp
call dword [0x4870a8]
mov eax, dword [0x4901f8]
inc eax
mov dword [0x4901f8], eax
mov cx, word [0x489368]
or ecx, eax
mov word [0x489368], cx
add dword [0x4915d0], 0xab41196d
push 0x177
push ebp
call fcn.0040be43
add esp, 8
mov eax, dword [0x4902a4]
lea ecx, [eax + 1]
mov dword [0x4902a4], ecx
cmp eax, 0xe2044191
jl 0x401680
mov ax, word [0x4898ce]
cwde
sar eax, 8
xor dword [0x490b04], eax
jmp 0x401692
mov ax, word [0x48a90c]
cwde
add eax, 0x799558c1
xor dword [0x48b9a8], eax
mov eax, dword [0x48ad68]
mov cx, word [0x4889a8]
movsx ecx, cx
imul ecx, eax
mov eax, dword [0x48c568]
lea edx, [eax + 1]
mov dword [0x48c568], edx
add ecx, eax
and dword [0x48c048], ecx
add esp, 0x73c
pop esi
pop edi
pop ebx
pop ebp
ret