Function at 0x40fa10
Capabilities:
Write file on windows

Disassembly:
push edi
push esi
sub esp, 0x34
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], ecx
mov eax, dword [0x49700c]
add eax, 0x42c08c
mov dword [0x49700c], eax
mov eax, dword [0x49fd78]
and eax, 0x5f7d6b41
mov dword [0x49fd78], eax
cmp dword [0x4a9374], 0
jne 0x40fb33
mov eax, dword [0x4a0628]
sar eax, 7
imul eax, eax, 0xa22c5f90
sub eax, 0x4020de9f
cmp eax, 0xed7ca2ec
jne 0x40fa7d
mov eax, dword [0x49c5dc]
or eax, 0x8ff222f5
mov dword [0x49c5dc], eax
mov eax, 0xbe312583
mov dword [esp + 0x1c], eax
call fcn.004162e0
mov dword [0x4a9374], eax
mov eax, dword [0x497858]
mov cx, word [0x4a82ce]
movsx edx, cx
or eax, edx
mov edx, dword [esp + 0x1c]
cmp edx, eax
jg 0x40faf8
mov eax, 0x6454e7c
mov ecx, dword [0x4999b0]
sub ecx, 0x7b4da58e
sub ecx, 0x55765039
cmp eax, ecx
jge 0x40faf3
mov eax, dword [0x496454]
sar eax, 5
add eax, 0xc5d7309b
xor eax, 0x4171acc0
cmp eax, 0x1ac878f9
jge 0x40faee
jmp 0x40faee
jmp 0x40faf3
jmp 0x40fb2e
mov eax, dword [0x49607c]
mov ecx, eax
inc ecx
mov dword [0x49607c], ecx
mov ecx, dword [0x4a0ee8]
imul ecx, ecx, 0x3da76de
neg ecx
lea eax, [eax + ecx + 1]
mov dx, word [0x4a67d4]
mov cx, dx
or ecx, eax
mov dx, cx
mov word [0x4a67d4], dx
jmp 0x40fb33
mov eax, dword [0x4965dc]
mov cx, word [0x4a396e]
mov dx, cx
dec edx
mov si, dx
mov word [0x4a396e], si
movsx edx, cx
add edx, 0xcda38f42
xor eax, edx
mov edx, dword [0x498f2c]
xor edx, eax
mov dword [0x498f2c], edx
mov eax, esp
mov dword [eax + 4], 3
mov dword [eax], 0x1272
call fcn.00416c10
mov dword [esp + 0x28], eax
mov eax, dword [0x499bb8]
mov edx, eax
dec edx
mov dword [0x499bb8], edx
add eax, 0xf6ecb35
mov edx, dword [0x4a0ed8]
mov edi, edx
dec edi
mov dword [0x4a0ed8], edi
or eax, edx
mov edx, dword [0x495090]
and edx, eax
mov dword [0x495090], edx
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov edi, esp
mov dword [edi + 4], eax
mov dword [edi], edx
call fcn.004564b0
mov dword [esp + 0x20], eax
mov cx, word [0x4a2b0c]
movsx eax, cx
and eax, 0x1288f466
mov edx, dword [0x49f98c]
add edx, eax
mov dword [0x49f98c], edx
mov eax, dword [esp + 0x28]
mov edx, esp
mov dword [edx + 4], eax
mov dword [edx], 3
call fcn.004097d0
mov eax, dword [0x498848]
add eax, 0x79f9ff60
mov dword [0x498848], eax
cmp dword [esp + 0x20], 0
jne 0x40fd12
mov eax, 0x6b67be4c
mov ecx, dword [0x49b4f8]
mov edx, ecx
dec edx
mov dword [0x49b4f8], edx
mov edx, dword [0x4979c8]
sub edx, ecx
mov dword [0x4979c8], edx
mov ecx, dword [0x493ca4]
mov edx, esp
mov dword [edx], 0x40a
mov dword [esp + 0x18], eax
call ecx
sub esp, 4
mov eax, dword [0x496a50]
add eax, 0x9e778d90
mov ecx, dword [0x4a17c8]
and eax, ecx
mov ecx, dword [0x49ff2c]
sub ecx, eax
mov dword [0x49ff2c], ecx
mov eax, esp
mov dword [eax + 4], 3
mov dword [eax], 0x1272
call fcn.00416c10
mov dword [esp + 0x24], eax
mov eax, dword [0x49d7d4]
mov ecx, eax
dec ecx
mov dword [0x49d7d4], ecx
mov ecx, dword [0x49ec78]
imul ecx, eax
mov dword [0x49ec78], ecx
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
mov edx, esp
mov dword [edx + 4], eax
mov dword [edx], ecx
call fcn.004564b0
mov dword [esp + 0x20], eax
mov eax, dword [0x4990a0]
dec eax
mov dword [0x4990a0], eax
or eax, 0x3b0cb6eb
mov ecx, dword [esp + 0x18]
cmp ecx, eax
jge 0x40fce4
mov eax, dword [0x49dbb0]
xor eax, 0x3805070e
mov dword [0x49dbb0], eax
mov eax, dword [esp + 0x24]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 3
call fcn.004097d0
mov dx, word [0x4a3d9e]
mov ax, dx
imul eax, eax, 0xe14de4f9
mov dx, ax
mov word [0x4a3d9e], dx
mov eax, dword [0x49eef4]
and eax, 0x1886ff88
mov dword [0x49eef4], eax
cmp dword [esp + 0x20], 0
je 0x40fdf4
mov eax, dword [0x49fe3c]
mov ecx, eax
dec ecx
mov dword [0x49fe3c], ecx
add eax, 0xff351cf7
mov dx, word [0x4a2b9e]
movsx ecx, dx
shl ecx, 0xa
or ecx, 0xa28f2bbf
cmp eax, ecx
jg 0x40fd6e
mov eax, dword [0x49dfe0]
add eax, 0x93b02fe5
mov dword [0x49dfe0], eax
jmp 0x40fd99
mov ax, word [0x4a74e0]
mov cx, ax
dec ecx
mov ax, cx
mov word [0x4a74e0], ax
movsx ecx, ax
mov edx, dword [0x49560c]
imul ecx, edx
imul ecx, ecx, 0xf9656c74
mov dword [0x49560c], ecx
mov eax, dword [esp + 0x20]
mov ecx, esp
mov dword [ecx + 0xc], eax
mov dword [ecx + 8], 1
mov dword [ecx + 4], 4
mov dword [ecx], 0x4a9374
call fcn.00456663
mov ecx, dword [0x498ff4]
and ecx, 0x34971368
mov dword [0x498ff4], ecx
mov ecx, dword [esp + 0x20]
mov edx, esp
mov dword [edx], ecx
mov dword [esp + 0x14], eax
call fcn.00456751
mov ecx, dword [0x49b2b8]
imul ecx, ecx, 0xbf1d9361
mov dword [0x49b2b8], ecx
mov dword [esp + 0x10], eax
mov ax, word [0x4a486a]
mov cx, ax
mov edx, ecx
dec edx
mov ax, dx
mov word [0x4a486a], ax
mov edx, dword [0x495598]
add edx, 0x2b3b1ff8
xor ecx, edx
mov ax, word [0x4a711a]
mov dx, ax
or edx, ecx
mov ax, dx
mov word [0x4a711a], ax
add esp, 0x34
pop esi
pop edi
ret