Function at 0x416710
Capabilities:
Write file on windows

Disassembly:
push edi
push esi
sub esp, 0x7b8
mov eax, dword [esp + 0x7c4]
mov dword [esp + 0x7b4], eax
mov eax, dword [0x4970cc]
shl eax, 5
mov ecx, dword [0x499eac]
sub eax, ecx
mov ecx, dword [0x4992a8]
and ecx, eax
mov dword [0x4992a8], ecx
mov eax, dword [esp + 0x7b4]
mov ecx, eax
call fcn.00445e50
cmp eax, 0x8068
jbe 0x416e74
mov eax, dword [0x4964c4]
shl eax, 5
or eax, 0x1909b82f
cmp eax, 0x72765032
jge 0x416792
mov ax, word [0x49b430]
movsx ecx, ax
or ecx, 0x77a67ddd
mov edx, dword [0x497be0]
xor edx, ecx
mov dword [0x497be0], edx
mov eax, 0x6803a315
mov ecx, dword [0x493f2c]
add ecx, 0x8bfdef0a
mov dword [0x493f2c], ecx
mov ecx, dword [0x494cc4]
sar ecx, 4
add ecx, 0xbc18d723
add ecx, 0xe3d6248d
cmp eax, ecx
jl 0x4167d5
mov eax, dword [0x496d44]
or eax, 0x33181302
mov dword [0x496d44], eax
mov eax, 0x9af85e
mov ecx, dword [0x49a2b0]
and ecx, 0x7d1970eb
mov dword [0x49a2b0], ecx
mov ecx, esp
lea edx, [esp + 0x624]
mov dword [ecx], edx
mov dword [esp + 0x44], eax
call fcn.0041e850
mov dword [esp + 0x620], eax
mov eax, dword [0x496100]
mov ecx, eax
dec ecx
mov dword [0x496100], ecx
mov si, word [0x49c1b2]
movsx ecx, si
lea eax, [eax + ecx*8]
mov ecx, dword [0x49400c]
mov edx, ecx
dec edx
mov dword [0x49400c], edx
xor eax, ecx
mov ecx, dword [esp + 0x44]
cmp ecx, eax
je 0x416864
mov eax, dword [0x498130]
add eax, 0xa9211b63
mov cx, word [0x49d3e4]
mov dx, cx
xor eax, edx
xor eax, 0xfd5d
mov cx, ax
mov word [0x49d3e4], cx
call fcn.0042a810
movzx ecx, al
and ecx, 3
add ecx, 7
mov edx, dword [esp + 0x620]
lea edx, [esp + edx + 0x624]
mov esi, esp
mov dword [esi + 4], ecx
mov dword [esi], edx
call fcn.00441c10
mov ecx, dword [0x497ca4]
not ecx
add ecx, 0x75e4336b
mov dword [0x495240], ecx
mov ecx, esp
mov dword [ecx + 4], 5
mov dword [ecx], 0x18c9
call fcn.004179d0
mov dword [esp + 0x7b0], eax
mov di, word [0x49cb8c]
mov ax, di
or eax, 0xba6a
mov di, ax
mov word [0x49cb8c], di
mov eax, dword [esp + 0x7b0]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0x624]
mov dword [ecx], eax
mov dword [esp + 0x40], eax
call fcn.00455c70
mov ecx, dword [0x495348]
sar ecx, 0xa
imul ecx, ecx, 0xed50b362
mov dword [0x49b0f0], ecx
mov ecx, esp
mov dword [ecx + 4], 3
mov dword [ecx], 0x44d7
mov dword [esp + 0x3c], eax
call fcn.004179d0
mov dword [esp + 0x7ac], eax
mov eax, dword [0x494480]
mov ecx, dword [0x4980e0]
shl ecx, 5
neg ecx
lea eax, [eax + ecx + 0x520a1086]
mov ecx, dword [0x496b70]
and ecx, eax
mov dword [0x496b70], ecx
mov eax, dword [esp + 0x7b0]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 5
call fcn.004412d0
mov eax, dword [0x4953d8]
mov ecx, eax
inc ecx
mov dword [0x4953d8], ecx
imul eax, eax, 0x5bc12db9
add eax, 0x3ad3230d
mov ecx, dword [0x49851c]
xor ecx, eax
mov dword [0x49851c], ecx
mov eax, dword [esp + 0x7ac]
mov ecx, esp
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x40]
mov dword [ecx], eax
call fcn.0045618f
mov dword [esp + 0x7a4], eax
mov di, word [0x49dd66]
mov ax, di
imul eax, eax, 0x3ebeffc7
mov di, ax
mov word [0x49dd66], di
mov eax, dword [esp + 0x7ac]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 3
call fcn.004412d0
mov di, word [0x49c35c]
movsx eax, di
mov ecx, dword [0x498bc0]
sub ecx, eax
mov dword [0x498bc0], ecx
cmp dword [esp + 0x7a4], 0
je 0x416e3f
mov ax, word [0x49c0ec]
movsx ecx, ax
shl ecx, 0xa
xor ecx, 0x1740d285
mov dword [0x498fe0], ecx
mov ecx, dword [0x4951b4]
cmp ecx, 0xd1b18615
jle 0x416a72
mov eax, 0xfae23284
mov ecx, dword [0x497584]
mov edx, ecx
dec edx
mov dword [0x497584], edx
cmp eax, ecx
jg 0x416a6d
mov eax, 0x54ff3b7f
mov ecx, dword [0x494afc]
imul ecx, ecx, 0x8783890e
and ecx, 0x53650aea
cmp eax, ecx
jge 0x416a68
jmp 0x416a68
jmp 0x416a6d
jmp 0x416ac8
mov eax, dword [0x497624]
and eax, 0x3ac42e95
or eax, 0x7142248f
cmp eax, 0x1dfd5cdc
jne 0x416ac3
mov eax, 0xaa8ffeea
mov ecx, dword [0x49a7c4]
shl ecx, 2
mov edx, dword [0x494a40]
xor edx, 0xffffffff
imul ecx, edx
or ecx, 0xf2fead00
cmp eax, ecx
je 0x416ab9
jmp 0x416abe
jmp 0x416abe
jmp 0x416ac3
jmp 0x416ac8
mov eax, dword [esp + 0x7a4]
mov ecx, dword [esp + 0x7b4]
mov dword [esp + 0x38], eax
call fcn.00445e50
mov ecx, dword [esp + 0x7b4]
mov dword [esp + 0x34], eax
call fcn.0040b530
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.00456342
mov ecx, dword [0x4993ac]
mov edx, ecx
dec edx
mov dword [0x4993ac], edx
add ecx, 0xf850fc69
mov edx, dword [0x49ae58]
sub edx, ecx
mov dword [0x49ae58], edx
mov ecx, dword [esp + 0x7a4]
mov edx, esp
mov dword [edx], ecx
mov dword [esp + 0x30], eax
call fcn.00456430
mov ecx, dword [0x494e2c]
mov edx, dword [0x499fa4]
and ecx, edx
and ecx, 0x2d6d23e9
mov dword [0x499fa4], ecx
mov ecx, dword [esp + 0x7b4]
mov dword [esp + 0x2c], eax
call fcn.0043f690
mov eax, dword [0x496ff0]
and eax, 0x1b70ed6b
mov dword [0x496ff0], eax
mov byte [esp + 0x1b6], 0
mov dword [0x4996a8], 0xc1ca1542
mov eax, dword [0x493c48]
mov ecx, esp
lea edx, [esp + 0x4a]
mov dword [ecx + 4], edx
mov dword [ecx + 8], 0x16c
mov dword [ecx], 0
call eax
sub esp, 0xc
mov ecx, dword [0x49a24c]
add ecx, 0xef3fefff
mov dword [0x49a24c], ecx
mov byte [esp + 0x61f], 0
mov si, word [0x49e144]
mov cx, si
inc ecx
mov si, cx
mov word [0x49e144], si
movsx ecx, si
or ecx, 0xbbbeddd3
mov edx, dword [0x495b30]
imul edx, ecx
mov dword [0x495b30], edx
mov ecx, esp
mov dword [ecx + 4], 0x15
mov dword [ecx], 0x7d2
mov dword [esp + 0x28], eax
call fcn.004179d0
mov dword [esp + 0x7a8], eax
mov eax, dword [0x4963ec]
mov ecx, eax
inc ecx
mov dword [0x4963ec], ecx
add eax, 0x2f68881e
mov ecx, dword [0x495854]
xor ecx, 0xffffffff
add ecx, 0xec31e468
cmp eax, ecx
je 0x416c60
mov eax, dword [0x49af4c]
inc eax
mov dword [0x49af4c], eax
mov ecx, dword [0x495eac]
xor eax, ecx
mov ecx, dword [0x49a98c]
or ecx, eax
mov dword [0x49a98c], ecx
mov eax, dword [0x49f50c]
mov ecx, dword [0x49f4f4]
mov edx, dword [esp + 0x7a8]
mov esi, esp
mov dword [esi + 0x10], eax
mov dword [esi + 0xc], ecx
lea eax, [esp + 0x4a]
mov dword [esi + 8], eax
mov dword [esi + 4], edx
lea eax, [esp + 0x1b7]
mov dword [esi], eax
call fcn.00455fff
mov di, word [0x49b7ee]
movsx ecx, di
add ecx, 0xc0ffd17a
xor ecx, 0x94d2da48
mov di, word [0x49e22a]
movsx edx, di
shl edx, 5
xor edx, 0x7a9dd7a
xor edx, 0xf9bbcd4e
cmp ecx, edx
mov dword [esp + 0x24], eax
jge 0x416cdd
mov eax, dword [0x497d40]
imul eax, eax, 0x40f18751
mov dword [0x497d40], eax
mov eax, 0xa732c642
mov ecx, dword [esp + 0x7a8]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 0x15
mov dword [esp + 0x20], eax
call fcn.004412d0
mov eax, dword [0x4958c4]
add eax, 0x827ade37
mov dword [0x4958c4], eax
mov eax, dword [0x49f50c]
mov ecx, esp
mov dword [ecx], eax
call fcn.0042e660
mov ecx, dword [0x495e18]
xor ecx, 0x802
mov dword [0x495e18], ecx
mov ecx, esp
lea edx, [esp + 0x1b7]
mov dword [ecx + 4], edx
lea esi, [esp + 0x624]
mov dword [ecx], esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], edx
call fcn.00439f50
mov eax, dword [0x49acdc]
mov ecx, dword [0x498080]
xor ecx, eax
mov dword [0x498080], ecx
mov eax, esp
mov ecx, dword [esp + 0x18]
mov dword [eax], ecx
mov dword [eax + 4], 0x469
call fcn.00445af0
mov eax, dword [0x49496c]
mov ecx, eax
inc ecx
mov dword [0x49496c], ecx
mov ecx, 0xf5d13c
sub ecx, eax
mov di, cx
mov word [0x49d76c], di
mov eax, esp
lea ecx, [esp + 0x4a]
mov dword [eax], ecx
mov dword [eax + 4], 0x16d
call fcn.00445af0
mov eax, dword [0x49984c]
mov ecx, dword [esp + 0x20]
cmp ecx, eax
jge 0x416ddc
mov eax, dword [0x497620]
shl eax, 7
mov ecx, dword [0x499a00]
sub eax, ecx
and eax, 0x6e4fc70e
mov ecx, dword [0x499c3c]
xor ecx, eax
mov dword [0x499c3c], ecx
mov eax, dword [0x493ca4]
mov ecx, esp
mov dword [ecx], 0x1609b
call eax
sub esp, 4
mov eax, dword [0x495174]
or eax, 0xcc6a9219
mov dword [0x495174], eax
mov eax, dword [0x493bf4]
mov ecx, esp
lea edx, [esp + 0x624]
mov dword [ecx], edx
call eax
sub esp, 4
mov ecx, dword [0x4986d4]
dec ecx
mov dword [0x4986d4], ecx
or ecx, 0x3ad1
mov si, word [0x49c692]
mov dx, si
and edx, ecx
mov si, dx
mov word [0x49c692], si
mov dword [esp + 0x14], eax
mov eax, dword [0x4940fc]
add eax, 0xe2c8babb
mov dword [0x4940fc], eax
mov eax, esp
lea ecx, [esp + 0x624]
mov dword [eax], ecx
mov dword [eax + 4], 0x180
call fcn.00445af0
mov eax, dword [0x49aab4]
and eax, 0x5e5f7099
mov dword [0x49aab4], eax
mov eax, dword [0x4946cc]
mov ecx, eax
inc ecx
mov dword [0x4946cc], ecx
mov dx, word [0x49d498]
movsx ecx, dx
not ecx
add eax, ecx
mov ecx, dword [0x4990d8]
add ecx, eax
mov dword [0x4990d8], ecx
add esp, 0x7b8
pop esi
pop edi
ret