Function at 0xa91b20
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x1cc
mov dword [esp + 0x18c], eax
mov ebp, dword [esp + 0x1e0]
mov dword [esp + 0x11c], edx
mov dword [esp + 0x144], ecx
mov dword [esp + 0x1bc], 0
call fcn.00ada2a0
test al, 1
je 0xa91b5c
emms
mov ecx, dword [esp + 0x1e8]
add ecx, 3
mov ebx, ecx
add ebx, ebx
mov dword [esp + 0x148], ecx
mov dword [esp], ebx
call fcn.00ad00c0
mov edx, dword [esp + 0x11c]
test eax, eax
mov dword [edx], eax
je 0xa93b37
cmp ebp, 0x10009
setle al
cmp ebp, 0xffff
jg 0xa91ba8
mov eax, 0x10000
sub eax, ebp
cmp eax, 9
setle al
test al, al
jne 0xa9311b
test byte [esp + 0x1f4], 0x10
jne 0xa93183
cmp ebp, 0x10000
jg 0xa924f2
test byte [esp + 0x1f4], 0x20
je 0xa924f2
mov ebx, dword [esp + 0x1e8]
shl ebx, 4
mov dword [esp], ebx
call fcn.00ad00c0
test eax, eax
mov dword [esp + 0x1bc], eax
je 0xa93c62
mov edx, dword [esp + 0x1e8]
mov dword [esp + 0xb8], 2
test edx, edx
jle 0xa91e46
mov ecx, dword [esp + 0x11c]
mov edx, ebp
mov ebx, ebp
shr edx, 0x1f
add edx, ebp
sar edx, 1
mov ecx, dword [ecx]
sub edx, 0x8000
mov esi, edx
sar ebx, 0x1f
sar esi, 0x1f
mov dword [esp + 0xc0], ebp
mov ebp, eax
mov dword [esp + 0xe8], ecx
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0xf8], edx
mov dword [esp + 0xfc], esi
mov esi, dword [esp + 0xb8]
add esi, dword [esp + 0xf8]
mov edi, dword [esp + 0xbc]
adc edi, dword [esp + 0xfc]
mov eax, esi
mov edx, dword [esp + 0xe8]
shrd eax, edi, 0x10
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x88]
movzx ecx, word [esp + 0x90]
mov word [edx + eax*2], cx
mov eax, dword [esp + 0x90]
mov edx, eax
sar edx, 0x1f
shld edx, eax, 0x10
shl eax, 0x10
mov dword [esp + 0xf0], eax
sub dword [esp + 0xf0], esi
mov dword [esp + 0xf4], edx
mov edx, dword [esp + 0xf0]
sbb dword [esp + 0xf4], edi
mov ebx, dword [esp + 0xf4]
mov eax, dword [esp + 0xf4]
sar ebx, 0x1f
xor edx, ebx
xor eax, ebx
mov dword [esp + 0xb0], edx
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xb0]
sub eax, ebx
mov ecx, eax
xor eax, eax
imul edx, ecx, 0xffffffc0
mov ecx, eax
add ecx, 0
mov ebx, edx
adc ebx, 0x400000
mov edx, ebx
sar edx, 0x1f
mov dword [esp + 0xf4], edx
mov edx, dword [esp + 0xf4]
mov dword [esp + 0xf0], ebx
mov eax, dword [esp + 0xf0]
not edx
mov dword [esp + 0xd4], edx
mov edx, dword [esp + 0xd4]
not eax
mov dword [esp + 0xd0], eax
sar edx, 0x1f
mov eax, edx
and edx, ebx
and eax, ecx
mov dword [ebp], eax
mov eax, dword [esp + 0x90]
mov dword [ebp + 4], edx
add eax, 1
mov ecx, eax
mov ebx, eax
sar ebx, 0x1f
shl ecx, 0x10
shld ebx, eax, 0x10
sub ecx, esi
sbb ebx, edi
mov edx, ebx
sar edx, 0x1f
mov esi, edx
mov edi, edx
xor esi, ecx
xor edi, ebx
mov dword [esp + 0xc8], esi
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0xcc], edi
sub ecx, edx
xor eax, eax
imul edx, ecx, 0xffffffc0
mov ecx, eax
add ecx, 0
mov ebx, edx
adc ebx, 0x400000
mov edx, ebx
mov esi, ebx
sar edx, 0x1f
not esi
mov edi, edx
not edi
mov dword [esp + 0xdc], edi
mov edx, dword [esp + 0xdc]
add dword [esp + 0x88], 1
mov dword [esp + 0xd8], esi
sar edx, 0x1f
mov eax, edx
and edx, ebx
and eax, ecx
mov ecx, dword [esp + 0x1e8]
mov dword [ebp + 8], eax
mov eax, dword [esp + 0xc0]
add dword [esp + 0xb8], eax
mov dword [ebp + 0xc], edx
mov edx, dword [esp + 0xc4]
adc dword [esp + 0xbc], edx
add ebp, 0x10
cmp dword [esp + 0x88], ecx
jne 0xa91c7b
mov dword [esp + 0xb8], 2
mov eax, dword [esp + 0x1fc]
mov ebp, dword [esp + 0xb8]
test eax, eax
je 0xa91e66
mov ecx, dword [esp + 0x1fc]
mov eax, dword [ecx + 4]
lea ebp, [ebp + eax - 1]
mov eax, dword [esp + 0x200]
test eax, eax
je 0xa91e7f
mov ebx, dword [esp + 0x200]
mov eax, dword [ebx + 4]
lea ebp, [ebp + eax - 1]
mov eax, dword [esp + 0x1e8]
imul eax, ebp
lea ebx, [eax*8]
mov dword [esp], ebx
call fcn.00ad02a0
test eax, eax
mov dword [esp + 0xc8], eax
je 0xa93b80
mov eax, dword [esp + 0x1e8]
test eax, eax
jle 0xa92018
mov eax, dword [esp + 0xb8]
lea edx, [ebp - 1]
mov ecx, edx
mov ebx, dword [esp + 0x1bc]
shr ecx, 0x1f
add edx, ecx
sub eax, 1
mov ecx, eax
shr ecx, 0x1f
add eax, ecx
mov ecx, dword [esp + 0xb8]
sar edx, 1
sar eax, 1
sub ax, dx
mov edx, dword [esp + 0x11c]
lea esi, [ebp*8]
mov word [esp + 0xe8], ax
mov eax, dword [esp + 0xc8]
shl ecx, 3
mov dword [esp + 0xd8], esi
mov esi, dword [esp + 0xb8]
mov edx, dword [edx]
mov dword [esp + 0xb8], ebp
mov ebp, dword [esp + 0x1fc]
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xb0], eax
mov dword [esp + 0xc0], edx
mov dword [esp + 0x90], 0
test ebp, ebp
je 0xa9304a
mov edx, dword [ebp + 4]
xor edi, edi
mov ecx, dword [esp + 0xb0]
test edx, edx
mov dword [esp + 0x88], edx
jle 0xa91fc9
test esi, esi
jle 0xa91fba
mov eax, dword [ebp]
xor edx, edx
fld qword [eax + edi*8]
fnstcw word [esp + 0x19e]
movzx eax, word [esp + 0x19e]
mov ah, 0xc
mov word [esp + 0x19c], ax
fild qword [ecx + edx*8]
fild qword [ebx + edx*8]
fstp qword [esp + 0x1a8]
fld qword [esp + 0x1a8]
fmul st(2)
faddp st(1)
fldcw word [esp + 0x19c]
fistp qword [ecx + edx*8]
fldcw word [esp + 0x19e]
add edx, 1
cmp edx, esi
jne 0xa91f88
fstp st(0)
add edi, 1
add ecx, 8
cmp edi, dword [esp + 0x88]
jne 0xa91f63
mov ecx, dword [esp + 0x90]
mov edi, dword [esp + 0xc0]
movzx eax, word [esp + 0xe8]
mov edx, dword [esp + 0xd8]
add ebx, dword [esp + 0xd0]
add word [edi + ecx*2], ax
add ecx, 1
mov edi, dword [esp + 0x1e8]
add dword [esp + 0xb0], edx
mov dword [esp + 0x90], ecx
cmp ecx, edi
jne 0xa91f44
mov ebp, dword [esp + 0xb8]
lea eax, [esp + 0x1bc]
mov dword [esp], eax
call fcn.00ad0270
mov ecx, dword [esp + 0x1e8]
mov dword [esp + 0xd8], 0
sub ecx, 1
mov dword [esp + 0xc0], ecx
js 0xa9236c
mov esi, ebp
mov eax, dword [esp + 0xc8]
neg esi
imul ecx, ebp
lea ebx, [ebp - 1]
mov dword [esp + 0xf0], esi
shl esi, 3
mov dword [esp + 0x100], ebx
mov ebx, dword [esp + 0xc0]
mov dword [esp + 0xf8], esi
mov esi, dword [esp + 0x1e8]
lea eax, [eax + ecx*8]
fld xword [0x1253020]
mov dword [esp + 0xb0], ecx
mov ecx, eax
mov dword [esp + 0x88], eax
add esi, esi
mov dword [esp + 0xb8], ebx
lea edi, [esi - 2]
test ebp, ebp
mov dword [esp + 0xe8], edi
jle 0xa921f3
mov ebx, dword [esp + 0x88]
mov edx, dword [ebx + 4]
mov edi, dword [ebx]
sar edx, 0x1f
xor edi, edx
mov dword [esp + 0x98], edi
mov edi, dword [ebx + 4]
xor edi, edx
sub dword [esp + 0x98], edx
mov dword [esp + 0x9c], edi
sbb dword [esp + 0x9c], edx
fild qword [esp + 0x98]
fld xword [0x1253020]
fxch st(1)
fucompi st(1)
fstp st(0)
ja 0xa921f3
mov edx, dword [esp + 0x11c]
mov ebx, dword [esp + 0xe8]
mov dword [esp + 0x90], 0
mov eax, dword [edx]
add esi, eax
add ebx, eax
mov dword [esp + 0xd0], esi
mov edi, dword [esp + 0xb8]
cmp dword [esp + 0xc0], edi
jle 0xa92148
mov eax, dword [esp + 0xd0]
movzx eax, word [eax]
cmp word [ebx], ax
jge 0xa921f3
cmp ebp, 1
mov eax, 1
je 0xa9216a
mov esi, dword [ecx + eax*8]
mov edi, dword [ecx + eax*8 + 4]
mov dword [ecx + eax*8 - 8], esi
mov dword [ecx + eax*8 - 4], edi
add eax, 1
cmp eax, ebp
jne 0xa92152
mov eax, ebp
mov edx, dword [esp + 0xb0]
mov esi, dword [esp + 0xc8]
add dword [esp + 0x90], 1
lea eax, [edx + eax - 1]
mov dword [esi + eax*8], 0
mov dword [esi + eax*8 + 4], 0
add word [ebx], 1
cmp dword [esp + 0x90], ebp
je 0xa921f3
mov esi, dword [esp + 0x88]
mov edx, dword [esi + 4]
mov edi, dword [esi]
sar edx, 0x1f
xor edi, edx
mov dword [esp + 0xa0], edi
mov edi, dword [esi + 4]
mov esi, dword [esp + 0xa0]
xor edi, edx
mov dword [esp + 0xa4], edi
mov edi, dword [esp + 0xa4]
sub esi, edx
sbb edi, edx
add dword [esp + 0x98], esi
adc dword [esp + 0x9c], edi
fild qword [esp + 0x98]
fucompi st(1)
jbe 0xa92125
mov edi, dword [esp + 0x100]
mov esi, ebp
test edi, edi
jle 0xa92319
mov edi, dword [esp + 0x88]
mov edx, dword [edi + ebp*8 - 4]
mov ebx, dword [edi + ebp*8 - 8]
mov esi, dword [edi + ebp*8 - 4]
sar edx, 0x1f
xor ebx, edx
xor esi, edx
mov dword [esp + 0xe0], ebx
sub dword [esp + 0xe0], edx
mov dword [esp + 0xe4], esi
mov esi, ebp
sbb dword [esp + 0xe4], edx
fild qword [esp + 0xe0]
fld xword [0x1253020]
fxch st(1)
fucompi st(1)
ja 0xa92317
mov esi, dword [esp + 0x100]
mov ebx, ecx
mov dword [esp + 0x90], ebp
mov edi, dword [esp + 0xe0]
mov ebp, dword [esp + 0xe4]
mov dword [esp + 0x118], esi
mov ecx, esi
jmp 0xa922ec
mov edx, dword [ebx + ecx*8 + 4]
sar edx, 0x1f
mov eax, edx
xor eax, dword [ebx + ecx*8]
mov dword [esp + 0xd0], edx
mov dword [esp + 0xd4], edx
xor edx, dword [ebx + ecx*8 + 4]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xa8]
sub eax, dword [esp + 0xd0]
mov dword [esp + 0xac], edx
mov edx, dword [esp + 0xac]
sbb edx, dword [esp + 0xd4]
add edi, eax
mov dword [esp + 0x1a0], edi
adc ebp, edx
mov dword [esp + 0x1a4], ebp
fild qword [esp + 0x1a0]
fucompi st(1)
ja 0xa922f5
mov dword [esp + 0x118], ecx
sub ecx, 1
jne 0xa92280
fstp st(0)
jmp 0xa922f7
fstp st(0)
mov dword [esp + 0xe4], ebp
mov esi, dword [esp + 0x118]
mov ecx, ebx
mov ebp, dword [esp + 0x90]
mov dword [esp + 0xe0], edi
jmp 0xa92319
fstp st(0)
mov edx, dword [esp + 0xf8]
cmp dword [esp + 0xd8], esi
mov ebx, dword [esp + 0xf0]
cmovge esi, dword [esp + 0xd8]
sub dword [esp + 0xb8], 1
add ecx, edx
add dword [esp + 0x88], edx
add dword [esp + 0xb0], ebx
cmp dword [esp + 0xb8], 0xffffffff
mov dword [esp + 0xd8], esi
mov esi, dword [esp + 0xe8]
jne 0xa920a2
fstp st(0)
test byte [esp + 0x1f8], 1
je 0xa9307c
cmp dword [esp + 0xd8], 1
jne 0xa9307c
cmp dword [esp + 0x1ec], 2
jne 0xa9307c
mov eax, dword [esp + 0x1e8]
shl eax, 3
mov dword [esp], eax
call fcn.00ad00c0
mov dword [esp + 0xb8], 1
mov dword [esp + 0xd0], eax
mov dword [esp + 0x1bc], eax
mov eax, dword [esp + 0xd0]
test eax, eax
je 0xa930e8
mov ebx, dword [esp + 0xb8]
mov ecx, dword [esp + 0x144]
test dword [esp + 0x1f4], 0x1000
mov dword [ecx], ebx
jne 0xa930f2
mov eax, dword [esp + 0x1e8]
test eax, eax
jle 0xa92bfe
mov ecx, dword [esp + 0x1f4]
lea esi, [ebp*8]
mov edi, dword [esp + 0xb8]
mov eax, dword [esp + 0x1bc]
mov dword [esp + 0xa8], esi
mov ebx, dword [esp + 0xc8]
and ecx, 0x80000
mov esi, dword [esp + 0xd8]
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0xb8]
shl edi, 3
mov dword [esp + 0xa0], edi
mov dword [esp + 0x98], 0
mov dword [esp + 0x90], eax
mov dword [esp + 0xd0], eax
test ecx, ecx
jle 0xa92a7e
mov edi, dword [esp + 0xb0]
mov dword [esp + 0xb8], ecx
mov edx, dword [esp + 0x90]
mov dword [esp + 0x88], esi
test edi, edi
setne al
mov edi, eax
xor eax, eax
mov ecx, edi
mov byte [esp + 0xd8], cl
jmp 0xa924e0
mov dword [edx], 0
mov dword [edx + 4], 0
cmp eax, dword [esp + 0x88]
jl 0xa924cd
cmp byte [esp + 0xd8], 0
je 0xa924cd
mov dword [edx], 0
mov dword [edx + 4], 0
add eax, 1
add edx, 8
cmp eax, dword [esp + 0xb8]
je 0xa92a70
cmp ebp, eax
jle 0xa924a0
mov esi, dword [ebx + eax*8]
mov edi, dword [ebx + eax*8 + 4]
mov dword [edx], esi
mov dword [edx + 4], edi
jmp 0xa924ad
test byte [esp + 0x1f4], 1
jne 0xa91bd8
mov ebx, dword [esp + 0x1f4]
mov eax, 4
and ebx, 4
mov dword [esp + 0xe8], ebx
jne 0xa92534
test byte [esp + 0x1f4], 8
mov al, 8
jne 0xa92534
test byte [esp + 0x1f4], 0x20
mov al, 1
je 0xa93cc5
cmp ebp, 0x10000
jg 0xa93ac6
mov ebx, dword [esp + 0x1e8]
add eax, 1
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x1e4]
mov edx, dword [esp + 0x1e4]
sub eax, 1
sub edx, 2
cmp dword [esp + 0xb8], eax
cmovl edx, dword [esp + 0xb8]
shl ebx, 3
imul ebx, edx
mov dword [esp + 0xb8], edx
mov dword [esp], ebx
call fcn.00ad00c0
test eax, eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0x1bc], eax
je 0xa93c98
mov edi, dword [esp + 0x1e8]
test edi, edi
jle 0xa91e46
mov ecx, dword [esp + 0x11c]
lea eax, [ebp + ebp]
mov ebx, dword [esp + 0x1f4]
mov esi, dword [esp + 0x1f4]
mov edi, dword [esp + 0x1f4]
mov ecx, dword [ecx]
and ebx, 8
mov edx, dword [esp + 0xb8]
mov dword [esp + 0x138], ebx
mov ebx, dword [esp + 0x1f4]
and esi, 0x20
and edi, 0x80
mov dword [esp + 0x188], ecx
mov ecx, dword [esp + 0x1f4]
mov dword [esp + 0x14c], esi
mov esi, dword [esp + 0x1f4]
sub edx, 2
mov dword [esp + 0x16c], edi
mov edi, dword [esp + 0x1f4]
shl edx, 0x10
and ebx, 0x200
and ecx, 0x100
mov dword [esp + 0x170], ecx
mov ecx, eax
and esi, 2
mov dword [esp + 0x180], eax
lea eax, [ebp - 0x10000]
and edi, 0x400
mov dword [esp + 0x120], eax
sar ecx, 0x1f
mov dword [esp + 0x174], ebx
mov ebx, eax
mov eax, edx
sar ebx, 0x1f
sar edx, 0x1f
mov dword [esp + 0x190], eax
sub dword [esp + 0x120], eax
mov eax, dword [esp + 0x1e8]
mov dword [esp + 0x124], ebx
mov dword [esp + 0x194], edx
sbb dword [esp + 0x124], edx
mov edx, eax
sar edx, 0x1f
mov dword [esp + 0x178], esi
mov dword [esp + 0x17c], edi
mov dword [esp + 0x184], ecx
mov dword [esp + 0xd0], 0
mov dword [esp + 0x140], 0
mov dword [esp + 0x130], eax
mov dword [esp + 0x134], edx
mov edx, ebp
sar edx, 0x1f
mov dword [esp + 0x160], ebp
mov dword [esp + 0x164], edx
mov eax, dword [esp + 0x124]
mov ecx, dword [esp + 0x120]
mov ebx, dword [esp + 0x124]
add ecx, dword [esp + 0x190]
adc ebx, dword [esp + 0x194]
sar eax, 0x1f
mov esi, dword [esp + 0x188]
mov edx, eax
sar edx, 0x1f
mov eax, edx
xor edx, edx
mov dword [esp + 0xfc], ebx
shr eax, 0xf
mov ebx, dword [esp + 0x140]
add eax, dword [esp + 0x120]
adc edx, dword [esp + 0x124]
mov dword [esp + 0xf8], ecx
shrd eax, edx, 0x11
mov word [esi + ebx*2], ax
mov esi, dword [esp + 0xb8]
test esi, esi
jle 0xa93737
mov edi, eax
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x1e4]
sar edi, 0x1f
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x104], edi
mov edx, eax
sar edx, 0x1f
mov dword [esp + 0x128], eax
mov dword [esp + 0x12c], edx
jmp 0xa928a0
mov esi, dword [esp + 0x204]
fld qword [esi]
fld dword [0x1253000]
fxch st(1)
fucomi st(1)
fstp st(1)
jp 0xa927ba
je 0xa932eb
fnstcw word [esp + 0x19e]
fld dword [0x1253004]
fmulp st(1)
movzx eax, word [esp + 0x19e]
mov ah, 0xc
mov word [esp + 0x19c], ax
fldcw word [esp + 0x19c]
fistp qword [esp + 0xb0]
fldcw word [esp + 0x19e]
mov edi, dword [esp + 0x204]
fld qword [edi + 8]
fld dword [0x1253000]
fxch st(1)
fucomi st(1)
fstp st(1)
jp 0xa9280e
je 0xa93308
fnstcw word [esp + 0x19e]
fld dword [0x1253004]
cmp ebx, 0
fmulp st(1)
movzx eax, word [esp + 0x19e]
mov ah, 0xc
mov word [esp + 0x19c], ax
fldcw word [esp + 0x19c]
fistp qword [esp + 0xc8]
fldcw word [esp + 0x19e]
jg 0xa92852
jmp 0xa93329
fstp st(0)
fstp st(0)
xor esi, esi
xor edi, edi
jmp 0xa92860
fstp st(0)
jmp 0xa92860
fstp st(0)
nop
mov eax, dword [esp + 0xd0]
add eax, dword [esp + 0x88]
add dword [esp + 0x88], 1
mov edx, dword [esp + 0xd8]
mov ecx, dword [esp + 0x88]
adc dword [esp + 0x8c], 0
cmp dword [esp + 0xb8], ecx
mov dword [edx + eax*8], esi
mov dword [edx + eax*8 + 4], edi
jle 0xa93737
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
add eax, dword [esp + 0x100]
adc edx, dword [esp + 0x104]
shld edx, eax, 0x11
shl eax, 0x11
sub eax, dword [esp + 0xf8]
sbb edx, dword [esp + 0xfc]
mov ebx, edx
sar ebx, 0x1f
mov esi, ebx
mov edi, ebx
xor esi, eax
xor edi, edx
mov dword [esp + 0x90], esi
mov esi, dword [esp + 0x90]
mov dword [esp + 0x94], edi
mov edi, dword [esp + 0x94]
sub esi, ebx
sbb edi, ebx
mov ecx, esi
mov ebx, edi
shld ebx, esi, 0xd
shl ecx, 0xd
cmp ebp, 0x10000
jle 0xa92975
mov edx, dword [esp + 0x134]
mov eax, dword [esp + 0x1e8]
imul edx, ecx
imul eax, ebx
lea ebx, [edx + eax]
mov eax, dword [esp + 0x1e8]
mul ecx
mov ecx, dword [esp + 0x128]
add edx, ebx
mov ebx, dword [esp + 0x12c]
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], edx
mov esi, dword [esp + 0xb4]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0xb0]
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.01087f40
mov ecx, eax
mov ebx, edx
mov eax, dword [esp + 0xe8]
test eax, eax
jne 0xa9279d
mov dword [esp + 0x1a0], ecx
mov esi, dword [esp + 0x138]
mov dword [esp + 0x1a4], ebx
fild qword [esp + 0x1a0]
test esi, esi
fstp qword [esp + 0x1a8]
fld qword [esp + 0x1a8]
fld dword [0x1253008]
fmulp st(1)
fstp qword [esp + 0x1a8]
fld qword [esp + 0x1a8]
je 0xa93250
mov ecx, dword [esp + 0x204]
fld qword [ecx]
fld dword [0x1253000]
fxch st(1)
fucomi st(1)
fstp st(1)
jp 0xa929e9
jne 0xa929e9
fstp st(0)
fld1
fld1
fucompi st(2)
jbe 0xa9284e
fldpi
fmulp st(2)
fxch st(1)
fstp qword [esp]
fstp qword [esp + 0x20]
call fcn.01088e60
fldz
fucompi st(1)
fld qword [esp + 0x20]
fstp qword [esp + 8]
ja 0xa93c87
fstp qword [esp]
call fcn.010887f0
fld dword [0x125300c]
fmul st(1), st(0)
fnstcw word [esp + 0x19e]
movzx eax, word [esp + 0x19e]
faddp st(1)
fmul dword [0x1253010]
mov ah, 0xc
mov word [esp + 0x19c], ax
fldcw word [esp + 0x19c]
fistp qword [esp + 0x1a0]
fldcw word [esp + 0x19e]
mov esi, dword [esp + 0x1a0]
mov edi, dword [esp + 0x1a4]
jmp 0xa92860
mov esi, dword [esp + 0x88]
mov ecx, dword [esp + 0xb8]
mov edi, dword [esp + 0xa0]
add dword [esp + 0x90], edi
add dword [esp + 0x98], 1
mov edi, dword [esp + 0x1e8]
add ebx, dword [esp + 0xa8]
cmp dword [esp + 0x98], edi
jne 0xa92468
mov edx, dword [esp + 0x11c]
xor ebp, ebp
mov edi, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0xd0]
mov edx, dword [edx]
sub edi, 1
movzx ebx, word [esp + 0x1e4]
sub bx, word [esp + 0xb8]
sub ecx, 2
mov dword [esp + 0x98], edi
mov edi, dword [esp + 0xb8]
mov dword [esp + 0xb0], ecx
mov ecx, eax
mov dword [esp + 0xa8], edx
mov dword [esp + 0x90], 0
mov word [esp + 0xd0], bx
mov esi, dword [esp + 0x90]
mov edx, dword [esp + 0xa8]
movzx ebx, word [edx + esi*2]
test bx, bx
js 0xa92fad
movsx ebx, bx
add ebx, edi
cmp dword [esp + 0x1e4], ebx
jge 0xa92bd9
mov edx, dword [esp + 0xb0]
sub ebx, dword [esp + 0x1e4]
test edx, edx
js 0xa92bbf
mov edx, dword [esp + 0xb0]
add ebx, dword [esp + 0xb0]
mov dword [esp + 0x88], edi
mov dword [esp + 0xd8], ebp
mov esi, dword [esp + 0x98]
cmp ebx, dword [esp + 0x88]
mov edi, dword [ecx + edx*8]
mov ebp, dword [ecx + edx*8 + 4]
cmovl esi, ebx
add esi, dword [esp + 0xd8]
add dword [eax + esi*8], edi
adc dword [eax + esi*8 + 4], ebp
sub ebx, 1
mov dword [ecx + edx*8], 0
mov dword [ecx + edx*8 + 4], 0
sub edx, 1
cmp edx, 0xffffffff
jne 0xa92b71
mov edi, dword [esp + 0x88]
mov ebp, dword [esp + 0xd8]
movzx esi, word [esp + 0xd0]
mov edx, dword [esp + 0x90]
mov ebx, dword [esp + 0xa8]
mov word [ebx + edx*2], si
add dword [esp + 0x90], 1
add ebp, edi
mov ebx, dword [esp + 0x1e8]
add ecx, dword [esp + 0xa0]
cmp dword [esp + 0x90], ebx
jne 0xa92b16
mov ecx, dword [esp + 0x144]
mov eax, dword [esp + 0x148]
imul eax, dword [ecx]
add eax, eax
mov dword [esp], eax
call fcn.00ad02a0
mov ecx, dword [esp + 0x144]
mov ebx, dword [esp + 0x18c]
mov ecx, dword [ecx]
test eax, eax
mov dword [esp + 0xe0], eax
mov dword [ebx], eax
mov dword [esp + 0x90], ecx
je 0xa93af1
mov eax, dword [esp + 0x1bc]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x1e8]
test eax, eax
jle 0xa92ee6
mov eax, dword [esp + 0x1f0]
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0xb0], 0
shr eax, 0x1f
add eax, dword [esp + 0x1f0]
shl ecx, 3
mov dword [esp + 0xd8], ecx
mov ecx, dword [esp + 0x90]
sar eax, 1
mov edx, eax
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x1f0]
sar edx, 0x1f
mov dword [esp + 0xec], edx
add ecx, ecx
mov dword [esp + 0x118], ecx
mov edx, eax
mov dword [esp + 0x110], eax
mov eax, dword [esp + 0xd0]
sar edx, 0x1f
mov dword [esp + 0x114], edx
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0xa0], eax
mov edx, dword [esp + 0xb8]
xor ecx, ecx
xor ebx, ebx
xor eax, eax
test edx, edx
jle 0xa92d13
mov esi, dword [esp + 0xb8]
mov edx, dword [esp + 0x98]
add ecx, dword [edx + eax*8]
adc ebx, dword [edx + eax*8 + 4]
add eax, 1
cmp eax, esi
jne 0xa92d05
mov eax, dword [esp + 0x90]
test eax, eax
jle 0xa92eae
mov esi, dword [esp + 0x110]
mov edi, dword [esp + 0x114]
add ecx, dword [esp + 0xe8]
adc ebx, dword [esp + 0xec]
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
mov dword [esp], ecx
mov dword [esp + 4], ebx
call fcn.01087f40
mov ecx, eax
mov ebx, edx
mov esi, eax
mov edi, edx
shrd ecx, edx, 1
xor eax, eax
sar ebx, 1
xor edx, edx
mov dword [esp + 0xac], ebx
xor ebx, ebx
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf4], edx
mov dword [esp + 0x88], esi
mov dword [esp + 0x8c], edi
jmp 0xa92e5a
jle 0xa92ea4
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0xac]
add eax, esi
adc edx, edi
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf4], edx
mov edx, dword [esp + 0x8c]
mov ecx, dword [esp + 0xf4]
mov eax, dword [esp + 0x88]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0xf0]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp], edx
call fcn.01087f40
mov ebp, dword [esp + 0xa0]
mov ecx, eax
mov edx, eax
mov word [ebp + ebx*2], ax
mov eax, dword [esp + 0x88]
sar edx, 0x1f
imul eax, edx
mov edx, dword [esp + 0x8c]
imul edx, ecx
lea ebp, [eax + edx]
mov eax, dword [esp + 0x88]
mul ecx
mov ecx, edi
add edx, ebp
mov dword [esp + 0xf4], edx
mov edx, esi
mov dword [esp + 0xf0], eax
sub edx, dword [esp + 0xf0]
sbb ecx, dword [esp + 0xf4]
add ebx, 1
cmp ebx, dword [esp + 0x90]
mov dword [esp + 0xf0], edx
mov dword [esp + 0xf4], ecx
je 0xa92eae
mov ecx, dword [esp + 0x98]
mov esi, dword [esp + 0xf0]
mov edi, dword [esp + 0xf4]
add esi, dword [ecx + ebx*8]
adc edi, dword [ecx + ebx*8 + 4]
cmp edi, 0
jge 0xa92d95
mov edx, esi
mov ecx, edi
sub edx, dword [esp + 0xa8]
sbb ecx, dword [esp + 0xac]
mov dword [esp + 0xf0], edx
mov dword [esp + 0xf4], ecx
jmp 0xa92dbb
cmp esi, 0
jbe 0xa92e7f
jmp 0xa92d9b
add dword [esp + 0xb0], 1
mov ecx, dword [esp + 0xd8]
mov ebx, dword [esp + 0x118]
mov esi, dword [esp + 0x1e8]
add dword [esp + 0x98], ecx
add dword [esp + 0xa0], ebx
cmp dword [esp + 0xb0], esi
jne 0xa92ce6
mov edx, dword [esp + 0x11c]
mov ecx, dword [esp + 0xc0]
mov ebx, dword [esp + 0x1e8]
mov eax, dword [edx]
movzx edx, word [eax + ecx*2]
mov word [eax + ebx*2 + 4], dx
mov word [eax + ebx*2 + 2], dx
mov word [eax + ebx*2], dx
mov eax, dword [esp + 0x90]
xor ebx, ebx
test eax, eax
jle 0xa92f82
mov edx, dword [esp + 0x90]
xor eax, eax
mov esi, dword [esp + 0x90]
mov ebx, dword [esp + 0x90]
imul edx, ecx
mov ecx, dword [esp + 0x90]
lea ebp, [esi + edx]
mov esi, dword [esp + 0xe0]
add ecx, ecx
add ebx, ecx
add ecx, edx
add ebx, edx
lea edi, [esi + edx*2]
mov edx, dword [esp + 0xe0]
lea esi, [esi + ebx*2]
lea ebx, [edx + ecx*2]
lea ecx, [edx + ebp*2]
mov ebp, dword [esp + 0x90]
movzx edx, word [edi + eax*2]
mov word [esi + eax*2], dx
mov word [ebx + eax*2], dx
mov word [ecx + eax*2], dx
add eax, 1
cmp eax, ebp
jne 0xa92f69
xor ebx, ebx
mov eax, dword [esp + 0xd0]
mov dword [esp], eax
call fcn.00ad0250
mov eax, dword [esp + 0xc8]
mov dword [esp], eax
call fcn.00ad0250
add esp, 0x1cc
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
cmp edi, 1
jle 0xa9302f
movsx ebx, bx
lea esi, [ebx + edi]
mov dword [esp + 0x88], esi
mov esi, ebp
sub esi, ebx
lea edx, [ebx + 1]
mov ebx, dword [esp + 0x88]
lea esi, [eax + esi*8]
mov dword [esp + 0xe0], edi
mov dword [esp + 0x88], ebp
mov dword [esp + 0xd8], ecx
test edx, edx
mov ecx, 0
mov edi, dword [esi + edx*8]
cmovns ecx, edx
mov ebp, dword [esi + edx*8 + 4]
add ecx, dword [esp + 0x88]
add dword [eax + ecx*8], edi
adc dword [eax + ecx*8 + 4], ebp
mov dword [esi + edx*8], 0
mov dword [esi + edx*8 + 4], 0
add edx, 1
cmp edx, ebx
jne 0xa92fe5
mov ebp, dword [esp + 0x88]
mov ecx, dword [esp + 0xd8]
mov edi, dword [esp + 0xe0]
mov ebx, dword [esp + 0xa8]
mov edx, dword [esp + 0x90]
mov word [ebx + edx*2], 0
xor ebx, ebx
jmp 0xa92b34
xor eax, eax
test esi, esi
jle 0xa91fc9
mov edx, dword [esp + 0xb0]
mov ecx, ebp
lea esi, [esi]
mov edi, dword [ebx + eax*8]
mov ebp, dword [ebx + eax*8 + 4]
mov dword [edx + eax*8], edi
mov dword [edx + eax*8 + 4], ebp
add eax, 1
cmp eax, esi
jne 0xa93060
mov ebp, ecx
jmp 0xa91fc9
mov ebx, dword [esp + 0xd8]
mov ecx, dword [esp + 0x1ec]
mov eax, dword [esp + 0x1ec]
lea ecx, [ebx + ecx - 1]
mov ebx, 0xffffffff
neg eax
and ecx, eax
mov eax, dword [esp + 0x1e8]
mov dword [esp + 0xb8], ecx
imul eax, ecx
shl eax, 3
mov dword [esp], eax
call fcn.00ad00c0
cmp dword [esp + 0xb8], 0xff
mov dword [esp + 0xd0], eax
mov dword [esp + 0x1bc], eax
jg 0xa92f82
mov eax, dword [esp + 0xd0]
test eax, eax
jne 0xa923d0
mov ebx, 0xffffffff
jmp 0xa92f82
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], ebp
mov dword [esp + 8], str.SwScaler:_reducing___aligning_filtersize__d_____d_n
mov dword [esp + 4], 0x28
mov dword [esp], 0
call fcn.00acfa00
jmp 0xa923f1
mov ebx, dword [esp + 0x1e8]
shl ebx, 3
mov dword [esp], ebx
call fcn.00ad02a0
test eax, eax
mov edx, eax
mov dword [esp + 0x1bc], eax
je 0xa93cb5
mov ecx, dword [esp + 0x1e8]
test ecx, ecx
jle 0xa93173
mov ebx, dword [esp + 0x11c]
xor eax, eax
mov ecx, dword [ebx]
mov dword [edx + eax*8], 0
mov dword [edx + eax*8 + 4], 0x400000
mov word [ecx + eax*2], ax
add eax, 1
cmp eax, dword [esp + 0x1e8]
jne 0xa93154
mov dword [esp + 0xb8], 1
jmp 0xa91e46
mov ebx, dword [esp + 0x1e8]
shl ebx, 3
mov dword [esp], ebx
call fcn.00ad00c0
test eax, eax
mov edi, eax
mov dword [esp + 0x1bc], eax
je 0xa93ca5
mov eax, dword [esp + 0x1e8]
mov dword [esp + 0xb8], 1
test eax, eax
jle 0xa91e46
mov edx, dword [esp + 0x11c]
mov eax, ebp
mov ecx, ebp
shr eax, 0x1f
add eax, ebp
sar eax, 1
mov edx, dword [edx]
sar ecx, 0x1f
sub eax, 0x8000
mov dword [esp + 0x8c], ecx
mov ebx, eax
mov ecx, eax
sar ebx, 0x1f
add ecx, 0x8000
mov dword [esp + 0x88], ebp
adc ebx, 0
xor esi, esi
mov dword [esp + 0x90], edx
mov ebp, edx
mov eax, ecx
mov edx, ebx
shrd eax, edx, 0x10
mov word [ebp + esi*2], ax
mov dword [edi + esi*8], 0
mov dword [edi + esi*8 + 4], 0x400000
add esi, 1
add ecx, dword [esp + 0x88]
adc ebx, dword [esp + 0x8c]
cmp esi, dword [esp + 0x1e8]
jne 0xa93205
mov dword [esp + 0xb8], 1
jmp 0xa91e46
mov edx, dword [esp + 0x14c]
test edx, edx
je 0xa936ac
fstp st(0)
mov eax, dword [esp + 0x164]
add ecx, 0xe0000000
mov edi, 0x400000
adc ebx, 0xffffffff
mov edx, ebx
imul edx, ebp
imul eax, ecx
lea esi, [eax + edx]
mov eax, ebp
mul ecx
add edx, esi
xor esi, esi
cmp edx, 0xffffe000
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], edx
jl 0xa92860
xor esi, esi
xor edi, edi
cmp edx, 0x1fff
jg 0xa92860
neg ecx
mov edx, dword [esp + 0x164]
adc ebx, 0
neg ebx
mov eax, ebx
imul edx, ecx
imul eax, ebp
lea ebx, [edx + eax]
mov eax, ebp
mul ecx
mov esi, eax
mov edi, edx
add edi, ebx
add esi, 0
adc edi, 0x2000
shld edi, esi, 8
shl esi, 8
jmp 0xa92860
fstp st(0)
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
jmp 0xa927f0
fstp st(0)
cmp ebx, 0
mov dword [esp + 0xc8], 0x999999
mov dword [esp + 0xcc], 0
jg 0xa92852
jl 0xa93337
cmp ecx, 0x7fffffff
ja 0xa92852
mov eax, ebx
imul eax, ecx
lea esi, [eax + eax]
mov eax, ecx
mul ecx
add edx, esi
mov dword [esp + 0xc0], eax
mov esi, dword [esp + 0xc0]
mov dword [esp + 0xc4], edx
mov edi, dword [esp + 0xc4]
mov edx, ebx
shrd esi, edi, 0x1e
sar edi, 0x1e
mov eax, edi
imul eax, ecx
imul edx, esi
add edx, eax
mov eax, esi
mov dword [esp + 0xf0], edx
mul ecx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xf0]
add edx, eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xc4], edx
mov edx, dword [esp + 0xc4]
shrd eax, edx, 0x1e
sar edx, 0x1e
cmp ebx, 0
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf4], edx
jle 0xa937ff
mov edx, dword [esp + 0xc8]
imul eax, dword [esp + 0xcc], 0xfffffffa
neg edx
add eax, edx
mov dword [esp + 0x108], eax
mov eax, 0xfffffffa
mov dword [esp + 0x168], edx
mul dword [esp + 0xc8]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x108]
add edx, eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xc4], edx
mov edx, dword [esp + 0xc4]
sub eax, dword [esp + 0xb0]
sbb edx, dword [esp + 0xb4]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0xf4]
mov dword [esp + 0x10c], edx
mov edx, dword [esp + 0x10c]
imul edx, dword [esp + 0xf0]
imul eax, dword [esp + 0x108]
add eax, edx
mov dword [esp + 0x13c], eax
mov eax, dword [esp + 0x108]
mul dword [esp + 0xf0]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x13c]
add edx, eax
mov eax, 6
mov dword [esp + 0x10c], edx
imul edx, dword [esp + 0xb4], 6
mov dword [esp + 0x13c], edx
mul dword [esp + 0xb0]
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0x13c]
add edx, eax
mov eax, 0x1e
mov dword [esp + 0xf4], edx
imul edx, dword [esp + 0xcc], 0x1e
mov dword [esp + 0x13c], edx
mul dword [esp + 0xc8]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x13c]
add edx, eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 0xc4], edx
mov edx, dword [esp + 0xf4]
add eax, dword [esp + 0xc0]
adc edx, dword [esp + 0xc4]
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 0xf4], edx
mov edx, dword [esp + 0xf4]
imul eax, edi
imul edx, esi
lea edi, [edx + eax]
mov eax, dword [esp + 0xf0]
mul esi
mov esi, dword [esp + 0x108]
add edx, edi
mov edi, dword [esp + 0x10c]
mov dword [esp + 0xc4], edx
mov edx, dword [esp + 0xcc]
mov dword [esp + 0xc0], eax
mov eax, 3
add esi, dword [esp + 0xc0]
adc edi, dword [esp + 0xc4]
lea edx, [edx + edx*2]
mov dword [esp + 0xf0], edx
mul dword [esp + 0xc8]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xf0]
add edx, eax
mov eax, dword [esp + 0xb0]
add eax, dword [esp + 0xc0]
mov dword [esp + 0xc4], edx
mov edx, eax
mov eax, 0
add edx, edx
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0xf4], edx
imul edx, dword [esp + 0xb4], 0xfffffff4
sub edx, eax
mov eax, 0xfffffff4
mov dword [esp + 0x108], edx
mul dword [esp + 0xb0]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x108]
add edx, eax
imul eax, dword [esp + 0xcc], 0xffffffd0
add eax, dword [esp + 0x168]
mov dword [esp + 0xb4], edx
mov dword [esp + 0x108], eax
mov eax, 0xffffffd0
mul dword [esp + 0xc8]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x108]
add edx, eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0xc4], edx
mov edx, dword [esp + 0xb4]
add eax, dword [esp + 0xc0]
adc edx, dword [esp + 0xc4]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0xb4], edx
mov edx, dword [esp + 0xb4]
imul eax, ebx
imul edx, ecx
lea ebx, [edx + eax]
mov eax, dword [esp + 0xb0]
mul ecx
add edx, ebx
mov dword [esp + 0xb4], edx
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0xb0], eax
mov edx, dword [esp + 0xb0]
add dword [esp + 0xf0], edx
adc dword [esp + 0xf4], ecx
add esi, dword [esp + 0xf0]
adc edi, dword [esp + 0xf4]
jmp 0xa92860
mov eax, dword [esp + 0x16c]
test eax, eax
je 0xa93782
mov ecx, dword [esp + 0x204]
fld qword [ecx]
fld dword [0x1253000]
fxch st(1)
fucomi st(1)
fstp st(1)
jnp 0xa93942
fchs
fmul st(1)
fmulp st(1)
fstp qword [esp + 8]
fld dword [0x1253014]
fstp qword [esp]
call fcn.010887f0
fnstcw word [esp + 0x19e]
fld dword [0x1253010]
fmulp st(1)
movzx eax, word [esp + 0x19e]
mov ah, 0xc
mov word [esp + 0x19c], ax
fldcw word [esp + 0x19c]
fistp qword [esp + 0x1a0]
fldcw word [esp + 0x19e]
mov esi, dword [esp + 0x1a0]
mov edi, dword [esp + 0x1a4]
jmp 0xa92860
mov ebx, dword [esp + 0x180]
add dword [esp + 0x140], 1
mov esi, dword [esp + 0x184]
add dword [esp + 0x120], ebx
adc dword [esp + 0x124], esi
mov edi, dword [esp + 0x1e8]
mov esi, dword [esp + 0xb8]
add dword [esp + 0xd0], esi
cmp dword [esp + 0x140], edi
jne 0xa926e2
jmp 0xa91e46
mov eax, dword [esp + 0x170]
test eax, eax
je 0xa93955
mov eax, ebx
xor esi, esi
or eax, ecx
mov edi, 0x400000
je 0xa92858
fldpi
fmulp st(1)
fst qword [esp]
fstp xword [esp + 0x20]
call fcn.01088f20
fld xword [esp + 0x20]
fnstcw word [esp + 0x19e]
fdivp st(1)
movzx eax, word [esp + 0x19e]
mov ah, 0xc
mov word [esp + 0x19c], ax
fmul dword [0x1253010]
fldcw word [esp + 0x19c]
fistp qword [esp + 0x1a0]
fldcw word [esp + 0x19e]
mov esi, dword [esp + 0x1a0]
mov edi, dword [esp + 0x1a4]
jmp 0xa92860
jl 0xa9380d
cmp ecx, 0x3fffffff
ja 0xa933c2
mov ebx, dword [esp + 0xb0]
imul ecx, dword [esp + 0xb4], 0xfffffff7
mov eax, ebx
sub ecx, ebx
mov dword [esp + 0x108], ecx
mov ecx, 0xfffffff7
mov ebx, dword [esp + 0x108]
mul ecx
add ebx, edx
mov ecx, eax
mov eax, dword [esp + 0xc8]
imul edx, dword [esp + 0xcc], 0xfffffffa
sub edx, eax
mov eax, 0xfffffffa
mov dword [esp + 0x108], edx
mul dword [esp + 0xc8]
add edx, dword [esp + 0x108]
add ecx, eax
mov eax, dword [esp + 0xf4]
adc ebx, edx
mov edx, dword [esp + 0xf0]
add ecx, 0xc000000
adc ebx, 0
imul eax, ecx
imul edx, ebx
lea ebx, [edx + eax]
mov eax, dword [esp + 0xf0]
mul ecx
imul ecx, dword [esp + 0xb4], 0xc
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xb0]
add edx, ebx
mov dword [esp + 0x108], ecx
mov ecx, 0xc
mov ebx, dword [esp + 0x108]
mov dword [esp + 0xf4], edx
mul ecx
add ebx, edx
mov ecx, eax
imul edx, dword [esp + 0xcc], 6
mov eax, 6
mov dword [esp + 0x108], edx
mul dword [esp + 0xc8]
add edx, dword [esp + 0x108]
add ecx, eax
mov eax, edi
adc ebx, edx
add ecx, 0xee000000
adc ebx, 0xffffffff
mov edx, ebx
imul edx, esi
imul eax, ecx
lea ebx, [edx + eax]
mov eax, ecx
mul esi
mov edi, edx
mov esi, eax
add edi, ebx
mov eax, 0x3000000
add esi, dword [esp + 0xf0]
adc edi, dword [esp + 0xf4]
xor edx, edx
sub eax, dword [esp + 0xb0]
sbb edx, dword [esp + 0xb4]
shld edx, eax, 0x1f
shl eax, 0x1f
add esi, eax
adc edi, edx
jmp 0xa92860
jne 0xa936d6
fstp st(0)
fld dword [0x1252fe8]
jmp 0xa936d8
mov eax, dword [esp + 0x174]
test eax, eax
je 0xa93a53
mov esi, dword [esp + 0x204]
fld qword [esi]
fld dword [0x1253000]
fxch st(1)
fucomi st(1)
fstp st(1)
jp 0xa93985
jne 0xa93985
fstp st(0)
fld dword [0x1252fec]
mov eax, ebx
xor esi, esi
or eax, ecx
mov edi, 0x400000
je 0xa93a42
fld st(1)
fldpi
fld st(1)
fmul st(1)
fst qword [esp]
fxch st(4)
fstp qword [esp + 0x50]
fxch st(2)
fstp qword [esp + 0x20]
fxch st(1)
fstp xword [esp + 0x30]
fstp xword [esp + 0x40]
fstp xword [esp + 0x70]
call fcn.01088f20
fld qword [esp + 0x20]
fld xword [esp + 0x70]
fdiv st(1)
fstp qword [esp]
fstp xword [esp + 0x60]
fstp qword [esp + 0x70]
call fcn.01088f20
fld qword [esp + 0x70]
fmulp st(1)
fnstcw word [esp + 0x19e]
movzx eax, word [esp + 0x19e]
fld xword [esp + 0x40]
fmul st(0)
mov ah, 0xc
mov word [esp + 0x19c], ax
fld xword [esp + 0x30]
fmul st(1), st(0)
fmulp st(1)
fld xword [esp + 0x60]
fdivp st(1)
fdivp st(1)
fmul dword [0x1253010]
fldcw word [esp + 0x19c]
fistp qword [esp + 0x1a0]
fldcw word [esp + 0x19e]
mov esi, dword [esp + 0x1a0]
mov edi, dword [esp + 0x1a4]
fld qword [esp + 0x20]
fld qword [esp + 0x50]
jmp 0xa93a44
fxch st(1)
fucompi st(1)
fstp st(0)
ja 0xa92852
jmp 0xa92860
mov eax, dword [esp + 0x178]
test eax, eax
je 0xa93b90
fstp st(0)
mov esi, 0x40000000
xor edi, edi
sub esi, ecx
sbb edi, ebx
mov ecx, esi
mov edx, edi
mov ebx, edi
sar edx, 0x1f
not edi
mov esi, edx
not esi
mov dword [esp + 0x154], esi
mov edx, dword [esp + 0x154]
mov esi, ebx
mov dword [esp + 0x150], edi
mov edi, ecx
sar edx, 0x1f
and edi, edx
and esi, edx
mov dword [esp + 0x158], edi
mov dword [esp + 0x15c], esi
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x15c]
shld edi, esi, 0x18
shl esi, 0x18
jmp 0xa92860
mov edi, dword [esp + 0x1e8]
imul eax, dword [esp + 0x1e4]
mov ebx, edi
lea eax, [edi + eax - 1]
mov edx, eax
sar edx, 0x1f
idiv edi
add eax, 1
mov dword [esp + 0xb8], eax
jmp 0xa92551
mov eax, dword [esp + 0x148]
imul eax, ecx
add eax, eax
je 0xa92c41
mov dword [esp + 8], str.Cannot_allocate_memory._n
mov ebx, 0xffffffff
mov dword [esp + 4], 0x10
mov dword [esp], 0
call fcn.00acfa00
mov eax, dword [esp + 0x1bc]
mov dword [esp + 0xd0], eax
jmp 0xa92f82
test ebx, ebx
je 0xa91b8a
mov dword [esp + 8], str.Cannot_allocate_memory._n
mov ebx, 0xffffffff
mov dword [esp + 4], 0x10
mov dword [esp], 0
call fcn.00acfa00
mov eax, dword [esp + 0x1bc]
mov dword [esp + 0xc8], 0
mov dword [esp + 0xd0], eax
jmp 0xa92f82
test ebx, ebx
je 0xa91ea7
jmp 0xa93b03
mov eax, dword [esp + 0x17c]
xor esi, esi
xor edi, edi
test eax, eax
je 0xa9285c
fld1
fld st(0)
fucompi st(2)
jae 0xa93c6f
fstp st(0)
fldz
fld qword [0x1252ff0]
fld qword [0x1252ff8]
fld dword [0x1252fec]
jmp 0xa93bcd
fxch st(3)
fxch st(4)
fxch st(3)
fld1
fld st(0)
fsubp st(6)
fxch st(5)
fstp qword [esp + 0x1a8]
fld qword [esp + 0x1a8]
fld st(4)
fchs
fld st(4)
fmul st(3)
fsubp st(1)
fld st(3)
fmul dword [0x1253018]
fsubp st(1)
fstp qword [esp + 0x1a8]
fld qword [esp + 0x1a8]
fxch st(3)
fmul st(2)
fld st(4)
fadd st(1)
fstp qword [esp + 0x1a8]
fld qword [esp + 0x1a8]
fxch st(5)
fadd st(0)
faddp st(6)
faddp st(5)
fxch st(4)
fstp qword [esp + 0x1a8]
fld qword [esp + 0x1a8]
fxch st(5)
fucompi st(4)
jb 0xa93bc7
fstp st(0)
fldz
fxch st(1)
fmul st(3)
faddp st(2)
fxch st(1)
fmul st(2)
faddp st(3)
fxch st(2)
fmulp st(1)
faddp st(1)
fstp qword [esp + 0x1a8]
fld qword [esp + 0x1a8]
jmp 0xa936ee
test ebx, ebx
je 0xa91bf9
jmp 0xa93b3f
fldz
fld qword [0x1252ff0]
fld qword [0x1252ff8]
fxch st(1)
fxch st(2)
fxch st(4)
fxch st(3)
jmp 0xa93c3d
fchs
fstp qword [esp]
call fcn.010887f0
fchs
jmp 0xa92a1f
test ebx, ebx
je 0xa9259f
jmp 0xa93b3f
test ebx, ebx
je 0xa931a6
lea esi, [esi]
jmp 0xa93b3f
test ebx, ebx
je 0xa9313e
lea esi, [esi]
jmp 0xa93b3f
test byte [esp + 0x1f4], 0x80
mov al, 8
jne 0xa92534
test dword [esp + 0x1f4], 0x200
je 0xa93d3f
mov esi, dword [esp + 0x204]
fld qword [esi]
fld dword [0x1253000]
fxch st(1)
fucomi st(1)
fstp st(1)
jp 0xa93cfb
je 0xa93d64
fadd st(0)
fstp qword [esp]
call sub.msvcrt.dll_ceil
fnstcw word [esp + 0x19e]
movzx eax, word [esp + 0x19e]
mov ah, 0xc
mov word [esp + 0x19c], ax
fldcw word [esp + 0x19c]
fistp dword [esp + 0x198]
fldcw word [esp + 0x19e]
mov eax, dword [esp + 0x198]
jmp 0xa92534
test dword [esp + 0x1f4], 0x500
mov eax, 0x14
jne 0xa92534
mov eax, dword [esp + 0x1f4]
and eax, 2
jmp 0xa92534
fstp st(0)
mov eax, 6
jmp 0xa92534