Function at 0x4472e0
Capabilities:
Write file on windows

Disassembly:
push edi
push esi
sub esp, 0x6ec
mov eax, dword [esp + 0x6f8]
mov dword [esp + 0x6e8], eax
mov eax, dword [0x49c320]
imul eax, eax, 0x44a229e
mov dword [0x49c320], eax
mov eax, dword [esp + 0x6e8]
mov ecx, eax
call fcn.004396e0
cmp eax, 0x8024
jbe 0x4479e1
mov eax, 0x45ce0c6a
mov ecx, dword [0x499fa4]
xor ecx, 0xeeff4ffa
mov dword [0x499fa4], ecx
mov dx, word [0x4b38b4]
movsx ecx, dx
and ecx, 0x7c9c722d
xor ecx, 0x30852145
cmp eax, ecx
jne 0x44736c
mov eax, dword [0x4a2fe8]
mov ecx, eax
inc ecx
mov dword [0x4a2fe8], ecx
add eax, 0xfa9bb94e
mov dword [0x4a163c], eax
mov eax, 0x57ffd476
mov ecx, dword [0x49b70c]
xor ecx, 0xffffffff
cmp eax, ecx
jne 0x44739a
mov ax, word [0x4af57c]
mov cx, ax
add ecx, 0xf08c5670
mov ax, cx
mov word [0x4af57c], ax
mov eax, 0x9d4cf4d5
mov ecx, dword [0x49c694]
mov edx, dword [0x4987cc]
add ecx, edx
cmp eax, ecx
jle 0x4473de
mov ax, word [0x4aac06]
mov cx, ax
dec ecx
mov dx, cx
mov word [0x4aac06], dx
movsx ecx, ax
imul ecx, ecx, 0x813223f3
or ecx, 0x90966f6
mov dword [0x4a19cc], ecx
mov eax, esp
lea ecx, [esp + 0x59c]
mov dword [eax], ecx
call fcn.0040f920
mov dword [esp + 0x598], eax
mov eax, dword [0x4a95b0]
add eax, 0x903b2fe8
mov dx, word [0x4ac7ce]
movsx ecx, dx
add ecx, 0x5c53950d
sub ecx, 0x18776e5f
cmp eax, ecx
jg 0x447435
mov ax, word [0x4b232e]
mov cx, ax
add ecx, 0x2b95bf31
mov ax, cx
mov word [0x4b232e], ax
call fcn.00446600
movzx ecx, al
and ecx, 3
add ecx, 7
mov edx, dword [esp + 0x598]
lea edx, [esp + edx + 0x59c]
mov esi, esp
mov dword [esi + 4], ecx
mov dword [esi], edx
call fcn.0043ac90
mov ecx, dword [0x49e7cc]
add ecx, 0x2cde1453
mov dword [0x49e7cc], ecx
mov ecx, esp
mov dword [ecx + 4], 5
mov dword [ecx], 0x2d83
call fcn.00437eb0
mov dword [esp + 0x6e4], eax
mov di, word [0x4b14fa]
mov ax, di
xor eax, 0xf159
mov di, ax
mov word [0x4b14fa], di
mov eax, dword [esp + 0x6e4]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0x59c]
mov dword [ecx], eax
mov dword [esp + 0x44], eax
call fcn.00455290
mov di, word [0x4b3952]
movsx ecx, di
not ecx
mov edx, dword [0x49aee4]
mov esi, edx
inc esi
mov dword [0x49aee4], esi
imul ecx, edx
mov edx, dword [0x4a7d94]
xor edx, ecx
mov dword [0x4a7d94], edx
mov ecx, esp
mov dword [ecx + 4], 3
mov dword [ecx], 0x5d8b
mov dword [esp + 0x40], eax
call fcn.00437eb0
mov dword [esp + 0x6e0], eax
mov eax, dword [0x4a6b10]
mov ecx, eax
dec ecx
mov dword [0x4a6b10], ecx
mov ecx, dword [0x49ea2c]
or eax, ecx
or eax, 0x5fe7db3f
mov dword [0x49ea2c], eax
mov eax, dword [esp + 0x6e4]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 5
call fcn.0044b770
mov eax, dword [0x49be88]
mov ecx, eax
dec ecx
mov dword [0x49be88], ecx
add eax, 0x1e0914e0
mov ecx, dword [0x49a088]
xor ecx, eax
mov dword [0x49a088], ecx
mov eax, dword [esp + 0x6e0]
mov ecx, esp
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x44]
mov dword [ecx], eax
call fcn.00456043
mov dword [esp + 0x6d8], eax
mov di, word [0x4abc24]
mov ax, di
add eax, 0xae716a65
mov di, ax
mov word [0x4abc24], di
mov eax, dword [esp + 0x6e0]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 3
call fcn.0044b770
mov eax, dword [0x4a3f2c]
mov ecx, eax
dec ecx
mov dword [0x4a3f2c], ecx
mov ecx, 0x94ca28ab
sub ecx, eax
mov eax, dword [0x499434]
and eax, ecx
mov dword [0x499434], eax
cmp dword [esp + 0x6d8], 0
je 0x44799a
mov word [0x4b40f8], 0xa23f
mov eax, dword [0x4a5120]
xor eax, 0x81001242
or eax, 0x54fdcdbd
mov ecx, dword [0x4a087c]
xor ecx, eax
mov dword [0x4a087c], ecx
mov eax, dword [esp + 0x6d8]
mov ecx, dword [esp + 0x6e8]
mov dword [esp + 0x3c], eax
call fcn.004396e0
mov ecx, dword [esp + 0x6e8]
mov dword [esp + 0x38], eax
call fcn.00439510
mov ecx, esp
mov edx, dword [esp + 0x3c]
mov dword [ecx + 0xc], edx
mov edx, dword [esp + 0x38]
mov dword [ecx + 4], edx
mov dword [ecx], eax
mov dword [ecx + 8], 1
call fcn.004561f6
mov si, word [0x4b1842]
mov cx, si
add ecx, 0x2027084e
mov si, cx
mov word [0x4b1842], si
mov ecx, dword [esp + 0x6d8]
mov edx, esp
mov dword [edx], ecx
mov dword [esp + 0x34], eax
call fcn.004562e4
mov si, word [0x4b31ec]
movsx ecx, si
mov edx, dword [0x498ca8]
shl edx, 7
or ecx, edx
cmp ecx, 0x690269a8
mov dword [esp + 0x30], eax
jle 0x4476af
mov eax, dword [0x4a6178]
imul eax, eax, 0xd3a01a45
mov dword [0x4a6178], eax
mov eax, 0x1ec84284
mov ecx, dword [esp + 0x6e8]
mov dword [esp + 0x2c], eax
call fcn.00414b10
mov dx, word [0x4acdd8]
mov ax, dx
and eax, 0x6de0
mov dx, ax
mov word [0x4acdd8], dx
mov byte [esp + 0x172], 0
mov dx, word [0x4b1c50]
mov ax, dx
dec eax
mov dx, ax
mov word [0x4b1c50], dx
movsx eax, dx
mov ecx, dword [esp + 0x2c]
sub ecx, eax
cmp ecx, 0x93b10a50
jge 0x447733
mov eax, dword [0x49a4a8]
inc eax
mov dword [0x49a4a8], eax
and eax, 0xb0566b05
mov ecx, dword [0x4a9220]
imul ecx, eax
mov dword [0x4a9220], ecx
jmp 0x447742
mov eax, dword [0x4a9fb4]
and eax, 0x99f46d1
mov dword [0x4a9fb4], eax
mov eax, dword [0x4975a8]
mov ecx, esp
lea edx, [esp + 0x4a]
mov dword [ecx + 4], edx
mov dword [ecx + 8], 0x128
mov dword [ecx], 0
mov dword [esp + 0x28], edx
call eax
sub esp, 0xc
mov ecx, dword [0x49ece0]
add ecx, 0x597aa8b6
mov dword [0x49ece0], ecx
mov byte [esp + 0x597], 0
mov ecx, dword [0x499954]
shr ecx, 1
mov edx, dword [0x4a15ac]
not edx
and ecx, edx
or ecx, 0x6b8e
mov si, word [0x4b3afe]
mov dx, si
add edx, ecx
mov si, dx
mov word [0x4b3afe], si
mov ecx, esp
mov dword [ecx + 4], 0x15
mov dword [ecx], 0x2d51
mov dword [esp + 0x24], eax
call fcn.00437eb0
mov dword [esp + 0x6dc], eax
mov si, word [0x4b07d2]
mov ax, si
imul eax, eax, 0xcedd31ff
mov si, ax
mov word [0x4b07d2], si
mov eax, dword [0x4b4b2c]
mov ecx, dword [0x4b4b14]
mov edx, dword [esp + 0x6dc]
mov edi, esp
mov dword [edi + 0x10], eax
mov dword [edi + 0xc], ecx
mov eax, dword [esp + 0x28]
mov dword [edi + 8], eax
mov dword [edi + 4], edx
lea ecx, [esp + 0x173]
mov dword [edi], ecx
mov dword [esp + 0x20], ecx
call fcn.00455e67
mov dword [0x49fc74], 0xb376831c
mov ecx, dword [esp + 0x6dc]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 0x15
mov dword [esp + 0x1c], eax
call fcn.0044b770
mov eax, dword [0x49e55c]
or eax, 0x8b83182b
mov ecx, dword [0x4a31bc]
xor ecx, eax
mov dword [0x4a31bc], ecx
mov eax, dword [0x4b4b2c]
mov ecx, esp
mov dword [ecx], eax
call fcn.0041e5d0
mov ecx, dword [0x4a47f0]
and ecx, 0xbd8a4174
mov dword [0x4a47f0], ecx
mov ecx, esp
mov edx, dword [esp + 0x20]
mov dword [ecx + 4], edx
lea edi, [esp + 0x59c]
mov dword [ecx], edi
mov dword [esp + 0x18], eax
call fcn.004350e0
mov eax, dword [0x4a9dfc]
imul eax, eax, 0xca987c0d
mov ecx, dword [0x4a44bc]
sar ecx, 6
imul ecx, ecx, 0x3e1f12af
sub ecx, 0x2b66e78a
cmp eax, ecx
jl 0x4478d6
mov eax, dword [0x49ee68]
imul eax, eax, 0x5a4ff479
mov ecx, dword [0x4a6744]
or ecx, eax
mov dword [0x4a6744], ecx
mov eax, esp
lea ecx, [esp + 0x173]
mov dword [eax], ecx
mov dword [eax + 4], 0x425
call fcn.004238a0
mov dx, word [0x4b30aa]
mov ax, dx
dec eax
mov si, ax
mov word [0x4b30aa], si
movsx eax, dx
and eax, 0xb21d9c06
mov ecx, dword [0x4a802c]
add ecx, eax
mov dword [0x4a802c], ecx
mov eax, esp
lea ecx, [esp + 0x4a]
mov dword [eax], ecx
mov dword [eax + 4], 0x129
call fcn.004238a0
mov dx, word [0x4add60]
mov ax, dx
and eax, 0x1b8f
mov dx, ax
mov word [0x4add60], dx
mov eax, dword [0x497604]
mov ecx, esp
mov dword [ecx], 0x1626d
call eax
sub esp, 4
mov word [0x4b0072], 0xfbd6
mov eax, dword [0x497554]
mov ecx, esp
lea edi, [esp + 0x59c]
mov dword [ecx], edi
call eax
sub esp, 4
mov ecx, dword [0x4a0940]
inc ecx
mov dword [0x4a0940], ecx
mov edi, dword [0x49fbe8]
or ecx, edi
or ecx, 0x2220008
mov dword [0x49fbe8], ecx
mov dword [esp + 0x14], eax
mov eax, dword [0x4aa4d8]
and eax, 0x3b49a07a
mov ecx, dword [0x49fbd4]
add ecx, eax
mov dword [0x49fbd4], ecx
mov eax, esp
lea ecx, [esp + 0x59c]
mov dword [eax], ecx
mov dword [eax + 4], 0x13c
call fcn.004238a0
mov eax, dword [0x497d2c]
add eax, 0xfd55b329
mov ecx, dword [0x4a1e40]
and ecx, eax
mov dword [0x4a1e40], ecx
mov ax, word [0x4b2c3e]
mov cx, ax
add ecx, 0x80200
mov ax, cx
mov word [0x4b2c3e], ax
add esp, 0x6ec
pop esi
pop edi
ret