Function at 0x409470
Capabilities:
Write file on windows

Disassembly:
push esi
sub esp, 0x30
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], ecx
mov dx, word [0x4840e8]
movsx eax, dx
imul eax, eax, 0xd037e6b1
mov ecx, 0x6c51c6c6
sub ecx, eax
mov eax, dword [0x4898e4]
and eax, ecx
mov dword [0x4898e4], eax
mov dx, word [0x4892e8]
mov ax, dx
add eax, 0x697b4bd3
mov dx, ax
mov word [0x4892e8], dx
cmp dword [0x49d24c], 0
jne 0x409518
mov eax, dword [0x495370]
and eax, 0xcaaadd48
mov dword [0x495370], eax
call fcn.00404000
mov dword [0x49d24c], eax
mov eax, dword [0x492b7c]
mov ecx, dword [0x494850]
mov edx, ecx
dec edx
mov dword [0x494850], edx
and ecx, 0x1350
xor eax, ecx
mov si, word [0x486c82]
mov cx, si
or ecx, eax
mov si, cx
mov word [0x486c82], si
mov eax, dword [0x48aa20]
mov ecx, eax
dec ecx
mov dword [0x48aa20], ecx
mov ecx, dword [0x498514]
xor eax, ecx
xor eax, 0x5729a998
mov dword [0x498514], eax
mov eax, esp
mov dword [eax + 4], 3
mov dword [eax], 0x13fc
call fcn.00415e90
mov dword [esp + 0x24], eax
mov eax, dword [0x499a70]
add eax, 0x9e3798cb
mov dword [0x499a70], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edx, esp
mov dword [edx + 4], eax
mov dword [edx], ecx
call fcn.004559fb
mov dword [esp + 0x1c], eax
mov eax, dword [0x493574]
sar eax, 0xa
add eax, 0x90210d69
mov ecx, dword [0x4939ac]
or ecx, eax
mov dword [0x4939ac], ecx
mov eax, dword [esp + 0x24]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 3
call fcn.004140f0
mov eax, dword [0x499154]
or eax, 0x79692bf0
mov dword [0x499154], eax
cmp dword [esp + 0x1c], 0
jne 0x4096c5
mov eax, 0x3c976b6a
mov cx, word [0x48028e]
movsx edx, cx
shr edx, 4
imul edx, edx, 0xc0206875
add edx, 0xf13c47c7
mov cx, word [0x48443c]
mov si, cx
and esi, edx
mov cx, si
mov word [0x48443c], cx
mov edx, dword [0x47fae4]
mov esi, esp
mov dword [esi], 0x3e8
mov dword [esp + 0x18], eax
call edx
sub esp, 4
mov eax, dword [0x4917c8]
add eax, 0xaf498e1e
mov dword [0x4917c8], eax
mov eax, esp
mov dword [eax + 4], 3
mov dword [eax], 0x13fc
call fcn.00415e90
mov dword [esp + 0x20], eax
mov eax, dword [0x495554]
mov edx, eax
dec edx
mov dword [0x495554], edx
add eax, 0x425e6f8
mov edx, dword [0x4976bc]
xor edx, eax
mov dword [0x4976bc], edx
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
mov esi, esp
mov dword [esi + 4], eax
mov dword [esi], edx
call fcn.004559fb
mov dword [esp + 0x1c], eax
mov eax, dword [0x49a844]
xor eax, 0xffffffff
imul eax, eax, 0x8a827506
mov edx, dword [esp + 0x18]
cmp edx, eax
je 0x4096a2
mov eax, dword [0x4981f8]
add eax, 0x83b365cc
and eax, 0xf2a72373
mov ecx, dword [0x494078]
sub ecx, eax
mov dword [0x494078], ecx
mov eax, dword [esp + 0x20]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 3
call fcn.004140f0
mov eax, dword [0x48db9c]
and eax, 0xdd17cefd
mov dword [0x48db9c], eax
mov eax, dword [0x49c388]
add eax, 0xd3d78d2
mov dword [0x49c388], eax
cmp dword [esp + 0x1c], 0
je 0x409801
mov ax, word [0x48670a]
mov cx, ax
xor ecx, 0x729f
mov ax, cx
mov word [0x48670a], ax
mov ecx, dword [esp + 0x1c]
mov edx, esp
mov dword [edx + 0xc], ecx
mov dword [edx + 8], 1
mov dword [edx + 4], 4
mov dword [edx], 0x49d24c
call fcn.00455fa8
mov ecx, dword [0x489c68]
add ecx, 0x6c542d69
cmp ecx, 0x8a53992f
mov dword [esp + 0x14], eax
jle 0x409753
mov eax, dword [0x48fbb8]
imul eax, eax, 0x29c79e33
mov ecx, dword [0x48b9bc]
add ecx, eax
mov dword [0x48b9bc], ecx
jmp 0x409762
mov eax, dword [0x4903a8]
add eax, 0xfbbdfea6
mov dword [0x4903a8], eax
mov eax, dword [esp + 0x1c]
mov ecx, esp
mov dword [ecx], eax
call fcn.00456096
mov ecx, dword [0x48fa30]
imul ecx, ecx, 0xe0bb64c4
and ecx, 0x10ba5418
mov edx, dword [0x4903a8]
sub edx, 0x4fb58767
cmp ecx, edx
mov dword [esp + 0x10], eax
jl 0x4097bd
mov ax, word [0x4813c2]
movsx ecx, ax
not ecx
add ecx, 0x5131cd8d
mov edx, dword [0x48a2cc]
xor edx, ecx
mov dword [0x48a2cc], edx
jmp 0x4097fc
mov eax, dword [0x48cf88]
sub eax, 0xf38b22e4
cmp eax, 0xef675e8d
jle 0x4097f7
mov eax, dword [0x49ade4]
mov ecx, eax
dec ecx
mov dword [0x49ade4], ecx
and eax, 0xd9fb7c90
mov ecx, dword [0x4928e4]
xor eax, ecx
xor eax, 0x8a57bcbc
mov dword [0x4928e4], eax
jmp 0x4097fc
jmp 0x409801
mov ax, word [0x485ba2]
movsx ecx, ax
add ecx, 0x6c2f351b
mov edx, dword [0x496298]
or edx, ecx
mov dword [0x496298], edx
add esp, 0x30
pop esi
ret