Function at 0x437160
Capabilities:
Write file on windows

Disassembly:
push edi
push esi
sub esp, 0x774
mov eax, dword [esp + 0x780]
mov dword [esp + 0x770], eax
mov cx, word [0x49229a]
movsx eax, cx
mov edx, 0xc152e7e
sub edx, eax
mov eax, dword [0x491ba8]
xor eax, edx
mov dword [0x491ba8], eax
mov eax, dword [esp + 0x770]
mov ecx, eax
call fcn.004500b0
cmp eax, 0x804e
jbe 0x4377d2
mov eax, dword [0x491dc4]
add eax, 0x8f15fb6f
mov dword [0x491dc4], eax
mov cx, word [0x4920d0]
mov ax, cx
xor eax, 0xebb
mov cx, ax
mov word [0x4920d0], cx
mov dword [0x491b04], 0x66e4eb3f
mov eax, dword [0x491d6c]
inc eax
mov dword [0x491d6c], eax
mov edx, dword [0x491e88]
xor edx, eax
mov dword [0x491e88], edx
mov eax, esp
lea edx, [esp + 0x5fa]
mov dword [eax], edx
call fcn.00449260
mov dword [esp + 0x5f4], eax
mov eax, dword [0x491e9c]
mov edx, dword [0x49184c]
sar edx, 1
and edx, 0x7cfc69ce
or eax, edx
cmp eax, 0x8d8323dd
jg 0x43724e
mov eax, dword [0x4917f4]
not eax
or eax, 0x7959acee
mov ecx, dword [0x4917cc]
xor ecx, eax
mov dword [0x4917cc], ecx
jmp 0x437258
mov dword [0x4918cc], 0x1139a0eb
call fcn.0042e5a0
movzx ecx, al
and ecx, 3
add ecx, 7
mov edx, dword [esp + 0x5f4]
lea edx, [esp + edx + 0x5fa]
mov esi, esp
mov dword [esi + 4], ecx
mov dword [esi], edx
call fcn.004430e0
mov di, word [0x4922c4]
mov cx, di
add ecx, 0xf7f75ba8
mov di, cx
mov word [0x4922c4], di
mov ecx, esp
mov dword [ecx + 4], 5
mov dword [ecx], 0x42d0
call fcn.004066f0
mov dword [esp + 0x76c], eax
mov eax, dword [0x491c58]
or eax, 0x183541a2
mov dword [0x491c58], eax
mov eax, dword [esp + 0x76c]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0x5fa]
mov dword [ecx], eax
mov dword [esp + 0x4c], eax
call fcn.00455380
mov ecx, dword [0x491c54]
xor ecx, 0xa675a0ad
mov dword [0x491c54], ecx
mov ecx, esp
mov dword [ecx + 4], 3
mov dword [ecx], 0x21f1
mov dword [esp + 0x48], eax
call fcn.004066f0
mov dword [esp + 0x768], eax
mov eax, dword [0x491734]
add eax, 0xcb242f50
mov dword [0x491734], eax
mov eax, dword [esp + 0x76c]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 5
call fcn.004260a0
mov eax, dword [0x491740]
xor eax, 0xbf3488fd
mov dword [0x491740], eax
mov eax, dword [esp + 0x768]
mov ecx, esp
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x4c]
mov dword [ecx], eax
call fcn.0045552c
mov dword [esp + 0x760], eax
mov eax, dword [0x491688]
mov ecx, eax
inc ecx
mov dword [0x491688], ecx
mov ecx, dword [0x491da0]
inc ecx
mov dword [0x491da0], ecx
imul ecx, ecx, 0xbcbeb100
cmp eax, ecx
jge 0x4373b3
mov eax, dword [0x491b54]
inc eax
mov dword [0x491b54], eax
or eax, 0x6d7cb9fb
mov ecx, dword [0x491e50]
imul ecx, eax
mov dword [0x491e50], ecx
jmp 0x4373c8
mov eax, dword [0x4914b0]
inc eax
mov dword [0x4914b0], eax
xor eax, 0xb01fc230
mov dword [0x491a1c], eax
mov eax, dword [esp + 0x768]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 3
call fcn.004260a0
mov dx, word [0x492436]
mov ax, dx
or eax, 0xb988
mov dx, ax
mov word [0x492436], dx
cmp dword [esp + 0x760], 0
je 0x437736
mov eax, 0xf25c169f
mov ecx, dword [0x491a18]
add ecx, 0xb4c64418
mov dword [0x491a18], ecx
mov dx, word [0x4920d8]
mov cx, dx
dec ecx
mov dx, cx
mov word [0x4920d8], dx
movsx ecx, dx
imul ecx, ecx, 0xd051fbd8
add ecx, 0xf70e116e
mov esi, dword [0x491eb8]
or esi, ecx
mov dword [0x491eb8], esi
mov ecx, dword [esp + 0x760]
mov esi, dword [esp + 0x770]
mov dword [esp + 0x44], ecx
mov ecx, esi
mov dword [esp + 0x40], eax
call fcn.004500b0
mov ecx, dword [esp + 0x770]
mov dword [esp + 0x3c], eax
call fcn.0044bd10
mov ecx, esp
mov esi, dword [esp + 0x44]
mov dword [ecx + 0xc], esi
mov esi, dword [esp + 0x3c]
mov dword [ecx + 4], esi
mov dword [ecx], eax
mov dword [ecx + 8], 1
call fcn.004556df
mov ecx, dword [0x491648]
xor ecx, 0xfa86b1f3
mov dword [0x491648], ecx
mov ecx, dword [esp + 0x760]
mov esi, esp
mov dword [esi], ecx
mov dword [esp + 0x38], eax
call fcn.004557cd
mov dword [0x491844], 0x19c40209
mov ecx, dword [esp + 0x770]
mov dword [esp + 0x34], eax
call fcn.0040b250
mov eax, dword [0x491d28]
add eax, 0x8e1ae2c6
mov dword [0x491d28], eax
mov byte [esp + 0x1a4], 0
mov eax, dword [0x4916a0]
add eax, 0xec08c800
mov dword [0x4916a0], eax
mov eax, dword [0x491388]
mov ecx, esp
lea esi, [esp + 0x52]
mov dword [ecx + 4], esi
mov dword [ecx + 8], 0x152
mov dword [ecx], 0
mov dword [esp + 0x30], esi
call eax
sub esp, 0xc
mov dx, word [0x49246a]
mov cx, dx
or ecx, 0x1000
mov dx, cx
mov word [0x49246a], dx
mov byte [esp + 0x5f3], 0
mov dx, word [0x4920d4]
mov cx, dx
imul ecx, ecx, 0xb86fed01
mov dx, cx
mov word [0x4920d4], dx
mov ecx, esp
mov dword [ecx + 4], 0x15
mov dword [ecx], 0x29fd
mov dword [esp + 0x2c], eax
call fcn.004066f0
mov dword [esp + 0x764], eax
mov eax, dword [0x491a30]
add eax, 0x440235e4
mov ecx, dword [0x4917cc]
imul ecx, eax
mov dword [0x4917cc], ecx
mov eax, dword [0x492e3c]
mov ecx, dword [0x492e24]
mov esi, dword [esp + 0x764]
mov edi, esp
mov dword [edi + 0x10], eax
mov dword [edi + 0xc], ecx
mov eax, dword [esp + 0x30]
mov dword [edi + 8], eax
mov dword [edi + 4], esi
lea ecx, [esp + 0x1a5]
mov dword [edi], ecx
call fcn.00455947
mov ecx, dword [0x491890]
xor ecx, 0xffffffff
mov esi, dword [esp + 0x40]
sub esi, ecx
add esi, 0xe06190ed
cmp esi, 0xc577d185
mov dword [esp + 0x28], eax
jl 0x4375ff
mov eax, dword [0x4919a8]
imul eax, eax, 0xeb4d02d0
mov dword [0x4919a8], eax
mov eax, dword [esp + 0x764]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 0x15
call fcn.004260a0
mov eax, dword [0x4918f8]
xor eax, 0xe24c5539
mov dword [0x4918f8], eax
mov eax, dword [0x492e3c]
mov ecx, esp
mov dword [ecx], eax
call fcn.00449d80
mov dx, word [0x491f42]
mov cx, dx
mov esi, ecx
inc esi
mov dx, si
mov word [0x491f42], dx
add ecx, 0x4fe3465b
mov dx, word [0x4922a2]
mov si, dx
and esi, ecx
mov dx, si
mov word [0x4922a2], dx
mov ecx, esp
lea esi, [esp + 0x1a5]
mov dword [ecx + 4], esi
lea edi, [esp + 0x5fa]
mov dword [ecx], edi
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], esi
call fcn.00419860
mov eax, dword [0x491c90]
and eax, 0x99ee7088
mov dword [0x491c90], eax
mov eax, esp
mov ecx, dword [esp + 0x1c]
mov dword [eax], ecx
mov dword [eax + 4], 0x44f
call fcn.004333b0
mov eax, dword [0x491aa8]
imul eax, eax, 0xd92228c
mov dword [0x491aa8], eax
mov eax, esp
lea ecx, [esp + 0x52]
mov dword [eax], ecx
mov dword [eax + 4], 0x153
call fcn.004333b0
mov eax, dword [0x491a14]
imul eax, eax, 0xa1487100
mov dword [0x491dd4], eax
mov eax, dword [0x4913e4]
mov ecx, esp
mov dword [ecx], 0x16125
call eax
sub esp, 4
mov eax, dword [0x491f14]
or eax, 0xc33e8299
mov dword [0x491f14], eax
mov eax, dword [0x491334]
mov ecx, esp
mov esi, dword [esp + 0x20]
mov dword [ecx], esi
call eax
sub esp, 4
mov ecx, dword [0x49194c]
not ecx
mov esi, dword [0x491cb4]
or ecx, esi
or ecx, 0xfeca7833
mov dword [0x491cb4], ecx
mov dword [esp + 0x18], eax
mov eax, dword [0x491740]
mov ecx, eax
inc ecx
mov dword [0x491740], ecx
cmp eax, 0xccb8a114
jle 0x437767
mov ax, word [0x491f72]
mov cx, ax
imul ecx, ecx, 0xc1b00d09
mov ax, cx
mov word [0x491f72], ax
mov eax, 0xd7fcf0b8
mov ecx, esp
lea edx, [esp + 0x5fa]
mov dword [ecx], edx
mov dword [ecx + 4], 0x166
mov dword [esp + 0x14], eax
call fcn.004333b0
mov eax, dword [0x49166c]
mov ecx, dword [esp + 0x14]
cmp ecx, eax
jne 0x4377c3
mov eax, dword [0x491970]
sar eax, 5
mov ecx, dword [0x491d94]
or eax, ecx
mov ecx, dword [0x491650]
or eax, ecx
mov ecx, dword [0x491558]
add ecx, eax
mov dword [0x491558], ecx
jmp 0x4377cd
mov dword [0x491790], 0x29065a0a
jmp 0x4377d2
mov eax, dword [0x4915c0]
imul eax, eax, 0x8712d35d
mov dword [0x4915c0], eax
add esp, 0x774
pop esi
pop edi
ret