Function at 0x407090
Capabilities:
Write file on windows

Disassembly:
push ebx
push edi
push esi
sub esp, 0x7d0
mov eax, dword [esp + 0x7e0]
mov dword [esp + 0x7cc], eax
mov eax, dword [0x493b0c]
mov ecx, eax
inc ecx
mov dword [0x493b0c], ecx
mov ecx, dword [0x492ba4]
mov edx, ecx
dec edx
mov dword [0x492ba4], edx
mov edx, dword [0x492b70]
sub ecx, edx
and eax, ecx
mov ecx, dword [0x493ca8]
sub ecx, eax
mov dword [0x493ca8], ecx
mov eax, dword [esp + 0x7cc]
mov ecx, eax
call fcn.0042b130
cmp eax, 0x806f
jbe 0x40791d
mov eax, 0xfe862032
mov cx, word [0x491168]
mov dx, cx
imul edx, edx, 0x1c5c7ec4
mov cx, dx
mov word [0x491168], cx
mov edx, dword [0x4938f8]
inc edx
mov dword [0x4938f8], edx
mov cx, word [0x48ffae]
mov si, cx
imul esi, edx
mov cx, si
mov word [0x48ffae], cx
mov edx, dword [0x492a68]
or edx, 0x7f5fce5f
mov dword [0x492a68], edx
mov edx, dword [0x4950e8]
add edx, 0xc1000c2
mov dword [0x4950e8], edx
mov edx, esp
lea esi, [esp + 0x635]
mov dword [edx], esi
mov dword [esp + 0x48], eax
call fcn.004374a0
mov dword [esp + 0x630], eax
mov eax, dword [0x4948b4]
xor eax, 0x9bbce56f
mov dword [0x4948b4], eax
call fcn.00417b00
movzx edx, al
and edx, 3
add edx, 7
mov esi, dword [esp + 0x630]
lea esi, [esp + esi + 0x635]
mov edi, esp
mov dword [edi + 4], edx
mov dword [edi], esi
call fcn.00415f10
mov edx, dword [0x491d04]
mov esi, edx
dec esi
mov dword [0x491d04], esi
mov esi, dword [esp + 0x48]
cmp esi, edx
je 0x407205
mov eax, 0xc337961
mov ecx, dword [0x4927cc]
dec ecx
mov dword [0x4927cc], ecx
sub ecx, 0x29eb4cb9
cmp eax, ecx
jne 0x407200
mov eax, dword [0x495094]
mov ecx, dword [0x491e2c]
xor eax, ecx
xor eax, 0xf012a790
mov dword [0x491e2c], eax
jmp 0x407205
mov eax, esp
mov dword [eax + 4], 5
mov dword [eax], 0x3370
call fcn.0040b080
mov dword [esp + 0x7c8], eax
mov eax, dword [0x491b20]
mov ecx, dword [0x491aec]
or ecx, eax
mov dword [0x491aec], ecx
mov eax, dword [esp + 0x7c8]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0x635]
mov dword [ecx], eax
mov dword [esp + 0x44], eax
call fcn.004556b0
mov dx, word [0x4902bc]
mov cx, dx
or ecx, 0x60ad
mov dx, cx
mov word [0x4902bc], dx
mov ecx, esp
mov dword [ecx + 4], 3
mov dword [ecx], 0x1fb3
mov dword [esp + 0x40], eax
call fcn.0040b080
mov dword [esp + 0x7c4], eax
mov eax, dword [0x495304]
shl eax, 7
add eax, 0xa41df98c
or eax, 0x5630b00f
mov ecx, dword [0x4931dc]
sub ecx, eax
mov dword [0x4931dc], ecx
mov eax, dword [esp + 0x7c8]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 5
call fcn.00427f90
mov eax, dword [0x49223c]
mov ecx, dword [0x49560c]
shl ecx, 4
and eax, ecx
mov ecx, dword [0x49254c]
xor ecx, eax
mov dword [0x49254c], ecx
mov eax, dword [esp + 0x7c4]
mov ecx, esp
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x44]
mov dword [ecx], eax
call fcn.004571e1
mov dword [esp + 0x7bc], eax
mov eax, dword [0x4921d8]
mov ecx, eax
inc ecx
mov dword [0x4921d8], ecx
add eax, 0x47e3dcf6
or eax, 0x389ae80e
mov ecx, dword [0x491f08]
xor ecx, eax
mov dword [0x491f08], ecx
mov eax, dword [esp + 0x7c4]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 3
call fcn.00427f90
mov dx, word [0x490738]
mov ax, dx
imul eax, eax, 0x2f22b741
mov dx, ax
mov word [0x490738], dx
cmp dword [esp + 0x7bc], 0
je 0x40786d
mov ax, word [0x48f744]
mov cx, ax
inc ecx
mov dx, cx
mov word [0x48f744], dx
movsx ecx, ax
mov esi, 0x38d8f052
sub esi, ecx
mov ecx, dword [0x4928b0]
mov edi, dword [0x49345c]
mov ebx, edi
dec ebx
mov dword [0x49345c], ebx
sub edi, 0x2b7bc7ea
xor ecx, edi
cmp esi, ecx
jle 0x4073f9
mov eax, dword [0x494f18]
not eax
mov cx, word [0x490094]
mov dx, cx
mov esi, edx
dec esi
mov cx, si
mov word [0x490094], cx
and eax, edx
mov cx, word [0x490966]
mov dx, cx
mov esi, edx
inc esi
mov cx, si
mov word [0x490966], cx
or eax, edx
mov cx, word [0x48fbf0]
mov dx, cx
sub edx, eax
mov cx, dx
mov word [0x48fbf0], cx
jmp 0x407408
mov eax, dword [0x49291c]
or eax, 0x7cec7bfd
mov dword [0x49291c], eax
mov eax, 0xcb1b6b3
mov cx, word [0x48f6ae]
mov dx, cx
or edx, 0x7ffa
mov cx, dx
mov word [0x48f6ae], cx
mov edx, dword [esp + 0x7bc]
mov ecx, dword [esp + 0x7cc]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], edx
call fcn.0042b130
mov ecx, dword [esp + 0x7cc]
mov dword [esp + 0x34], eax
call fcn.00403de0
mov ecx, esp
mov edx, dword [esp + 0x38]
mov dword [ecx + 0xc], edx
mov edx, dword [esp + 0x34]
mov dword [ecx + 4], edx
mov dword [ecx], eax
mov dword [ecx + 8], 1
call fcn.0045b14b
mov ecx, dword [0x4923c8]
mov edx, dword [0x492cb0]
lea ecx, [ecx + edx - 0x51128457]
mov dword [0x492cb0], ecx
mov ecx, dword [esp + 0x7bc]
mov edx, esp
mov dword [edx], ecx
mov dword [esp + 0x30], eax
call fcn.0045b239
mov ecx, dword [0x494d9c]
or ecx, 0x151416d3
mov dword [0x494d9c], ecx
mov ecx, dword [esp + 0x7cc]
mov dword [esp + 0x2c], eax
call fcn.00408210
mov eax, dword [0x49424c]
imul eax, eax, 0x10a104
mov dword [0x49424c], eax
mov byte [esp + 0x1bf], 0
mov eax, dword [0x494474]
add eax, 0x97890e2d
mov dword [0x494474], eax
mov eax, dword [0x48f5a8]
mov ecx, esp
lea edx, [esp + 0x4c]
mov dword [ecx + 4], edx
mov dword [ecx + 8], 0x173
mov dword [ecx], 0
mov dword [esp + 0x28], edx
call eax
sub esp, 0xc
mov ecx, dword [0x493838]
mov edx, ecx
dec edx
mov dword [0x493838], edx
imul ecx, ecx, 0x3944ad75
and ecx, 0x739215b
mov edx, dword [0x492a24]
or edx, ecx
mov dword [0x492a24], edx
mov byte [esp + 0x62f], 0
mov ecx, dword [0x493888]
mov edx, ecx
dec edx
mov dword [0x493888], edx
imul ecx, ecx, 0x5d67ea39
mov edx, dword [0x492020]
or edx, ecx
mov dword [0x492020], edx
mov ecx, esp
mov dword [ecx + 4], 0x15
mov dword [ecx], 0x5986
mov dword [esp + 0x24], eax
call fcn.0040b080
mov dword [esp + 0x7c0], eax
mov eax, dword [0x4933e8]
dec eax
mov dword [0x4933e8], eax
imul eax, eax, 0x28026364
and eax, 0x54c24fec
mov ecx, dword [0x493018]
add ecx, eax
mov dword [0x493018], ecx
mov eax, dword [0x496384]
mov ecx, dword [0x49636c]
mov edx, dword [esp + 0x7c0]
mov esi, esp
mov dword [esi + 0x10], eax
mov dword [esi + 0xc], ecx
mov eax, dword [esp + 0x28]
mov dword [esi + 8], eax
mov dword [esi + 4], edx
lea ecx, [esp + 0x1c0]
mov dword [esi], ecx
call fcn.0045592e
mov di, word [0x49041e]
mov cx, di
dec ecx
mov di, cx
mov word [0x49041e], di
movsx ecx, di
add ecx, 0xc1f57639
mov edx, dword [0x492380]
xor edx, 0xffffffff
xor ecx, edx
mov edx, dword [esp + 0x3c]
cmp edx, ecx
mov dword [esp + 0x20], eax
jle 0x407629
mov eax, dword [0x4917e0]
xor eax, 0x828e6046
or eax, 0x7c419ab0
mov ecx, dword [0x49480c]
add ecx, eax
mov dword [0x49480c], ecx
mov eax, 0xcac968e7
mov ecx, dword [esp + 0x7c0]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 0x15
mov dword [esp + 0x1c], eax
call fcn.00427f90
mov eax, dword [0x49357c]
mov ecx, eax
inc ecx
mov dword [0x49357c], ecx
xor eax, 0x7c6fe9d0
mov dword [0x493d20], eax
mov eax, dword [0x496384]
mov ecx, esp
mov dword [ecx], eax
call fcn.00421e30
mov ecx, dword [0x4940f0]
add ecx, 0xfa67832e
mov edx, dword [esp + 0x1c]
cmp edx, ecx
mov dword [esp + 0x18], eax
jge 0x4076ce
mov eax, dword [0x4934ac]
mov ecx, eax
inc ecx
mov dword [0x4934ac], ecx
xor eax, 0x60dd0e5d
cmp eax, 0xcd65e4c0
jl 0x4076c9
mov eax, dword [0x493ff0]
and eax, 0x7976
mov cx, word [0x4914ee]
mov dx, cx
add edx, eax
mov cx, dx
mov word [0x4914ee], cx
jmp 0x4076ce
mov eax, esp
lea ecx, [esp + 0x1c0]
mov dword [eax + 4], ecx
lea ecx, [esp + 0x635]
mov dword [eax], ecx
call fcn.004441e0
mov eax, dword [0x493f3c]
imul eax, eax, 0x2e2a779c
and eax, 0x320ad4f4
mov ecx, dword [0x493620]
inc ecx
mov dword [0x493620], ecx
cmp eax, ecx
jl 0x40772e
mov eax, dword [0x493718]
mov ecx, eax
dec ecx
mov dword [0x493718], ecx
mov ecx, dword [0x495288]
xor ecx, eax
mov dword [0x495288], ecx
jmp 0x40777e
mov ax, word [0x4910bc]
mov cx, ax
dec ecx
mov ax, cx
mov word [0x4910bc], ax
movsx ecx, ax
mov edx, dword [0x494480]
and ecx, edx
and ecx, 0x17523e85
mov edx, dword [0x491e68]
and edx, 0xb8c0253e
cmp ecx, edx
jg 0x407779
mov eax, dword [0x493030]
mov ecx, dword [0x4920f0]
and ecx, eax
mov dword [0x4920f0], ecx
jmp 0x40777e
mov eax, esp
lea ecx, [esp + 0x1c0]
mov dword [eax], ecx
mov dword [eax + 4], 0x470
call fcn.004162e0
mov dx, word [0x491044]
mov ax, dx
and eax, 0x67e9
mov dx, ax
mov word [0x491044], dx
mov eax, esp
lea ecx, [esp + 0x4c]
mov dword [eax], ecx
mov dword [eax + 4], 0x174
call fcn.004162e0
mov eax, dword [0x492aac]
and eax, 0x2211727b
mov dword [0x492aac], eax
mov eax, dword [0x48f604]
mov ecx, esp
mov dword [ecx], 0x1607c
call eax
sub esp, 4
mov eax, dword [0x492c60]
mov dx, word [0x48fa60]
mov cx, dx
dec ecx
mov si, cx
mov word [0x48fa60], si
movsx ecx, dx
imul ecx, ecx, 0xac297795
cmp eax, ecx
jl 0x407822
mov eax, dword [0x492c94]
add eax, 0x4d040de2
mov dword [0x492c94], eax
jmp 0x407831
mov eax, dword [0x49336c]
or eax, 0x9a1e1647
mov dword [0x49336c], eax
mov eax, dword [0x48f554]
mov ecx, esp
lea edx, [esp + 0x635]
mov dword [ecx], edx
call eax
sub esp, 4
mov ecx, dword [0x49403c]
add ecx, 0xbfdb9765
mov si, word [0x490bc6]
mov dx, si
imul edx, ecx
mov si, dx
mov word [0x490bc6], si
mov dword [esp + 0x14], eax
mov eax, dword [0x4945f8]
mov ecx, eax
dec ecx
mov dword [0x4945f8], ecx
add eax, 0x9e1c6b6c
and eax, 0xecc975e
cmp eax, 0xb74e7d81
je 0x4078f7
mov eax, dword [0x494660]
shl eax, 9
imul eax, eax, 0x9381ada2
xor eax, 0x12b89200
cmp eax, 0x4080cd89
jne 0x4078cb
mov ax, word [0x490518]
mov cx, ax
add ecx, 0xae8a2385
mov ax, cx
mov word [0x490518], ax
jmp 0x4078f2
mov ax, word [0x490064]
movsx ecx, ax
xor ecx, 0xc28f8c4e
mov edx, dword [0x492848]
cmp ecx, edx
jl 0x4078ed
jmp 0x4078ed
jmp 0x4078f2
jmp 0x4078f7
mov eax, esp
lea ecx, [esp + 0x635]
mov dword [eax], ecx
mov dword [eax + 4], 0x187
call fcn.004162e0
mov eax, dword [0x492518]
and eax, 0x58f6332a
mov dword [0x492518], eax
mov ax, word [0x490590]
mov cx, ax
add ecx, 0xd4849225
mov ax, cx
mov word [0x490590], ax
add esp, 0x7d0
pop esi
pop edi
pop ebx
ret