Function at 0x40e360
Capabilities:
Write file on windows

Disassembly:
push ebx
push edi
push esi
sub esp, 0x704
mov eax, dword [esp + 0x714]
mov dword [esp + 0x700], eax
mov eax, dword [0x49f6f4]
add eax, 0xeb8c7b5f
mov dword [0x49f6f4], eax
mov eax, dword [esp + 0x700]
mov ecx, eax
call fcn.0040b3b0
cmp eax, 0x8028
jbe 0x40eb37
mov eax, 0x5b64fb50
mov ecx, dword [0x499ff4]
inc ecx
mov dword [0x499ff4], ecx
imul ecx, ecx, 0x14e965a1
cmp eax, ecx
je 0x40e408
mov eax, 0xd6538e
mov ecx, dword [0x49dde8]
mov edx, dword [0x4a07c0]
shl edx, 4
or ecx, edx
cmp eax, ecx
jg 0x40e3f4
mov eax, dword [0x49e3fc]
not eax
imul eax, eax, 0xa76ac95f
mov dword [0x49fb08], eax
jmp 0x40e403
mov eax, dword [0x4a3148]
add eax, 0xfffec7ff
mov dword [0x4a3148], eax
jmp 0x40e453
mov eax, 0x6474028d
mov ecx, dword [0x4a03f4]
dec ecx
mov dword [0x4a03f4], ecx
cmp eax, ecx
jge 0x40e44e
mov eax, dword [0x4a2b28]
mov ecx, eax
dec ecx
mov dword [0x4a2b28], ecx
mov ecx, dword [0x49ae28]
sub eax, ecx
mov dx, word [0x494b90]
mov cx, dx
or ecx, eax
mov dx, cx
mov word [0x494b90], dx
jmp 0x40e453
mov eax, 0x7804c493
mov ecx, dword [0x4a06d0]
mov edx, dword [0x49a940]
xor ecx, edx
cmp eax, ecx
jl 0x40e49b
mov eax, dword [0x49a620]
shr eax, 8
add eax, 0xb163446d
or eax, 0x22e1
mov cx, word [0x4936e2]
mov dx, cx
add edx, eax
mov cx, dx
mov word [0x4936e2], cx
jmp 0x40e4b4
mov eax, dword [0x49e22c]
imul eax, eax, 0xa86c9d99
mov ecx, dword [0x4a01c4]
sub ecx, eax
mov dword [0x4a01c4], ecx
mov eax, 0xd7edfb7f
mov ecx, dword [0x49c7e0]
mov edx, ecx
dec edx
mov dword [0x49c7e0], edx
add ecx, 0x723a5e2d
mov edx, dword [0x49e618]
sub edx, ecx
mov dword [0x49e618], edx
mov ecx, dword [0x4a1718]
add ecx, 0x30124c00
mov dword [0x4a1718], ecx
mov ecx, esp
lea edx, [esp + 0x5b0]
mov dword [ecx], edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], edx
call fcn.0044a230
mov dword [esp + 0x5ac], eax
mov word [0x493892], 0x9d49
call fcn.004309f0
movzx ecx, al
and ecx, 3
add ecx, 7
mov edx, dword [esp + 0x5ac]
lea edx, [esp + edx + 0x5b0]
mov esi, esp
mov dword [esi + 4], ecx
mov dword [esi], edx
call fcn.00435f20
mov di, word [0x49603a]
movsx ecx, di
shl ecx, 5
or ecx, 0xeb5c904
mov edx, dword [0x4a1c78]
and edx, ecx
mov dword [0x4a1c78], edx
mov ecx, esp
mov dword [ecx + 4], 5
mov dword [ecx], 0xb7f
call fcn.0040dbe0
mov dword [esp + 0x6fc], eax
mov eax, dword [0x49abc8]
mov di, word [0x4984be]
mov cx, di
sub ecx, eax
mov di, cx
mov word [0x4984be], di
mov eax, dword [esp + 0x6fc]
mov ecx, esp
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x4c]
mov dword [ecx], eax
call fcn.00454ec0
mov ecx, dword [0x4a0c18]
imul ecx, ecx, 0x7ff7f7d9
mov dword [0x4a0c18], ecx
mov ecx, esp
mov dword [ecx + 4], 3
mov dword [ecx], 0x4655
mov dword [esp + 0x48], eax
call fcn.0040dbe0
mov dword [esp + 0x6f8], eax
mov eax, dword [0x4a3524]
mov ecx, eax
inc ecx
mov dword [0x4a3524], ecx
mov ecx, dword [esp + 0x50]
cmp ecx, eax
jne 0x40e606
mov eax, dword [0x49c0e0]
or eax, 0x19cafbff
mov dword [0x49c0e0], eax
mov eax, dword [esp + 0x6fc]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 5
call fcn.00402190
mov eax, dword [0x49ea9c]
sar eax, 1
mov ecx, dword [0x49e17c]
inc ecx
mov dword [0x49e17c], ecx
imul ecx, ecx, 0xacf6094a
sub eax, ecx
mov ecx, dword [0x49d988]
or ecx, eax
mov dword [0x49d988], ecx
mov eax, dword [esp + 0x6f8]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0x5b0]
mov dword [ecx], eax
call fcn.00455b0c
mov dword [esp + 0x6f0], eax
mov eax, dword [0x4a2c10]
xor eax, 0xffffffff
cmp eax, 0xffffb43b
je 0x40e68a
mov eax, dword [0x4a1bc4]
xor eax, 0x4a6e13f3
mov dword [0x4a1bc4], eax
mov eax, 0x9067e4f
mov ecx, dword [esp + 0x6f8]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 3
mov dword [esp + 0x44], eax
call fcn.00402190
mov eax, dword [0x4a0d70]
sar eax, 0xa
and eax, 0xc26f52f1
and eax, 0x25d7a71a
mov ecx, dword [esp + 0x44]
cmp ecx, eax
jge 0x40e6dd
mov eax, dword [0x4994f0]
not eax
mov ecx, dword [0x49e608]
add ecx, eax
mov dword [0x49e608], ecx
cmp dword [esp + 0x6f0], 0
je 0x40eaaf
mov eax, dword [0x49a990]
add eax, 0xef3a9ad3
mov dword [0x49a990], eax
mov eax, dword [0x4a2000]
sar eax, 4
add eax, 0x9c67524
cmp eax, 0x152e96c8
jge 0x40e730
mov eax, dword [0x4a3dcc]
imul eax, eax, 0x6a7d7a82
and eax, 0x4235a86e
mov ecx, dword [0x4a221c]
sub ecx, eax
mov dword [0x4a221c], ecx
mov eax, 0xdafbfdaf
mov ecx, dword [esp + 0x6f0]
mov edx, dword [esp + 0x700]
mov dword [esp + 0x40], ecx
mov ecx, edx
mov dword [esp + 0x3c], eax
call fcn.0040b3b0
mov ecx, dword [esp + 0x700]
mov dword [esp + 0x38], eax
call fcn.00443a30
mov ecx, esp
mov edx, dword [esp + 0x40]
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.00455cbf
mov ecx, dword [0x4a1fdc]
mov edx, 0xe33466b3
sub edx, ecx
and edx, 0x4a77
mov si, word [0x497458]
mov cx, si
xor ecx, edx
mov si, cx
mov word [0x497458], si
mov ecx, dword [esp + 0x6f0]
mov edx, esp
mov dword [edx], ecx
mov dword [esp + 0x34], eax
call fcn.00455dad
mov ecx, dword [0x4a26b4]
inc ecx
mov dword [0x4a26b4], ecx
imul ecx, ecx, 0x81b65a85
mov edx, dword [0x49b51c]
lea ecx, [ecx + edx - 0x3993418f]
mov dword [0x49b51c], ecx
mov ecx, dword [esp + 0x700]
mov dword [esp + 0x30], eax
call fcn.0042e030
mov si, word [0x4945de]
mov ax, si
inc eax
mov di, ax
mov word [0x4945de], di
movsx eax, si
mov ecx, dword [0x49b34c]
xor eax, ecx
xor eax, 0x5270cb04
mov dword [0x49b34c], eax
mov byte [esp + 0x182], 0
mov eax, dword [0x49a228]
add eax, 0x8f22144e
mov ecx, dword [esp + 0x3c]
cmp ecx, eax
jge 0x40e85b
mov eax, dword [0x49ebc8]
mov ecx, eax
dec ecx
mov dword [0x49ebc8], ecx
mov ecx, dword [0x49ad54]
or eax, ecx
or eax, 0xfbd77ff3
mov dword [0x49ad54], eax
mov eax, 0x5202c3ec
mov ecx, dword [0x493168]
mov edx, esp
lea esi, [esp + 0x56]
mov dword [edx + 4], esi
mov dword [edx + 8], 0x12c
mov dword [edx], 0
mov dword [esp + 0x2c], eax
call ecx
sub esp, 0xc
mov di, word [0x495f10]
movsx ecx, di
shl ecx, 4
mov edx, dword [esp + 0x2c]
cmp edx, ecx
mov dword [esp + 0x28], eax
jg 0x40e8b1
mov eax, dword [0x499984]
xor eax, 0x3ceefbfd
mov dword [0x499984], eax
mov byte [esp + 0x5ab], 0
mov eax, dword [0x49f0dc]
mov ecx, eax
dec ecx
mov dword [0x49f0dc], ecx
mov dx, word [0x4978d6]
mov cx, dx
lea eax, [eax + ecx + 0x516128a5]
mov dx, ax
mov word [0x4978d6], dx
mov eax, esp
mov dword [eax + 4], 0x15
mov dword [eax], 0x2fb9
call fcn.0040dbe0
mov dword [esp + 0x6f4], eax
mov dword [0x4a2e1c], 0xabc66601
mov eax, dword [0x4a4b44]
mov ecx, dword [0x4a4b2c]
mov esi, dword [esp + 0x6f4]
mov edi, esp
mov dword [edi + 0x10], eax
mov dword [edi + 0xc], ecx
lea eax, [esp + 0x56]
mov dword [edi + 8], eax
mov dword [edi + 4], esi
lea eax, [esp + 0x183]
mov dword [edi], eax
mov dword [esp + 0x24], eax
call fcn.004551cf
mov dword [0x49b5a8], 0xdb99b508
mov ecx, dword [esp + 0x6f4]
mov esi, esp
mov dword [esi + 4], ecx
mov dword [esi], 0x15
mov dword [esp + 0x20], eax
call fcn.00402190
mov eax, dword [0x49d668]
and eax, 0xf77f85fd
mov dword [0x49d668], eax
mov eax, dword [0x4a4b44]
mov ecx, esp
mov dword [ecx], eax
call section..text
mov ecx, dword [0x49c5d8]
imul ecx, ecx, 0xbcb69a2d
mov dword [0x49c5d8], ecx
mov ecx, esp
mov esi, dword [esp + 0x24]
mov dword [ecx + 4], esi
lea edi, [esp + 0x5b0]
mov dword [ecx], edi
mov dword [esp + 0x1c], eax
call fcn.004465d0
mov dx, word [0x498894]
mov ax, dx
inc eax
mov dx, ax
mov word [0x498894], dx
movsx eax, dx
mov dx, word [0x496b4e]
mov cx, dx
dec ecx
mov bx, cx
mov word [0x496b4e], bx
movsx ecx, dx
sub eax, ecx
mov dword [0x49c6d4], eax
mov eax, esp
mov ecx, dword [esp + 0x24]
mov dword [eax], ecx
mov dword [eax + 4], 0x429
call fcn.00401450
mov dx, word [0x4955ba]
movsx eax, dx
or eax, 0x48b37fa5
cmp eax, 0x4f72e428
jg 0x40ea20
mov eax, dword [0x49b674]
add eax, 0x4e22d6c
mov dword [0x49b674], eax
mov eax, esp
lea ecx, [esp + 0x56]
mov dword [eax], ecx
mov dword [eax + 4], 0x12d
call fcn.00401450
mov eax, dword [0x49fa24]
shr eax, 7
and eax, 0x961b
mov dx, word [0x496ee4]
mov cx, dx
imul ecx, eax
mov dx, cx
mov word [0x496ee4], dx
mov eax, dword [0x4931c4]
mov ecx, esp
mov dword [ecx], 0x16327
call eax
sub esp, 4
mov dx, word [0x494cc8]
mov ax, dx
imul eax, eax, 0xfcfe3fb9
mov dx, ax
mov word [0x494cc8], dx
mov eax, dword [0x493114]
mov ecx, esp
lea esi, [esp + 0x5b0]
mov dword [ecx], esi
call eax
sub esp, 4
mov ecx, dword [0x49c670]
add ecx, 0x1bb4bdda
mov dword [0x49c670], ecx
mov dword [esp + 0x18], eax
mov eax, 0xf8de26b5
mov ecx, dword [0x49ca0c]
dec ecx
mov dword [0x49ca0c], ecx
cmp eax, ecx
je 0x40ead9
mov eax, dword [0x4a2dc8]
imul eax, eax, 0xe7dc6ee0
mov dword [0x4a2dc8], eax
mov eax, 0x43d38fff
mov ecx, esp
lea edx, [esp + 0x5b0]
mov dword [ecx], edx
mov dword [ecx + 4], 0x140
mov dword [esp + 0x14], eax
call fcn.00401450
mov eax, dword [0x4a1408]
imul eax, eax, 0x761d4f50
sub eax, 0x5a02d302
mov ecx, dword [esp + 0x14]
cmp ecx, eax
jl 0x40eb32
mov eax, dword [0x4a32ec]
not eax
mov ecx, dword [0x49f648]
shr ecx, 9
imul eax, ecx
mov dx, ax
mov word [0x49425c], dx
jmp 0x40eb37
mov eax, dword [0x4a2eac]
add eax, 0x21e13beb
mov ecx, dword [0x49915c]
shl ecx, 7
xor eax, ecx
mov dword [0x4a102c], eax
add esp, 0x704
pop esi
pop edi
pop ebx
ret