Function at 0xa63860
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x19c
mov dword [esp + 0x164], eax
mov dword [esp + 0xfc], edx
mov dword [esp + 0x11c], ecx
mov dword [esp + 0x18c], 0
call fcn.00aaa7e0
test al, 1
je 0xa63895
emms
mov ecx, dword [esp + 0x1b8]
add ecx, 3
mov ebx, ecx
add ebx, ebx
mov dword [esp + 0x120], ecx
mov dword [esp], ebx
call fcn.00aa00b0
mov edx, dword [esp + 0xfc]
test eax, eax
mov dword [edx], eax
je 0xa65700
cmp dword [esp + 0x1b0], 0xffff
jle 0xa64618
cmp dword [esp + 0x1b0], 0x10009
setle al
test al, al
jne 0xa64632
test byte [esp + 0x1c4], 0x10
jne 0xa64d59
cmp dword [esp + 0x1b0], 0x10000
jg 0xa64162
test byte [esp + 0x1c4], 0x20
je 0xa64162
mov esi, dword [esp + 0x1b8]
shl esi, 4
mov dword [esp], esi
call fcn.00aa00b0
test eax, eax
mov ebx, eax
mov dword [esp + 0x18c], eax
je 0xa6582b
mov eax, dword [esp + 0x1b8]
mov dword [esp + 0x88], 2
test eax, eax
jle 0xa63aad
mov ebp, dword [esp + 0x1b0]
mov edx, dword [esp + 0xfc]
mov ecx, dword [esp + 0x1b8]
shr ebp, 0x1f
mov edx, dword [edx]
add ebp, dword [esp + 0x1b0]
add ecx, ecx
mov dword [esp + 0xc0], ecx
xor ecx, ecx
sar ebp, 1
sub ebp, 0x8000
mov dword [esp + 0xbc], edx
mov esi, ebp
mov edi, dword [esp + 0xbc]
sar esi, 0x10
mov eax, esi
shl eax, 0x10
sub eax, ebp
mov edx, eax
sar edx, 0x1f
mov word [edi + ecx], si
mov dword [esp + 0x88], esi
mov esi, edx
xor esi, eax
xor eax, eax
sub esi, edx
imul edx, esi, 0xffffffc0
mov esi, eax
add esi, 0
mov edi, edx
adc edi, 0x400000
mov edx, edi
sar edx, 0x1f
mov dword [esp + 0xd4], edx
mov edx, dword [esp + 0xd4]
mov dword [esp + 0xd0], edi
mov eax, dword [esp + 0xd0]
not edx
mov dword [esp + 0xac], edx
mov edx, dword [esp + 0xac]
not eax
mov dword [esp + 0xa8], eax
sar edx, 0x1f
mov eax, edx
and edx, edi
and eax, esi
mov dword [ebx + ecx*8], eax
mov eax, dword [esp + 0x88]
mov dword [ebx + ecx*8 + 4], edx
add eax, 1
shl eax, 0x10
sub eax, ebp
mov edx, eax
sar edx, 0x1f
mov esi, edx
xor esi, eax
xor eax, eax
sub esi, edx
imul edx, esi, 0xffffffc0
mov esi, eax
add esi, 0
mov edi, edx
adc edi, 0x400000
mov edx, edi
sar edx, 0x1f
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x88], edi
mov eax, dword [esp + 0x88]
add ebp, dword [esp + 0x1b0]
not edx
mov dword [esp + 0xb4], edx
mov edx, dword [esp + 0xb4]
not eax
mov dword [esp + 0xb0], eax
sar edx, 0x1f
mov eax, edx
and edx, edi
and eax, esi
mov dword [ebx + ecx*8 + 8], eax
mov dword [ebx + ecx*8 + 0xc], edx
add ecx, 2
cmp ecx, dword [esp + 0xc0]
jne 0xa6398f
mov dword [esp + 0x88], 2
mov eax, dword [esp + 0x1cc]
mov ebp, dword [esp + 0x88]
test eax, eax
je 0xa63acd
mov ecx, dword [esp + 0x1cc]
mov eax, dword [ecx + 4]
lea ebp, [ebp + eax - 1]
mov eax, dword [esp + 0x1d0]
test eax, eax
je 0xa63ae6
mov ebx, dword [esp + 0x1d0]
mov eax, dword [ebx + 4]
lea ebp, [ebp + eax - 1]
mov eax, dword [esp + 0x1b8]
imul eax, ebp
lea ebx, [eax*8]
mov dword [esp], ebx
call fcn.00aa0290
test eax, eax
mov dword [esp + 0xc0], eax
je 0xa65747
mov eax, dword [esp + 0x1b8]
test eax, eax
jle 0xa63c85
mov eax, dword [esp + 0x88]
lea edx, [ebp - 1]
mov ecx, edx
mov ebx, dword [esp + 0x18c]
shr ecx, 0x1f
add edx, ecx
sub eax, 1
mov ecx, eax
shr ecx, 0x1f
add eax, ecx
mov ecx, dword [esp + 0x88]
sar edx, 1
sar eax, 1
sub ax, dx
mov edx, dword [esp + 0xfc]
lea esi, [ebp*8]
mov word [esp + 0xe8], ax
mov eax, dword [esp + 0xc0]
shl ecx, 3
mov dword [esp + 0xc4], esi
mov esi, dword [esp + 0x88]
mov edx, dword [edx]
mov dword [esp + 0xd8], ebp
mov ebp, dword [esp + 0x1cc]
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xa8], eax
mov dword [esp + 0xb0], edx
mov dword [esp + 0xb8], 0
test ebp, ebp
je 0xa64c85
mov edx, dword [ebp + 4]
xor edi, edi
mov ecx, dword [esp + 0xa8]
test edx, edx
mov dword [esp + 0x88], edx
jle 0xa63c36
lea esi, [esi]
test esi, esi
jle 0xa63c27
mov eax, dword [ebp]
xor edx, edx
fld qword [eax + edi*8]
fnstcw word [esp + 0x16e]
movzx eax, word [esp + 0x16e]
mov ah, 0xc
mov word [esp + 0x16c], ax
fild qword [ecx + edx*8]
fild qword [ebx + edx*8]
fstp qword [esp + 0x178]
fld qword [esp + 0x178]
fmul st(2)
faddp st(1)
fldcw word [esp + 0x16c]
fistp qword [ecx + edx*8]
fldcw word [esp + 0x16e]
add edx, 1
cmp edx, esi
jne 0xa63bf5
fstp st(0)
add edi, 1
add ecx, 8
cmp edi, dword [esp + 0x88]
jne 0xa63bd0
mov ecx, dword [esp + 0xb8]
mov edi, dword [esp + 0xb0]
movzx eax, word [esp + 0xe8]
mov edx, dword [esp + 0xc4]
add ebx, dword [esp + 0xbc]
add word [edi + ecx*2], ax
add ecx, 1
mov edi, dword [esp + 0x1b8]
add dword [esp + 0xa8], edx
mov dword [esp + 0xb8], ecx
cmp ecx, edi
jne 0xa63bab
mov ebp, dword [esp + 0xd8]
lea eax, [esp + 0x18c]
mov dword [esp], eax
call fcn.00aa0260
mov ecx, dword [esp + 0x1b8]
mov dword [esp + 0xe8], 0
sub ecx, 1
mov dword [esp + 0xbc], ecx
js 0xa63fdc
mov esi, ebp
mov eax, dword [esp + 0xc0]
neg esi
imul ecx, ebp
lea ebx, [ebp - 1]
mov dword [esp + 0xf8], esi
shl esi, 3
mov dword [esp + 0xe0], ebx
mov ebx, dword [esp + 0xbc]
mov dword [esp + 0xd0], esi
mov esi, dword [esp + 0x1b8]
lea eax, [eax + ecx*8]
fld xword [0x1132120]
mov dword [esp + 0xb0], ecx
mov ecx, eax
mov dword [esp + 0x88], eax
add esi, esi
mov dword [esp + 0xa8], ebx
lea edi, [esi - 2]
test ebp, ebp
mov dword [esp + 0xd8], edi
jle 0xa63e61
mov ebx, dword [esp + 0x88]
mov edx, dword [ebx + 4]
mov edi, dword [ebx]
sar edx, 0x1f
xor edi, edx
mov dword [esp + 0x90], edi
mov edi, dword [ebx + 4]
xor edi, edx
sub dword [esp + 0x90], edx
mov dword [esp + 0x94], edi
sbb dword [esp + 0x94], edx
fild qword [esp + 0x90]
fld xword [0x1132120]
fxch st(1)
fucompi st(1)
fstp st(0)
ja 0xa63e61
mov edx, dword [esp + 0xfc]
mov ebx, dword [esp + 0xd8]
mov dword [esp + 0xb8], 0
mov eax, dword [edx]
add esi, eax
add ebx, eax
mov dword [esp + 0xc4], esi
mov edi, dword [esp + 0xa8]
cmp dword [esp + 0xbc], edi
jle 0xa63db5
mov eax, dword [esp + 0xc4]
movzx eax, word [eax]
cmp word [ebx], ax
jge 0xa63e61
cmp ebp, 1
mov eax, 1
je 0xa63dd8
nop
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 0xa63dc0
mov eax, ebp
mov edx, dword [esp + 0xb0]
mov esi, dword [esp + 0xc0]
add dword [esp + 0xb8], 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 + 0xb8], ebp
je 0xa63e61
mov esi, dword [esp + 0x88]
mov edx, dword [esi + 4]
mov edi, dword [esi]
sar edx, 0x1f
xor edi, edx
mov dword [esp + 0x98], edi
mov edi, dword [esi + 4]
mov esi, dword [esp + 0x98]
xor edi, edx
mov dword [esp + 0x9c], edi
mov edi, dword [esp + 0x9c]
sub esi, edx
sbb edi, edx
add dword [esp + 0x90], esi
adc dword [esp + 0x94], edi
fild qword [esp + 0x90]
fucompi st(1)
jbe 0xa63d92
mov edi, dword [esp + 0xe0]
mov esi, ebp
test edi, edi
jle 0xa63f89
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 + 0xc8], ebx
sub dword [esp + 0xc8], edx
mov dword [esp + 0xcc], esi
mov esi, ebp
sbb dword [esp + 0xcc], edx
fild qword [esp + 0xc8]
fld xword [0x1132120]
fxch st(1)
fucompi st(1)
ja 0xa63f87
mov esi, dword [esp + 0xe0]
mov ebx, ecx
mov dword [esp + 0xb8], ebp
mov edi, dword [esp + 0xc8]
mov ebp, dword [esp + 0xcc]
mov dword [esp + 0xc4], esi
mov ecx, esi
jmp 0xa63f5c
mov edx, dword [ebx + ecx*8 + 4]
sar edx, 0x1f
mov eax, edx
xor eax, dword [ebx + ecx*8]
mov dword [esp + 0xc8], edx
mov dword [esp + 0xcc], edx
xor edx, dword [ebx + ecx*8 + 4]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xa0]
sub eax, dword [esp + 0xc8]
mov dword [esp + 0xa4], edx
mov edx, dword [esp + 0xa4]
sbb edx, dword [esp + 0xcc]
add edi, eax
mov dword [esp + 0x170], edi
adc ebp, edx
mov dword [esp + 0x174], ebp
fild qword [esp + 0x170]
fucompi st(1)
ja 0xa63f65
mov dword [esp + 0xc4], ecx
sub ecx, 1
jne 0xa63ef0
fstp st(0)
jmp 0xa63f67
fstp st(0)
mov dword [esp + 0xcc], ebp
mov esi, dword [esp + 0xc4]
mov ecx, ebx
mov ebp, dword [esp + 0xb8]
mov dword [esp + 0xc8], edi
jmp 0xa63f89
fstp st(0)
mov edx, dword [esp + 0xd0]
cmp dword [esp + 0xe8], esi
mov ebx, dword [esp + 0xf8]
cmovge esi, dword [esp + 0xe8]
sub dword [esp + 0xa8], 1
add ecx, edx
add dword [esp + 0x88], edx
add dword [esp + 0xb0], ebx
cmp dword [esp + 0xa8], 0xffffffff
mov dword [esp + 0xe8], esi
mov esi, dword [esp + 0xd8]
jne 0xa63d0f
fstp st(0)
test byte [esp + 0x1c8], 1
je 0xa64cb4
cmp dword [esp + 0xe8], 1
jne 0xa64cb4
cmp dword [esp + 0x1bc], 2
jne 0xa64cb4
mov eax, dword [esp + 0x1b8]
shl eax, 3
mov dword [esp], eax
call fcn.00aa00b0
mov dword [esp + 0xa8], 1
mov dword [esp + 0xc4], eax
mov dword [esp + 0x18c], eax
mov eax, dword [esp + 0xc4]
test eax, eax
je 0xa64d20
mov ebx, dword [esp + 0xa8]
mov ecx, dword [esp + 0x11c]
test dword [esp + 0x1c4], 0x1000
mov dword [ecx], ebx
jne 0xa64d30
mov eax, dword [esp + 0x1b8]
test eax, eax
jle 0xa6482e
mov ecx, dword [esp + 0x1c4]
lea esi, [ebp*8]
mov edi, dword [esp + 0xa8]
mov eax, dword [esp + 0x18c]
mov dword [esp + 0xa0], esi
mov ebx, dword [esp + 0xc0]
and ecx, 0x80000
mov esi, dword [esp + 0xe8]
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0xa8]
shl edi, 3
mov dword [esp + 0x98], edi
mov dword [esp + 0x90], 0
mov dword [esp + 0xb8], eax
mov dword [esp + 0xc4], eax
test ecx, ecx
jle 0xa646ae
mov edi, dword [esp + 0xb0]
mov dword [esp + 0xa8], ecx
mov edx, dword [esp + 0xb8]
mov dword [esp + 0x88], esi
test edi, edi
setne al
mov edi, eax
xor eax, eax
mov ecx, edi
mov byte [esp + 0xe8], cl
jmp 0xa64150
mov dword [edx], 0
mov dword [edx + 4], 0
cmp eax, dword [esp + 0x88]
jl 0xa6413d
cmp byte [esp + 0xe8], 0
je 0xa6413d
mov dword [edx], 0
mov dword [edx + 4], 0
add eax, 1
add edx, 8
cmp eax, dword [esp + 0xa8]
je 0xa646a0
cmp ebp, eax
jle 0xa64110
mov esi, dword [ebx + eax*8]
mov edi, dword [ebx + eax*8 + 4]
mov dword [edx], esi
mov dword [edx + 4], edi
jmp 0xa6411d
test byte [esp + 0x1c4], 1
jne 0xa63917
mov ecx, dword [esp + 0x1c4]
mov eax, 4
and ecx, 4
mov dword [esp + 0xd8], ecx
jne 0xa641a4
test byte [esp + 0x1c4], 8
mov al, 8
jne 0xa641a4
test byte [esp + 0x1c4], 0x20
mov al, 1
je 0xa65895
cmp dword [esp + 0x1b0], 0x10000
jg 0xa65688
mov ebx, dword [esp + 0x1b8]
add eax, 1
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x1b4]
mov edx, dword [esp + 0x1b4]
sub eax, 1
sub edx, 2
cmp dword [esp + 0x88], eax
cmovl edx, dword [esp + 0x88]
shl ebx, 3
imul ebx, edx
mov dword [esp + 0x88], edx
mov dword [esp], ebx
call fcn.00aa00b0
test eax, eax
mov dword [esp + 0x18c], eax
je 0xa65861
mov ebx, dword [esp + 0x1b8]
test ebx, ebx
jle 0xa63aad
mov edx, dword [esp + 0xfc]
mov ebx, dword [esp + 0x88]
mov ecx, dword [esp + 0x1b0]
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x1b8]
mov edx, dword [edx]
sub ebx, 2
mov esi, dword [esp + 0x1c4]
sub ecx, 0x10000
mov edi, dword [esp + 0x1c4]
shl ebx, 0x10
mov ebp, dword [esp + 0x1c4]
mov dword [esp + 0xbc], ecx
mov ecx, dword [esp + 0x1b0]
mov dword [esp + 0x140], ebx
mov ebx, dword [esp + 0x1c4]
and esi, 0x20
mov dword [esp + 0x15c], edx
mov edx, eax
and edi, 0x80
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x1b4]
sar edx, 0x1f
add ecx, ecx
and ebp, 0x100
and ebx, 8
mov dword [esp + 0x104], edx
mov dword [esp + 0x108], eax
mov edx, eax
mov eax, dword [esp + 0x1b0]
mov dword [esp + 0x160], ecx
mov ecx, dword [esp + 0x1c4]
sar edx, 0x1f
mov dword [esp + 0xf8], ebx
mov ebx, dword [esp + 0x1c4]
mov dword [esp + 0x124], esi
mov esi, dword [esp + 0x1c4]
mov dword [esp + 0x144], edi
mov edi, dword [esp + 0x88]
mov dword [esp + 0x10c], edx
mov edx, eax
and ecx, 0x200
and ebx, 2
and esi, 0x400
shl edi, 3
sar edx, 0x1f
mov dword [esp + 0x148], ebp
mov dword [esp + 0x14c], ecx
mov dword [esp + 0x150], ebx
mov dword [esp + 0x154], esi
mov dword [esp + 0x158], edi
mov dword [esp + 0x118], 0
mov dword [esp + 0x138], eax
mov dword [esp + 0x13c], edx
mov eax, dword [esp + 0xbc]
sub eax, dword [esp + 0x140]
mov ecx, dword [esp + 0x118]
mov ebx, dword [esp + 0x15c]
test eax, eax
lea edx, [eax + 0x1ffff]
cmovs eax, edx
sar eax, 0x11
mov word [ebx + ecx*2], ax
mov ecx, dword [esp + 0x88]
mov dword [esp + 0xc4], eax
test ecx, ecx
jle 0xa652eb
xor ebp, ebp
jmp 0xa64482
mov esi, dword [esp + 0x1d4]
fld qword [esi]
fld dword [0x1132100]
fxch st(1)
fucomi st(1)
fstp st(1)
jp 0xa643c0
je 0xa64e9f
fnstcw word [esp + 0x16e]
fld dword [0x1132104]
fmulp st(1)
movzx eax, word [esp + 0x16e]
mov ah, 0xc
mov word [esp + 0x16c], ax
fldcw word [esp + 0x16c]
fistp qword [esp + 0xa8]
fldcw word [esp + 0x16e]
mov edi, dword [esp + 0x1d4]
fld qword [edi + 8]
fld dword [0x1132100]
fxch st(1)
fucomi st(1)
fstp st(1)
jp 0xa64414
je 0xa64ebc
fnstcw word [esp + 0x16e]
fld dword [0x1132104]
cmp ebx, 0
fmulp st(1)
movzx eax, word [esp + 0x16e]
mov ah, 0xc
mov word [esp + 0x16c], ax
fldcw word [esp + 0x16c]
fistp qword [esp + 0xb0]
fldcw word [esp + 0x16e]
jg 0xa64458
jmp 0xa64edd
fstp st(0)
fstp st(0)
xor esi, esi
xor edi, edi
jmp 0xa64464
fstp st(0)
jmp 0xa64464
fstp st(0)
mov ecx, dword [esp + 0xe8]
mov dword [ecx + ebp*8], esi
mov dword [ecx + ebp*8 + 4], edi
add ebp, 1
cmp ebp, dword [esp + 0x88]
je 0xa652eb
mov eax, dword [esp + 0xc4]
add eax, ebp
shl eax, 0x11
sub eax, dword [esp + 0xbc]
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
mov ebx, eax
mov ecx, eax
sar ebx, 0x1f
shld ebx, eax, 0xd
shl ecx, 0xd
cmp dword [esp + 0x1b0], 0x10000
jle 0xa6451d
mov edx, dword [esp + 0x104]
mov eax, dword [esp + 0x1b8]
imul edx, ecx
imul eax, ebx
lea ebx, [edx + eax]
mov eax, dword [esp + 0x1b8]
mul ecx
mov ecx, dword [esp + 0x108]
add edx, ebx
mov ebx, dword [esp + 0x10c]
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], edx
mov esi, dword [esp + 0xac]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0xa8]
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.00de3110
mov ecx, eax
mov ebx, edx
mov eax, dword [esp + 0xd8]
test eax, eax
jne 0xa643a3
mov dword [esp + 0x170], ecx
mov esi, dword [esp + 0xf8]
mov dword [esp + 0x174], ebx
fild qword [esp + 0x170]
test esi, esi
fstp qword [esp + 0x178]
fld qword [esp + 0x178]
fld dword [0x1132108]
fmulp st(1)
fstp qword [esp + 0x178]
fld qword [esp + 0x178]
je 0xa64df0
mov ecx, dword [esp + 0x1d4]
fld qword [ecx]
fld dword [0x1132100]
fxch st(1)
fucomi st(1)
fstp st(1)
jp 0xa64591
jne 0xa64591
fstp st(0)
fld1
fld1
fucompi st(2)
jbe 0xa64454
fldpi
fmulp st(2)
fxch st(1)
fstp qword [esp]
fstp qword [esp + 0x20]
call sub.msvcrt.dll_cos
fldz
fucompi st(1)
fld qword [esp + 0x20]
fstp qword [esp + 8]
ja 0xa65850
fstp qword [esp]
call sub.msvcrt.dll_pow
fld dword [0x113210c]
fmul st(1), st(0)
fnstcw word [esp + 0x16e]
movzx eax, word [esp + 0x16e]
faddp st(1)
fmul dword [0x1132110]
mov ah, 0xc
mov word [esp + 0x16c], ax
fldcw word [esp + 0x16c]
fistp qword [esp + 0x170]
fldcw word [esp + 0x16e]
mov esi, dword [esp + 0x170]
mov edi, dword [esp + 0x174]
jmp 0xa64464
mov eax, 0x10000
sub eax, dword [esp + 0x1b0]
cmp eax, 9
setle al
test al, al
je 0xa638ea
mov ebx, dword [esp + 0x1b8]
shl ebx, 3
mov dword [esp], ebx
call fcn.00aa0290
test eax, eax
mov edx, eax
mov dword [esp + 0x18c], eax
je 0xa65885
mov ebx, dword [esp + 0x1b8]
test ebx, ebx
jle 0xa6468a
mov ebx, dword [esp + 0xfc]
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 + 0x1b8]
jne 0xa6466b
mov dword [esp + 0x88], 1
jmp 0xa63aad
mov esi, dword [esp + 0x88]
mov ecx, dword [esp + 0xa8]
mov edi, dword [esp + 0x98]
add dword [esp + 0xb8], edi
add dword [esp + 0x90], 1
mov edi, dword [esp + 0x1b8]
add ebx, dword [esp + 0xa0]
cmp dword [esp + 0x90], edi
jne 0xa640d8
mov edx, dword [esp + 0xfc]
xor ebp, ebp
mov edi, dword [esp + 0xa8]
mov ecx, dword [esp + 0xa8]
mov eax, dword [esp + 0xc4]
mov edx, dword [edx]
sub edi, 1
movzx ebx, word [esp + 0x1b4]
sub bx, word [esp + 0xa8]
sub ecx, 2
mov dword [esp + 0x90], edi
mov edi, dword [esp + 0xa8]
mov dword [esp + 0xb0], ecx
mov ecx, eax
mov dword [esp + 0xa0], edx
mov dword [esp + 0xb8], 0
mov word [esp + 0xc4], bx
mov esi, dword [esp + 0xb8]
mov edx, dword [esp + 0xa0]
movzx ebx, word [edx + esi*2]
test bx, bx
js 0xa64be1
movsx ebx, bx
add ebx, edi
cmp dword [esp + 0x1b4], ebx
jge 0xa64809
mov edx, dword [esp + 0xb0]
sub ebx, dword [esp + 0x1b4]
test edx, edx
js 0xa647ef
mov edx, dword [esp + 0xb0]
add ebx, dword [esp + 0xb0]
mov dword [esp + 0x88], edi
mov dword [esp + 0xe8], ebp
mov esi, dword [esp + 0x90]
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 + 0xe8]
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 0xa647a1
mov edi, dword [esp + 0x88]
mov ebp, dword [esp + 0xe8]
movzx esi, word [esp + 0xc4]
mov edx, dword [esp + 0xb8]
mov ebx, dword [esp + 0xa0]
mov word [ebx + edx*2], si
add dword [esp + 0xb8], 1
add ebp, edi
mov ebx, dword [esp + 0x1b8]
add ecx, dword [esp + 0x98]
cmp dword [esp + 0xb8], ebx
jne 0xa64746
mov ecx, dword [esp + 0x11c]
mov eax, dword [esp + 0x120]
imul eax, dword [ecx]
add eax, eax
mov dword [esp], eax
call fcn.00aa0290
mov ecx, dword [esp + 0x11c]
mov ebx, dword [esp + 0x164]
mov ecx, dword [ecx]
test eax, eax
mov dword [esp + 0xc8], eax
mov dword [ebx], eax
mov dword [esp + 0xb8], ecx
je 0xa656b3
mov eax, dword [esp + 0x18c]
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x1b8]
test eax, eax
jle 0xa64b1a
mov eax, dword [esp + 0x1c0]
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0xb0], 0
shr eax, 0x1f
add eax, dword [esp + 0x1c0]
shl ecx, 3
mov dword [esp + 0xe8], ecx
mov ecx, dword [esp + 0xb8]
sar eax, 1
mov edx, eax
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x1c0]
sar edx, 0x1f
mov dword [esp + 0xdc], edx
add ecx, ecx
mov dword [esp + 0xec], ecx
mov edx, eax
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xc4]
sar edx, 0x1f
mov dword [esp + 0xf4], edx
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x98], eax
mov edx, dword [esp + 0xa8]
xor ecx, ecx
xor ebx, ebx
xor eax, eax
test edx, edx
jle 0xa64943
mov esi, dword [esp + 0xa8]
mov edx, dword [esp + 0x90]
add ecx, dword [edx + eax*8]
adc ebx, dword [edx + eax*8 + 4]
add eax, 1
cmp eax, esi
jne 0xa64935
mov eax, dword [esp + 0xb8]
test eax, eax
jle 0xa64ae2
mov esi, dword [esp + 0xf0]
mov edi, dword [esp + 0xf4]
add ecx, dword [esp + 0xd8]
adc ebx, dword [esp + 0xdc]
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
mov dword [esp], ecx
mov dword [esp + 4], ebx
call fcn.00de3110
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 + 0xa4], ebx
xor ebx, ebx
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], edx
mov dword [esp + 0x88], esi
mov dword [esp + 0x8c], edi
jmp 0xa64a8e
jle 0xa64ad8
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0xa4]
add eax, esi
adc edx, edi
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], edx
mov edx, dword [esp + 0x8c]
mov ecx, dword [esp + 0xd4]
mov eax, dword [esp + 0x88]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0xd0]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp], edx
call fcn.00de3110
mov ebp, dword [esp + 0x98]
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 + 0xd4], edx
mov edx, esi
mov dword [esp + 0xd0], eax
sub edx, dword [esp + 0xd0]
sbb ecx, dword [esp + 0xd4]
add ebx, 1
cmp ebx, dword [esp + 0xb8]
mov dword [esp + 0xd0], edx
mov dword [esp + 0xd4], ecx
je 0xa64ae2
mov ecx, dword [esp + 0x90]
mov esi, dword [esp + 0xd0]
mov edi, dword [esp + 0xd4]
add esi, dword [ecx + ebx*8]
adc edi, dword [ecx + ebx*8 + 4]
cmp edi, 0
jge 0xa649c5
mov edx, esi
mov ecx, edi
sub edx, dword [esp + 0xa0]
sbb ecx, dword [esp + 0xa4]
mov dword [esp + 0xd0], edx
mov dword [esp + 0xd4], ecx
jmp 0xa649eb
cmp esi, 0
jbe 0xa64ab3
jmp 0xa649cb
add dword [esp + 0xb0], 1
mov ecx, dword [esp + 0xe8]
mov ebx, dword [esp + 0xec]
mov esi, dword [esp + 0x1b8]
add dword [esp + 0x90], ecx
add dword [esp + 0x98], ebx
cmp dword [esp + 0xb0], esi
jne 0xa64916
mov edx, dword [esp + 0xfc]
mov ecx, dword [esp + 0xbc]
mov ebx, dword [esp + 0x1b8]
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 + 0xb8]
xor ebx, ebx
test eax, eax
jle 0xa64bb6
mov edx, dword [esp + 0xb8]
xor eax, eax
mov esi, dword [esp + 0xb8]
mov ebx, dword [esp + 0xb8]
imul edx, ecx
mov ecx, dword [esp + 0xb8]
lea ebp, [esi + edx]
mov esi, dword [esp + 0xc8]
add ecx, ecx
add ebx, ecx
add ecx, edx
add ebx, edx
lea edi, [esi + edx*2]
mov edx, dword [esp + 0xc8]
lea esi, [esi + ebx*2]
lea ebx, [edx + ecx*2]
lea ecx, [edx + ebp*2]
mov ebp, dword [esp + 0xb8]
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 0xa64b9d
xor ebx, ebx
mov eax, dword [esp + 0xc4]
mov dword [esp], eax
call fcn.00aa0240
mov eax, dword [esp + 0xc0]
mov dword [esp], eax
call fcn.00aa0240
add esp, 0x19c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
cmp edi, 1
jle 0xa64c6a
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 + 0xc8], edi
mov dword [esp + 0x88], ebp
mov dword [esp + 0xe8], ecx
lea esi, [esi]
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 0xa64c20
mov ebp, dword [esp + 0x88]
mov ecx, dword [esp + 0xe8]
mov edi, dword [esp + 0xc8]
mov ebx, dword [esp + 0xa0]
mov edx, dword [esp + 0xb8]
mov word [ebx + edx*2], 0
xor ebx, ebx
jmp 0xa64764
xor eax, eax
test esi, esi
jle 0xa63c36
mov edx, dword [esp + 0xa8]
mov ecx, ebp
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 0xa64c98
mov ebp, ecx
jmp 0xa63c36
mov ebx, dword [esp + 0xe8]
mov ecx, dword [esp + 0x1bc]
mov eax, dword [esp + 0x1bc]
lea ecx, [ebx + ecx - 1]
mov ebx, 0xffffffff
neg eax
and ecx, eax
mov eax, dword [esp + 0x1b8]
mov dword [esp + 0xa8], ecx
imul eax, ecx
shl eax, 3
mov dword [esp], eax
call fcn.00aa00b0
cmp dword [esp + 0xa8], 0xff
mov dword [esp + 0xc4], eax
mov dword [esp + 0x18c], eax
jg 0xa64bb6
mov eax, dword [esp + 0xc4]
test eax, eax
jne 0xa64040
mov ebx, 0xffffffff
jmp 0xa64bb6
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.00aa0010
jmp 0xa64061
mov ebx, dword [esp + 0x1b8]
shl ebx, 3
mov dword [esp], ebx
call fcn.00aa00b0
test eax, eax
mov edx, eax
mov dword [esp + 0x18c], eax
je 0xa65875
mov ecx, dword [esp + 0x1b8]
mov dword [esp + 0x88], 1
test ecx, ecx
jle 0xa63aad
mov ecx, dword [esp + 0xfc]
xor eax, eax
mov ebx, dword [ecx]
mov ecx, dword [esp + 0x1b0]
shr ecx, 0x1f
add ecx, dword [esp + 0x1b0]
sar ecx, 1
mov esi, ecx
sar esi, 0x10
mov word [ebx + eax*2], si
add ecx, dword [esp + 0x1b0]
mov dword [edx + eax*8], 0
mov dword [edx + eax*8 + 4], 0x400000
add eax, 1
cmp eax, dword [esp + 0x1b8]
jne 0xa64db4
mov dword [esp + 0x88], 1
jmp 0xa63aad
mov edx, dword [esp + 0x124]
test edx, edx
je 0xa65260
fstp st(0)
mov eax, dword [esp + 0x13c]
add ecx, 0xe0000000
mov edi, 0x400000
mov edx, dword [esp + 0x1b0]
adc ebx, 0xffffffff
imul eax, ecx
imul edx, ebx
lea esi, [eax + edx]
mov eax, dword [esp + 0x1b0]
mul ecx
add edx, esi
xor esi, esi
cmp edx, 0xffffe000
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], edx
jl 0xa64464
xor esi, esi
xor edi, edi
cmp edx, 0x1fff
jg 0xa64464
mov edx, dword [esp + 0x13c]
neg ecx
mov eax, dword [esp + 0x1b0]
adc ebx, 0
neg ebx
imul edx, ecx
imul eax, ebx
lea ebx, [edx + eax]
mov eax, dword [esp + 0x1b0]
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 0xa64464
fstp st(0)
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
jmp 0xa643f6
fstp st(0)
cmp ebx, 0
mov dword [esp + 0xb0], 0x999999
mov dword [esp + 0xb4], 0
jg 0xa64458
jl 0xa64eeb
cmp ecx, 0x7fffffff
ja 0xa64458
mov eax, ebx
imul eax, ecx
lea esi, [eax + eax]
mov eax, ecx
mul ecx
add edx, esi
mov dword [esp + 0xd0], eax
mov esi, dword [esp + 0xd0]
mov dword [esp + 0xd4], edx
mov edi, dword [esp + 0xd4]
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 + 0xd0], edx
mul ecx
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0xd0]
add edx, eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0xe4], edx
mov edx, dword [esp + 0xe4]
shrd eax, edx, 0x1e
sar edx, 0x1e
cmp ebx, 0
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], edx
jle 0xa653a5
mov edx, dword [esp + 0xb0]
imul eax, dword [esp + 0xb4], 0xfffffffa
neg edx
add eax, edx
mov dword [esp + 0xe0], eax
mov eax, 0xfffffffa
mov dword [esp + 0x110], edx
mul dword [esp + 0xb0]
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xe0]
add edx, eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 0xf4], edx
mov edx, dword [esp + 0xf4]
sub eax, dword [esp + 0xa8]
sbb edx, dword [esp + 0xac]
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0xe4], edx
mov edx, dword [esp + 0xe4]
imul edx, dword [esp + 0xd0]
imul eax, dword [esp + 0xe0]
add eax, edx
mov dword [esp + 0x114], eax
mov eax, dword [esp + 0xe0]
mul dword [esp + 0xd0]
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0x114]
add edx, eax
mov eax, 6
mov dword [esp + 0xe4], edx
imul edx, dword [esp + 0xac], 6
mov dword [esp + 0x114], edx
mul dword [esp + 0xa8]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x114]
add edx, eax
mov eax, 0x1e
mov dword [esp + 0xd4], edx
imul edx, dword [esp + 0xb4], 0x1e
mov dword [esp + 0x114], edx
mul dword [esp + 0xb0]
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0x114]
add edx, eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0xf4], edx
mov edx, dword [esp + 0xd4]
add eax, dword [esp + 0xf0]
adc edx, dword [esp + 0xf4]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0xd4], edx
mov edx, dword [esp + 0xd4]
imul eax, edi
imul edx, esi
lea edi, [edx + eax]
mov eax, dword [esp + 0xd0]
mul esi
mov esi, dword [esp + 0xe0]
add edx, edi
mov edi, dword [esp + 0xe4]
mov dword [esp + 0xd4], edx
mov edx, dword [esp + 0xb4]
mov dword [esp + 0xd0], eax
mov eax, 3
add esi, dword [esp + 0xd0]
adc edi, dword [esp + 0xd4]
lea edx, [edx + edx*2]
mov dword [esp + 0xd0], edx
mul dword [esp + 0xb0]
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0xd0]
add edx, eax
mov eax, dword [esp + 0xa8]
add eax, dword [esp + 0xe0]
mov dword [esp + 0xe4], edx
mov edx, eax
mov eax, 0
add edx, edx
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xd4], edx
imul edx, dword [esp + 0xac], 0xfffffff4
sub edx, eax
mov eax, 0xfffffff4
mov dword [esp + 0xe0], edx
mul dword [esp + 0xa8]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xe0]
add edx, eax
imul eax, dword [esp + 0xb4], 0xffffffd0
add eax, dword [esp + 0x110]
mov dword [esp + 0xac], edx
mov dword [esp + 0xe0], eax
mov eax, 0xffffffd0
mul dword [esp + 0xb0]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xe0]
add edx, eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xb4], edx
mov edx, dword [esp + 0xac]
add eax, dword [esp + 0xb0]
adc edx, dword [esp + 0xb4]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xac], edx
mov edx, dword [esp + 0xac]
imul eax, ebx
imul edx, ecx
lea ebx, [edx + eax]
mov eax, dword [esp + 0xa8]
mul ecx
add edx, ebx
mov dword [esp + 0xac], edx
mov ecx, dword [esp + 0xac]
mov dword [esp + 0xa8], eax
mov edx, dword [esp + 0xa8]
add dword [esp + 0xd0], edx
adc dword [esp + 0xd4], ecx
add esi, dword [esp + 0xd0]
adc edi, dword [esp + 0xd4]
jmp 0xa64464
mov eax, dword [esp + 0x144]
test eax, eax
je 0xa65328
mov ecx, dword [esp + 0x1d4]
fld qword [ecx]
fld dword [0x1132100]
fxch st(1)
fucomi st(1)
fstp st(1)
jnp 0xa65504
fchs
fmul st(1)
fmulp st(1)
fstp qword [esp + 8]
fld dword [0x1132114]
fstp qword [esp]
call sub.msvcrt.dll_pow
fnstcw word [esp + 0x16e]
fld dword [0x1132110]
fmulp st(1)
movzx eax, word [esp + 0x16e]
mov ah, 0xc
mov word [esp + 0x16c], ax
fldcw word [esp + 0x16c]
fistp qword [esp + 0x170]
fldcw word [esp + 0x16e]
mov esi, dword [esp + 0x170]
mov edi, dword [esp + 0x174]
jmp 0xa64464
mov ebx, dword [esp + 0x160]
add dword [esp + 0x118], 1
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x1b8]
add dword [esp + 0xbc], ebx
add dword [esp + 0xe8], esi
cmp dword [esp + 0x118], edi
jne 0xa64358
jmp 0xa63aad
mov eax, dword [esp + 0x148]
test eax, eax
je 0xa65517
mov eax, ebx
xor esi, esi
or eax, ecx
mov edi, 0x400000
je 0xa6445e
fldpi
fmulp st(1)
fst qword [esp]
fstp xword [esp + 0x20]
call sub.msvcrt.dll_sin
fld xword [esp + 0x20]
fnstcw word [esp + 0x16e]
fdivp st(1)
movzx eax, word [esp + 0x16e]
mov ah, 0xc
mov word [esp + 0x16c], ax
fmul dword [0x1132110]
fldcw word [esp + 0x16c]
fistp qword [esp + 0x170]
fldcw word [esp + 0x16e]
mov esi, dword [esp + 0x170]
mov edi, dword [esp + 0x174]
jmp 0xa64464
jl 0xa653b3
cmp ecx, 0x3fffffff
ja 0xa64f76
mov ecx, dword [esp + 0xa8]
imul eax, dword [esp + 0xac], 0xfffffff7
neg ecx
add eax, ecx
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x110], ecx
mov ecx, 0xfffffff7
mov ebx, dword [esp + 0xe0]
mul ecx
add ebx, edx
mov ecx, eax
mov eax, dword [esp + 0xb0]
imul edx, dword [esp + 0xb4], 0xfffffffa
sub edx, eax
mov eax, 0xfffffffa
mov dword [esp + 0xe0], edx
mul dword [esp + 0xb0]
add edx, dword [esp + 0xe0]
add ecx, eax
mov eax, dword [esp + 0xd4]
adc ebx, edx
mov edx, dword [esp + 0xd0]
add ecx, 0xc000000
adc ebx, 0
imul eax, ecx
imul edx, ebx
lea ebx, [edx + eax]
mov eax, dword [esp + 0xd0]
mul ecx
imul ecx, dword [esp + 0xac], 0xc
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xa8]
add edx, ebx
mov dword [esp + 0xe0], ecx
mov ecx, 0xc
mov ebx, dword [esp + 0xe0]
mov dword [esp + 0xd4], edx
mul ecx
add ebx, edx
mov ecx, eax
imul edx, dword [esp + 0xb4], 6
mov eax, 6
mov dword [esp + 0xe0], edx
mul dword [esp + 0xb0]
add edx, dword [esp + 0xe0]
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
mov ecx, dword [esp + 0x110]
mul esi
mov esi, eax
mov eax, dword [esp + 0xac]
mov edi, edx
add edi, ebx
add esi, dword [esp + 0xd0]
adc edi, dword [esp + 0xd4]
shl eax, 0x1f
add ecx, eax
mov eax, 0x80000000
mul dword [esp + 0xa8]
add edx, ecx
add eax, 0
adc edx, str.M_b2
add esi, eax
adc edi, edx
jmp 0xa64464
jne 0xa6528a
fstp st(0)
fld dword [0x11320e8]
jmp 0xa6528c
mov eax, dword [esp + 0x14c]
test eax, eax
je 0xa65615
mov esi, dword [esp + 0x1d4]
fld qword [esi]
fld dword [0x1132100]
fxch st(1)
fucomi st(1)
fstp st(1)
jp 0xa65547
jne 0xa65547
fstp st(0)
fld dword [0x11320ec]
mov eax, ebx
xor esi, esi
or eax, ecx
mov edi, 0x400000
je 0xa65604
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 sub.msvcrt.dll_sin
fld qword [esp + 0x20]
fld xword [esp + 0x70]
fdiv st(1)
fstp qword [esp]
fstp xword [esp + 0x60]
fstp qword [esp + 0x70]
call sub.msvcrt.dll_sin
fld qword [esp + 0x70]
fmulp st(1)
fnstcw word [esp + 0x16e]
movzx eax, word [esp + 0x16e]
fld xword [esp + 0x40]
fmul st(0)
mov ah, 0xc
mov word [esp + 0x16c], 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 [0x1132110]
fldcw word [esp + 0x16c]
fistp qword [esp + 0x170]
fldcw word [esp + 0x16e]
mov esi, dword [esp + 0x170]
mov edi, dword [esp + 0x174]
fld qword [esp + 0x20]
fld qword [esp + 0x50]
jmp 0xa65606
fxch st(1)
fucompi st(1)
fstp st(0)
ja 0xa64458
jmp 0xa64464
mov eax, dword [esp + 0x150]
test eax, eax
je 0xa65754
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 + 0x12c], esi
mov edx, dword [esp + 0x12c]
mov esi, ebx
mov dword [esp + 0x128], edi
mov edi, ecx
sar edx, 0x1f
and edi, edx
and esi, edx
mov dword [esp + 0x130], edi
mov dword [esp + 0x134], esi
mov esi, dword [esp + 0x130]
mov edi, dword [esp + 0x134]
shld edi, esi, 0x18
shl esi, 0x18
jmp 0xa64464
mov esi, dword [esp + 0x1b8]
imul eax, dword [esp + 0x1b4]
mov ebx, esi
lea eax, [esi + eax - 1]
mov edx, eax
sar edx, 0x1f
idiv esi
add eax, 1
mov dword [esp + 0x88], eax
jmp 0xa641c6
mov eax, dword [esp + 0x120]
imul eax, ecx
add eax, eax
je 0xa64871
mov dword [esp + 8], str.Cannot_allocate_memory._n
mov ebx, 0xffffffff
mov dword [esp + 4], 0x10
mov dword [esp], 0
call fcn.00aa0010
mov eax, dword [esp + 0x18c]
mov dword [esp + 0xc4], eax
jmp 0xa64bb6
test ebx, ebx
je 0xa638c3
mov dword [esp + 8], str.Cannot_allocate_memory._n
mov ebx, 0xffffffff
mov dword [esp + 4], 0x10
mov dword [esp], 0
call fcn.00aa0010
mov eax, dword [esp + 0x18c]
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], eax
jmp 0xa64bb6
test ebx, ebx
je 0xa63b0e
jmp 0xa656c5
mov eax, dword [esp + 0x154]
xor esi, esi
xor edi, edi
test eax, eax
je 0xa64462
fld1
fld st(0)
fucompi st(2)
jae 0xa65838
fstp st(0)
fldz
fld qword [0x11320f0]
fld qword [0x11320f8]
fld dword [0x11320ec]
jmp 0xa65796
fxch st(3)
fxch st(4)
fxch st(3)
fld1
fld st(0)
fsubp st(6)
fxch st(5)
fstp qword [esp + 0x178]
fld qword [esp + 0x178]
fld st(4)
fchs
fld st(4)
fmul st(3)
fsubp st(1)
fld st(3)
fmul dword [0x1132118]
fsubp st(1)
fstp qword [esp + 0x178]
fld qword [esp + 0x178]
fxch st(3)
fmul st(2)
fld st(4)
fadd st(1)
fstp qword [esp + 0x178]
fld qword [esp + 0x178]
fxch st(5)
fadd st(0)
faddp st(6)
faddp st(5)
fxch st(4)
fstp qword [esp + 0x178]
fld qword [esp + 0x178]
fxch st(5)
fucompi st(4)
jb 0xa65790
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 + 0x178]
fld qword [esp + 0x178]
jmp 0xa652a2
test esi, esi
je 0xa6393a
jmp 0xa65708
fldz
fld qword [0x11320f0]
fld qword [0x11320f8]
fxch st(1)
fxch st(2)
fxch st(4)
fxch st(3)
jmp 0xa65806
fchs
fstp qword [esp]
call sub.msvcrt.dll_pow
fchs
jmp 0xa645c7
test ebx, ebx
je 0xa6420d
lea esi, [esi]
jmp 0xa65708
test ebx, ebx
je 0xa64d7c
lea esi, [esi]
jmp 0xa65708
test ebx, ebx
je 0xa64655
lea esi, [esi]
jmp 0xa65708
test byte [esp + 0x1c4], 0x80
mov al, 8
jne 0xa641a4
test dword [esp + 0x1c4], 0x200
je 0xa6590f
mov ebx, dword [esp + 0x1d4]
fld qword [ebx]
fld dword [0x1132100]
fxch st(1)
fucomi st(1)
fstp st(1)
jp 0xa658cb
je 0xa65934
fadd st(0)
fstp qword [esp]
call sub.msvcrt.dll_ceil
fnstcw word [esp + 0x16e]
movzx eax, word [esp + 0x16e]
mov ah, 0xc
mov word [esp + 0x16c], ax
fldcw word [esp + 0x16c]
fistp dword [esp + 0x168]
fldcw word [esp + 0x16e]
mov eax, dword [esp + 0x168]
jmp 0xa641a4
test dword [esp + 0x1c4], 0x500
mov eax, 0x14
jne 0xa641a4
mov eax, dword [esp + 0x1c4]
and eax, 2
jmp 0xa641a4
fstp st(0)
mov eax, 6
jmp 0xa641a4