Function at 0x440a10
Capabilities:
Write file on windows

Disassembly:
push esi
sub esp, 0x2c
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], ecx
mov word [0x490a9e], 0xa1fb
mov eax, dword [0x4abcd8]
or eax, 0x217b6c54
mov dword [0x4abcd8], eax
cmp dword [0x4ae240], 0
jne 0x440a83
mov eax, dword [0x4a3330]
imul eax, eax, 0xbfd068f5
mov dword [0x4a3330], eax
call fcn.0044a950
mov dword [0x4ae240], eax
mov eax, dword [0x4aaf70]
mov cx, word [0x493922]
mov dx, cx
lea eax, [eax + edx - 0x59fcd757]
mov cx, ax
mov word [0x493922], cx
mov eax, dword [0x4ab9a8]
mov ecx, eax
inc ecx
mov dword [0x4ab9a8], ecx
mov ecx, dword [0x4a1600]
and ecx, eax
mov dword [0x4a1600], ecx
mov eax, esp
mov dword [eax + 4], 3
mov dword [eax], 0x3ccf
call fcn.004033e0
mov dword [esp + 0x20], eax
mov eax, dword [0x4a32dc]
or eax, 0xbcbea58
mov dword [0x4a32dc], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, esp
mov dword [edx + 4], eax
mov dword [edx], ecx
call fcn.004545d1
mov dword [esp + 0x18], eax
mov si, word [0x493544]
mov ax, si
xor eax, 0x7205
mov si, ax
mov word [0x493544], si
mov eax, dword [esp + 0x20]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 3
call fcn.0043ade0
mov eax, dword [0x49c4c0]
or eax, 0x95873730
mov dword [0x49c4c0], eax
cmp dword [esp + 0x18], 0
jne 0x440c64
mov ax, word [0x493df0]
mov cx, ax
inc ecx
mov ax, cx
mov word [0x493df0], ax
movsx ecx, ax
mov ax, word [0x492714]
movsx edx, ax
shl edx, 8
xor ecx, edx
mov edx, dword [0x49f93c]
xor edx, 0xffffffff
xor edx, 0x707891b6
cmp ecx, edx
jle 0x440b86
mov eax, dword [0x4a7024]
dec eax
mov dword [0x4a7024], eax
or eax, 0x7ed3
mov cx, word [0x497760]
mov dx, cx
add edx, eax
mov cx, dx
mov word [0x497760], cx
mov eax, dword [0x48f664]
mov ecx, esp
mov dword [ecx], 0x43a
call eax
sub esp, 4
mov eax, dword [0x4ac2f4]
not eax
mov ecx, dword [0x4a899c]
imul ecx, eax
shl ecx, 5
mov dx, word [0x496f44]
mov ax, dx
inc eax
mov dx, ax
mov word [0x496f44], dx
movsx eax, dx
sub ecx, eax
mov eax, dword [0x49da94]
imul eax, ecx
mov dword [0x49da94], eax
mov eax, esp
mov dword [eax + 4], 3
mov dword [eax], 0x3ccf
call fcn.004033e0
mov dword [esp + 0x1c], eax
mov eax, dword [0x4a5820]
add eax, 0xc7ccd030
mov dword [0x4a5820], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
mov esi, esp
mov dword [esi + 4], eax
mov dword [esi], ecx
call fcn.004545d1
mov dword [esp + 0x18], eax
mov dx, word [0x49584c]
mov ax, dx
or eax, 0x8f3b
mov dx, word [0x48fc10]
mov cx, dx
sub ecx, eax
mov dx, cx
mov word [0x48fc10], dx
mov eax, dword [esp + 0x1c]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 3
call fcn.0043ade0
mov eax, dword [0x4a8e28]
sar eax, 6
mov ecx, dword [0x4a7950]
or eax, ecx
or eax, 0x7fb22490
mov dword [0x4a7950], eax
mov eax, dword [0x4a3398]
mov ecx, dword [0x4a70f8]
or ecx, eax
mov dword [0x4a70f8], ecx
cmp dword [esp + 0x18], 0
je 0x440d31
mov eax, 0x73bc49bc
mov ecx, dword [0x4a2850]
inc ecx
mov dword [0x4a2850], ecx
mov edx, dword [0x4ac1b8]
add edx, edx
mov esi, dword [0x49ed70]
add edx, esi
or ecx, edx
cmp eax, ecx
jge 0x440cc6
mov ax, word [0x493d7c]
mov cx, ax
add ecx, 0xbb70eddc
mov ax, cx
mov word [0x493d7c], ax
mov eax, dword [esp + 0x18]
mov ecx, esp
mov dword [ecx + 0xc], eax
mov dword [ecx + 8], 1
mov dword [ecx + 4], 4
mov dword [ecx], 0x4ae240
call fcn.00454784
mov ecx, dword [0x4ad43c]
imul ecx, ecx, 0x9283561e
mov dword [0x4ad43c], ecx
mov ecx, dword [esp + 0x18]
mov edx, esp
mov dword [edx], ecx
mov dword [esp + 0x14], eax
call fcn.00454872
mov si, word [0x494f7c]
movsx ecx, si
sar ecx, 0xa
and ecx, 0x4e0fe48c
mov edx, dword [0x4a6abc]
imul edx, ecx
mov dword [0x4a6abc], edx
mov dword [esp + 0x10], eax
mov eax, dword [0x4a8ed8]
imul eax, eax, 0xbb419e00
neg eax
mov ecx, dword [0x4a237c]
lea eax, [ecx + eax - 0x17f0367]
mov dword [0x4a237c], eax
add esp, 0x2c
pop esi
ret