Function at 0x41c810
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 eax, dword [0x4a6840]
mov dx, word [0x4b7748]
mov cx, dx
dec ecx
mov dx, cx
movsx ecx, dx
or eax, ecx
mov word [0x4b7748], dx
or eax, 0x6446add7
mov ecx, dword [0x4a7750]
sub ecx, eax
mov dword [0x4a7750], ecx
mov dword [0x49a61c], 0x70bffe9f
cmp dword [0x4b8c34], 0
jne 0x41c8a9
mov eax, dword [0x4aaa4c]
sar eax, 5
or eax, 0xb95bc7b7
mov ecx, dword [0x4ad2ec]
add ecx, eax
mov dword [0x4ad2ec], ecx
call fcn.00427330
mov dword [0x4b8c34], eax
mov dx, word [0x4af144]
mov ax, dx
xor eax, 0x4c
mov dx, ax
mov word [0x4af144], dx
mov eax, dword [0x49a378]
and eax, 0x228fc48b
mov dword [0x49a378], eax
mov eax, esp
mov dword [eax + 4], 3
mov dword [eax], 0x59cf
call fcn.004489c0
mov dword [esp + 0x20], eax
mov eax, dword [0x49d2c8]
add eax, 0x88e71f8c
mov dword [0x49d2c8], 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.004563da
mov dword [esp + 0x18], eax
mov eax, dword [0x4a7e14]
dec eax
mov dword [0x4a7e14], eax
mov ecx, dword [0x49b4f4]
inc ecx
mov dword [0x49b4f4], ecx
and eax, ecx
mov ecx, dword [0x49f03c]
or eax, ecx
mov dword [0x4a052c], eax
mov eax, dword [esp + 0x20]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 3
call fcn.004073a0
mov si, word [0x4b6b7c]
mov ax, si
add eax, 0x493a983f
mov si, ax
mov word [0x4b6b7c], si
cmp dword [esp + 0x18], 0
jne 0x41c9f8
mov eax, dword [0x49aaf4]
imul eax, eax, 0x3fcc5e96
mov dword [0x49aaf4], eax
mov eax, dword [0x49a104]
mov ecx, esp
mov dword [ecx], 0x410
call eax
sub esp, 4
mov eax, dword [0x4a497c]
or eax, 0xdedc2378
mov dword [0x4a497c], eax
mov eax, esp
mov dword [eax + 4], 3
mov dword [eax], 0x59cf
call fcn.004489c0
mov dword [esp + 0x1c], eax
mov eax, dword [0x4a520c]
add eax, 0xbf5f56b8
mov dword [0x4a520c], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
mov edx, esp
mov dword [edx + 4], eax
mov dword [edx], ecx
call fcn.004563da
mov dword [esp + 0x18], eax
mov eax, dword [0x4ad618]
add eax, 0x29001c23
mov dword [0x4ad618], eax
mov eax, dword [esp + 0x1c]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 3
call fcn.004073a0
mov eax, dword [0x49f120]
add eax, 0xacaae4a4
mov dword [0x49f120], eax
mov eax, dword [0x4a4c70]
sub eax, 0x7632463f
cmp eax, 0xdffcdee5
jge 0x41ca1d
mov eax, dword [0x4a5838]
imul eax, eax, 0x7fff4f9b
mov dword [0x4a5838], eax
cmp dword [esp + 0x18], 0
je 0x41caaf
mov eax, dword [0x4a3c04]
imul eax, eax, 0x996b21c5
mov dword [0x4a3c04], eax
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], 0x4b8c34
call fcn.0045682c
mov dx, word [0x4b770e]
mov cx, dx
add ecx, 0xdbbbf7d4
mov dx, cx
mov word [0x4b770e], dx
mov ecx, dword [esp + 0x18]
mov esi, esp
mov dword [esi], ecx
mov dword [esp + 0x14], eax
call fcn.0045691a
mov dx, word [0x4b41b4]
movsx ecx, dx
sar ecx, 1
and ecx, 0xd67ef90b
xor ecx, 0x12189d8e
mov esi, dword [0x4a6934]
and esi, ecx
mov dword [0x4a6934], esi
mov dword [esp + 0x10], eax
mov ax, word [0x4b16e2]
mov cx, ax
inc ecx
mov ax, cx
mov word [0x4b16e2], ax
imul ecx, ecx, 0x483d639e
mov ax, word [0x4b3330]
mov dx, ax
and edx, ecx
mov ax, dx
mov word [0x4b3330], ax
add esp, 0x2c
pop esi
ret