Function at 0x421200
Capabilities:
Write file on windows

Disassembly:
push edi
push esi
sub esp, 0x800
mov eax, dword [esp + 0x80c]
mov dword [esp + 0x7fc], eax
mov eax, dword [0x49da54]
add eax, 0x63babba0
mov dword [0x49da54], eax
mov eax, dword [esp + 0x7fc]
mov ecx, eax
call fcn.0041bdd0
cmp eax, 0x807c
jbe 0x4218d1
mov eax, 0xe6025b3b
mov ecx, dword [0x49df34]
imul ecx, ecx, 0x40018262
mov dword [0x49df34], ecx
mov ecx, dword [0x49dfd4]
imul ecx, ecx, 0x886d342
mov dword [0x49dfd4], ecx
mov ecx, dword [0x49e2ac]
xor ecx, 0x7880cb3c
mov dword [0x49e2ac], ecx
mov dx, word [0x4a04c6]
mov cx, dx
xor ecx, 0x4e86
mov dx, cx
mov word [0x4a0408], dx
mov ecx, esp
lea esi, [esp + 0x658]
mov dword [ecx], esi
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], esi
call fcn.0040b430
mov dword [esp + 0x654], eax
mov eax, dword [0x49f32c]
and eax, 0x43dbc027
mov dword [0x49f910], eax
call fcn.004093a0
movzx ecx, al
and ecx, 3
add ecx, 7
mov esi, dword [esp + 0x654]
lea esi, [esp + esi + 0x658]
mov edi, esp
mov dword [edi + 4], ecx
mov dword [edi], esi
call fcn.004241d0
mov dword [0x49f148], 0x63daf33
mov ecx, esp
mov dword [ecx + 4], 5
mov dword [ecx], 0xa593
call fcn.00448630
mov dword [esp + 0x7f8], eax
mov dx, word [0x4a04bc]
mov ax, dx
or eax, 0x561f
mov dx, word [0x4a05da]
mov cx, dx
sub ecx, eax
mov dx, cx
mov word [0x4a05da], dx
mov eax, dword [esp + 0x7f8]
mov ecx, esp
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x4c]
mov dword [ecx], eax
call fcn.004552a0
mov dx, word [0x4a08de]
mov cx, dx
imul ecx, ecx, 0x1f54ec2f
mov dx, cx
mov word [0x4a08de], dx
mov ecx, esp
mov dword [ecx + 4], 3
mov dword [ecx], 0x59de
mov dword [esp + 0x48], eax
call fcn.00448630
mov dword [esp + 0x7f4], eax
mov dx, word [0x49feea]
movsx eax, dx
shl eax, 0xa
xor eax, 0x58c22828
or eax, 0xa31916d6
mov ecx, dword [0x49da50]
imul ecx, eax
mov dword [0x49da50], ecx
mov eax, dword [esp + 0x7f8]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 5
call fcn.0041ee00
mov eax, dword [0x49e604]
inc eax
mov dword [0x49e604], eax
mov ecx, dword [0x49e3e4]
imul ecx, eax
mov dword [0x49e3e4], ecx
mov eax, dword [esp + 0x7f4]
mov ecx, esp
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x4c]
mov dword [ecx], eax
call fcn.00458c73
mov dword [esp + 0x7ec], eax
mov eax, dword [0x49ed6c]
xor eax, 0x7972f91e
mov ecx, dword [0x49f2a4]
sub ecx, eax
mov dword [0x49f2a4], ecx
mov eax, dword [esp + 0x7f4]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 3
call fcn.0041ee00
mov eax, dword [0x49f1f0]
dec eax
mov dword [0x49f1f0], eax
or eax, 0x80b9b5a9
mov ecx, dword [esp + 0x50]
cmp ecx, eax
je 0x42146a
mov eax, dword [0x49e2d4]
dec eax
mov dword [0x49e2d4], eax
mov cx, word [0x4a054e]
movsx edx, cx
imul edx, edx, 0x26e17f6c
xor eax, edx
mov dword [0x49e2d4], eax
jmp 0x42148e
mov eax, dword [0x49dd64]
dec eax
mov dword [0x49dd64], eax
xor eax, 0x8811004
or eax, 0xf76e2e1b
mov ecx, dword [0x49e304]
imul ecx, eax
mov dword [0x49e304], ecx
cmp dword [esp + 0x7ec], 0
je 0x421892
mov eax, dword [0x49ed08]
add eax, 0x5367fab7
mov ecx, dword [0x49eeac]
mov edx, ecx
dec edx
mov dword [0x49eeac], edx
imul ecx, ecx, 0xa901cf4e
sub ecx, 0xa3dc34ba
cmp eax, ecx
jle 0x4214e0
mov ax, word [0x49fda0]
movsx ecx, ax
mov edx, dword [0x49df74]
add edx, ecx
mov dword [0x49df74], edx
mov eax, dword [0x49e094]
cmp eax, 0x7881ff49
jl 0x4214ff
mov eax, dword [0x49e9e8]
and eax, 0x49d7ab76
mov dword [0x49e9e8], eax
mov eax, 0xb5d48f6c
mov ecx, dword [esp + 0x7ec]
mov edx, dword [esp + 0x7fc]
mov dword [esp + 0x44], ecx
mov ecx, edx
mov dword [esp + 0x40], eax
call fcn.0041bdd0
mov ecx, dword [esp + 0x7fc]
mov dword [esp + 0x3c], eax
call fcn.0040c450
mov ecx, esp
mov edx, dword [esp + 0x44]
mov dword [ecx + 0xc], edx
mov edx, dword [esp + 0x3c]
mov dword [ecx + 4], edx
mov dword [ecx], eax
mov dword [ecx + 8], 1
call fcn.00456428
mov ecx, dword [0x49f294]
mov edx, dword [esp + 0x40]
cmp edx, ecx
mov dword [esp + 0x38], eax
jge 0x42159b
mov eax, dword [0x49f08c]
add eax, 0x27762551
mov cx, word [0x49feda]
movsx edx, cx
and edx, 0x7f05cf83
cmp eax, edx
jge 0x421596
mov eax, dword [0x49e01c]
and eax, 0x64f2eefb
mov dword [0x49e01c], eax
jmp 0x42159b
mov eax, 0xdb073c9a
mov ecx, dword [esp + 0x7ec]
mov edx, esp
mov dword [edx], ecx
mov dword [esp + 0x34], eax
call fcn.004583fb
mov ecx, dword [0x49f098]
xor ecx, 0xa5
or ecx, 0x4f5a
mov si, word [0x4a06fe]
mov dx, si
sub edx, ecx
mov si, dx
mov word [0x4a06fe], si
mov ecx, dword [esp + 0x7fc]
mov dword [esp + 0x30], eax
call fcn.00401c70
mov eax, dword [0x49e8f8]
mov si, word [0x49fa7e]
mov cx, si
dec ecx
mov si, cx
movsx ecx, si
and eax, ecx
mov word [0x49fa7e], si
mov ecx, dword [0x49f574]
and eax, ecx
and eax, 0xc5ed8522
mov dword [0x49f574], eax
mov byte [esp + 0x1d6], 0
mov si, word [0x4a0540]
movsx eax, si
and eax, 0x62b95068
mov ecx, dword [0x49f5d0]
or ecx, eax
mov dword [0x49f5d0], ecx
mov eax, dword [0x49d8e8]
mov ecx, esp
lea edx, [esp + 0x56]
mov dword [ecx + 4], edx
mov dword [ecx + 8], 0x180
mov dword [ecx], 0
mov dword [esp + 0x2c], edx
call eax
sub esp, 0xc
mov ecx, dword [0x49dd94]
add ecx, 0xc4581607
mov dword [0x49dd94], ecx
mov byte [esp + 0x653], 0
mov ecx, dword [0x49dcd8]
dec ecx
mov dword [0x49dcd8], ecx
and ecx, 0x90200604
mov edx, dword [0x49da08]
imul edx, ecx
mov dword [0x49da08], edx
mov ecx, esp
mov dword [ecx + 4], 0x15
mov dword [ecx], 0xb32f
mov dword [esp + 0x28], eax
call fcn.00448630
mov dword [esp + 0x7f0], eax
mov eax, dword [0x49f068]
and eax, 0x4294fba5
mov dword [0x49f068], eax
mov eax, dword [0x4a1404]
mov ecx, dword [0x4a13ec]
mov edx, dword [esp + 0x7f0]
mov edi, esp
mov dword [edi + 0x10], eax
mov dword [edi + 0xc], ecx
mov eax, dword [esp + 0x2c]
mov dword [edi + 8], eax
mov dword [edi + 4], edx
lea ecx, [esp + 0x1d7]
mov dword [edi], ecx
mov dword [esp + 0x24], ecx
call fcn.0045548b
mov dword [0x49f4f4], 0xa573c576
mov ecx, dword [esp + 0x7f0]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 0x15
mov dword [esp + 0x20], eax
call fcn.0041ee00
mov eax, dword [0x49e66c]
xor eax, 0xc7ef87ab
mov dword [0x49e66c], eax
mov eax, dword [0x4a1404]
mov ecx, esp
mov dword [ecx], eax
call fcn.0043f2a0
mov si, word [0x4a0276]
mov cx, si
not ecx
or ecx, 0x3a16
mov si, word [0x4a010c]
mov dx, si
add edx, ecx
mov si, dx
mov word [0x4a010c], si
mov ecx, esp
mov edx, dword [esp + 0x24]
mov dword [ecx + 4], edx
lea edi, [esp + 0x658]
mov dword [ecx], edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], edi
call fcn.00448350
mov eax, dword [0x49edec]
and eax, 0x42400100
mov ecx, dword [0x49e580]
xor ecx, eax
mov dword [0x49e580], ecx
mov eax, esp
mov ecx, dword [esp + 0x24]
mov dword [eax], ecx
mov dword [eax + 4], 0x47d
call fcn.0040dc50
mov eax, dword [0x49f2d8]
mov ecx, eax
dec ecx
mov dword [0x49f2d8], ecx
mov ecx, 0x7990312
sub ecx, eax
or ecx, 0xa952
mov si, word [0x49fa14]
mov ax, si
xor eax, ecx
mov si, ax
mov word [0x49fa14], si
mov eax, esp
mov ecx, dword [esp + 0x2c]
mov dword [eax], ecx
mov dword [eax + 4], 0x181
call fcn.0040dc50
mov si, word [0x4a0748]
mov ax, si
add eax, 0x626afc7f
mov si, ax
mov word [0x4a0748], si
mov eax, dword [0x49d944]
mov ecx, esp
mov dword [ecx], 0x162fe
call eax
sub esp, 4
mov eax, dword [0x49de18]
or eax, 0x4ae6776f
mov dword [0x49de18], eax
mov eax, dword [0x49d894]
mov ecx, esp
mov edx, dword [esp + 0x18]
mov dword [ecx], edx
call eax
sub esp, 4
mov si, word [0x49faf8]
mov cx, si
dec ecx
mov si, cx
mov word [0x49faf8], si
movsx ecx, si
sub ecx, 0x3e0e30ea
mov edx, dword [esp + 0x34]
cmp edx, ecx
mov dword [esp + 0x14], eax
jne 0x42188d
mov eax, dword [0x49ecec]
mov ecx, dword [0x49e27c]
sub ecx, eax
mov dword [0x49e27c], ecx
jmp 0x421892
mov eax, dword [0x49f36c]
xor eax, 0xfbcfa17e
mov dword [0x49f36c], eax
mov eax, esp
lea ecx, [esp + 0x658]
mov dword [eax], ecx
mov dword [eax + 4], 0x194
call fcn.0040dc50
mov dx, word [0x4a0712]
mov ax, dx
and eax, 0xf25c
mov dx, ax
mov word [0x4a0712], dx
mov eax, 0x4eb4eb38
mov ecx, dword [0x49e804]
cmp eax, ecx
jge 0x4218fc
mov eax, dword [0x49eb90]
or eax, 0x92c7fc63
mov ecx, dword [0x49f198]
and ecx, eax
mov dword [0x49f198], ecx
add esp, 0x800
pop esi
pop edi
ret