Function at 0x445e90
Capabilities:
Write file on windows

Disassembly:
push edi
push esi
sub esp, 0x7a8
mov eax, dword [esp + 0x7b4]
mov dword [esp + 0x7a4], eax
mov eax, dword [0x496f10]
sar eax, 5
or eax, 0x4c2be5fb
mov ecx, dword [0x49aaa4]
and ecx, eax
mov dword [0x49aaa4], ecx
mov eax, dword [esp + 0x7a4]
mov ecx, eax
call fcn.00441880
cmp eax, 0x8060
jbe 0x4465af
mov ax, word [0x49d68a]
mov cx, ax
inc ecx
mov ax, cx
mov word [0x49d68a], ax
movsx ecx, ax
add ecx, 0x330ec681
xor ecx, 0xbbe2c7d
cmp ecx, 0x5d7fa7d7
jl 0x445f17
mov eax, dword [0x49649c]
or eax, 0x9a8697da
mov dword [0x49649c], eax
mov eax, 0xbaffcfe5
mov ecx, dword [0x498814]
inc ecx
mov dword [0x498814], ecx
cmp eax, ecx
jle 0x445f62
mov eax, 0x5e5c61a0
mov cx, word [0x49ef60]
movsx edx, cx
and edx, 0xff05aed
cmp eax, edx
jle 0x445f5d
mov eax, dword [0x49a860]
or eax, 0xba4e7786
mov dword [0x49a860], eax
jmp 0x445f71
mov eax, dword [0x499354]
add eax, 0x1250158
mov dword [0x499354], eax
mov eax, dword [0x49a62c]
imul eax, eax, 0x557c194
mov dword [0x498c78], eax
mov eax, dword [0x498a78]
dec eax
mov dword [0x498a78], eax
mov ecx, dword [0x498940]
dec ecx
mov dword [0x498940], ecx
cmp eax, ecx
jl 0x445ff1
mov eax, dword [0x4993a0]
mov ecx, eax
inc ecx
mov dword [0x4993a0], ecx
xor eax, 0xa0014822
or eax, 0x5ff417d1
mov ecx, dword [0x49a2dc]
inc ecx
mov dword [0x49a2dc], ecx
and ecx, 0x7c9c13b9
cmp eax, ecx
jl 0x445fec
mov ax, word [0x49f924]
mov cx, ax
and ecx, 0x9497
mov ax, cx
mov word [0x49f924], ax
jmp 0x445ff1
mov eax, esp
lea ecx, [esp + 0x61c]
mov dword [eax], ecx
mov dword [esp + 0x4c], ecx
call fcn.00415550
mov dword [esp + 0x618], eax
mov eax, dword [0x49706c]
add eax, 0x754db839
mov dword [0x49706c], eax
call fcn.00407650
movzx ecx, al
and ecx, 3
add ecx, 7
mov edx, dword [esp + 0x618]
lea edx, [esp + edx + 0x61c]
mov esi, esp
mov dword [esi + 4], ecx
mov dword [esi], edx
call fcn.00403e50
mov ecx, dword [0x49a664]
add ecx, 0x27f48349
mov dword [0x49a664], ecx
mov ecx, esp
mov dword [ecx + 4], 5
mov dword [ecx], 0x2127
call fcn.0043b390
mov dword [esp + 0x7a0], eax
mov di, word [0x49ee74]
mov ax, di
xor eax, 0x33cf
mov di, ax
mov word [0x49ee74], di
mov eax, dword [esp + 0x7a0]
mov ecx, esp
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x4c]
mov dword [ecx], eax
call fcn.00455d30
mov word [0x49fc82], 0xfb9b
mov ecx, esp
mov dword [ecx + 4], 3
mov dword [ecx], 0x3814
mov dword [esp + 0x48], eax
call fcn.0043b390
mov dword [esp + 0x79c], eax
mov di, word [0x49f2c0]
mov ax, di
imul eax, eax, 0x4970acf0
mov di, ax
mov word [0x49f2c0], di
mov eax, dword [esp + 0x7a0]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 5
call fcn.00403dd0
mov eax, dword [0x495bf4]
mov ecx, eax
dec ecx
mov dword [0x495bf4], ecx
mov ecx, 0x87ce544
sub ecx, eax
mov di, word [0x49fb02]
mov ax, di
and eax, ecx
mov di, ax
mov word [0x49fb02], di
mov eax, dword [esp + 0x79c]
mov ecx, esp
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x4c]
mov dword [ecx], eax
call fcn.00455edc
mov dword [esp + 0x794], eax
mov eax, dword [0x499dbc]
mov ecx, eax
dec ecx
mov dword [0x499dbc], ecx
xor eax, 0x6832
or eax, 0x1541
mov di, word [0x49e2d0]
mov cx, di
sub ecx, eax
mov di, cx
mov word [0x49e2d0], di
mov eax, dword [esp + 0x79c]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 3
call fcn.00403dd0
mov di, word [0x49d0b2]
mov ax, di
or eax, 0x761b
mov di, ax
mov word [0x49d0b2], di
cmp dword [esp + 0x794], 0
je 0x44655b
mov eax, 0x1090001b
mov ecx, dword [0x499ed4]
mov edx, ecx
inc edx
mov dword [0x499ed4], edx
mov si, word [0x49ebac]
movsx edx, si
add ecx, edx
mov edx, dword [0x496364]
xor edx, ecx
mov dword [0x496364], edx
mov si, word [0x49fa48]
movsx ecx, si
mov edx, dword [0x49c6b8]
and edx, ecx
mov dword [0x49c6b8], edx
mov ecx, dword [esp + 0x794]
mov edx, dword [esp + 0x7a4]
mov dword [esp + 0x44], ecx
mov ecx, edx
mov dword [esp + 0x40], eax
call fcn.00441880
mov ecx, dword [esp + 0x7a4]
mov dword [esp + 0x3c], eax
call fcn.004131b0
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.0045608f
mov ecx, dword [0x49cae4]
or ecx, 0x7a8d3360
mov dword [0x49cae4], ecx
mov ecx, dword [esp + 0x794]
mov edx, esp
mov dword [edx], ecx
mov dword [esp + 0x38], eax
call fcn.0045617d
mov ecx, dword [0x4992ac]
shl ecx, 7
mov edx, dword [esp + 0x40]
cmp edx, ecx
mov dword [esp + 0x34], eax
jg 0x44628d
mov eax, dword [0x498798]
or eax, 0xd712d9c
mov dword [0x498798], eax
mov ecx, dword [esp + 0x7a4]
call fcn.00401590
mov ecx, dword [0x49a088]
imul ecx, ecx, 0x4220268c
mov dword [0x49a088], ecx
mov byte [esp + 0x1b6], 0
mov dword [0x49ba4c], 0x34e59e5f
mov ecx, dword [0x4958a8]
mov eax, esp
lea edx, [esp + 0x52]
mov dword [eax + 4], edx
mov dword [eax + 8], 0x164
mov dword [eax], 0
mov dword [esp + 0x30], edx
call ecx
sub esp, 0xc
mov ecx, dword [0x49a738]
imul ecx, ecx, 0xa81221c6
mov dword [0x49a738], ecx
mov byte [esp + 0x617], 0
mov ecx, dword [0x49639c]
add ecx, 0xde852b3b
mov dword [0x49639c], ecx
mov ecx, esp
mov dword [ecx + 4], 0x15
mov dword [ecx], 0x1390
mov dword [esp + 0x2c], eax
call fcn.0043b390
mov dword [esp + 0x798], eax
mov eax, dword [0x49c6f0]
not eax
add eax, 0xd3dea988
mov ecx, dword [0x496ca8]
inc ecx
mov dword [0x496ca8], ecx
xor eax, ecx
mov ecx, dword [0x49b8c8]
xor ecx, eax
mov dword [0x49b8c8], ecx
mov eax, dword [0x4a1624]
mov ecx, dword [0x4a160c]
mov edx, dword [esp + 0x798]
mov esi, esp
mov dword [esi + 0x10], eax
mov dword [esi + 0xc], ecx
mov eax, dword [esp + 0x30]
mov dword [esi + 8], eax
mov dword [esi + 4], edx
lea ecx, [esp + 0x1b7]
mov dword [esi], ecx
call fcn.00455baf
mov ecx, dword [0x496c70]
and ecx, 0x2103878
mov dword [0x496c70], ecx
mov ecx, dword [esp + 0x798]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 0x15
mov dword [esp + 0x28], eax
call fcn.00403dd0
mov eax, dword [0x49a6c4]
dec eax
mov dword [0x49a6c4], eax
mov di, word [0x49ea52]
movsx ecx, di
add eax, ecx
or eax, 0x16780a78
cmp eax, 0x37ed6ffa
jle 0x446409
mov eax, 0xdecde05e
mov ecx, dword [0x496684]
and ecx, 0x4d8af879
cmp eax, ecx
jle 0x446404
mov eax, dword [0x4994f0]
xor eax, 0x163f6be
mov dword [0x4994f0], eax
jmp 0x446409
mov eax, 0x6ca2289c
mov ecx, dword [0x4a1624]
mov edx, esp
mov dword [edx], ecx
mov dword [esp + 0x24], eax
call fcn.0041ace0
mov ecx, dword [0x49d090]
xor ecx, 0x4a6090a0
mov dword [0x49d090], ecx
mov ecx, esp
lea edx, [esp + 0x1b7]
mov dword [ecx + 4], edx
lea esi, [esp + 0x61c]
mov dword [ecx], esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], edx
call fcn.0041c0c0
mov eax, dword [0x49915c]
mov ecx, eax
dec ecx
mov dword [0x49915c], ecx
mov ecx, dword [0x496f74]
add eax, ecx
mov di, word [0x49dab4]
mov cx, di
and ecx, eax
mov di, cx
mov word [0x49dab4], di
mov eax, esp
mov ecx, dword [esp + 0x18]
mov dword [eax], ecx
mov dword [eax + 4], 0x461
call fcn.004030c0
mov eax, dword [0x495b70]
add eax, 0xeb63bc80
and eax, 0x6263
mov di, word [0x4a02e2]
mov cx, di
add ecx, eax
mov di, cx
mov word [0x4a02e2], di
mov eax, esp
lea ecx, [esp + 0x52]
mov dword [eax], ecx
mov dword [eax + 4], 0x165
call fcn.004030c0
mov eax, dword [0x49be10]
mov ecx, dword [0x49882c]
add ecx, eax
mov dword [0x49882c], ecx
mov eax, dword [0x495904]
mov ecx, esp
mov dword [ecx], 0x160f8
call eax
sub esp, 4
mov dword [0x4976c4], 0x5bdff3eb
mov eax, dword [0x495854]
mov ecx, esp
mov edx, dword [esp + 0x1c]
mov dword [ecx], edx
call eax
sub esp, 4
mov ecx, dword [0x499f30]
mov edx, dword [esp + 0x24]
cmp edx, ecx
mov dword [esp + 0x14], eax
jl 0x446546
mov ax, word [0x49eee2]
mov cx, ax
or ecx, 0x65e3
mov ax, cx
mov word [0x49eee2], ax
jmp 0x446556
mov eax, dword [0x49cea0]
imul eax, eax, 0xc583f304
mov dword [0x49cea0], eax
jmp 0x44655b
mov eax, dword [0x49907c]
mov cx, word [0x49ffd8]
mov dx, cx
lea eax, [edx + eax*4 + 0x4642ef38]
mov cx, ax
mov word [0x49ffd8], cx
mov eax, esp
lea edx, [esp + 0x61c]
mov dword [eax], edx
mov dword [eax + 4], 0x178
call fcn.004030c0
mov eax, dword [0x499c9c]
inc eax
mov dword [0x499c9c], eax
mov edx, dword [0x495f30]
and eax, edx
and eax, 0xc11e622
mov dword [0x495f30], eax
mov ax, word [0x49e17a]
mov cx, ax
add ecx, 0x406b5905
mov ax, cx
mov word [0x49e17a], ax
add esp, 0x7a8
pop esi
pop edi
ret