Function at 0xb40790
Capabilities:
Check http status code
Encrypt data using speck
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x28c
mov eax, dword [ebp + 8]
mov edi, dword [ebp + 0x18]
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov dword [ebp - 0xb8], 0
mov eax, dword [eax + 4]
mov ecx, dword [ecx + 0x24]
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0xec], ecx
mov eax, dword [eax + 8]
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov esi, dword [eax + 8]
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x124], esi
mov esi, dword [eax + 4]
mov dword [ebp - 0xd0], esi
mov esi, eax
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x1ac], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x20]
test eax, eax
mov dword [ebp - 0x100], eax
setne byte [ebp - 0x144]
movzx eax, byte [ebp - 0x144]
cmp edi, 1
setle dl
test ebx, ebx
mov dword [ebp - 0x158], eax
sete al
or dl, al
mov byte [ebp - 0x1be], dl
jne 0xb4086f
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0x10]
imul edx, dword [eax + 0x1c]
mov eax, dword [esi + 0x24]
test eax, eax
js 0xb4086f
mov esi, dword [esi + 0x2c]
cmp edx, esi
mov dword [ebp - 0x11c], esi
je 0xb45d9c
xor ecx, ecx
mov ebx, esi
jmp 0xb40868
mov esi, ebx
shl esi, cl
cmp edx, esi
je 0xb40887
add ecx, 1
cmp ecx, eax
jle 0xb40860
mov dword [ebp - 0x130], 0xffffffff
mov eax, dword [ebp - 0x130]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, 1
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0xf0], ecx
shl eax, cl
mov dword [ebp - 0x11c], edx
mov dword [ebp - 0x154], eax
mov eax, dword [ebp + 8]
mov esi, dword [ebp - 0xfc]
add eax, 0xf4
mov ecx, eax
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0x110], ecx
imul eax, esi
lea ecx, [ecx + eax*4]
mov dword [ebp - 0xf8], ecx
mov ecx, esi
shl esi, 0xa
add eax, esi
mov dword [ebp - 0x168], esi
mov esi, dword [ebp - 0x110]
lea eax, [esi + eax*4]
mov esi, eax
mov dword [ebp - 0x150], eax
mov eax, dword [ebp - 0x124]
imul eax, ecx
mov dword [ebp - 0x1fc], eax
shl eax, 2
mov ecx, eax
mov dword [ebp - 0x1cc], eax
mov eax, esi
add eax, ecx
mov dword [ebp - 0x1e0], eax
add eax, ecx
mov dword [ebp - 0x200], eax
add eax, ecx
mov dword [ebp - 0x204], eax
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0xb451a5
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0xd8], edx
mov dword [esp], eax
call fcn.00b46c80
mov dword [ebp - 0x1f8], eax
mov eax, dword [ebp + 0x1c]
mov esi, dword [ebp + 0x1c]
mov edx, dword [ebp - 0xd8]
bsr eax, dword [eax + 0x1c]
mov ecx, dword [esi + 0x14]
xor eax, 0x1f
lea eax, [eax + ecx - 0x20]
lea esi, [eax + 4]
mov dword [ebp - 0x104], eax
sar esi, 3
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x30]
test eax, eax
mov dword [ebp - 0x10c], eax
jne 0xb4636c
cmp edi, 0x4fb
mov dword [ebp - 0x130], edi
jle 0xb40991
mov dword [ebp - 0x130], 0x4fb
mov eax, dword [ebp - 0x130]
mov edi, dword [ebp + 8]
sub eax, esi
mov dword [ebp - 0x14c], eax
mov eax, dword [edi + 0x2c]
test eax, eax
jne 0xb44acd
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x28]
imul edx, edi
cmp dword [ebp - 0x104], 1
jle 0xb409c5
add edx, dword [ebp - 0x104]
cmp edi, 0xffffffff
je 0xb454cf
mov eax, dword [ebp - 0x120]
mov ecx, dword [eax]
lea eax, [edx + ecx*4]
shl ecx, 3
cdq
idiv ecx
mov ecx, dword [ebp - 0x130]
cmp eax, ecx
jle 0xb409eb
mov eax, ecx
cmp eax, 2
mov dword [ebp - 0x130], eax
jl 0xb45a0a
mov edx, dword [ebp - 0x130]
mov ecx, dword [ebp - 0xf0]
mov dword [ebp - 0x174], 0
mov eax, edx
sub eax, esi
mov dword [ebp - 0x164], eax
mov eax, 3
sub eax, ecx
mov dword [ebp - 0x1a0], eax
mov eax, dword [ebp - 0xf4]
imul edx, edx, 0x190
lea eax, [eax + eax*4]
lea eax, [eax*8 + 0x14]
mov dword [ebp - 0x1b8], eax
mov eax, 0x190
sar eax, cl
movzx ecx, byte [ebp - 0x1a0]
sub eax, 0x32
imul eax, dword [ebp - 0x1b8]
sar edx, cl
sub edx, eax
sub edi, eax
cmp edi, edx
mov dword [ebp - 0x198], edi
jle 0xb40a71
mov dword [ebp - 0x198], edx
mov ecx, dword [ebp + 0x1c]
test ecx, ecx
je 0xb45547
mov eax, dword [ebp - 0x174]
test eax, eax
jle 0xb40ae3
mov edi, dword [ebp + 8]
mov edx, dword [edi + 0x34]
test edx, edx
je 0xb40ae3
add eax, eax
sub eax, dword [edi + 0xd0]
xor ecx, ecx
sar eax, 6
cmp dword [ebp - 0x104], 1
sete cl
mov edi, ecx
add edi, edi
cmp edi, eax
jge 0xb40ab1
mov edi, eax
mov eax, dword [ebp - 0x14c]
cmp edi, eax
jle 0xb40abd
mov edi, eax
cmp dword [ebp - 0x14c], edi
jle 0xb40ae3
lea eax, [esi + edi]
mov dword [ebp - 0x130], eax
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call fcn.00b475f0
mov dword [ebp - 0x14c], edi
mov eax, dword [ebp - 0x130]
mov edi, dword [ebp - 0xec]
shl eax, 3
mov dword [ebp - 0x178], eax
mov eax, dword [ebp - 0x120]
mov eax, dword [eax + 0xc]
cmp eax, edi
mov dword [ebp - 0x138], eax
jle 0xb40b11
mov dword [ebp - 0x138], edi
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ebp - 0x11c]
mov dword [ebp - 0x218], esp
mov eax, ecx
add eax, edx
mov edi, eax
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0xfc]
imul eax, edi
lea eax, [eax*4 + 0x12]
shr eax, 4
shl eax, 4
call fcn.00bd0e20
sub esp, eax
sub edx, ecx
lea eax, [esp + 0x5c]
mov dword [ebp - 0x13c], eax
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x1c]
fld dword [eax + 0xe0]
mov eax, dword [ebp - 0xf4]
imul eax, edx
cdq
idiv edi
test eax, eax
mov dword [ebp - 0xd8], eax
jle 0xb459ee
fldz
lea ecx, [ebx + eax*4]
mov edx, ebx
fld st(0)
jmp 0xb40b92
fstp st(1)
fld dword [edx]
fxch st(2)
fucom st(2)
fnstsw ax
sahf
ja 0xb40ba3
fstp st(0)
fld st(1)
jmp 0xb40ba5
fxch st(2)
fucom st(1)
fnstsw ax
sahf
jbe 0xb40bb0
fstp st(0)
jmp 0xb40bb2
fstp st(1)
add edx, 4
fld st(0)
cmp ecx, edx
jne 0xb40b90
fstp st(0)
fchs
fxch st(1)
fucom st(1)
fnstsw ax
sahf
jbe 0xb40bce
fstp st(1)
fxch st(1)
jmp 0xb40bd2
fstp st(0)
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
sahf
ja 0xb40c2a
fstp st(0)
mov eax, dword [ebp - 0xd8]
fldz
mov edx, ebx
fld st(0)
lea ecx, [ebx + eax*4]
fld dword [edx]
fxch st(1)
fucom st(1)
fnstsw ax
sahf
ja 0xb40bfd
fstp st(0)
fld st(0)
jmp 0xb40bff
fxch st(1)
fucom st(2)
fnstsw ax
sahf
ja 0xb40c0e
fstp st(2)
fxch st(1)
fxch st(1)
jmp 0xb40c10
fstp st(0)
add edx, 4
cmp ecx, edx
jne 0xb40bec
fxch st(1)
fchs
fxch st(1)
fucom st(1)
fnstsw ax
sahf
jbe 0xb40c28
fstp st(1)
jmp 0xb40c2a
fstp st(0)
mov eax, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0xd8]
imul eax, dword [ebp - 0xd0]
shl ecx, 2
cdq
idiv edi
test eax, eax
jle 0xb45b23
fldz
lea edx, [ebx + ecx]
lea ecx, [ecx + eax*4]
fld st(0)
add ecx, ebx
mov esi, esi
lea edi, [edi]
fld dword [edx]
fxch st(1)
fucom st(1)
fnstsw ax
sahf
ja 0xb40c71
fstp st(0)
fld st(0)
jmp 0xb40c73
fxch st(1)
fucom st(2)
fnstsw ax
sahf
ja 0xb40c82
fstp st(2)
fxch st(1)
fxch st(1)
jmp 0xb40c84
fstp st(0)
add edx, 4
cmp ecx, edx
jne 0xb40c60
fxch st(1)
fchs
fst dword [ebp - 0xe4]
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
sahf
jbe 0xb40ca8
fstp dword [ebp - 0xe4]
jmp 0xb40caa
fstp st(0)
mov eax, dword [ebp + 8]
fld dword [ebp - 0xe4]
fst dword [eax + 0xe0]
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
sahf
jbe 0xb40ccc
fstp dword [ebp - 0xe4]
jmp 0xb40cce
fstp st(0)
cmp dword [ebp - 0x104], 1
je 0xb45a19
cmp dword [ebp - 0x14c], 3
mov dword [ebp - 0x1bc], 0
setg byte [ebp - 0xe8]
mov eax, dword [ebp - 0x120]
mov ecx, ebx
mov ebx, dword [ebp - 0xd0]
add eax, 0x10
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xe0]
shl eax, 2
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0x13c]
lea edx, [eax + ebx*4]
mov eax, dword [ebp + 8]
xor ebx, ebx
mov dword [ebp - 0xd0], ebx
lea esi, [eax + 0xc0]
mov eax, edi
mov edi, edx
mov edx, eax
jmp 0xb40d43
mov edx, dword [eax + 0x1c]
mov ebx, dword [ebp + 8]
xor eax, eax
mov ebx, dword [ebx + 0x10]
test ebx, ebx
je 0xb40d63
fld dword [0xe03750]
fld dword [ebp - 0xe4]
fucompp
fnstsw ax
sahf
seta al
movzx eax, al
mov dword [esp + 0x18], esi
add esi, 4
mov dword [esp + 0x1c], eax
mov eax, dword [ebp - 0xc8]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0xfc]
mov dword [esp + 0xc], eax
mov ebx, dword [ebp - 0x11c]
mov dword [esp + 4], edi
mov dword [esp], ecx
mov dword [esp + 8], ebx
mov dword [ebp - 0xd8], ecx
call fcn.00b405d0
mov ecx, dword [ebp - 0xd8]
add dword [ebp - 0xd0], 1
mov eax, dword [ebp - 0xd0]
add edi, dword [ebp - 0xdc]
add ecx, 4
cmp dword [ebp - 0xfc], eax
mov eax, dword [ebp + 8]
jg 0xb40d40
mov edi, dword [eax + 0x40]
test edi, edi
je 0xb42021
cmp byte [ebp - 0xe8], 0
je 0xb42021
mov eax, dword [ebp - 0x158]
or eax, dword [ebp - 0x1bc]
mov dword [ebp - 0x118], eax
jne 0xb44c72
mov eax, dword [ebp + 8]
mov esi, dword [eax + 0x14]
test esi, esi
jne 0xb40e1a
cmp dword [eax + 0x18], 4
setg al
movzx eax, al
mov dword [ebp - 0x118], eax
mov eax, dword [ebp + 8]
mov edi, dword [ebp - 0xfc]
mov dword [ebp - 0x170], esp
mov eax, dword [eax + 0x64]
mov dword [ebp - 0x19c], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [ebp - 0xe4], eax
mov eax, dword [eax + 4]
mov esi, eax
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0x11c]
add eax, 0x400
imul edi, eax
mov ebx, eax
mov dword [ebp - 0x12c], eax
lea eax, [edi*4 + 0x12]
mov dword [ebp - 0x148], edi
shr eax, 4
shl eax, 4
call fcn.00bd0e20
mov edi, esi
add esi, dword [ebp - 0x11c]
lea edx, [ebx*4]
sub esp, eax
lea ebx, [edx - 0x1000]
lea eax, [esp + 0x5c]
mov dword [ebp - 0x140], esi
shl esi, 2
mov dword [ebp - 0x15c], ebx
mov dword [ebp - 0x128], esi
mov esi, edi
mov edi, dword [ebp - 0x13c]
mov ebx, dword [ebp - 0xf8]
lea ecx, [eax + edx]
shl esi, 2
mov dword [ebp - 0x80], eax
mov dword [ebp - 0xd0], esi
xor edx, edx
add edi, esi
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x108], ebx
mov dword [ebp - 0xd8], edi
mov ecx, dword [ebx]
lea edi, [eax + 4]
mov esi, ebx
add ebx, 0x1000
and edi, 0xfffffffc
mov dword [eax], ecx
mov ecx, dword [ebx - 4]
mov dword [eax + 0xffc], ecx
sub eax, edi
lea ecx, [eax + 0x1000]
sub esi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0xf8], edx
mov eax, dword [ebp + edx*4 - 0x80]
mov esi, dword [ebp - 0x15c]
mov dword [ebp - 0xc8], eax
mov dword [esp + 8], esi
add eax, 0x1000
mov esi, dword [ebp - 0xd8]
mov dword [esp], eax
mov dword [esp + 4], esi
call sub.msvcrt.dll_memcpy
mov edx, dword [ebp - 0xf8]
mov eax, dword [ebp - 0x128]
add edx, 1
add esi, eax
cmp dword [ebp - 0xfc], edx
mov dword [ebp - 0xd8], esi
jle 0xb40f56
mov eax, dword [ebp + edx*4 - 0x80]
jmp 0xb40ed6
mov ebx, dword [ebp - 0x118]
test ebx, ebx
jne 0xb44f77
fldz
mov dword [ebp - 0xb4], 0xf
mov edx, 0xf
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x78]
test ecx, ecx
je 0xb40f85
fmul dword [eax + 0xa0]
mov eax, dword [ebp + 8]
fld dword [0xe0375c]
mov edi, dword [eax + 0x68]
mov eax, edx
sub eax, edi
mov ecx, eax
sar ecx, 0x1f
xor eax, ecx
sub eax, ecx
lea eax, [eax + eax*4]
add eax, eax
cmp eax, edx
jg 0xb40faf
fstp st(0)
fld dword [0xe03758]
cmp dword [ebp - 0x14c], 0x18
jg 0xb44a85
fadd dword [0xe037dc]
fadd dword [0xe037dc]
mov eax, dword [ebp + 8]
fld dword [eax + 0x6c]
fld dword [0xe0375c]
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
sahf
jbe 0xb40fe9
fxch st(1)
fsub dword [0xe037dc]
fxch st(1)
fld dword [0xe037e0]
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
sahf
jbe 0xb41004
fxch st(1)
fsub dword [0xe037dc]
fxch st(1)
fld dword [0xe03758]
fxch st(2)
fucom st(2)
fnstsw ax
sahf
ja 0xb41019
fstp st(0)
fxch st(1)
jmp 0xb4101d
fstp st(2)
fxch st(1)
fucomp st(2)
fnstsw ax
sahf
ja 0xb44aa0
fld st(1)
fsub st(1)
fabs
fld dword [0xe037dc]
fucompp
fnstsw ax
sahf
jbe 0xb4103f
fstp st(1)
fld st(0)
fstp dword [ebp - 0xd8]
fmul dword [0xe037e4]
fdiv dword [0xe03784]
fadd dword [0xe03748]
fstp qword [esp]
call sub.msvcrt.dll_floor
fnstcw word [ebp - 0xbe]
movzx eax, word [ebp - 0xbe]
mov ah, 0xc
mov word [ebp - 0xc0], ax
fldcw word [ebp - 0xc0]
fistp dword [ebp - 0xc4]
fldcw word [ebp - 0xbe]
mov eax, dword [ebp - 0xc4]
sub eax, 1
fld dword [ebp - 0xd8]
cmp eax, 7
mov dword [ebp - 0x134], eax
jle 0xb410ab
mov dword [ebp - 0x134], 7
mov ebx, dword [ebp - 0x134]
mov dword [ebp - 0x1ec], 1
mov eax, ebx
sar eax, 0x1f
not eax
and ebx, eax
mov eax, ebx
mov dword [ebp - 0x134], ebx
add eax, 1
mov dword [ebp - 0xd8], eax
fild dword [ebp - 0xd8]
fmul dword [0xe037e8]
fst dword [ebp - 0x1e4]
fchs
fstp dword [ebp - 0x12c]
mov esi, dword [ebp - 0x11c]
mov eax, 0x400
mov ecx, dword [ebp - 0x13c]
xor edx, edx
mov dword [ebp - 0xf8], 0
mov ebx, edx
mov edx, dword [ebp + 8]
sub eax, esi
mov dword [ebp - 0xd8], ecx
mov dword [ebp - 0x17c], ecx
shl eax, 2
mov dword [ebp - 0x160], eax
mov eax, dword [ebp - 0x110]
mov dword [ebp - 0xc8], eax
mov eax, esi
shl eax, 2
neg eax
add eax, 0x1000
mov dword [ebp - 0x16c], eax
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 0x2c]
mov esi, eax
sub esi, dword [ebp - 0xe8]
cmp edi, 0xf
jge 0xb41161
mov edi, 0xf
mov eax, dword [ebp - 0xd0]
fstp dword [ebp - 0x110]
mov dword [edx + 0x68], edi
mov dword [ebp - 0x118], edx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xc8]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xd8]
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
test esi, esi
mov edx, dword [ebp - 0x118]
fld dword [ebp - 0x110]
jne 0xb41dba
mov eax, dword [edx + 0x48]
mov dword [esp + 0x2c], eax
mov ecx, dword [ebp - 0xe8]
mov dword [esp + 0x28], ecx
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 0x3c]
mov dword [esp + 0x24], eax
mov eax, dword [ebp - 0x19c]
mov dword [esp + 0x20], eax
mov eax, dword [edx + 0x70]
mov dword [ebp - 0x118], edx
mov dword [esp + 0x1c], eax
fld dword [ebp - 0x12c]
fstp dword [esp + 0x18]
fchs
fstp dword [esp + 0x14]
mov eax, dword [ebp - 0x11c]
sub eax, esi
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0xb4]
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
mov eax, dword [ebp + ebx*4 - 0x80]
lea eax, [eax + esi*4 + 0x1000]
mov dword [esp + 4], eax
lea eax, [esi + ecx]
add eax, dword [ebp - 0xf8]
mov esi, dword [ebp - 0x13c]
lea eax, [esi + eax*4]
mov dword [esp], eax
call fcn.00b37330
mov esi, dword [ebp - 0xd8]
mov edi, dword [ebp - 0x15c]
add esi, edi
mov eax, esi
mov esi, dword [ebp - 0xd0]
mov dword [esp + 4], eax
mov dword [esp + 8], esi
mov esi, dword [ebp - 0xc8]
mov dword [esp], esi
call sub.msvcrt.dll_memcpy
cmp dword [ebp - 0x11c], 0x400
mov edx, dword [ebp - 0x118]
jle 0xb412e3
mov esi, dword [ebp + ebx*4 - 0x80]
add esi, edi
mov edi, dword [ebp - 0x108]
mov eax, dword [esi]
mov dword [edi], eax
mov eax, dword [esi + 0xffc]
mov dword [edi + 0xffc], eax
mov eax, edi
add edi, 4
and edi, 0xfffffffc
sub eax, edi
lea ecx, [eax + 0x1000]
sub esi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x128]
add ebx, 1
add dword [ebp - 0xd8], esi
add dword [ebp - 0x108], 0x1000
mov esi, dword [ebp - 0xd0]
add dword [ebp - 0xc8], esi
mov esi, dword [ebp - 0x140]
add dword [ebp - 0xf8], esi
cmp dword [ebp - 0xfc], ebx
jle 0xb41341
mov edi, dword [edx + 0x68]
fld dword [edx + 0x6c]
jmp 0xb41146
mov eax, dword [ebp - 0x160]
mov dword [ebp - 0x110], edx
mov dword [esp + 8], eax
mov esi, dword [ebp - 0x108]
mov edi, dword [ebp - 0x15c]
mov eax, esi
mov dword [esp], esi
add eax, edi
mov dword [esp + 4], eax
call sub.msvcrt.dll_memmove
mov eax, dword [ebp + ebx*4 - 0x80]
mov ecx, dword [ebp - 0x16c]
mov dword [ebp - 0x118], eax
add ecx, esi
add eax, 0x1000
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov dword [esp], ecx
call sub.msvcrt.dll_memcpy
mov edx, dword [ebp - 0x110]
jmp 0xb4129f
mov eax, dword [ebp - 0xb4]
mov ebx, dword [ebp - 0x17c]
mov dword [ebp - 0x1e8], eax
fld dword [0xe0375c]
mov esp, dword [ebp - 0x170]
fld dword [ebp - 0x1e4]
fucomp st(1)
fnstsw ax
sahf
ja 0xb41e30
mov eax, dword [ebp + 8]
fld dword [eax + 0x6c]
fucompp
fnstsw ax
sahf
ja 0xb41e32
mov dword [ebp - 0x1c8], 0
jmp 0xb41391
fstp st(0)
fstp st(0)
mov eax, dword [ebp - 0x1ec]
test eax, eax
jne 0xb41ea4
mov edi, dword [ebp - 0x100]
test edi, edi
jne 0xb413d5
mov eax, dword [ebp - 0x104]
add eax, 0xf
cmp dword [ebp - 0x178], eax
jle 0xb413d5
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call fcn.00b472d0
mov eax, dword [ebp + 8]
mov esi, dword [eax + 0x18]
test esi, esi
jle 0xb41f6b
mov eax, dword [eax + 0x40]
test eax, eax
mov dword [ebp - 0x110], eax
jne 0xb44bd8
cmp dword [ebp - 0x164], 0xe
jg 0xb4144a
cmp byte [ebp - 0x144], 0
je 0xb4144a
mov eax, dword [ebp + 8]
cmp dword [eax + 0xb8], 2
je 0xb4144a
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0x140], esp
add eax, 0x12
shr eax, 4
shl eax, 4
call fcn.00bd0e20
fld dword [0xe03764]
sub esp, eax
mov dword [ebp - 0x160], 1
lea esi, [esp + 0x5c]
fstp dword [ebp - 0x128]
jmp 0xb41480
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0x140], esp
add eax, 0x12
shr eax, 4
shl eax, 4
call fcn.00bd0e20
fld dword [0xe03760]
sub esp, eax
mov dword [ebp - 0x160], 0
lea esi, [esp + 0x5c]
fstp dword [ebp - 0x128]
mov edi, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xfc]
mov eax, edi
shr eax, 0x1f
add eax, edi
sar eax, 1
test ecx, ecx
mov dword [ebp - 0x104], eax
jle 0xb46308
lea edi, [eax - 1]
mov dword [ebp - 0x134], 0
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0xc8], 0
mov dword [ebp - 0xf8], edi
mov edi, eax
lea eax, [eax + eax*2 - 0x33]
mov dword [ebp - 0xd0], edi
fild dword [ebp - 0xd0]
add eax, eax
mov dword [ebp - 0x12c], eax
mov eax, edi
fstp qword [ebp - 0x118]
sub eax, 5
fild dword [ebp - 0xd0]
mov dword [ebp - 0xd0], eax
fstp dword [ebp - 0x108]
fldz
mov edx, dword [ebp - 0xe0]
xor eax, eax
fld st(0)
test edx, edx
fld dword [0xe03748]
jle 0xb41549
mov edx, dword [ebp - 0xe0]
lea esi, [esi]
fld dword [ebx + eax*4]
fadd st(2), st(0)
fxch st(3)
fadd st(2)
fld st(3)
fadd st(4)
fsubp st(1)
fld st(2)
fmul st(2)
fsubp st(4)
fxch st(2)
fstp dword [esi + eax*4]
add eax, 1
cmp edx, eax
jne 0xb41520
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0xb41550
fstp st(0)
fstp st(0)
fstp st(0)
nop
mov edx, dword [ebp - 0x104]
xor eax, eax
mov ecx, 0xc
mov edi, esi
rep stosd dword es:[edi], eax
test edx, edx
jle 0xb41db3
fldz
xor eax, eax
fld st(0)
fld dword [ebp - 0x128]
jmp 0xb41582
fxch st(2)
fld dword [esi + eax*8]
fld dword [esi + eax*8 + 4]
fxch st(1)
fmul st(0)
fxch st(1)
fmul st(0)
faddp st(1)
fadd st(2), st(0)
fsub st(3)
fmul st(1)
faddp st(3)
fxch st(2)
fst dword [esi + eax*4]
add eax, 1
cmp edx, eax
jne 0xb41580
fstp st(0)
fstp st(1)
mov eax, dword [ebp - 0xf8]
test eax, eax
js 0xb41dac
fldz
mov edx, eax
fld st(0)
fld dword [0xe0376c]
jmp 0xb415d4
fxch st(2)
fxch st(1)
fld st(1)
fsubr dword [esi + edx*4]
fmul st(1)
faddp st(2)
fxch st(1)
fst dword [esi + edx*4]
fxch st(2)
fucom st(2)
fnstsw ax
sahf
ja 0xb415ef
fstp st(0)
fld st(1)
sub edx, 1
cmp edx, 0xffffffff
jne 0xb415d0
fstp st(2)
fstp st(0)
fmulp st(1)
fmul dword [0xe03748]
fmul qword [ebp - 0x118]
fld st(0)
fsqrt
fldz
fucomp st(2)
fnstsw ax
sahf
jbe 0xb41630
fstp qword [ebp - 0xd8]
fstp qword [esp]
call sub.msvcrt.dll_sqrt
fstp st(0)
fld qword [ebp - 0xd8]
jmp 0xb41632
fstp st(1)
fstp dword [ebp - 0xbc]
fld dword [ebp - 0xbc]
fadd dword [0xe03768]
fdivr dword [ebp - 0x108]
fld dword [esi]
fucomp st(0)
fnstsw ax
sahf
jp 0xb4649e
fucom st(0)
fnstsw ax
sahf
jp 0xb46480
cmp dword [ebp - 0xd0], 0xc
jle 0xb41751
fmul dword [0xe03808]
xor eax, eax
mov dword [ebp - 0xe4], ebx
mov edi, 0xc
mov ebx, eax
fstp dword [ebp - 0xd8]
lea esi, [esi]
fld dword [0xe03768]
fadd dword [esi + edi*4]
fmul dword [ebp - 0xd8]
fstp qword [esp]
call sub.msvcrt.dll_floor
fld qword [0xe038b8]
fxch st(1)
mov ecx, 2
fucom st(1)
fnstsw ax
fstp st(1)
sahf
ja 0xb41702
fldz
mov ecx, 0xff
fucomp st(1)
fnstsw ax
sahf
ja 0xb41710
fnstcw word [ebp - 0xbe]
movzx eax, word [ebp - 0xbe]
mov ah, 0xc
mov word [ebp - 0xc0], ax
fldcw word [ebp - 0xc0]
fistp dword [ebp - 0xc4]
fldcw word [ebp - 0xbe]
mov eax, dword [ebp - 0xc4]
movzx ecx, byte [eax + 0xe03600]
jmp 0xb41712
fstp st(0)
jmp 0xb41712
fstp st(0)
add ebx, ecx
add edi, 4
cmp edi, dword [ebp - 0xd0]
jl 0xb41690
mov eax, ebx
mov ebx, dword [ebp - 0xe4]
shl eax, 8
cdq
idiv dword [ebp - 0x12c]
cmp eax, dword [ebp - 0xe8]
jle 0xb41753
mov edi, dword [ebp - 0xc8]
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0x134], edi
jmp 0xb41753
fstp st(0)
add dword [ebp - 0xc8], 1
add ebx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xc8]
cmp dword [ebp - 0xfc], eax
jne 0xb41501
mov ebx, dword [ebp - 0xe8]
mov eax, ebx
sub eax, 0xc9
cmp eax, 0x18e
ja 0xb45925
mov eax, dword [ebp - 0x160]
test eax, eax
je 0xb45925
lea eax, [ebx + ebx*2]
mov dword [ebp - 0x17c], 1
lea eax, [eax + eax*8]
mov dword [ebp - 0xd0], eax
fild dword [ebp - 0xd0]
fld st(0)
fsqrt
fldz
fucomp st(2)
fnstsw ax
sahf
jbe 0xb417e5
fstp qword [ebp - 0xd8]
fst qword [esp]
fstp qword [ebp - 0xd0]
call sub.msvcrt.dll_sqrt
fstp st(0)
fld qword [ebp - 0xd8]
fld qword [ebp - 0xd0]
fxch st(1)
fstp dword [ebp - 0xbc]
fld dword [ebp - 0xbc]
fsub dword [0xe0380c]
fldz
fucom st(1)
fnstsw ax
sahf
ja 0xb45b40
fucomp st(2)
fnstsw ax
sahf
jbe 0xb41823
fstp dword [ebp - 0xd0]
fstp qword [esp]
call sub.msvcrt.dll_sqrt
fstp st(0)
fld dword [ebp - 0xd0]
jmp 0xb41825
fstp st(1)
fld dword [0xe03810]
fld qword [0xe038a0]
fxch st(2)
fucom st(1)
fnstsw ax
sahf
jbe 0xb463a7
fstp st(0)
fstp st(0)
jmp 0xb41846
fstp st(1)
fstp dword [ebp - 0x170]
mov esp, dword [ebp - 0x140]
mov eax, dword [ebp - 0xf0]
test eax, eax
je 0xb41f9f
mov eax, dword [ebp + 0x1c]
mov ebx, dword [ebp + 0x1c]
bsr eax, dword [eax + 0x1c]
mov edx, dword [ebx + 0x14]
xor eax, 0x1f
lea eax, [eax + edx - 0x1e]
cmp dword [ebp - 0x178], eax
jle 0xb41f9f
mov eax, dword [ebp - 0x110]
test eax, eax
je 0xb4556e
mov eax, dword [ebp - 0x148]
sub eax, dword [ebp - 0x168]
lea eax, [eax*4 + 0x12]
shr eax, 4
shl eax, 4
call fcn.00bd0e20
sub esp, eax
lea eax, [esp + 0x5c]
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0x1cc]
lea edx, [eax + 0x12]
shr edx, 4
shl edx, 4
mov eax, edx
call fcn.00bd0e20
sub esp, eax
lea eax, [esp + 0x5c]
mov dword [ebp - 0x168], eax
mov eax, edx
call fcn.00bd0e20
sub esp, eax
lea eax, [esp + 0x5c]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x154]
test eax, eax
je 0xb46353
mov ebx, dword [ebp + 8]
cmp dword [ebx + 0x18], 7
jg 0xb44e21
mov dword [ebp - 0x1a4], 0
mov dword [ebp - 0x16c], eax
mov eax, dword [ebp - 0xf4]
imul eax, dword [ebp - 0x124]
mov dword [ebp - 0x1c4], eax
mov dword [ebp - 0x1f0], eax
shl eax, 2
mov dword [ebp - 0x118], eax
add eax, 0x12
mov dword [ebp - 0x1d8], eax
shr eax, 4
shl eax, 4
call fcn.00bd0e20
sub esp, eax
mov dword [ebp - 0xf8], 0
lea eax, [esp + 0x5c]
mov dword [ebp - 0x180], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x48]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0xf0]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0xfc]
mov dword [esp + 8], eax
mov esi, dword [ebp - 0xf4]
mov dword [esp + 4], esi
mov ebx, dword [ebp - 0xe0]
mov dword [esp], ebx
mov eax, dword [ebp - 0x120]
mov ecx, dword [ebp - 0x13c]
mov edx, dword [ebp - 0x16c]
call fcn.00b40330
fld dword [ebx]
fucomp st(0)
fnstsw ax
sahf
jp 0xb46337
cmp esi, 1
je 0xb451c0
mov eax, ebx
mov ebx, dword [ebp - 0x11c]
fld dword [eax + ebx*4]
fucomp st(0)
fnstsw ax
sahf
jp 0xb46337
mov byte [ebp - 0x1bf], 0
mov byte [ebp - 0x108], 0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x48]
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0xf0]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0xf4]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x138]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x168]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xe0]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x120]
mov dword [esp], eax
call fcn.00b3d5d0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x40]
test eax, eax
je 0xb41a91
mov eax, dword [ebp - 0xec]
cmp eax, 2
jle 0xb41a91
mov ecx, dword [ebp - 0x168]
fld dword [0xe03768]
mov edx, 2
mov ebx, eax
fld dword [ecx + edx*4]
fld dword [0xe03820]
fmul dword [ecx]
fucom st(1)
fnstsw ax
sahf
jbe 0xb41a78
fstp st(0)
jmp 0xb41a7a
fstp st(1)
fucom st(1)
fnstsw ax
sahf
ja 0xb41a85
fstp st(0)
fld st(0)
fstp dword [ecx + edx*4]
add edx, 1
cmp ebx, edx
jne 0xb41a62
fstp st(0)
mov eax, dword [ebp - 0xf4]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x148]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x168]
mov dword [esp + 0xc], eax
mov ebx, dword [ebp - 0xec]
mov dword [esp + 8], ebx
mov eax, dword [ebp - 0x138]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x120]
mov dword [esp], eax
call fcn.00b4a1e0
mov eax, dword [ebp - 0x1d8]
shr eax, 4
shl eax, 4
call fcn.00bd0e20
sub esp, eax
lea eax, [esp + 0x5c]
mov dword [ebp - 0x184], eax
mov esi, eax
mov eax, ebx
shl eax, 2
mov dword [ebp - 0x12c], eax
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], esi
call sub.msvcrt.dll_memset
mov eax, dword [ebp - 0x100]
test eax, eax
jne 0xb42048
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xec]
test eax, eax
mov dword [ebp - 0x104], eax
je 0xb42048
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x40]
test eax, eax
mov dword [ebp - 0xe8], eax
jne 0xb4520b
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x5c]
cmp eax, 2
mov dword [ebp - 0xdc], eax
jl 0xb45f60
mov edi, dword [ebp - 0xf4]
test edi, edi
jle 0xb46038
mov eax, dword [ebp - 0x124]
mov edi, dword [ebp - 0xdc]
fldz
mov esi, dword [ebp - 0x104]
mov dword [ebp - 0xc8], 0
xor ebx, ebx
fld st(0)
shl eax, 2
mov dword [ebp - 0xe4], eax
mov eax, edi
add eax, eax
mov dword [ebp - 0x128], eax
add esi, eax
mov eax, edi
add eax, 1
mov dword [ebp - 0xd8], eax
mov edx, 1
mov ecx, dword [ebp - 0x1ac]
sub edx, dword [ebp - 0xdc]
fld dword [0xe03824]
jmp 0xb41c1c
fld dword [0xe03770]
fxch st(2)
fucom st(2)
fnstsw ax
sahf
ja 0xb41c33
fstp st(0)
fxch st(1)
movsx eax, word [ecx + 2]
movsx edi, word [ecx]
add ecx, 2
sub eax, edi
mov dword [ebp - 0xd0], eax
add ebx, eax
fild dword [ebp - 0xd0]
mov dword [ebp - 0xd0], edx
add edx, 2
cmp dword [ebp - 0xd8], edx
fmul st(1)
faddp st(3)
fild dword [ebp - 0xd0]
fmulp st(1)
faddp st(3)
je 0xb41c4c
fld dword [esi + edx*2 - 2]
fxch st(1)
fucom st(1)
fnstsw ax
sahf
ja 0xb41bd0
fstp st(1)
fld dword [0xe0376c]
jmp 0xb41be3
fstp st(2)
fxch st(1)
fldz
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
sahf
jbe 0xb41be3
fmul dword [0xe03748]
jmp 0xb41be3
fstp st(0)
add dword [ebp - 0xc8], 1
add esi, dword [ebp - 0xe4]
mov eax, dword [ebp - 0xc8]
cmp dword [ebp - 0xf4], eax
jne 0xb41bad
test ebx, ebx
jle 0xb46034
mov dword [ebp - 0xd0], ebx
mov ebx, dword [ebp - 0xdc]
fild dword [ebp - 0xd0]
fdivp st(1)
mov eax, ebx
sub eax, 1
imul eax, dword [ebp - 0xf4]
imul eax, dword [ebp - 0xd8]
fadd dword [0xe03758]
fxch st(1)
imul eax, ebx
mov dword [ebp - 0xd0], eax
fmul dword [0xe03828]
fild dword [ebp - 0xd0]
fdivp st(1)
fmul dword [0xe03748]
fld dword [0xe03774]
fucom st(1)
fnstsw ax
sahf
ja 0xb4562a
fstp st(1)
jmp 0xb41cd8
fstp st(0)
mov ecx, dword [ebp - 0x1ac]
mov ebx, dword [ebp - 0x128]
movzx edx, word [ecx + ebx]
mov eax, edx
shr ax, 0xf
add edx, eax
mov eax, 0
sar dx, 1
cmp dx, word [ecx + 2]
jle 0xb41d08
add eax, 1
cmp dx, word [ecx + eax*2 + 2]
jg 0xb41cfe
mov ebx, dword [ebp - 0xdc]
mov esi, dword [ebp - 0x184]
mov ecx, eax
neg ecx
mov edx, dword [ebp - 0x104]
fldz
mov edi, dword [ebp - 0xc8]
sub ebx, eax
lea esi, [esi + eax*4]
jmp 0xb41d7d
fld dword [edx]
fxch st(2)
jmp 0xb41d37
fstp st(0)
fxch st(2)
fucom st(2)
fnstsw ax
sahf
ja 0xb41d46
fstp st(2)
fxch st(1)
fld st(0)
jmp 0xb41d4a
fxch st(1)
fxch st(2)
fsubrp st(2)
fld dword [0xe03824]
fxch st(2)
fucom st(2)
fnstsw ax
sahf
jbe 0xb41d6b
fsubrp st(2)
fxch st(1)
add dword [ebp - 0xe8], 1
fstp dword [esi + ecx*4]
jmp 0xb41d6f
fstp st(0)
fstp st(1)
add ecx, 1
add edx, 4
cmp ebx, ecx
je 0xb4486d
mov dword [ebp - 0xd0], ecx
cmp edi, 2
fild dword [ebp - 0xd0]
fmul st(2)
fadd st(3)
jne 0xb41d2d
mov eax, dword [ebp - 0x124]
fld dword [edx]
fld dword [edx + eax*4]
fxch st(1)
fucom st(1)
fnstsw ax
sahf
jbe 0xb41d33
fstp st(1)
fxch st(2)
jmp 0xb41d37
fldz
jmp 0xb415fb
fldz
jmp 0xb415ab
fchs
mov eax, dword [edx + 0x70]
mov ecx, dword [edx + 0x48]
mov dword [ebp - 0x110], edx
mov dword [esp + 0xc], edi
fst dword [esp + 0x18]
mov dword [esp + 8], edi
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x24], 0
fstp dword [esp + 0x14]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], esi
mov eax, dword [ebp + ebx*4 - 0x80]
mov dword [ebp - 0x118], eax
add eax, 0x1000
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0xd8]
mov dword [esp], eax
call fcn.00b37330
mov edx, dword [ebp - 0x110]
fld dword [edx + 0x6c]
mov edi, dword [edx + 0x68]
jmp 0xb411a6
fstp st(0)
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x78]
test edx, edx
je 0xb41e52
fld dword [eax + 0x7c]
fld qword [0xe037f0]
fxch st(1)
fucompp
fnstsw ax
sahf
jbe 0xb41381
mov eax, dword [ebp + 8]
fild dword [ebp - 0x1e8]
mov dword [ebp - 0x1c8], 1
fild dword [eax + 0x68]
fld qword [0xe037f8]
fmul st(1)
fxch st(2)
fucom st(2)
fnstsw ax
fstp st(2)
sahf
ja 0xb4138d
fmul qword [0xe03800]
fucompp
fnstsw ax
sahf
seta al
movzx eax, al
mov dword [ebp - 0x1c8], eax
mov eax, dword [ebp - 0x1ec]
test eax, eax
je 0xb4139f
mov dword [esp + 8], 1
mov dword [esp + 4], 1
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call fcn.00b472d0
mov eax, dword [ebp - 0x1e8]
mov ecx, 0x1b
mov dword [esp + 8], 6
lea edi, [eax + 1]
bsr esi, edi
xor esi, 0x1f
sub ecx, esi
mov dword [esp + 4], ecx
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0xd0], ecx
mov dword [esp], eax
call fcn.00b47460
mov eax, 0x1f
sub eax, esi
mov dword [esp + 8], eax
mov ecx, dword [ebp - 0xd0]
mov eax, 0x10
shl eax, cl
sub edi, eax
mov dword [esp + 4], edi
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call fcn.00b473c0
mov dword [esp + 8], 3
mov eax, dword [ebp - 0x134]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call fcn.00b473c0
mov dword [esp + 0xc], 2
mov dword [esp + 8], 0xe03734
mov eax, dword [ebp - 0x19c]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call fcn.00b47330
mov eax, dword [ebp + 8]
mov esi, dword [eax + 0x18]
test esi, esi
jg 0xb413e3
mov eax, dword [ebp - 0xf0]
fldz
mov dword [ebp - 0x17c], 0
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x110], 0
fstp dword [ebp - 0x170]
test eax, eax
jne 0xb41860
mov dword [ebp - 0x1a4], 1
mov eax, dword [ebp - 0x148]
sub eax, dword [ebp - 0x168]
lea eax, [eax*4 + 0x12]
shr eax, 4
shl eax, 4
call fcn.00bd0e20
sub esp, eax
lea eax, [esp + 0x5c]
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0x1cc]
lea edx, [eax + 0x12]
shr edx, 4
shl edx, 4
mov eax, edx
call fcn.00bd0e20
sub esp, eax
lea eax, [esp + 0x5c]
mov dword [ebp - 0x168], eax
mov eax, edx
call fcn.00bd0e20
sub esp, eax
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x16c], 0
lea eax, [esp + 0x5c]
mov dword [ebp - 0x148], eax
jmp 0xb41918
mov eax, dword [ebp - 0xf4]
mov dword [ebp - 0x118], 0
lea eax, [eax + eax*2]
shl eax, 2
cmp dword [ebp - 0x14c], eax
jle 0xb40e1a
jmp 0xb40de8
mov eax, dword [ebp + 8]
fldz
fst dword [ebp - 0x1b4]
mov eax, dword [eax + 0x40]
fst dword [ebp - 0x1b0]
test eax, eax
mov dword [ebp - 0xe8], eax
je 0xb448da
fstp dword [ebp - 0x1a8]
mov ebx, dword [ebp - 0xf8]
test ebx, ebx
je 0xb44a12
mov ecx, dword [ebp - 0xf0]
test ecx, ecx
je 0xb44a42
mov eax, dword [ebp + 0x1c]
mov ebx, dword [ebp + 0x1c]
bsr eax, dword [eax + 0x1c]
mov edi, dword [ebx + 0x14]
xor eax, 0x1f
lea ecx, [eax + edi - 0x1e]
cmp dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x110]
setg dl
xor eax, 1
and dl, al
mov byte [ebp - 0xe4], dl
je 0xb44c12
mov eax, dword [ebp + 8]
cmp dword [eax + 0x18], 4
jle 0xb42275
mov eax, dword [ebp - 0x158]
or eax, dword [ebp - 0xe8]
mov dword [ebp - 0x110], eax
jne 0xb42275
cmp byte [ebp - 0x108], 0
mov eax, dword [ebp - 0x150]
jne 0xb46410
mov ebx, dword [ebp - 0x124]
fld dword [eax]
shl ebx, 2
add eax, ebx
mov dword [ebp - 0x18c], ebx
fld dword [eax]
fxch st(1)
mov ecx, eax
fucom st(1)
fnstsw ax
sahf
jbe 0xb4211c
fstp st(1)
jmp 0xb4211e
fstp st(0)
cmp dword [ebp - 0xec], 1
fst dword [ebp - 0x80]
jle 0xb4219a
mov edx, 1
fld1
jmp 0xb4213c
fld dword [ebp + edx*4 - 0x84]
fxch st(1)
fsub st(1), st(0)
mov eax, dword [ebp - 0x150]
fld dword [eax + edx*4]
fld dword [ecx + edx*4]
fld st(1)
fucom st(1)
fnstsw ax
sahf
ja 0xb4215f
fstp st(2)
fxch st(1)
fld st(1)
fxch st(1)
fxch st(4)
jmp 0xb42161
fxch st(4)
fucom st(2)
fnstsw ax
fstp st(2)
sahf
ja 0xb4217b
fstp st(1)
fld st(2)
fucomp st(1)
fnstsw ax
sahf
ja 0xb42183
fstp st(2)
fxch st(1)
jmp 0xb42187
fstp st(0)
fstp st(2)
fxch st(1)
jmp 0xb42187
fstp st(0)
fxch st(1)
fstp dword [ebp + edx*4 - 0x80]
add edx, 1
cmp dword [ebp - 0xec], edx
jne 0xb42133
fstp st(0)
jmp 0xb4219c
fstp st(0)
mov eax, dword [ebp - 0x12c]
lea ecx, [ebp - 0x84]
fld1
lea edx, [ebp + eax - 0x88]
mov eax, dword [ebp - 0xec]
sub eax, 2
mov dword [ebp - 0xf8], eax
js 0xb421e5
fld dword [edx]
fld st(1)
fsubr dword [edx + 4]
fxch st(1)
fucom st(1)
fnstsw ax
sahf
jbe 0xb421d6
fstp st(1)
jmp 0xb421d8
fstp st(0)
fstp dword [edx]
sub edx, 4
cmp ecx, edx
jne 0xb421c2
fstp st(0)
jmp 0xb421e7
fstp st(0)
mov eax, dword [ebp - 0xec]
fldz
mov ecx, dword [ebp - 0x148]
xor esi, esi
fld st(0)
lea ebx, [eax - 1]
mov eax, dword [ebp - 0x124]
mov dword [ebp - 0x160], ebx
shl eax, 2
mov dword [ebp - 0xd0], eax
cmp ebx, 2
jle 0xb4577f
mov edx, 2
jmp 0xb42252
fxch st(1)
fucom st(1)
fnstsw ax
sahf
ja 0xb457e4
fxch st(2)
jmp 0xb42234
fxch st(2)
fsubrp st(1)
fldz
fucom st(1)
fnstsw ax
sahf
ja 0xb45770
fstp st(0)
add edx, 1
faddp st(2)
cmp edx, ebx
je 0xb4577f
fld dword [ecx + edx*4]
fxch st(1)
fucom st(1)
fnstsw ax
sahf
fld dword [ebp + edx*4 - 0x80]
jbe 0xb42221
fstp st(2)
fxch st(1)
fld st(1)
fucom st(1)
fnstsw ax
sahf
jbe 0xb42232
fstp st(1)
fxch st(1)
jmp 0xb42245
mov eax, dword [ebp - 0xec]
mov byte [ebp - 0x1bd], 0
mov byte [ebp - 0xe4], 0
mov dword [ebp - 0x110], 0
lea ebx, [eax - 2]
sub eax, 1
mov dword [ebp - 0x160], eax
mov eax, dword [ebp - 0x124]
mov dword [ebp - 0xf8], ebx
shl eax, 2
mov dword [ebp - 0x18c], eax
mov dword [esp + 8], 3
mov eax, dword [ebp - 0x110]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call fcn.00b472d0
mov ebx, dword [ebp - 0xf4]
mov eax, dword [ebp - 0x11c]
imul eax, ebx
lea eax, [eax*4 + 0x12]
shr eax, 4
shl eax, 4
call fcn.00bd0e20
sub esp, eax
lea eax, [esp + 0x5c]
mov dword [ebp - 0x140], eax
mov esi, eax
mov eax, dword [ebp - 0x154]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0x138]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x168]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0xe0]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x120]
mov dword [esp], eax
call fcn.00b3d6d0
mov eax, ebx
shl eax, 4
sub eax, ebx
cmp dword [ebp - 0x164], eax
jl 0xb42785
mov eax, dword [ebp - 0x100]
test eax, eax
jne 0xb42785
mov eax, dword [ebp + 8]
cmp dword [eax + 0x18], 1
jle 0xb42785
mov eax, dword [eax + 0x40]
mov dword [ebp - 0x1d4], 1
test eax, eax
mov dword [ebp - 0xe8], eax
jne 0xb42791
mov edi, dword [ebp - 0x18c]
mov eax, edi
add eax, 0x12
mov dword [ebp - 0x1dc], eax
shr eax, 4
mov edx, eax
shl edx, 4
mov eax, edx
call fcn.00bd0e20
sub esp, eax
lea eax, [esp + 0x5f]
shr eax, 2
mov dword [ebp - 0x220], eax
shl eax, 2
mov ecx, eax
mov dword [ebp - 0xe0], eax
mov eax, edx
call fcn.00bd0e20
sub esp, eax
lea eax, [esp + 0x5f]
shr eax, 2
mov dword [ebp - 0x224], eax
shl eax, 2
mov dword [ebp - 0x158], eax
mov eax, edx
call fcn.00bd0e20
mov edx, dword [ebp - 0x1d8]
sub esp, eax
lea eax, [esp + 0x5c]
mov dword [ebp - 0x194], esp
shr edx, 4
mov dword [ebp - 0x210], eax
mov eax, dword [ebp + 8]
shl edx, 4
mov eax, dword [eax + 0x34]
mov dword [ebp - 0x188], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0x190], eax
mov eax, dword [ebp - 0x120]
mov ebx, dword [eax + 0x38]
mov eax, dword [ebp + 8]
mov esi, dword [eax + 0x3c]
mov eax, edx
call fcn.00bd0e20
sub esp, eax
lea eax, [esp + 0x5c]
mov dword [ebp - 0x108], eax
mov eax, edx
call fcn.00bd0e20
sub esp, eax
lea eax, [esp + 0x5c]
mov dword [ebp - 0xd8], eax
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov dword [esp], ecx
call sub.msvcrt.dll_memset
mov eax, dword [ebp - 0xec]
test eax, eax
jle 0xb424dd
mov eax, 9
mov edx, 5
sub eax, esi
mov esi, dword [ebp - 0xd8]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xec]
fild dword [ebp - 0xd0]
lea ecx, [eax + 5]
fld dword [0xe03760]
lea esi, [esi]
fild word [ebx + edx*2 - 0xa]
mov eax, edx
imul eax, edx
fmul st(1)
mov dword [ebp - 0xd0], eax
fadd dword [0xe03748]
fadd st(2)
fsub dword [edx*4 + 0xe0770c]
fild dword [ebp - 0xd0]
fmul dword [0xe03830]
faddp st(1)
fstp dword [esi + edx*4 - 0x14]
add edx, 1
cmp ecx, edx
jne 0xb424a0
fstp st(0)
fstp st(0)
mov eax, dword [ebp - 0x124]
mov esi, dword [ebp - 0x148]
fld dword [0xe03790]
shl eax, 2
mov dword [ebp - 0xd0], esi
mov dword [ebp - 0x104], eax
xor eax, eax
mov edi, eax
mov eax, dword [ebp - 0xec]
test eax, eax
jle 0xb4253d
mov eax, dword [ebp - 0x12c]
mov ecx, dword [ebp - 0xd8]
mov edx, esi
lea ebx, [eax + esi]
lea esi, [esi]
fld dword [edx]
fsub dword [ecx]
fxch st(1)
fucom st(1)
fnstsw ax
sahf
ja 0xb42531
fstp st(0)
jmp 0xb42533
fstp st(1)
add edx, 4
add ecx, 4
cmp ebx, edx
jne 0xb42520
add edi, 1
add esi, dword [ebp - 0x104]
cmp dword [ebp - 0xf4], edi
jg 0xb42502
mov edx, dword [ebp - 0x1dc]
mov edi, dword [ebp - 0xd0]
fstp dword [ebp - 0x208]
mov dword [ebp - 0x118], esp
shr edx, 4
shl edx, 4
mov eax, edx
call fcn.00bd0e20
sub esp, eax
mov eax, edx
lea ebx, [esp + 0x5c]
call fcn.00bd0e20
sub esp, eax
lea eax, [esp + 0x5c]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xec]
test eax, eax
jle 0xb45d6b
mov ecx, dword [ebp - 0x148]
add ecx, dword [ebp - 0x12c]
mov edx, ebx
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0x1f4], ecx
mov esi, dword [ebp - 0x1f4]
mov ecx, ebx
mov dword [ebp - 0xd0], eax
fld dword [edi]
add edi, 4
add eax, 4
add ecx, 4
fsub dword [eax - 4]
fstp dword [ecx - 4]
cmp esi, edi
jne 0xb425c2
cmp dword [ebp - 0xf4], 2
mov esi, dword [ebp - 0xd0]
je 0xb450b8
mov eax, dword [ebp - 0x12c]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
cmp dword [ebp - 0xec], 1
jle 0xb42644
mov ecx, dword [ebp - 0xec]
fld dword [0xe037b4]
mov edx, 1
fld dword [ebx + edx*4]
fld st(1)
fsubr dword [ebx + edx*4 - 4]
fxch st(1)
fucom st(1)
fnstsw ax
sahf
jbe 0xb42636
fstp st(1)
jmp 0xb42638
fstp st(0)
fstp dword [ebx + edx*4]
add edx, 1
cmp ecx, edx
jne 0xb42620
fstp st(0)
mov eax, dword [ebp - 0xf8]
fld dword [0xe03784]
test eax, eax
mov edx, eax
js 0xb42687
lea esi, [esi]
lea edi, [edi]
fld dword [ebx + edx*4]
fld st(1)
fsubr dword [ebx + edx*4 + 4]
fxch st(1)
fucom st(1)
fnstsw ax
sahf
jbe 0xb42676
fstp st(1)
jmp 0xb42678
fstp st(0)
fstp dword [ebx + edx*4]
sub edx, 1
cmp edx, 0xffffffff
jne 0xb42660
fstp st(0)
jmp 0xb42689
fstp st(0)
mov eax, dword [ebp - 0xec]
test eax, eax
jle 0xb427a0
fld dword [ebp - 0x208]
fsub dword [0xe03834]
fst dword [ebp - 0xdc]
fldz
fst dword [ebp - 0xd0]
fucomp st(1)
fnstsw ax
sahf
ja 0xb426c0
fstp dword [ebp - 0xd0]
jmp 0xb426c2
fstp st(0)
mov esi, dword [ebp - 0xc8]
mov eax, dword [ebp - 0x12c]
mov edi, dword [ebp - 0x210]
add eax, esi
mov dword [ebp - 0xc8], eax
jmp 0xb426f7
mov dword [edi], eax
add esi, 4
add ebx, 4
add edi, 4
cmp dword [ebp - 0xc8], esi
je 0xb427a0
fld dword [esi]
fld dword [ebx]
fld dword [ebp - 0xd0]
fucomp st(1)
fnstsw ax
sahf
jbe 0xb42723
fstp st(0)
fldz
fldz
fld dword [ebp - 0xdc]
fxch st(1)
fucomp st(1)
fnstsw ax
sahf
ja 0xb42721
fstp st(1)
jmp 0xb42723
fstp st(0)
fsubp st(1)
fadd dword [0xe03748]
fstp qword [esp]
call sub.msvcrt.dll_floor
fnstcw word [ebp - 0xbe]
movzx eax, word [ebp - 0xbe]
mov ah, 0xc
mov word [ebp - 0xc0], ax
mov eax, 1
fldcw word [ebp - 0xc0]
fistp dword [ebp - 0xc4]
fldcw word [ebp - 0xbe]
mov ecx, dword [ebp - 0xc4]
cmp ecx, 0xfffffffb
jl 0xb426e0
test ecx, ecx
mov eax, 0x20
jg 0xb426e0
neg ecx
sar eax, cl
jmp 0xb426e0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x40]
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0x1d4], 0
jmp 0xb42387
cmp dword [ebp - 0x164], 0x32
mov eax, dword [ebp - 0xf0]
mov esp, dword [ebp - 0x118]
setg dl
test eax, eax
setg al
test dl, al
je 0xb42ccb
mov edi, dword [ebp - 0xe8]
test edi, edi
jne 0xb42ccb
mov eax, dword [ebp - 0x12c]
mov edx, dword [ebp - 0x108]
mov esi, dword [ebp - 0xec]
fld dword [0xe03748]
mov edi, dword [ebp - 0x180]
mov dword [ebp - 0xe8], 0
lea ebx, [eax - 8]
sub eax, 4
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0x128], eax
mov eax, dword [ebp - 0xf8]
mov dword [ebp - 0x118], ebx
shl eax, 2
mov dword [ebp - 0x180], eax
fld dword [edi]
cmp esi, 1
fst dword [ebp - 0xc8]
fstp dword [edx]
jle 0xb4289b
mov ebx, edi
mov dword [ebp - 0xd0], edi
mov edi, dword [ebp - 0xe8]
mov ecx, 1
lea esi, [esi]
lea edi, [edi]
fld dword [ebx + 4]
fld dword [ebx]
fadd st(2)
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
sahf
jbe 0xb42864
mov edi, ecx
fld dword [0xe03838]
fadd dword [edx + ecx*4 - 4]
fxch st(1)
fucom st(1)
fnstsw ax
sahf
jbe 0xb42880
fstp st(0)
jmp 0xb42882
fstp st(1)
fstp dword [edx + ecx*4]
add ecx, 1
add ebx, 4
cmp esi, ecx
jne 0xb42850
mov dword [ebp - 0xe8], edi
mov edi, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xe8]
fld dword [0xe037b4]
lea ecx, [eax - 1]
cmp ecx, 0xffffffff
je 0xb42911
nop
fld dword [edx + ecx*4]
fld dword [edx + ecx*4 + 4]
fadd st(2)
fld dword [edi + ecx*4]
fld st(1)
fxch st(1)
fucom st(2)
fnstsw ax
sahf
ja 0xb428d0
fstp st(1)
fld st(0)
jmp 0xb428d2
fxch st(1)
fucomp st(3)
fnstsw ax
sahf
ja 0xb428f0
fstp st(2)
fxch st(1)
fld st(1)
fxch st(1)
fucom st(2)
fnstsw ax
fstp st(2)
sahf
ja 0xb42900
fstp st(0)
jmp 0xb42902
fstp st(0)
fstp st(0)
jmp 0xb42902
fstp st(1)
fstp dword [edx + ecx*4]
sub ecx, 1
cmp ecx, 0xffffffff
jne 0xb428b0
fstp st(0)
jmp 0xb42913
fstp st(0)
mov eax, dword [ebp - 0x180]
lea ebx, [edx + 8]
mov ecx, edi
fld1
add eax, edx
cmp dword [ebp - 0xf8], 2
mov dword [ebp - 0xd0], eax
jle 0xb42a58
mov dword [ebp - 0x13c], esi
mov esi, dword [ebp - 0xd0]
jmp 0xb42992
fxch st(3)
fucom st(1)
fnstsw ax
sahf
jbe 0xb42a30
fstp st(2)
fstp st(0)
fucom st(1)
fnstsw ax
sahf
jbe 0xb4295f
fstp st(0)
jmp 0xb42970
fstp st(1)
jmp 0xb42970
fstp st(1)
jmp 0xb42970
fstp st(1)
jmp 0xb42970
fstp st(1)
lea esi, [esi]
fsub st(2)
fxch st(1)
fucom st(1)
fnstsw ax
sahf
jbe 0xb42980
fstp st(1)
jmp 0xb42982
fstp st(0)
fstp dword [ebx]
add ebx, 4
add ecx, 4
cmp esi, ebx
je 0xb42a4e
fld dword [ebx]
fld dword [ecx + 8]
fld dword [ecx]
fld dword [ecx + 4]
fxch st(1)
fucom st(1)
fnstsw ax
sahf
jbe 0xb429a7
fxch st(1)
fld dword [ecx + 0xc]
fld dword [ecx + 0x10]
fxch st(1)
fucom st(1)
fnstsw ax
sahf
jbe 0xb429d0
fstp dword [ebp - 0xd0]
fld dword [ebp - 0xd0]
fxch st(1)
fxch st(2)
jmp 0xb429d2
fxch st(2)
fucom st(2)
fnstsw ax
sahf
ja 0xb429e3
fstp st(0)
fxch st(2)
fxch st(1)
fxch st(3)
jmp 0xb429e9
fstp st(2)
fxch st(1)
fxch st(3)
fucom st(1)
fnstsw ax
sahf
ja 0xb42943
fxch st(3)
fucom st(3)
fnstsw ax
sahf
jbe 0xb42a13
fstp st(2)
fstp st(2)
fucom st(1)
fnstsw ax
sahf
jbe 0xb42963
fstp st(0)
jmp 0xb42970
fstp st(0)
fstp st(0)
fld st(1)
fxch st(1)
fucom st(2)
fnstsw ax
fstp st(2)
sahf
ja 0xb42967
fstp st(0)
jmp 0xb42970
fstp st(0)
fstp st(2)
fxch st(1)
fld st(1)
fxch st(1)
fucom st(2)
fnstsw ax
fstp st(2)
sahf
ja 0xb4296b
fstp st(0)
jmp 0xb42970
fstp st(0)
mov esi, dword [ebp - 0x13c]
jmp 0xb42a5a
fstp st(0)
fld dword [edi + 4]
fld dword [ebp - 0xc8]
fucomp st(1)
fnstsw ax
sahf
jbe 0xb42a78
fld dword [ebp - 0xc8]
fxch st(1)
fstp dword [ebp - 0xc8]
fld dword [edi + 8]
fucom st(1)
fnstsw ax
sahf
ja 0xb42a99
fstp st(1)
fld st(0)
fld dword [ebp - 0xc8]
fxch st(2)
fucomp st(2)
fnstsw ax
sahf
ja 0xb42a9d
fstp st(0)
jmp 0xb42a9f
fstp st(0)
jmp 0xb42a9f
fstp st(1)
fsub dword [0xe037ac]
fld dword [edx]
fucom st(1)
fnstsw ax
sahf
ja 0xb42ab2
fstp st(0)
fld st(0)
fstp dword [edx]
fld dword [edx + 4]
fucom st(1)
fnstsw ax
sahf
ja 0xb42ac2
fstp st(0)
jmp 0xb42ac4
fstp st(1)
fstp dword [edx + 4]
fld dword [edi + esi*4 - 0xc]
fld dword [edi + esi*4 - 8]
fxch st(1)
fucom st(1)
fnstsw ax
sahf
jbe 0xb42ada
fxch st(1)
fld dword [edi + esi*4 - 4]
fucom st(2)
fnstsw ax
sahf
ja 0xb42af6
fstp st(2)
fxch st(1)
fld st(0)
fucomp st(2)
fnstsw ax
sahf
ja 0xb42afc
fstp st(0)
jmp 0xb42afe
fstp st(0)
fstp st(0)
jmp 0xb42afe
fstp st(1)
fsub dword [0xe037ac]
mov eax, dword [ebp - 0x118]
fld dword [edx + eax]
fucom st(1)
fnstsw ax
sahf
ja 0xb42b18
fstp st(0)
fld st(0)
mov eax, dword [ebp - 0x118]
fstp dword [edx + eax]
mov eax, dword [ebp - 0x128]
fld dword [edx + eax]
fucom st(1)
fnstsw ax
sahf
ja 0xb42b35
fstp st(0)
jmp 0xb42b37
fstp st(1)
mov eax, dword [ebp - 0x128]
xor ecx, ecx
test esi, esi
mov ebx, dword [ebp - 0xd8]
fstp dword [edx + eax]
jle 0xb42b6f
lea esi, [esi]
fld dword [edx + ecx*4]
fld dword [ebx + ecx*4]
fxch st(1)
fucom st(1)
fnstsw ax
sahf
jbe 0xb42b63
fstp st(1)
jmp 0xb42b65
fstp st(0)
fstp dword [edx + ecx*4]
add ecx, 1
cmp esi, ecx
jne 0xb42b50
mov ebx, dword [ebp - 0x104]
add dword [ebp - 0xdc], 1
mov eax, dword [ebp - 0xdc]
add edi, ebx
add edx, ebx
cmp dword [ebp - 0xf4], eax
jg 0xb42824
fstp st(0)
cmp dword [ebp - 0xf4], 2
mov eax, dword [ebp - 0x100]
je 0xb45f78
mov ebx, dword [ebp - 0xec]
mov edx, eax
fldz
cmp eax, ebx
jge 0xb46289
mov ebx, dword [ebp - 0xec]
mov esi, dword [ebp - 0x148]
mov ecx, dword [ebp - 0x108]
jmp 0xb42bd9
fxch st(1)
fstp dword [ecx + edx*4]
add edx, 1
cmp ebx, edx
je 0xb42bfa
fld dword [esi + edx*4]
fsub dword [ecx + edx*4]
fxch st(1)
fucom st(1)
fnstsw ax
sahf
jbe 0xb42bcd
fstp st(1)
fld st(0)
fstp dword [ecx + edx*4]
add edx, 1
cmp ebx, edx
jne 0xb42bd9
fstp st(0)
jmp 0xb42c00
fstp st(0)
jmp 0xb42c00
fstp st(0)
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0xec]
mov esi, dword [ebp - 0x184]
mov ecx, dword [ebp - 0x108]
fld dword [ecx + edx*4]
fld dword [esi + edx*4]
fxch st(1)
fucom st(1)
fnstsw ax
sahf
jbe 0xb42c2b
fstp st(1)
jmp 0xb42c2d
fstp st(0)
fstp dword [ecx + edx*4]
add edx, 1
cmp ebx, edx
jg 0xb42c18
mov ebx, dword [ebp - 0x100]
mov edi, dword [ebp - 0x158]
mov esi, ebx
mov ebx, dword [ebp - 0x108]
jmp 0xb42cb1
fld qword [0xe03840]
fmulp st(1)
fstp qword [esp]
call sub.msvcrt.dll_exp
fstp dword [ebp - 0xbc]
fld dword [ebp - 0xbc]
fmul dword [0xe03848]
fadd dword [0xe03748]
fstp qword [esp]
call sub.msvcrt.dll_floor
fnstcw word [ebp - 0xbe]
movzx eax, word [ebp - 0xbe]
mov ah, 0xc
mov word [ebp - 0xc0], ax
fldcw word [ebp - 0xc0]
fistp dword [edi + esi*4]
fldcw word [ebp - 0xbe]
add esi, 1
cmp dword [ebp - 0xec], esi
jle 0xb4525d
fld dword [ebx + esi*4]
fld dword [0xe037a0]
fucomp st(1)
fnstsw ax
sahf
ja 0xb42c4d
fstp st(0)
fld qword [0xe03798]
jmp 0xb42c55
mov ebx, dword [ebp - 0x100]
mov esi, dword [ebp - 0xec]
cmp ebx, esi
mov eax, ebx
jge 0xb42cfe
mov edx, dword [ebp - 0xec]
mov ecx, dword [ebp - 0x158]
lea esi, [esi]
mov dword [ecx + eax*4], 0xd
add eax, 1
cmp edx, eax
jne 0xb42cf0
mov dword [ebp - 0x1d0], 0
mov eax, dword [ebp - 0x1dc]
mov esp, dword [ebp - 0x194]
shr eax, 4
shl eax, 4
call fcn.00bd0e20
sub esp, eax
lea eax, [esp + 0x5c]
mov dword [ebp - 0x190], eax
mov eax, dword [ebp - 0x1d4]
test eax, eax
jne 0xb440e7
mov edi, dword [ebp - 0x17c]
test edi, edi
je 0xb4302e
cmp byte [ebp - 0x144], 0
je 0xb4302e
mov esi, dword [ebp - 0xec]
xor eax, eax
mov edx, dword [ebp - 0x190]
test esi, esi
jle 0xb42d78
mov dword [edx + eax*4], 1
add eax, 1
cmp dword [ebp - 0xec], eax
jne 0xb42d66
mov dword [ebp - 0xdc], 0
mov eax, dword [ebp - 0x1d8]
shr eax, 4
shl eax, 4
call fcn.00bd0e20
mov ebx, dword [ebp - 0x100]
mov edi, dword [ebp - 0x150]
sub esp, eax
mov esi, dword [ebp - 0x1f4]
fld dword [0xe037b4]
lea eax, [esp + 0x5c]
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0x134], eax
mov eax, ebx
shl eax, 2
add edi, eax
add eax, dword [ebp - 0x204]
mov dword [ebp - 0xd8], eax
mov eax, ebx
sub eax, dword [ebp - 0xec]
shl eax, 2
mov dword [ebp - 0x108], eax
mov eax, dword [ebp - 0x108]
mov edx, dword [ebp - 0xec]
mov ecx, edi
mov ebx, dword [ebp - 0xd8]
add eax, esi
cmp dword [ebp - 0x100], edx
mov dword [ebp - 0xc8], eax
jge 0xb42e40
mov edx, dword [ebp - 0xc8]
nop
fld dword [edx]
fld dword [ecx]
fsubr st(1)
fabs
fxch st(2)
fucom st(2)
fnstsw ax
fstp st(2)
sahf
jbe 0xb42e31
fld dword [0xe03824]
fmul dword [ebx]
fsubp st(1)
fstp dword [edx]
jmp 0xb42e33
fstp st(0)
add edx, 4
add ecx, 4
add ebx, 4
cmp esi, edx
jne 0xb42e10
mov ebx, dword [ebp - 0x104]
add dword [ebp - 0xd0], 1
mov eax, dword [ebp - 0xd0]
add dword [ebp - 0xd8], ebx
add esi, ebx
add edi, ebx
cmp dword [ebp - 0xf4], eax
jg 0xb42de5
fstp st(0)
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x40]
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x38]
mov dword [esp + 0x3c], eax
mov eax, dword [ebp + 8]
cmp dword [eax + 0x18], 3
setg al
movzx eax, al
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 8]
add eax, 0x54
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x30], eax
mov eax, dword [ebp - 0x14c]
mov dword [esp + 0x2c], eax
mov eax, dword [ebp - 0xf0]
mov dword [esp + 0x28], eax
mov esi, dword [ebp - 0xf4]
mov dword [esp + 0x24], esi
mov ebx, dword [ebp + 0x1c]
mov dword [esp + 0x20], ebx
mov esi, dword [ebp - 0x134]
mov dword [esp + 0x1c], esi
mov ebx, dword [ebp - 0x178]
mov dword [esp + 0x18], ebx
mov esi, dword [ebp - 0x150]
mov dword [esp + 0x14], esi
mov ebx, dword [ebp - 0x148]
mov dword [esp + 0x10], ebx
mov esi, dword [ebp - 0x138]
mov dword [esp + 0xc], esi
mov ebx, dword [ebp - 0xec]
mov dword [esp + 8], ebx
mov esi, dword [ebp - 0x100]
mov dword [esp + 4], esi
mov edi, dword [ebp - 0x120]
mov dword [esp], edi
call fcn.00b49540
mov edi, dword [ebp + 0x1c]
mov edx, dword [ebp - 0xf0]
mov edi, dword [edi + 4]
mov dword [ebp - 0xd0], edi
lea ebx, [edi*8]
mov edi, dword [ebp + 0x1c]
bsr eax, dword [edi + 0x1c]
mov edi, dword [edi + 0x14]
xor eax, 0x1f
cmp dword [ebp - 0x110], 1
lea ecx, [eax + edi - 0x20]
mov esi, ecx
sbb eax, eax
and eax, 2
add eax, 2
test edx, edx
jle 0xb4512c
lea edx, [eax + ecx + 1]
cmp ebx, edx
mov dword [ebp - 0xd8], edx
setae byte [ebp - 0x1be]
movzx edx, byte [ebp - 0x1be]
mov dword [ebp - 0xd0], edx
mov edx, ebx
sub edx, dword [ebp - 0xd0]
mov dword [ebp - 0xd0], edx
mov edx, dword [ebp - 0xec]
cmp dword [ebp - 0x100], edx
jge 0xb45150
cmp dword [ebp - 0x110], 1
mov dword [ebp - 0xe4], edi
mov dword [ebp - 0xc8], 0
mov edi, dword [ebp - 0x190]
sbb ebx, ebx
xor edx, edx
not ebx
add ebx, 5
mov dword [ebp - 0xd8], ebx
mov ebx, dword [ebp - 0x100]
jmp 0xb42fe8
mov dword [edi + ebx*4], edx
add ebx, 1
cmp dword [ebp - 0xec], ebx
mov eax, dword [ebp - 0xd8]
je 0xb430b6
lea ecx, [eax + esi]
cmp dword [ebp - 0xd0], ecx
jb 0xb42fd0
mov dword [esp + 8], eax
xor edx, dword [edi + ebx*4]
mov dword [esp + 4], edx
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call fcn.00b472d0
mov eax, dword [ebp + 0x1c]
mov esi, dword [ebp + 0x1c]
mov edx, dword [edi + ebx*4]
or dword [ebp - 0xc8], edx
bsr eax, dword [eax + 0x1c]
mov esi, dword [esi + 0x14]
mov dword [ebp - 0xe4], esi
xor eax, 0x1f
lea esi, [eax + esi - 0x20]
jmp 0xb42fd3
cmp dword [ebp - 0x164], 0xe
jg 0xb43085
cmp byte [ebp - 0x144], 0
je 0xb43085
mov eax, dword [ebp + 8]
cmp dword [eax + 0xb8], 2
je 0xb43085
mov ecx, dword [ebp - 0xec]
test ecx, ecx
jle 0xb43074
mov eax, dword [ebp - 0x1d4]
mov edx, dword [ebp - 0x190]
mov dword [edx + eax*4], 0
add eax, 1
cmp dword [ebp - 0xec], eax
jne 0xb43062
mov eax, dword [ebp - 0x110]
mov dword [ebp - 0xdc], eax
jmp 0xb42d82
mov ebx, dword [ebp - 0xec]
xor eax, eax
test ebx, ebx
jle 0xb42d78
mov edx, dword [ebp - 0xec]
mov ecx, dword [ebp - 0x110]
mov ebx, dword [ebp - 0x190]
mov dword [ebx + eax*4], ecx
add eax, 1
cmp edx, eax
jne 0xb430a7
jmp 0xb42d78
cmp byte [ebp - 0x1be], 0
mov edi, dword [ebp - 0xe4]
je 0xb44c03
mov eax, dword [ebp - 0xf0]
mov esi, dword [ebp - 0x110]
lea eax, [eax*8 + 0xe02f20]
lea eax, [eax + esi*4]
add eax, dword [ebp - 0xc8]
movzx ebx, byte [eax + 2]
cmp byte [eax], bl
jne 0xb4517d
mov dword [ebp - 0xdc], 0
mov esi, dword [ebp - 0xec]
cmp dword [ebp - 0x100], esi
jge 0xb43152
mov eax, dword [ebp - 0xdc]
mov esi, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x110]
lea edx, [esi*8 + 0xe02f20]
mov esi, dword [ebp - 0xec]
lea ecx, [eax + ebx*2]
mov eax, dword [ebp - 0x100]
lea ecx, [edx + ecx*2]
mov edx, dword [ebp - 0x190]
lea esi, [esi]
mov ebx, dword [edx + eax*4]
add ebx, ecx
movsx ebx, byte [ebx]
mov dword [edx + eax*4], ebx
add eax, 1
cmp esi, eax
jg 0xb43140
mov eax, dword [ebp + 0x1c]
bsr eax, dword [eax + 0x1c]
xor eax, 0x1f
lea ecx, [eax + edi - 0x20]
add ecx, 3
cmp dword [ebp - 0x178], ecx
jle 0xb431ae
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x40]
test eax, eax
je 0xb45224
mov eax, dword [ebp + 8]
mov dword [eax + 0x64], 0
mov dword [eax + 0x50], 2
mov eax, 2
mov dword [esp + 0xc], 5
mov dword [esp + 8], 0xe03738
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call fcn.00b47330
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x40]
test eax, eax
je 0xb431e7
mov ebx, dword [ebp - 0x164]
mov eax, 8
cmp ebx, 0x1a
jg 0xb431da
mov eax, ebx
mov edx, 0x55555556
imul edx
mov eax, ebx
sar eax, 0x1f
sub edx, eax
mov eax, edx
mov ebx, dword [ebp - 0x220]
mov dword [ebx*4], eax
mov eax, dword [ebp - 0x1dc]
shr eax, 4
shl eax, 4
call fcn.00bd0e20
mov esi, dword [ebp - 0xf4]
sub esp, eax
lea eax, [esp + 0x5c]
mov dword [ebp - 0xe8], eax
mov dword [esp + 0xc], esi
mov ebx, dword [ebp - 0xf0]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov eax, dword [ebp - 0x120]
mov dword [esp], eax
call fcn.00b37660
mov eax, dword [ebp - 0x178]
shl eax, 3
mov dword [ebp - 0x128], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call fcn.00b46c80
mov ebx, dword [ebp - 0x100]
mov esi, dword [ebp - 0xec]
mov dword [ebp - 0xc8], eax
cmp ebx, esi
jge 0xb45d50
mov esi, dword [ebp - 0x1ac]
mov dword [ebp - 0xe4], 0
mov edx, eax
mov dword [ebp - 0xd0], ebx
mov dword [ebp - 0xf8], 6
lea esi, [esi + ebx*2]
mov dword [ebp - 0x118], esi
lea esi, [esi]
mov esi, dword [ebp - 0x118]
movsx ecx, word [esi]
movsx eax, word [esi + 2]
sub eax, ecx
movzx ecx, byte [ebp - 0xf0]
imul eax, dword [ebp - 0xf4]
shl eax, cl
cmp eax, 0x30
mov edi, eax
jge 0xb432bb
mov edi, 0x30
shl eax, 3
mov dword [ebp - 0xdc], edi
cmp edi, eax
jle 0xb432ce
mov dword [ebp - 0xdc], eax
mov esi, dword [ebp - 0x128]
mov eax, dword [ebp - 0xf8]
mov ebx, dword [ebp - 0xe4]
mov ecx, esi
lea eax, [edx + eax*8]
sub ecx, ebx
cmp ecx, eax
jle 0xb440cc
mov edi, dword [ebp - 0xe8]
mov eax, dword [ebp - 0xd0]
mov eax, dword [edi + eax*4]
test eax, eax
jle 0xb440cc
mov edi, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xf8]
add edi, ebx
mov dword [ebp - 0xd8], eax
xor ebx, ebx
sub esi, edi
xor edi, edi
mov ecx, edi
jmp 0xb43367
mov edi, dword [ebp - 0xdc]
lea edx, [eax + 8]
add dword [ebp - 0xe4], edi
add ebx, 1
mov dword [ebp - 0xc8], esi
add ecx, edi
cmp edx, esi
jge 0xb437e3
sub esi, edi
mov edx, dword [ebp - 0xd0]
mov edi, dword [ebp - 0xe8]
mov dword [ebp - 0xd8], 1
cmp dword [edi + edx*4], ecx
jle 0xb437e3
mov eax, dword [ebp - 0xe0]
mov edi, dword [ebp - 0xd0]
mov dword [ebp - 0xc8], ecx
mov edi, dword [eax + edi*4]
mov eax, dword [ebp - 0xd8]
mov dword [esp + 8], eax
xor eax, eax
cmp edi, ebx
setg al
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call fcn.00b472d0
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call fcn.00b46c80
cmp edi, ebx
mov ecx, dword [ebp - 0xc8]
jg 0xb43324
mov edi, ecx
mov ecx, dword [ebp - 0x128]
sub ecx, dword [ebp - 0xe4]
mov edx, eax
test ebx, ebx
je 0xb433e1
mov eax, dword [ebp - 0xf8]
cmp eax, 2
jle 0xb437f4
sub eax, 1
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0xd0]
mov esi, dword [ebp - 0xe0]
add dword [ebp - 0x118], 2
mov dword [esi + eax*4], edi
add eax, 1
cmp dword [ebp - 0xec], eax
mov dword [ebp - 0xd0], eax
jne 0xb43290
mov dword [ebp - 0xc8], edx
mov dword [ebp - 0xd8], ecx
cmp dword [ebp - 0xf4], 2
je 0xb44c81
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0xd0], 5
add eax, 0x2f
cmp eax, dword [ebp - 0xd8]
jge 0xb4349b
mov eax, dword [ebp - 0x100]
test eax, eax
jle 0xb45b58
mov eax, dword [ebp + 8]
mov dword [ebp - 0xd0], 5
mov dword [eax + 0xe4], 0
mov dword [esp + 0xc], 7
mov dword [esp + 8], 0xe0373c
mov eax, dword [ebp - 0xd0]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call fcn.00b47330
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call fcn.00b46c80
mov dword [ebp - 0xc8], eax
mov esi, dword [ebp - 0x174]
test esi, esi
jle 0xb43a22
mov eax, dword [ebp - 0x120]
movzx ecx, byte [ebp - 0x1a0]
mov esi, dword [ebp - 0x130]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0xd8], eax
sub eax, dword [ebp - 0xf0]
mov dword [ebp - 0xf8], eax
mov eax, 0x4fb
sar eax, cl
cmp eax, esi
mov dword [ebp - 0x118], eax
jle 0xb434e8
mov dword [ebp - 0x118], esi
mov ebx, dword [ebp - 0x100]
test ebx, ebx
jne 0xb43803
mov eax, dword [ebp - 0x1b8]
mov esi, dword [ebp - 0x174]
shl eax, 3
sub esi, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x34]
test eax, eax
mov dword [ebp - 0x128], eax
jne 0xb46388
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xec]
test eax, eax
mov dword [ebp - 0x130], eax
mov eax, dword [ebp + 8]
setne byte [ebp - 0x13c]
mov eax, dword [eax + 0x40]
mov dword [ebp - 0x11c], eax
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x5c]
mov edx, dword [eax + 0xe8]
mov eax, dword [ebp - 0x120]
test edi, edi
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x144], ecx
mov dword [ebp - 0xdc], eax
jne 0xb43569
mov edi, ecx
mov eax, dword [ebp - 0xdc]
movzx ecx, byte [ebp - 0xf0]
movsx eax, word [eax + edi*2]
shl eax, cl
cmp dword [ebp - 0xf4], 2
mov ebx, eax
je 0xb4598b
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x78]
test eax, eax
mov dword [ebp - 0x138], eax
je 0xb45e3f
mov eax, dword [ebp + 8]
fld dword [eax + 0x88]
fld st(0)
fld qword [0xe038b0]
fucompp
fnstsw ax
sahf
ja 0xb45662
fstp st(0)
fnstcw word [ebp - 0xbe]
movzx eax, word [ebp - 0xbe]
mov dword [ebp - 0xd8], esi
mov ah, 0xc
mov word [ebp - 0xc0], ax
movzx ecx, byte [ebp - 0xf0]
mov edx, dword [ebp - 0x1d0]
mov eax, 0x13
mov edi, dword [ebp - 0x11c]
shl eax, cl
mov ecx, dword [ebp - 0x138]
sub edx, eax
add edx, dword [ebp - 0xd8]
mov dword [ebp - 0xd8], edx
fild dword [ebp - 0xd8]
fld dword [ebp - 0x170]
fsub dword [0xe0387c]
fmulp st(1)
fldcw word [ebp - 0xc0]
fistp dword [ebp - 0xc4]
fldcw word [ebp - 0xbe]
mov eax, dword [ebp - 0xc4]
add edx, eax
test edi, edi
sete al
test ecx, ecx
setne cl
and cl, al
je 0xb436d7
mov eax, dword [ebp + 8]
fld dword [0xe03880]
fsubr dword [eax + 0x7c]
fld dword [0xe037bc]
fldz
fucomp st(2)
fnstsw ax
sahf
ja 0xb4366e
fstp st(0)
fld dword [0xe03884]
fsubp st(1)
jmp 0xb43670
fstp st(1)
mov eax, ebx
shl eax, 3
mov dword [ebp - 0xd8], eax
fild dword [ebp - 0xd8]
fld dword [0xe03888]
fmul st(1)
fmulp st(2)
fxch st(1)
fldcw word [ebp - 0xc0]
fistp dword [ebp - 0xc4]
fldcw word [ebp - 0xbe]
mov eax, dword [ebp - 0xc4]
add edx, eax
mov eax, ecx
mov ecx, dword [ebp - 0x1c8]
test ecx, ecx
je 0xb436d5
fmul dword [0xe03878]
fldcw word [ebp - 0xc0]
fistp dword [ebp - 0xc4]
fldcw word [ebp - 0xbe]
mov ecx, dword [ebp - 0xc4]
add edx, ecx
jmp 0xb436d7
fstp st(0)
cmp byte [ebp - 0x13c], 0
je 0xb43728
test al, al
je 0xb43728
mov eax, ebx
shl eax, 3
mov dword [ebp - 0xd8], eax
mov eax, edx
fild dword [ebp - 0xd8]
sar eax, 0x1f
and eax, 3
fmul dword [ebp - 0x1b0]
add eax, edx
sar eax, 2
fldcw word [ebp - 0xc0]
fistp dword [ebp - 0xc4]
fldcw word [ebp - 0xbe]
mov ecx, dword [ebp - 0xc4]
add edx, ecx
cmp edx, eax
jge 0xb43728
mov edx, eax
mov eax, dword [ebp - 0xdc]
mov edi, dword [ebp - 0x144]
movzx ecx, byte [ebp - 0xf0]
movsx eax, word [eax + edi*2 - 4]
shl eax, cl
imul eax, dword [ebp - 0xf4]
shl eax, 3
mov dword [ebp - 0xd8], eax
mov eax, edx
fild dword [ebp - 0xd8]
sar eax, 2
fmul dword [ebp - 0x208]
fldcw word [ebp - 0xc0]
fistp dword [ebp - 0xc4]
fldcw word [ebp - 0xbe]
mov ecx, dword [ebp - 0xc4]
cmp eax, ecx
jge 0xb43781
mov eax, ecx
cmp edx, eax
jle 0xb43787
mov edx, eax
mov eax, dword [ebp - 0x130]
test eax, eax
je 0xb45833
mov edi, dword [ebp - 0x11c]
test edi, edi
jne 0xb45833
lea ecx, [esi + esi]
cmp ecx, edx
jle 0xb437ac
mov ecx, edx
mov eax, dword [ebp - 0xc8]
mov esi, dword [ebp - 0xe4]
mov edx, dword [ebp - 0x1bc]
add ecx, eax
lea eax, [esi + eax + 0x3f]
sar eax, 6
add eax, 2
test edx, edx
je 0xb4390a
xor edi, edi
mov ecx, pe_nt_image_headers32
mov esi, 2
jmp 0xb43931
mov edx, eax
mov eax, dword [ebp - 0xc8]
mov edi, ecx
mov ecx, eax
jmp 0xb433c5
mov dword [ebp - 0xf8], 2
jmp 0xb433e1
mov eax, dword [ebp - 0xf4]
mov edx, dword [ebp - 0x174]
lea eax, [eax + eax*8 + 4]
shl eax, 3
sub edx, eax
mov eax, edx
sar eax, 0x1f
not eax
and edx, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x34]
test eax, eax
mov dword [ebp - 0x128], eax
je 0xb4384b
mov eax, dword [ebp + 8]
movzx ecx, byte [ebp - 0xf8]
mov eax, dword [eax + 0xd8]
mov dword [ebp - 0xd8], eax
sar eax, cl
add edx, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xbc]
cmp eax, 0x63
jg 0xb4557d
movzx ecx, byte [ebp - 0x1a0]
mov eax, 0x60
sar eax, cl
add edx, eax
fld dword [ebp - 0x170]
fnstcw word [ebp - 0xbe]
movzx eax, word [ebp - 0xbe]
fld dword [0xe03824]
fsubr st(1)
mov ah, 0xc
mov word [ebp - 0xc0], ax
fmul dword [0xe03894]
fldcw word [ebp - 0xc0]
fistp dword [ebp - 0xc4]
fldcw word [ebp - 0xbe]
mov eax, dword [ebp - 0xc4]
fld dword [0xe037d8]
fxch st(1)
add edx, eax
fucompp
fnstsw ax
sahf
jbe 0xb438cd
cmp edx, 0x190
jge 0xb438cd
mov edx, 0x190
mov eax, dword [ebp - 0xc8]
mov esi, dword [ebp - 0xe4]
lea ecx, [eax + edx]
lea edx, [esi + eax + 0x3f]
mov eax, dword [ebp - 0x1f8]
sar edx, 6
lea eax, [eax + esi + 0x167]
add edx, 2
sar eax, 6
cmp eax, edx
jge 0xb438fc
mov eax, edx
mov edx, dword [ebp - 0x1bc]
test edx, edx
jne 0xb437d2
lea edx, [ecx + 0x20]
sar edx, 6
cmp eax, edx
jge 0xb43916
mov eax, edx
mov edi, dword [ebp - 0x118]
cmp edi, eax
mov esi, edi
jle 0xb43924
mov esi, eax
mov edi, ecx
sub edi, dword [ebp - 0x174]
mov ecx, esi
shl ecx, 6
mov eax, dword [ebp + 8]
fld dword [0xe037c4]
mov eax, dword [eax + 0xdc]
cmp eax, 0x3c9
jg 0xb4396a
fstp st(0)
lea edx, [eax + 1]
add eax, 0x15
mov ebx, dword [ebp + 8]
mov dword [ebp - 0xd8], eax
fild dword [ebp - 0xd8]
mov dword [ebx + 0xdc], edx
fdivr dword [0xe037ac]
mov eax, dword [ebp - 0x128]
test eax, eax
je 0xb439f3
sub ecx, dword [ebp - 0x174]
mov eax, dword [ebp + 8]
mov ebx, dword [ebp + 8]
mov edx, ecx
add edx, dword [eax + 0xd0]
movzx ecx, byte [ebp - 0xf8]
mov dword [eax + 0xd0], edx
mov eax, dword [eax + 0xd4]
mov dword [ebp - 0xd8], eax
mov eax, edi
mov edi, dword [ebp - 0xd8]
shl eax, cl
sub eax, dword [ebx + 0xd8]
sub eax, edi
mov dword [ebp - 0xd8], eax
fild dword [ebp - 0xd8]
fmulp st(1)
fldcw word [ebp - 0xc0]
fistp dword [ebp - 0xc4]
fldcw word [ebp - 0xbe]
mov eax, dword [ebp - 0xc4]
add eax, edi
mov dword [ebx + 0xd4], eax
neg eax
test edx, edx
mov dword [ebx + 0xd8], eax
js 0xb4595c
jmp 0xb439f5
fstp st(0)
mov eax, esi
mov dword [ebp - 0x130], esi
mov esi, dword [ebp - 0x118]
cmp eax, esi
jle 0xb43a0d
mov dword [ebp - 0x130], esi
mov eax, dword [ebp - 0x130]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call fcn.00b475f0
mov eax, dword [ebp - 0x1dc]
shr eax, 4
shl eax, 4
mov edx, eax
call fcn.00bd0e20
sub esp, eax
mov eax, edx
lea edi, [esp + 0x5c]
call fcn.00bd0e20
sub esp, eax
lea eax, [esp + 0x5c]
mov dword [ebp - 0xd8], eax
mov eax, edx
call fcn.00bd0e20
mov esi, dword [ebp - 0x130]
sub esp, eax
lea eax, [esp + 0x5c]
mov dword [ebp - 0xc8], eax
mov eax, esi
shl eax, 3
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call fcn.00b46c80
mov edx, esi
not eax
xor esi, esi
shl edx, 6
add eax, edx
cmp byte [ebp - 0x1bd], 0
je 0xb43aaa
mov ebx, dword [ebp - 0xf0]
xor ecx, ecx
lea edx, [ebx*8 + 0x10]
cmp eax, edx
setge cl
mov esi, ecx
shl esi, 3
sub eax, esi
mov ecx, eax
mov eax, dword [ebp + 8]
mov ebx, dword [eax + 0x78]
test ebx, ebx
je 0xb43b01
imul edx, dword [ebp - 0xf4], 0x7d00
mov ebx, dword [ebp - 0x198]
mov eax, 0xd
cmp ebx, edx
jl 0xb43ae8
imul edx, dword [ebp - 0xf4], 0xbb80
mov eax, 0x10
cmp ebx, edx
jge 0xb455f9
mov ebx, dword [ebp + 8]
mov edx, dword [ebx + 0x98]
cmp edx, eax
mov dword [ebp - 0x160], edx
jge 0xb43b01
mov dword [ebp - 0x160], eax
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x40]
test edx, edx
je 0xb43b15
mov dword [ebp - 0x160], 1
mov eax, dword [ebp - 0x160]
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x5c]
mov dword [esp + 0x40], 1
mov dword [esp + 0x44], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x3c], eax
mov eax, dword [ebp - 0xf0]
mov dword [esp + 0x38], eax
mov eax, dword [ebp - 0xf4]
mov dword [esp + 0x34], eax
mov eax, dword [ebp - 0xc8]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], eax
mov eax, dword [ebp - 0xd8]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x28], eax
lea eax, [ebp - 0x80]
mov dword [esp + 0x24], eax
lea eax, [ebp - 0xb8]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 8]
add eax, 0xe8
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0xd0]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0xe8]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0xe0]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0xec]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x100]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x120]
mov dword [esp], eax
call fcn.00b4a2a0
mov ebx, eax
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x5c]
test edx, edx
je 0xb440d3
lea eax, [edx - 1]
cmp eax, ebx
jge 0xb43bde
mov eax, ebx
add edx, 1
cmp eax, edx
jle 0xb43be7
mov eax, edx
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x5c], eax
mov eax, dword [ebp - 0xf4]
mov dword [esp + 0x1c], eax
mov ecx, dword [ebp + 0x1c]
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], ecx
mov ecx, dword [ebp - 0x134]
mov dword [esp + 0x10], ecx
mov ecx, dword [ebp - 0x150]
mov dword [esp + 0xc], ecx
mov ecx, dword [ebp - 0xec]
mov dword [esp + 8], ecx
mov ecx, dword [ebp - 0x100]
mov dword [esp + 4], ecx
mov ecx, dword [ebp - 0x120]
mov dword [esp], ecx
call fcn.00b49b90
mov eax, dword [ebp - 0x1f0]
add eax, 0xf
shr eax, 4
shl eax, 4
call fcn.00bd0e20
sub esp, eax
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x5c]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x128], ecx
mov ecx, dword [ebp + 8]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp + 8]
mov edx, dword [ecx + 0x44]
mov ecx, dword [ecx + 0x48]
add eax, 0x4c
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0x130]
shl eax, 6
sub eax, esi
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xe8]
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0x118], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x50]
mov dword [ebp - 0x11c], eax
xor eax, eax
cmp dword [ebp - 0xf4], 2
je 0xb4511b
mov dword [esp + 0x58], edx
mov dword [esp + 0x54], ecx
mov ecx, dword [ebp - 0xd0]
mov dword [esp + 0x50], ecx
mov ecx, dword [ebp - 0xe0]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ecx
mov ebx, dword [ebp - 0xf0]
mov dword [esp + 0x44], ebx
mov ebx, dword [ebp + 0x1c]
mov dword [esp + 0x40], ebx
mov ebx, dword [ebp - 0xe4]
mov dword [esp + 0x3c], ebx
mov ebx, dword [ebp - 0xe8]
mov dword [esp + 0x38], ebx
mov ebx, dword [ebp - 0x190]
mov dword [esp + 0x34], ebx
mov ebx, dword [ebp - 0xf8]
mov dword [esp + 0x30], ebx
mov ebx, dword [ebp - 0x118]
mov dword [esp + 0x2c], ebx
mov ebx, dword [ebp - 0x11c]
mov dword [esp + 0x28], ebx
mov ebx, dword [ebp - 0x16c]
mov dword [esp + 0x24], ebx
mov ebx, dword [ebp - 0xd8]
mov dword [esp + 0x20], ebx
mov ebx, dword [ebp - 0x168]
mov dword [esp + 0x1c], ebx
mov ebx, dword [ebp - 0x128]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ebx
mov eax, dword [ebp - 0x140]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0xec]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x100]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x120]
mov dword [esp], 1
mov dword [esp + 4], eax
call fcn.00b3ed20
test esi, esi
je 0xb43dbe
mov dword [esp + 8], 1
mov eax, dword [ebp + 8]
cmp dword [eax + 0x74], 1
setle al
movzx eax, al
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call fcn.00b473c0
mov eax, dword [ebp + 0x1c]
mov esi, dword [ebp - 0xf4]
bsr eax, dword [eax + 0x1c]
mov dword [esp + 0x24], esi
mov esi, dword [ebp + 0x1c]
mov dword [esp + 0x20], esi
xor eax, 0x1f
mov esi, dword [ebp + 0x1c]
mov ebx, dword [ebp - 0xdc]
mov edx, dword [esi + 0x14]
lea eax, [eax + edx - 0x20]
sub ebx, eax
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp - 0xc8]
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], eax
mov esi, dword [ebp - 0x134]
mov dword [esp + 0x10], esi
mov eax, dword [ebp - 0x150]
mov dword [esp + 0xc], eax
mov edi, dword [ebp - 0xec]
mov dword [esp + 8], edi
mov eax, dword [ebp - 0x100]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x120]
mov dword [esp], eax
call fcn.00b49cd0
mov eax, dword [ebp - 0x1cc]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov ebx, dword [ebp - 0x204]
mov dword [esp], ebx
call sub.msvcrt.dll_memset
fld dword [0xe037c8]
mov ecx, esi
xor esi, esi
lea esi, [esi]
mov eax, dword [ebp - 0x100]
cmp eax, edi
mov edx, eax
jl 0xb43e8d
jmp 0xb43eab
fstp st(1)
fxch st(1)
fucom st(1)
fnstsw ax
sahf
jbe 0xb43e81
fstp st(1)
fld st(0)
jmp 0xb43e83
fxch st(1)
fstp dword [ebx + edx*4]
add edx, 1
cmp edi, edx
je 0xb43eab
fld dword [ecx + edx*4]
fld dword [0xe03748]
fxch st(1)
fucom st(1)
fnstsw ax
sahf
jbe 0xb43e70
fstp st(0)
fstp dword [ebx + edx*4]
add edx, 1
cmp edi, edx
jne 0xb43e8d
mov eax, dword [ebp - 0x104]
add esi, 1
add ebx, eax
add ecx, eax
cmp dword [ebp - 0xf4], esi
jg 0xb43e60
fstp st(0)
mov eax, dword [ebp - 0x1bc]
test eax, eax
je 0xb43ef2
mov ebx, dword [ebp - 0x1c4]
test ebx, ebx
jle 0xb43ef2
mov esi, dword [ebp - 0x150]
fld dword [0xe03898]
lea edx, [esi + ebx*4]
mov eax, esi
fst dword [eax]
add eax, 4
cmp edx, eax
jne 0xb43ee7
fstp st(0)
mov eax, dword [ebp + 8]
mov esi, dword [ebp - 0x1e8]
cmp byte [ebp - 0x1bf], 0
fld dword [ebp - 0x1e4]
mov dword [eax + 0x68], esi
mov esi, dword [ebp - 0x19c]
fstp dword [eax + 0x6c]
mov dword [eax + 0x70], esi
jne 0xb450f6
mov eax, dword [ebp - 0x110]
test eax, eax
je 0xb44de4
mov eax, dword [ebp - 0x1fc]
xor edx, edx
test eax, eax
jle 0xb43f6d
mov ebx, dword [ebp - 0x150]
mov esi, dword [ebp - 0x1fc]
mov ecx, dword [ebp - 0x1e0]
lea esi, [esi]
fld dword [ecx + edx*4]
fld dword [ebx + edx*4]
fucom st(1)
fnstsw ax
sahf
jbe 0xb43f61
fstp st(0)
jmp 0xb43f63
fstp st(1)
fstp dword [ecx + edx*4]
add edx, 1
cmp esi, edx
jne 0xb43f50
mov eax, dword [ebp - 0x12c]
mov edi, dword [ebp - 0x1e0]
fldz
mov ebx, dword [ebp - 0x150]
mov esi, dword [ebp - 0x200]
mov ecx, dword [ebp - 0x124]
add edi, eax
mov dword [ebp - 0xd0], edi
mov edi, dword [ebp - 0xec]
add ebx, eax
add esi, eax
mov eax, edi
sub ecx, edi
shl eax, 2
neg eax
mov dword [ebp - 0xc8], eax
mov eax, ecx
shl eax, 2
mov dword [ebp - 0xd8], eax
lea esi, [esi]
mov eax, dword [ebp - 0x100]
test eax, eax
jle 0xb4400b
mov edi, dword [ebp - 0xc8]
mov edx, dword [ebp - 0xd0]
mov eax, edi
lea ecx, [edi + esi]
add edx, edi
mov edi, dword [ebp - 0x108]
add eax, ebx
add edi, ebx
mov esi, esi
lea edi, [edi]
fst dword [eax]
add eax, 4
add ecx, 4
add edx, 4
fld dword [0xe03898]
fst dword [ecx - 4]
fstp dword [edx - 4]
cmp edi, eax
jne 0xb43ff0
mov edi, dword [ebp - 0xec]
cmp dword [ebp - 0x124], edi
jle 0xb4404d
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xd0]
fldz
mov edx, esi
lea edi, [eax + ebx]
mov eax, ebx
nop
fst dword [eax]
add eax, 4
add edx, 4
add ecx, 4
fld dword [0xe03898]
fst dword [edx - 4]
fstp dword [ecx - 4]
cmp edi, eax
jne 0xb44030
fstp st(0)
mov edi, dword [ebp - 0x104]
add dword [ebp - 0x10c], 1
mov eax, dword [ebp - 0x10c]
add dword [ebp - 0xd0], edi
add ebx, edi
add esi, edi
cmp dword [ebp - 0xfc], eax
jg 0xb43fc0
fstp st(0)
mov eax, dword [ebp - 0x110]
or eax, dword [ebp - 0x1a4]
mov eax, dword [ebp + 8]
je 0xb440de
add dword [eax + 0x74], 1
mov eax, dword [ebp + 0x1c]
mov esi, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
mov dword [esi + 0x4c], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call fcn.00b47650
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + 0x2c]
test eax, eax
je 0xb440b8
mov dword [ebp - 0x130], 0xfffffffd
mov eax, dword [ebp - 0x130]
mov esp, dword [ebp - 0x218]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
xor edi, edi
jmp 0xb433e1
mov eax, dword [ebp + 8]
mov dword [eax + 0x5c], ebx
jmp 0xb43bed
mov dword [eax + 0x74], 0
jmp 0xb4408d
mov eax, 0x5000
mov dword [ebp - 0x118], 0x50
cdq
idiv dword [ebp - 0x164]
cmp eax, 0x4d
jle 0xb4410b
add eax, 2
mov dword [ebp - 0x118], eax
fld dword [ebp - 0x170]
mov dword [ebp - 0x21c], esp
fsubr dword [0xe03748]
fld dword [0xe037a4]
fstp dword [ebp - 0xe8]
fld dword [0xe03854]
fucomp st(1)
fnstsw ax
sahf
ja 0xb44144
fmul dword [0xe03858]
fstp dword [ebp - 0xe8]
jmp 0xb44146
fstp st(0)
mov edi, dword [ebp - 0x138]
mov eax, edi
shl eax, 2
lea ebx, [eax + 0x12]
mov dword [ebp - 0x20c], eax
shr ebx, 4
shl ebx, 4
mov eax, ebx
call fcn.00bd0e20
sub esp, eax
lea esi, [edi + edi]
lea eax, [esp + 0x5f]
mov dword [ebp - 0x184], esi
shr eax, 2
mov dword [ebp - 0x228], eax
shl eax, 2
mov dword [ebp - 0x13c], eax
mov eax, dword [ebp - 0x120]
mov edx, dword [eax + 0x20]
movsx ecx, word [edx + esi - 2]
movsx eax, word [edx + edi*2]
sub eax, ecx
movzx ecx, byte [ebp - 0xf0]
shl eax, cl
lea ecx, [eax*4 + 0x12]
shr ecx, 4
shl ecx, 4
mov eax, ecx
call fcn.00bd0e20
sub esp, eax
mov eax, ecx
lea esi, [esp + 0x5c]
call fcn.00bd0e20
sub esp, eax
lea eax, [esp + 0x5c]
mov dword [ebp - 0x194], eax
mov eax, ebx
call fcn.00bd0e20
sub esp, eax
lea eax, [esp + 0x5c]
mov dword [ebp - 0x17c], eax
mov eax, ebx
call fcn.00bd0e20
sub esp, eax
test edi, edi
lea eax, [esp + 0x5c]
mov dword [ebp - 0x180], eax
jle 0xb44487
mov eax, dword [ebp - 0x134]
mov ebx, dword [ebp - 0xf0]
mov edi, esi
imul eax, dword [ebp - 0x11c]
mov dword [ebp - 0x128], 0
mov dword [ebp - 0x188], eax
mov eax, ebx
neg eax
add eax, eax
mov dword [ebp - 0x22c], eax
mov eax, ebx
add eax, 1
mov dword [ebp - 0x214], eax
mov eax, dword [ebp - 0x128]
movzx ecx, byte [ebp - 0xf0]
xor ebx, ebx
lea esi, [eax + 2]
mov dword [ebp - 0x144], esi
mov esi, eax
movsx eax, word [edx + eax]
movsx edx, word [edx + esi + 2]
sub edx, eax
mov esi, edx
mov dword [ebp - 0x134], edx
shl esi, cl
cmp edx, 1
sete bl
shl eax, cl
add eax, dword [ebp - 0x188]
mov ecx, dword [ebp - 0x140]
mov dword [ebp - 0xd0], esi
shl esi, 2
mov dword [esp + 8], esi
mov dword [esp], edi
lea eax, [ecx + eax*4]
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [ebp - 0x110]
fldz
test eax, eax
je 0xb442af
fstp st(0)
fild dword [ebp - 0xf0]
mov eax, dword [ebp - 0xd0]
test eax, eax
jle 0xb44b58
lea edx, [edi + esi]
fldz
mov eax, edi
fld dword [eax]
add eax, 4
cmp edx, eax
fabs
faddp st(1)
jne 0xb442c4
fxch st(1)
fmul dword [ebp - 0xe8]
cmp dword [ebp - 0x134], 1
fmul st(1)
faddp st(1)
fstp dword [ebp - 0xdc]
je 0xb44305
cmp byte [ebp - 0xe4], 0
jne 0xb4473d
jmp 0xb44305
fstp st(0)
jmp 0xb44305
fstp st(0)
jmp 0xb44305
fstp st(0)
mov dword [ebp - 0x108], 0
or ebx, dword [ebp - 0x110]
xor ebx, 1
and ebx, 1
add ebx, dword [ebp - 0xf0]
mov dword [ebp - 0xf8], ebx
je 0xb443e7
lea ebx, [edi + esi]
mov esi, 1
cmp byte [ebp - 0xe4], 0
lea ecx, [esi - 1]
je 0xb44434
mov eax, dword [ebp - 0xf0]
mov dword [ebp - 0xc8], esi
sub eax, esi
mov dword [ebp - 0xd8], eax
mov eax, 1
shl eax, cl
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xd0]
mov dword [esp], edi
sar eax, cl
mov dword [esp + 4], eax
call fcn.00b3e010
mov eax, dword [ebp - 0xd0]
test eax, eax
jle 0xb44445
fldz
mov eax, edi
lea esi, [esi]
fld dword [eax]
add eax, 4
cmp ebx, eax
fabs
faddp st(1)
jne 0xb44390
fild dword [ebp - 0xd8]
fmul dword [ebp - 0xe8]
fmul st(1)
faddp st(1)
fld dword [ebp - 0xdc]
fucomp st(1)
fnstsw ax
sahf
jbe 0xb443d0
fstp dword [ebp - 0xdc]
mov dword [ebp - 0x108], esi
jmp 0xb443d2
fstp st(0)
add esi, 1
mov ecx, dword [ebp - 0xc8]
cmp dword [ebp - 0xf8], ecx
jg 0xb44335
cmp byte [ebp - 0xe4], 0
mov eax, dword [ebp - 0x108]
jne 0xb443f8
neg eax
add eax, eax
cmp dword [ebp - 0x134], 1
mov ebx, dword [ebp - 0x13c]
mov esi, dword [ebp - 0x128]
mov dword [ebx + esi*2], eax
je 0xb4444c
mov eax, dword [ebp - 0x144]
cmp dword [ebp - 0x184], eax
je 0xb44487
mov esi, dword [ebp - 0x120]
mov dword [ebp - 0x128], eax
mov edx, dword [esi + 0x20]
jmp 0xb4423c
mov dword [ebp - 0xd8], esi
mov dword [ebp - 0xc8], esi
jmp 0xb44359
fldz
jmp 0xb4439d
mov eax, dword [ebp - 0x13c]
mov ebx, dword [ebp - 0x128]
mov eax, dword [eax + ebx*2]
test eax, eax
je 0xb44467
cmp eax, dword [ebp - 0x22c]
jne 0xb44412
mov ebx, dword [ebp - 0x13c]
mov esi, dword [ebp - 0x128]
sub eax, 1
mov dword [ebx + esi*2], eax
mov eax, dword [ebp - 0x144]
cmp dword [ebp - 0x184], eax
jne 0xb44420
mov eax, dword [ebp - 0x224]
mov esi, dword [ebp - 0x110]
mov eax, dword [eax*4]
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0x228]
mov eax, dword [eax*4]
mov dword [ebp - 0x108], eax
mov eax, esi
add eax, eax
cmp esi, 1
mov ebx, eax
mov dword [ebp - 0x134], eax
sbb eax, eax
and eax, dword [ebp - 0x118]
mov dword [ebp - 0x128], eax
mov eax, ebx
mov ebx, dword [ebp - 0xf0]
lea eax, [eax + ebx*4]
lea eax, [eax + eax + 0xe02f20]
mov dword [ebp - 0xe8], eax
lea eax, [ebp - 0x80]
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0x158]
add eax, dword [ebp - 0x20c]
mov dword [ebp - 0xc8], eax
mov esi, dword [ebp - 0xe8]
mov ebx, dword [ebp - 0x108]
mov ecx, dword [ebp - 0xf8]
movsx eax, byte [esi]
add eax, eax
mov edi, eax
mov dword [ebp - 0xd0], eax
mov eax, ebx
sub eax, edi
cdq
xor eax, edx
sub eax, edx
imul eax, ecx
mov edi, eax
movsx eax, byte [esi + 1]
add eax, eax
mov esi, eax
mov dword [ebp - 0xd8], eax
mov eax, ebx
sub eax, esi
cdq
xor eax, edx
sub eax, edx
imul eax, ecx
add eax, dword [ebp - 0x128]
cmp dword [ebp - 0x138], 1
jle 0xb445ca
mov ebx, dword [ebp - 0x158]
lea esi, [ebx + 4]
mov ebx, dword [ebp - 0x13c]
add ebx, 4
nop
lea esi, [esi]
mov ecx, dword [ebp - 0x118]
add ecx, eax
cmp ecx, edi
jle 0xb4457e
mov ecx, edi
mov edx, dword [ebp - 0x118]
add edx, edi
cmp edx, eax
jle 0xb4458c
mov edx, eax
mov eax, dword [ebx]
sub eax, dword [ebp - 0xd0]
add esi, 4
add ebx, 4
mov edi, eax
sar edi, 0x1f
xor eax, edi
sub eax, edi
imul eax, dword [esi - 4]
lea edi, [eax + ecx]
mov eax, dword [ebx - 4]
sub eax, dword [ebp - 0xd8]
mov ecx, eax
sar ecx, 0x1f
xor eax, ecx
sub eax, ecx
imul eax, dword [esi - 4]
add eax, edx
cmp dword [ebp - 0xc8], esi
jne 0xb44570
cmp eax, edi
jle 0xb445d0
mov eax, edi
mov ebx, dword [ebp - 0xdc]
add dword [ebp - 0xe8], 2
mov dword [ebx], eax
lea eax, [ebp - 0x78]
add ebx, 4
mov dword [ebp - 0xdc], ebx
cmp eax, ebx
jne 0xb44503
mov eax, dword [ebp - 0x80]
cmp dword [ebp - 0x7c], eax
mov esi, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x134]
setl al
lea edx, [esi*8 + 0xe02f20]
mov esi, dword [ebp - 0x108]
movzx eax, al
and eax, dword [ebp - 0xe4]
add ebx, eax
mov dword [ebp - 0xdc], eax
lea ebx, [edx + ebx*2]
movsx eax, byte [ebx]
add eax, eax
mov edi, eax
mov dword [ebp - 0xd8], eax
mov eax, esi
sub eax, edi
mov edi, dword [ebp - 0xf8]
cdq
xor eax, edx
sub eax, edx
imul eax, edi
mov ecx, eax
movsx eax, byte [ebx + 1]
add eax, eax
mov ebx, eax
mov dword [ebp - 0xc8], eax
mov eax, esi
sub eax, ebx
cdq
xor eax, edx
sub eax, edx
imul eax, edi
add eax, dword [ebp - 0x128]
cmp dword [ebp - 0x138], 1
jle 0xb447d3
mov ebx, dword [ebp - 0x1d4]
jmp 0xb446fb
mov dword [esi + ebx*4], 0
mov esi, dword [ebp - 0x118]
mov edi, ecx
add esi, ecx
cmp esi, eax
jge 0xb44729
mov eax, dword [ebp - 0x180]
mov dword [eax + ebx*4], 0
mov eax, dword [ebp - 0x158]
mov edx, dword [ebp - 0x13c]
mov eax, dword [eax + ebx*4]
mov dword [ebp - 0xd0], eax
mov eax, dword [edx + ebx*4]
add ebx, 1
mov edx, eax
sub edx, dword [ebp - 0xd8]
sub eax, dword [ebp - 0xc8]
mov ecx, edx
sar ecx, 0x1f
xor edx, ecx
sub edx, ecx
imul edx, dword [ebp - 0xd0]
lea ecx, [edx + edi]
cdq
xor eax, edx
sub eax, edx
imul eax, dword [ebp - 0xd0]
add eax, esi
cmp ebx, dword [ebp - 0x138]
je 0xb447d3
mov esi, dword [ebp - 0x118]
lea edi, [esi + eax]
mov esi, dword [ebp - 0x17c]
cmp edi, ecx
jg 0xb4467f
mov dword [esi + ebx*4], 1
mov esi, dword [ebp - 0x118]
add esi, ecx
cmp esi, eax
jl 0xb44698
mov esi, dword [ebp - 0x180]
mov dword [esi + ebx*4], 1
mov esi, eax
jmp 0xb446a5
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov eax, dword [ebp - 0x194]
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov edx, dword [ebp - 0x154]
mov dword [esp + 8], edx
movzx ecx, byte [ebp - 0xf0]
mov edx, dword [ebp - 0xd0]
sar edx, cl
mov dword [esp + 4], edx
mov eax, dword [ebp - 0x194]
mov dword [esp], eax
call fcn.00b3e010
mov ecx, dword [ebp - 0x194]
fldz
lea edx, [ecx + esi]
mov eax, ecx
nop
lea esi, [esi]
fld dword [eax]
add eax, 4
cmp edx, eax
fabs
faddp st(1)
jne 0xb44790
fild dword [ebp - 0x214]
fmul dword [ebp - 0xe8]
fmul st(1)
faddp st(1)
fld dword [ebp - 0xdc]
fucomp st(1)
fnstsw ax
sahf
jbe 0xb442fb
fstp dword [ebp - 0xdc]
mov dword [ebp - 0x108], 0xffffffff
jmp 0xb4430f
cmp ecx, eax
mov ebx, dword [ebp - 0x190]
mov esi, dword [ebp - 0x20c]
setge al
movzx eax, al
mov dword [ebx + esi - 4], eax
mov eax, dword [ebp - 0x138]
lea edx, [ebx + esi - 8]
sub eax, 2
js 0xb44832
mov ebx, dword [ebp - 0x17c]
mov esi, dword [ebp - 0x180]
jmp 0xb4481a
mov ecx, dword [ebx + eax*4 + 4]
sub eax, 1
sub edx, 4
mov dword [edx + 4], ecx
cmp eax, 0xffffffff
je 0xb44832
cmp dword [edx + 4], 1
jne 0xb44808
mov ecx, dword [esi + eax*4 + 4]
sub eax, 1
sub edx, 4
mov dword [edx + 4], ecx
cmp eax, 0xffffffff
jne 0xb4481a
mov ebx, dword [ebp - 0x138]
cmp dword [ebp - 0xec], ebx
mov esp, dword [ebp - 0x21c]
mov eax, ebx
lea ecx, [ebx - 1]
jle 0xb42d82
mov esi, dword [ebp - 0xec]
mov edx, dword [ebp - 0x190]
mov ebx, dword [edx + ecx*4]
mov dword [edx + eax*4], ebx
add eax, 1
cmp esi, eax
jne 0xb4485b
jmp 0xb42d82
fstp st(0)
cmp dword [ebp - 0xe8], 2
jle 0xb451e8
fxch st(1)
fadd dword [0xe03824]
fldz
fxch st(1)
fucom st(1)
fnstsw ax
sahf
jbe 0xb45e00
fstp st(0)
fstp st(1)
mov eax, dword [ebp - 0xdc]
fstp dword [ebp - 0xd0]
mov dword [esp + 4], 0
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x184]
mov dword [esp], eax
call sub.msvcrt.dll_memset
fld dword [ebp - 0xd0]
fstp dword [ebp - 0x1b4]
fld dword [0xe03758]
fstp dword [ebp - 0x1b0]
jmp 0xb448dc
fstp st(0)
mov esi, dword [ebp - 0x16c]
fldz
test esi, esi
je 0xb448f6
fstp st(0)
fild dword [ebp - 0xf0]
fmul dword [0xe03748]
mov eax, dword [ebp - 0x100]
mov esi, dword [ebp - 0xec]
cmp eax, esi
jge 0xb45f6f
fldz
mov edi, dword [ebp - 0x148]
mov ecx, dword [ebp - 0x124]
mov edx, eax
mov ebx, dword [ebp - 0xf4]
fld dword [0xe0377c]
lea ecx, [edi + ecx*4]
fld1
jmp 0xb44944
fxch st(2)
jmp 0xb44935
fstp st(2)
fxch st(2)
add edx, 1
fadd st(1)
cmp esi, edx
je 0xb44986
fxch st(2)
jmp 0xb44944
fxch st(2)
fsub st(1), st(0)
fld st(3)
fsubr dword [edi + edx*4]
fxch st(2)
fucom st(2)
fnstsw ax
sahf
jbe 0xb4495c
fstp st(2)
fxch st(1)
fxch st(1)
jmp 0xb4495e
fstp st(0)
cmp ebx, 2
jne 0xb4492d
fld st(3)
fsubr dword [ecx + edx*4]
fxch st(2)
fucom st(2)
fnstsw ax
sahf
ja 0xb44931
fstp st(0)
fxch st(2)
add edx, 1
cmp esi, edx
fadd st(1)
jne 0xb44942
fstp st(2)
fstp st(0)
fstp st(1)
jmp 0xb4498c
fstp st(2)
fstp st(0)
fstp st(1)
mov eax, dword [ebp + 8]
fld dword [eax + 0xf0]
mov eax, dword [ebp - 0xec]
sub eax, dword [ebp - 0x100]
mov dword [ebp - 0xd0], eax
fild dword [ebp - 0xd0]
fdivp st(2)
fsub st(1), st(0)
fxch st(1)
fst dword [ebp - 0x1a8]
fld dword [0xe0378c]
fucom st(1)
fnstsw ax
sahf
ja 0xb450a3
fstp st(0)
fld dword [0xe03784]
fxch st(1)
fucom st(1)
fnstsw ax
sahf
jbe 0xb45b4b
fstp st(0)
fld dword [0xe03780]
fxch st(1)
fstp dword [ebp - 0x1a8]
faddp st(1)
mov ebx, dword [ebp - 0xf8]
mov eax, dword [ebp + 8]
mov dword [ebp - 0xe8], 0
test ebx, ebx
fstp dword [eax + 0xf0]
jne 0xb4207e
mov eax, dword [ebp - 0x118]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x148]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x180]
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov ecx, dword [ebp - 0xf0]
test ecx, ecx
jne 0xb4208c
movzx eax, byte [ebp - 0x110]
mov byte [ebp - 0x1bd], 0
and eax, 1
mov byte [ebp - 0xe4], al
mov eax, dword [ebp - 0xec]
lea ebx, [eax - 2]
sub eax, 1
mov dword [ebp - 0x160], eax
mov eax, dword [ebp - 0x124]
mov dword [ebp - 0xf8], ebx
shl eax, 2
mov dword [ebp - 0x18c], eax
jmp 0xb422d1
cmp dword [ebp - 0x14c], 0x22
jg 0xb40fc8
jmp 0xb40fc2
fstp st(1)
fldz
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x1ec], 0
fchs
fstp dword [ebp - 0x12c]
fldz
fstp dword [ebp - 0x1e4]
jmp 0xb410ef
mov edi, dword [edi + 0x28]
cmp edi, 0xffffffff
je 0xb454c0
mov eax, dword [ebp - 0x120]
imul edx, edi
mov ecx, dword [eax]
mov eax, edx
mov edx, ecx
sar ecx, 3
sar edx, 4
add eax, edx
cdq
idiv ecx
mov edx, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0xf4]
mov dword [ebp - 0x174], eax
sar eax, 6
mov dword [ebp - 0x164], eax
mov eax, 3
sub eax, edx
mov dword [ebp - 0x1a0], eax
lea eax, [ecx + ecx*4]
lea ecx, [eax*8 + 0x14]
mov eax, 0x190
mov dword [ebp - 0x1b8], ecx
mov ecx, edx
sar eax, cl
movzx ecx, byte [ebp - 0x1a0]
imul edx, dword [ebp - 0x130], 0x190
sub eax, 0x32
imul eax, dword [ebp - 0x1b8]
sar edx, cl
sub edx, eax
jmp 0xb40a5f
fmul dword [ebp - 0xe8]
cmp dword [ebp - 0x134], 1
fldz
fmul st(1), st(0)
fadd st(1), st(0)
fxch st(1)
fstp dword [ebp - 0xdc]
je 0xb442ff
cmp byte [ebp - 0xe4], 0
je 0xb44303
fstp dword [ebp - 0xd8]
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov eax, dword [ebp - 0x194]
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov ecx, dword [ebp - 0x154]
mov dword [esp + 8], ecx
movzx ecx, byte [ebp - 0xf0]
mov edx, dword [ebp - 0xd0]
sar edx, cl
mov dword [esp + 4], edx
mov eax, dword [ebp - 0x194]
mov dword [esp], eax
call fcn.00b3e010
fld dword [ebp - 0xd8]
jmp 0xb4479d
fldz
mov dword [ebp - 0x17c], 0
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x110], 0
fstp dword [ebp - 0x170]
jmp 0xb41852
mov dword [ebp - 0xdc], 0
jmp 0xb43109
mov eax, dword [ebp - 0xec]
lea esi, [eax - 2]
sub eax, 1
mov dword [ebp - 0x160], eax
movzx eax, byte [ebp - 0x110]
mov dword [ebp - 0xf8], esi
and eax, 1
cmp dword [ebp - 0xf0], 1
mov ebx, eax
mov byte [ebp - 0xe4], al
setg al
mov edx, eax
mov eax, ebx
and edx, eax
mov eax, dword [ebp - 0x124]
mov byte [ebp - 0x1bd], dl
shl eax, 2
mov dword [ebp - 0x18c], eax
cmp dword [ebp - 0x178], ecx
jle 0xb422d1
jmp 0xb422b4
mov dword [ebp - 0x118], 0
jmp 0xb40e1a
mov eax, dword [ebp - 0xf0]
test eax, eax
je 0xb44d64
mov eax, dword [ebp - 0x120]
fld dword [0xe03768]
fld st(0)
mov esi, dword [eax + 0x20]
mov eax, dword [ebp - 0x11c]
lea edi, [esi + 0x1a]
mov ebx, esi
mov dword [ebp - 0xd0], esi
movzx ecx, byte [ebp - 0xf0]
movsx esi, word [ebx]
movsx edx, word [ebx + 2]
shl esi, cl
shl edx, cl
cmp edx, esi
jle 0xb44d08
mov ecx, dword [ebp - 0x140]
lea ecx, [ecx + esi*4]
mov esi, dword [ebp - 0x140]
lea edx, [esi + edx*4]
lea esi, [esi]
fld dword [ecx]
fld dword [ecx + eax*4]
add ecx, 4
cmp edx, ecx
fld st(1)
fabs
fld st(1)
fabs
faddp st(1)
faddp st(4)
fld st(1)
fadd st(1)
fabs
fxch st(2)
fsubrp st(1)
fabs
faddp st(1)
faddp st(1)
jne 0xb44ce0
add ebx, 2
cmp edi, ebx
jne 0xb44cb1
mov esi, dword [ebp - 0xd0]
mov ebx, dword [ebp - 0xf0]
fmul dword [0xe0385c]
movsx edx, word [esi + 0x1a]
cmp ebx, 1
lea ecx, [ebx + 1]
setne al
movzx eax, al
shl edx, cl
lea eax, [edx + eax*8 + 5]
mov dword [ebp - 0xd0], eax
fild dword [ebp - 0xd0]
mov dword [ebp - 0xd0], edx
fmulp st(1)
fild dword [ebp - 0xd0]
fmulp st(2)
fucompp
fnstsw ax
sahf
seta al
movzx eax, al
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 8]
mov edx, 0x10624dd3
mov eax, dword [eax + 0xe8]
mov dword [esp + 0xc], 0x15
mov dword [esp + 8], 0xe03680
mov dword [esp + 4], 0xe036e0
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x198]
imul edx
sar edx, 6
mov eax, edx
mov edx, dword [ebp - 0x198]
sar edx, 0x1f
sub eax, edx
mov dword [ebp - 0xd0], eax
fild dword [ebp - 0xd0]
fstp dword [esp]
call fcn.00b3c370
mov esi, dword [ebp - 0x100]
cmp esi, eax
mov edx, esi
jge 0xb44dc8
mov edx, eax
mov ebx, dword [ebp - 0xec]
mov eax, edx
cmp edx, ebx
jle 0xb44dd6
mov eax, ebx
mov ebx, dword [ebp + 8]
mov dword [ebx + 0xe8], eax
jmp 0xb43425
mov ebx, dword [ebp - 0x1cc]
mov dword [esp + 8], ebx
mov esi, dword [ebp - 0x1e0]
mov dword [esp + 4], esi
mov eax, dword [ebp - 0x200]
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov dword [esp + 8], ebx
mov eax, dword [ebp - 0x150]
mov dword [esp], esi
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
jmp 0xb43f6d
mov edi, dword [ebp - 0xf4]
mov esi, dword [ebp - 0x124]
imul esi, edi
lea eax, [esi*4]
mov dword [ebp - 0x1f0], esi
mov dword [ebp - 0x118], eax
add eax, 0x12
mov dword [ebp - 0x1d8], eax
shr eax, 4
shl eax, 4
call fcn.00bd0e20
sub esp, eax
mov eax, dword [ebp + 8]
lea ebx, [esp + 0x5c]
mov eax, dword [eax + 0x48]
mov dword [ebp - 0x180], ebx
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0xf0]
mov dword [esp + 0xc], eax
mov edx, dword [ebp - 0xfc]
mov dword [esp + 4], edi
mov dword [esp + 8], edx
mov edx, dword [ebp - 0xe0]
mov dword [esp], edx
mov ecx, dword [ebp - 0x13c]
xor edx, edx
mov eax, dword [ebp - 0x120]
call fcn.00b40330
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x48]
mov dword [esp + 0x18], eax
mov ecx, dword [ebp - 0xf0]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ecx
mov ecx, dword [ebp - 0x138]
mov dword [esp + 0xc], ecx
mov eax, dword [ebp - 0x168]
mov dword [esp + 8], eax
mov edx, dword [ebp - 0xe0]
mov dword [esp + 4], edx
mov eax, dword [ebp - 0x120]
mov dword [esp], eax
call fcn.00b3d5d0
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], ebx
mov edi, dword [ebp - 0x168]
mov dword [esp + 0xc], edi
mov edi, dword [ebp - 0xec]
mov dword [esp + 8], edi
mov ecx, dword [ebp - 0x138]
mov dword [esp + 4], ecx
mov eax, dword [ebp - 0x120]
mov dword [esp], eax
call fcn.00b4a1e0
test esi, esi
jle 0xb4632c
fild dword [ebp - 0xf0]
xor eax, eax
fmul dword [0xe03748]
fld dword [ebx + eax*4]
fadd st(1)
fstp dword [ebx + eax*4]
add eax, 1
cmp eax, esi
jne 0xb44f39
fstp st(0)
mov dword [ebp - 0x1c4], eax
mov eax, dword [ebp - 0x110]
mov dword [ebp - 0x1a4], 0
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0x154]
mov dword [ebp - 0x16c], eax
jmp 0xb41964
mov edi, dword [ebp - 0x12c]
mov ebx, esp
mov eax, edi
sar eax, 1
lea eax, [eax*4 + 0x12]
shr eax, 4
shl eax, 4
call fcn.00bd0e20
sub esp, eax
mov eax, dword [ebp + 8]
lea esi, [esp + 0x5c]
mov eax, dword [eax + 0x48]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0xfc]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
lea edi, [ebp - 0xb4]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x80]
mov dword [esp], eax
call fcn.00b47f10
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x48]
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], 0x3d3
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x11c]
mov dword [esp + 4], esi
mov dword [esp + 8], eax
lea eax, [esi + 0x800]
mov dword [esp], eax
call fcn.00b48290
mov eax, 0x400
sub eax, dword [ebp - 0xb4]
mov ecx, dword [ebp + 8]
mov dword [ebp - 0xb4], eax
mov eax, dword [ecx + 0x48]
mov dword [esp + 0x1c], eax
mov ecx, dword [ebp + 8]
fld dword [ecx + 0x6c]
fstp dword [esp + 0x18]
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x68]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x11c]
mov dword [esp + 8], 0xf
mov dword [esp + 4], 0x400
mov dword [esp], esi
mov dword [esp + 0xc], eax
call fcn.00b48520
cmp dword [ebp - 0xb4], 0x3fe
jle 0xb45065
mov dword [ebp - 0xb4], 0x3fe
mov eax, dword [ebp + 8]
fmul dword [0xe037d8]
mov eax, dword [eax + 0x38]
cmp eax, 2
jle 0xb45096
fld dword [0xe03748]
cmp eax, 4
fmul st(1), st(0)
jle 0xb45094
cmp eax, 8
jle 0xb46325
fstp st(0)
fstp st(0)
fldz
jmp 0xb45096
fstp st(0)
mov esp, ebx
mov edx, dword [ebp - 0xb4]
jmp 0xb40f75
fstp st(1)
fld dword [0xe03788]
fxch st(1)
fstp dword [ebp - 0x1a8]
jmp 0xb449ef
mov eax, dword [ebp - 0x12c]
mov ecx, dword [ebp - 0x148]
add ecx, dword [ebp - 0x104]
lea edi, [ebx + eax]
fld dword [edx]
fld dword [ecx]
fsub dword [esi]
fxch st(1)
fucom st(1)
fnstsw ax
sahf
jbe 0xb450e0
fstp st(1)
jmp 0xb450e2
fstp st(0)
fstp dword [edx]
add edx, 4
add ecx, 4
add esi, 4
cmp edi, edx
jne 0xb450cd
jmp 0xb425ea
mov ebx, dword [ebp - 0x150]
mov esi, dword [ebp - 0x18c]
mov eax, ebx
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
add eax, esi
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0xb43f1d
mov eax, dword [ebp - 0x15c]
add eax, dword [ebp - 0x140]
jmp 0xb43cc9
mov edx, dword [ebp - 0xec]
cmp dword [ebp - 0x100], edx
mov dword [ebp - 0xd0], ebx
jl 0xb42f9c
jmp 0xb43160
cmp ebx, dword [ebp - 0xd8]
jb 0xb43160
mov eax, dword [ebp - 0xf0]
mov esi, dword [ebp - 0x110]
lea eax, [eax*8 + 0xe02f20]
movzx ebx, byte [eax + esi*4]
cmp byte [eax + esi*4 + 2], bl
je 0xb43152
mov dword [esp + 8], 1
mov eax, dword [ebp - 0xdc]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call fcn.00b472d0
mov eax, dword [ebp + 0x1c]
mov edi, dword [eax + 0x14]
jmp 0xb430fb
mov dword [ebp - 0x1f8], 1
mov dword [ebp - 0x104], 1
xor esi, esi
jmp 0xb40965
cmp dword [ebp - 0xfc], 2
mov byte [ebp - 0x108], 1
sete dl
movzx eax, dl
mov byte [ebp - 0x1bf], dl
sub eax, 1
and dword [ebp - 0x134], eax
jmp 0xb419f0
fxch st(1)
jmp 0xb451ee
fstp st(1)
fadd dword [0xe03758]
fstp dword [ebp - 0x1b0]
fmul dword [0xe03808]
fstp dword [ebp - 0x1b4]
jmp 0xb448dc
fldz
fst dword [ebp - 0x1b4]
fst dword [ebp - 0x1b0]
fstp dword [ebp - 0x1a8]
jmp 0xb42070
mov esi, dword [ebp - 0x100]
test esi, esi
jne 0xb455c9
mov edx, dword [ebp - 0x16c]
test edx, edx
je 0xb45eb3
mov ebx, dword [ebp + 8]
mov edx, dword [ebx + 0x18]
test edx, edx
jne 0xb459da
mov ebx, dword [ebp + 8]
mov dword [ebx + 0x50], 0
jmp 0xb4318f
mov ebx, dword [ebp - 0x190]
mov esi, dword [ebp - 0x188]
mov eax, dword [ebp - 0x110]
test ebx, ebx
sete byte [ebp - 0xd0]
test esi, esi
movzx ebx, byte [ebp - 0xd0]
setne byte [ebp - 0xc8]
movzx ecx, byte [ebp - 0xc8]
xor eax, 1
mov edi, eax
and edi, 1
mov eax, ebx
mov ebx, ecx
or eax, ebx
mov edx, eax
mov eax, edi
and dl, al
jne 0xb4559b
mov ebx, dword [ebp - 0xec]
cmp dword [ebp - 0x100], ebx
jge 0xb464bc
mov eax, dword [ebp - 0x100]
fld dword [0xe03748]
mov ecx, dword [ebp - 0xec]
mov edx, dword [ebp - 0x108]
jmp 0xb452e4
fld dword [edx + eax*4]
fadd st(0)
fstp dword [edx + eax*4]
add eax, 1
cmp ecx, eax
jle 0xb45301
cmp eax, 7
jle 0xb452d5
cmp eax, 0xb
jle 0xb452dd
fld dword [edx + eax*4]
fmul st(1)
fstp dword [edx + eax*4]
add eax, 1
cmp ecx, eax
jg 0xb452e4
fstp st(0)
jmp 0xb45303
fstp st(0)
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x78]
test edx, edx
je 0xb45389
mov eax, dword [ebp - 0xec]
cmp eax, 0x13
mov ecx, eax
jle 0xb4531f
mov ecx, 0x13
cmp dword [ebp - 0x100], ecx
jge 0xb45361
mov edx, dword [ebp - 0x100]
mov esi, dword [ebp + 8]
mov ebx, dword [ebp - 0x108]
fld dword [0xe0384c]
movzx eax, byte [esi + edx + 0xa4]
mov dword [ebp - 0xd8], eax
fild dword [ebp - 0xd8]
fmul st(1)
fadd dword [ebx + edx*4]
fstp dword [ebx + edx*4]
add edx, 1
cmp ecx, edx
jne 0xb4533c
fstp st(0)
mov ebx, dword [ebp - 0xec]
cmp dword [ebp - 0x100], ebx
jge 0xb42cfe
fnstcw word [ebp - 0xbe]
movzx eax, word [ebp - 0xbe]
mov ah, 0xc
mov word [ebp - 0xc0], ax
mov eax, dword [ebp - 0x164]
mov edx, 0x55555556
mov ebx, dword [ebp - 0x1ac]
xor esi, esi
fld dword [0xe037a0]
lea ecx, [eax + eax]
mov eax, ecx
sar ecx, 0x1f
imul edx
mov eax, dword [ebp - 0x100]
sub edx, ecx
lea ebx, [ebx + eax*2]
mov dword [ebp - 0xdc], edx
mov edx, eax
mov eax, edi
mov byte [ebp - 0xe8], al
mov edi, dword [ebp - 0x108]
jmp 0xb4544c
fldcw word [ebp - 0xc0]
fistp dword [ebp - 0xc4]
fldcw word [ebp - 0xbe]
mov ecx, dword [ebp - 0xc4]
imul eax, ecx
mov dword [ebp - 0xd8], ecx
shl eax, 3
cmp byte [ebp - 0xd0], 0
jne 0xb45416
cmp byte [ebp - 0xe8], 0
je 0xb457ef
cmp byte [ebp - 0xc8], 0
je 0xb457ef
add eax, esi
mov ecx, eax
sar ecx, 6
cmp ecx, dword [ebp - 0xdc]
jg 0xb45904
mov esi, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xd8]
add ebx, 2
mov dword [esi + edx*4], ecx
add edx, 1
cmp dword [ebp - 0xec], edx
mov esi, eax
jle 0xb458f7
fld dword [edi + edx*4]
fxch st(1)
fucom st(1)
fnstsw ax
sahf
ja 0xb4545e
fstp st(1)
fld st(0)
jmp 0xb45460
fxch st(1)
movsx ecx, word [ebx]
movsx eax, word [ebx + 2]
fst dword [edi + edx*4]
sub eax, ecx
movzx ecx, byte [ebp - 0xf0]
imul eax, dword [ebp - 0xf4]
shl eax, cl
cmp eax, 5
jle 0xb453cf
cmp eax, 0x30
jle 0xb457f6
fmul dword [0xe03850]
fldcw word [ebp - 0xc0]
fistp dword [ebp - 0xc4]
fldcw word [ebp - 0xbe]
mov ecx, dword [ebp - 0xc4]
imul eax, ecx
mov dword [ebp - 0xd8], ecx
shl eax, 3
sar eax, 3
jmp 0xb453f3
neg edx
cmp dword [ebp - 0x104], 1
jg 0xb409bf
mov eax, 3
sub eax, dword [ebp - 0xf0]
mov dword [ebp - 0x174], 0
imul edx, dword [ebp - 0x130], 0x190
mov edi, eax
mov dword [ebp - 0x1a0], eax
mov eax, dword [ebp - 0xf4]
mov ecx, edi
lea eax, [eax + eax*4]
sar edx, cl
movzx ecx, byte [ebp - 0xf0]
lea eax, [eax*8 + 0x14]
mov dword [ebp - 0x1b8], eax
mov eax, 0x190
sar eax, cl
mov ecx, dword [ebp + 0x1c]
sub eax, 0x32
imul eax, dword [ebp - 0x1b8]
sub edx, eax
mov eax, dword [ebp - 0x14c]
test ecx, ecx
mov dword [ebp - 0x198], edx
mov dword [ebp - 0x164], eax
jne 0xb40a7c
mov eax, dword [ebp - 0x130]
lea edi, [ebp - 0xb0]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x14]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00b47160
mov dword [ebp + 0x1c], edi
jmp 0xb40a7c
mov dword [ebp - 0x1a4], 0
jmp 0xb41fa9
cmp eax, 0x64
je 0xb4386d
movzx ecx, byte [ebp - 0x1a0]
mov eax, 0x90
sar eax, cl
sub edx, eax
jmp 0xb4386d
mov eax, dword [ebp - 0x100]
mov ecx, dword [ebp - 0x108]
fld dword [0xe03748]
fld dword [ecx + eax*4]
fmul st(1)
fstp dword [ecx + eax*4]
add eax, 1
cmp dword [ebp - 0xec], eax
jg 0xb455ad
fstp st(0)
mov edi, edx
jmp 0xb452bb
mov esi, dword [ebp + 8]
mov ebx, dword [esi + 0x18]
test ebx, ebx
je 0xb4524e
mov ecx, dword [ebp - 0x110]
test ecx, ecx
jne 0xb459da
mov eax, dword [ebp + 8]
mov dword [eax + 0x50], 3
mov eax, 3
jmp 0xb4318f
imul edx, dword [ebp - 0xf4], 0xea60
mov eax, 0x12
cmp ebx, edx
jl 0xb43ae8
imul eax, dword [ebp - 0xf4], 0x13880
cmp ebx, eax
setge al
movzx eax, al
add eax, 0x13
jmp 0xb43ae8
fstp st(0)
fld dword [0xe03778]
fxch st(1)
fucom st(1)
fnstsw ax
sahf
jbe 0xb41cd6
fstp st(1)
jmp 0xb41cd8
mov eax, dword [ebp + 8]
fld dword [eax + 0x88]
fld st(0)
fld qword [0xe038b0]
fucompp
fnstsw ax
sahf
jbe 0xb459b7
mov eax, ebx
fnstcw word [ebp - 0xbe]
mov ecx, esi
shl eax, 3
mov dword [ebp - 0xd8], eax
movzx eax, word [ebp - 0xbe]
fild dword [ebp - 0xd8]
fxch st(1)
fsubr dword [0xe0375c]
mov ah, 0xc
mov word [ebp - 0xc0], ax
fmulp st(1)
fldcw word [ebp - 0xc0]
fistp dword [ebp - 0xc4]
fldcw word [ebp - 0xbe]
mov eax, dword [ebp - 0xc4]
sub ecx, eax
cmp dword [ebp - 0xf4], 2
mov dword [ebp - 0xd8], ecx
jne 0xb435d9
mov eax, dword [ebp + 8]
cmp edx, edi
fld dword [eax + 0xe4]
jle 0xb456d1
mov edx, edi
mov eax, dword [ebp - 0xdc]
movzx ecx, byte [ebp - 0xf0]
movsx eax, word [eax + edx*2]
shl eax, cl
sub eax, edx
mov dword [ebp - 0x148], eax
mov edx, eax
fild dword [ebp - 0x148]
mov dword [ebp - 0x148], ebx
fmul dword [0xe03878]
fild dword [ebp - 0x148]
fdivp st(1)
fld1
fucomp st(2)
fnstsw ax
sahf
ja 0xb45dd4
fstp st(1)
fld dword [0xe037b8]
fild dword [ebp - 0xd8]
shl edx, 3
mov dword [ebp - 0x148], edx
fmulp st(2)
fild dword [ebp - 0x148]
fmulp st(1)
fucom st(1)
fnstsw ax
sahf
jbe 0xb45db5
fstp st(0)
fldcw word [ebp - 0xc0]
fistp dword [ebp - 0xc4]
fldcw word [ebp - 0xbe]
mov eax, dword [ebp - 0xc4]
sub dword [ebp - 0xd8], eax
jmp 0xb435d9
fstp st(1)
add edx, 1
cmp edx, ebx
faddp st(2)
jne 0xb42252
add esi, 1
add ecx, dword [ebp - 0xd0]
cmp dword [ebp - 0xf4], esi
jg 0xb42211
fstp st(0)
mov eax, dword [ebp - 0xec]
sub eax, 3
imul eax, dword [ebp - 0xf4]
mov dword [ebp - 0xd0], eax
fild dword [ebp - 0xd0]
fdivp st(1)
fld1
fxch st(1)
fucompp
fnstsw ax
sahf
ja 0xb464cf
mov eax, dword [ebp + 0x1c]
mov byte [ebp - 0x1bd], 0
mov byte [ebp - 0xe4], 0
bsr eax, dword [eax + 0x1c]
xor eax, 0x1f
lea ecx, [eax + edi - 0x1e]
jmp 0xb44c61
fstp st(1)
fld st(0)
fxch st(2)
jmp 0xb42234
add eax, esi
jmp 0xb45429
mov dword [ebp - 0xd8], eax
fild dword [ebp - 0xd8]
fmulp st(1)
fdiv dword [0xe03828]
fldcw word [ebp - 0xc0]
fistp dword [ebp - 0xc4]
fldcw word [ebp - 0xbe]
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0xd8], eax
lea eax, [eax + eax*2]
shl eax, 4
jmp 0xb453f3
mov ebx, dword [ebp - 0x128]
test ebx, ebx
je 0xb4586b
sub edx, esi
mov dword [ebp - 0xd8], edx
fild dword [ebp - 0xd8]
fmul dword [0xe0388c]
fldcw word [ebp - 0xc0]
fistp dword [ebp - 0xc4]
fldcw word [ebp - 0xbe]
mov edx, dword [ebp - 0xc4]
add edx, esi
mov ecx, dword [ebp - 0x130]
test ecx, ecx
jne 0xb437a3
fld dword [0xe03758]
fld dword [ebp - 0x170]
fxch st(1)
fucompp
fnstsw ax
sahf
jbe 0xb437a3
mov edi, dword [ebp - 0x198]
cmp edi, 0x17700
je 0xb45de3
mov eax, 0x17700
fldz
sub eax, edi
test eax, eax
jle 0xb458c4
fstp st(0)
cmp eax, 0x7d00
fld dword [0xe037c0]
jle 0xb45de7
fmul dword [ebp - 0x1a8]
mov dword [ebp - 0xd8], edx
fild dword [ebp - 0xd8]
fmulp st(1)
fldcw word [ebp - 0xc0]
fistp dword [ebp - 0xc4]
fldcw word [ebp - 0xbe]
mov eax, dword [ebp - 0xc4]
add edx, eax
jmp 0xb437a3
fstp st(0)
mov dword [ebp - 0x1d0], eax
jmp 0xb42d08
fstp st(0)
mov eax, dword [ebp - 0xdc]
shl eax, 6
mov dword [ebp - 0x1d0], eax
sub eax, esi
mov esi, dword [ebp - 0xe0]
mov dword [esi + edx*4], eax
jmp 0xb42d08
mov eax, dword [ebp - 0xe8]
xor edx, edx
mov dword [ebp - 0x17c], 0
cmp eax, 0xc8
lea eax, [eax + eax*2]
setg dl
lea eax, [eax + eax*8]
mov dword [ebp - 0x110], edx
mov dword [ebp - 0xd0], eax
fild dword [ebp - 0xd0]
jmp 0xb417b4
mov edi, dword [ebp - 0x1bc]
xor eax, eax
test edi, edi
jne 0xb45977
mov eax, edx
sar eax, 0x1f
and eax, 0x3f
add eax, edx
sar eax, 6
neg eax
add esi, eax
mov eax, dword [ebp + 8]
mov dword [eax + 0xd0], 0
jmp 0xb439f5
cmp edx, edi
jge 0xb4599b
mov eax, dword [ebp - 0xdc]
movsx eax, word [eax + edx*2]
shl eax, cl
mov ecx, ebx
add ecx, eax
mov eax, dword [ebp + 8]
mov ebx, ecx
mov eax, dword [eax + 0x78]
test eax, eax
mov dword [ebp - 0x138], eax
jne 0xb45646
jmp 0xb459b9
fstp st(0)
fnstcw word [ebp - 0xbe]
movzx eax, word [ebp - 0xbe]
mov dword [ebp - 0xd8], esi
mov ah, 0xc
mov word [ebp - 0xc0], ax
jmp 0xb456c2
mov eax, dword [ebp + 8]
mov dword [eax + 0x50], 2
mov eax, 2
jmp 0xb4318f
fldz
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
sahf
ja 0xb40c2a
fstp st(0)
fldz
fchs
jmp 0xb40c2a
mov dword [ebp - 0x130], 2
jmp 0xb409fa
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x3c]
mov eax, dword [ebp - 0x104]
shl eax, cl
mov dword [ebp - 0xd8], eax
fild dword [ebp - 0xd8]
mov dword [esp + 8], 0xf
fdivr dword [0xe037ac]
fld dword [ebp - 0xe4]
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
sahf
fstp dword [ebp - 0xd8]
setae al
movzx eax, al
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call fcn.00b472d0
fld dword [ebp - 0xe4]
fld dword [ebp - 0xd8]
fucompp
fnstsw ax
sahf
jb 0xb4660d
mov edi, dword [ebp - 0x174]
test edi, edi
jle 0xb45b13
lea eax, [esi + 1]
cmp dword [ebp - 0x130], eax
jle 0xb45aad
lea eax, [esi + 2]
mov dword [ebp - 0x130], eax
shl eax, 3
mov dword [ebp - 0x178], eax
mov esi, dword [ebp - 0x130]
mov dword [esp + 4], esi
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call fcn.00b475f0
mov byte [ebp - 0xe8], 0
mov dword [ebp - 0x164], esi
mov dword [ebp - 0x14c], 2
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp - 0x178]
mov dword [ebp - 0x1bc], 1
bsr eax, dword [eax + 0x1c]
mov esi, ecx
mov dword [ebp - 0x104], ecx
xor eax, 0x1f
sub esi, eax
mov eax, esi
mov esi, dword [ebp + 0x1c]
add eax, 0x20
mov dword [esi + 0x14], eax
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x1c]
jmp 0xb40cf3
cmp dword [ebp - 0x14c], 3
setg byte [ebp - 0xe8]
jmp 0xb45ad9
fldz
fchs
fstp dword [ebp - 0xe4]
jmp 0xb40caa
fstp st(0)
fstp st(0)
fld qword [0xe037d0]
jmp 0xb45b44
fstp st(1)
fstp st(1)
fsqrt
jmp 0xb41846
fstp st(1)
fmul dword [0xe0382c]
jmp 0xb449ef
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x40]
test edi, edi
jne 0xb4344e
mov eax, dword [ebp - 0x198]
fld dword [0xe037a0]
fst dword [ebp - 0xd8]
cmp eax, 0xf9ff
jle 0xb45bc0
fld dword [0xe037a8]
cmp eax, 0x1387f
fstp dword [ebp - 0xd8]
jg 0xb45bc4
sub eax, 0xfa00
sar eax, 0xa
mov dword [ebp - 0xd0], eax
fild dword [ebp - 0xd0]
fmul dword [0xe03760]
faddp st(1)
fstp dword [ebp - 0xd8]
jmp 0xb45bc6
fstp st(0)
jmp 0xb45bc6
fstp st(0)
cmp dword [ebp - 0xf4], 2
je 0xb46054
mov eax, 2
sub eax, dword [ebp - 0xec]
mov ebx, dword [ebp - 0x160]
fldz
lea edx, [eax + ebx*2]
mov eax, dword [ebp - 0x160]
test eax, eax
jle 0xb45c31
mov ebx, dword [ebp - 0x120]
mov esi, dword [ebp - 0xec]
mov eax, 2
mov ecx, dword [ebx + 8]
mov ebx, dword [ebp - 0x148]
sub eax, esi
imul ecx, edi
lea ecx, [esi + ecx*2]
lea ecx, [ebx + ecx*2]
mov dword [ebp - 0xd0], eax
fild dword [ebp - 0xd0]
fmul dword [ecx + eax*2 - 4]
add eax, 2
cmp edx, eax
faddp st(1)
jne 0xb45c18
add edi, 1
cmp dword [ebp - 0xf4], edi
jg 0xb45be9
mov eax, dword [ebp - 0xf4]
imul eax, dword [ebp - 0x160]
mov dword [ebp - 0xd0], eax
fild dword [ebp - 0xd0]
fdivp st(1)
fadd dword [0xe037ac]
fdiv dword [0xe03828]
fld dword [0xe037b4]
fxch st(1)
fucom st(1)
fnstsw ax
sahf
ja 0xb45c85
fstp st(1)
fld dword [0xe03770]
fucom st(1)
fnstsw ax
sahf
jbe 0xb45c89
fstp st(1)
jmp 0xb45c87
fstp st(0)
jmp 0xb45c8b
fstp st(0)
fsubr dword [ebp - 0xd8]
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x78]
fsub dword [ebp - 0x1b4]
test edi, edi
fld dword [ebp - 0x170]
fld st(0)
faddp st(1)
fsubp st(1)
je 0xb45ce5
fld dword [0xe03874]
fadd dword [eax + 0x80]
fadd st(0)
fld dword [0xe037b4]
fxch st(1)
fucom st(1)
fnstsw ax
sahf
ja 0xb45cdd
fstp st(1)
fld dword [0xe03770]
fucom st(1)
fnstsw ax
sahf
jbe 0xb45ce1
fstp st(1)
jmp 0xb45cdf
fstp st(0)
jmp 0xb45ce3
fstp st(0)
fsubp st(1)
fadd dword [0xe03748]
fstp qword [esp]
call sub.msvcrt.dll_floor
fnstcw word [ebp - 0xbe]
movzx eax, word [ebp - 0xbe]
mov ah, 0xc
mov word [ebp - 0xc0], ax
fldcw word [ebp - 0xc0]
fistp dword [ebp - 0xc4]
fldcw word [ebp - 0xbe]
mov eax, dword [ebp - 0xc4]
cmp eax, 0xa
mov dword [ebp - 0xd0], eax
jle 0xb45d36
mov dword [ebp - 0xd0], 0xa
mov esi, dword [ebp - 0xd0]
mov eax, esi
sar eax, 0x1f
not eax
and esi, eax
mov dword [ebp - 0xd0], esi
jmp 0xb43465
mov eax, dword [ebp - 0x128]
mov dword [ebp - 0xe4], 0
mov dword [ebp - 0xd8], eax
jmp 0xb43418
mov esi, dword [ebp - 0x12c]
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov edi, dword [ebp - 0x148]
mov eax, esi
add eax, edi
mov dword [ebp - 0x1f4], eax
jmp 0xb42644
mov dword [ebp - 0x154], 1
mov dword [ebp - 0xf0], 0
jmp 0xb408a3
fstp st(1)
fldcw word [ebp - 0xc0]
fistp dword [ebp - 0xc4]
fldcw word [ebp - 0xbe]
mov eax, dword [ebp - 0xc4]
jmp 0xb4575b
fld dword [0xe037dc]
fsubp st(2)
fxch st(1)
jmp 0xb4571d
xor eax, eax
jmp 0xb45de9
fstp st(0)
mov dword [ebp - 0xd8], eax
fild dword [ebp - 0xd8]
fmul dword [0xe03890]
jmp 0xb458c4
mov eax, dword [ebp - 0x184]
mov ebx, dword [ebp - 0xdc]
mov edx, eax
lea ecx, [eax + ebx*4]
jmp 0xb45e22
fxch st(2)
fstp dword [edx]
add edx, 4
cmp ecx, edx
je 0xb451ec
fld dword [0xe03824]
fsubr dword [edx]
fxch st(2)
fucom st(2)
fnstsw ax
sahf
jbe 0xb45e13
fstp st(2)
fxch st(1)
fld st(0)
fxch st(2)
fxch st(1)
jmp 0xb45e15
movzx ecx, byte [ebp - 0xf0]
mov edi, dword [ebp - 0x1d0]
mov eax, 0x13
fnstcw word [ebp - 0xbe]
movzx edx, word [ebp - 0xbe]
shl eax, cl
sub edi, eax
mov dh, 0xc
mov eax, edi
mov word [ebp - 0xc0], dx
add eax, esi
mov dword [ebp - 0xd8], eax
fild dword [ebp - 0xd8]
fld dword [ebp - 0x170]
fsub dword [0xe0387c]
fmulp st(1)
fldcw word [ebp - 0xc0]
fistp dword [ebp - 0xc4]
fldcw word [ebp - 0xbe]
mov edx, dword [ebp - 0xc4]
add edx, eax
mov eax, dword [ebp - 0x11c]
test eax, eax
sete al
jmp 0xb436d7
mov esi, dword [ebp + 8]
mov edx, dword [esi + 0x18]
cmp edx, 2
jle 0xb45246
mov eax, dword [ebp - 0xf4]
lea eax, [eax + eax*4]
add eax, eax
cmp dword [ebp - 0x14c], eax
jl 0xb459da
mov eax, dword [ebp - 0x210]
mov dword [esp + 0x28], eax
mov eax, dword [ebp - 0x154]
mov dword [esp + 0x24], eax
mov eax, dword [ebp - 0xf4]
mov dword [esp + 0x20], eax
mov eax, dword [ebp - 0x138]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp - 0x1ec]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 8]
add eax, 0x64
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 8]
add eax, 0x60
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x50]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 8]
add eax, 0x58
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x140]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x120]
mov dword [esp], eax
call fcn.00b3dd00
mov esi, dword [ebp + 8]
mov dword [esi + 0x50], eax
jmp 0xb4318f
mov dword [ebp - 0xdc], 2
jmp 0xb41b5d
fstp st(0)
fldz
jmp 0xb4498c
mov ebx, dword [ebp - 0xec]
cmp eax, ebx
jge 0xb4628b
mov ebx, dword [ebp - 0x104]
mov esi, dword [ebp - 0x108]
mov edx, eax
mov edi, dword [ebp - 0x148]
fldz
mov ecx, esi
add edi, ebx
add ecx, ebx
mov ebx, edi
jmp 0xb45fdd
fld dword [ebx + edx*4]
fsub dword [ecx + edx*4]
fldz
fucom st(1)
fnstsw ax
sahf
ja 0xb46030
fstp st(0)
faddp st(2)
fxch st(1)
fmul dword [0xe03748]
fstp dword [esi + edx*4]
add edx, 1
cmp dword [ebp - 0xec], edx
je 0xb42bfe
fld dword [ecx + edx*4]
fld dword [0xe037a0]
fsubr dword [esi + edx*4]
fxch st(1)
fucom st(1)
fnstsw ax
sahf
jbe 0xb45ff6
fstp st(1)
jmp 0xb45ff8
fstp st(0)
fst dword [ecx + edx*4]
fld dword [esi + edx*4]
fxch st(1)
fsub dword [0xe037a0]
fxch st(1)
fucom st(1)
fnstsw ax
sahf
jbe 0xb46013
fstp st(1)
jmp 0xb46015
fstp st(0)
mov eax, dword [ebp - 0x148]
fst dword [esi + edx*4]
fsubr dword [eax + edx*4]
fxch st(1)
fucom st(1)
fnstsw ax
sahf
jbe 0xb45fb0
fstp st(1)
fld st(0)
jmp 0xb45fb0
fstp st(1)
jmp 0xb45fc1
fstp st(0)
fstp st(0)
mov dword [esp + 8], 0x6ea
mov dword [esp + 4], str.celt_celt_encoder.c
mov dword [esp], str.assertion_failed:_count_0
call fcn.00b371e0
mov eax, dword [ebp + 8]
fldz
mov esi, 2
mov eax, dword [eax + 0xe8]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x48]
and eax, 7
mov eax, dword [eax*4 + 0xe03000]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0x120]
movzx ecx, byte [ebp - 0xf0]
fstp dword [ebp - 0xdc]
mov ebx, dword [eax + 0x20]
movsx edx, word [ebx + esi - 2]
mov eax, edx
shl eax, cl
movsx ecx, word [ebx + esi]
add esi, 2
sub ecx, edx
mov edx, ecx
movzx ecx, byte [ebp - 0xf0]
shl edx, cl
mov dword [esp + 8], edx
mov ebx, dword [ebp - 0x11c]
lea edx, [eax + ebx]
mov ebx, dword [ebp - 0x140]
lea edx, [ebx + edx*4]
lea eax, [ebx + eax*4]
mov dword [esp + 4], edx
mov dword [esp], eax
mov eax, dword [ebp - 0xc8]
call eax
fld dword [ebp - 0xdc]
cmp esi, 0x12
faddp st(1)
jne 0xb46080
fmul dword [0xe0376c]
fabs
fld1
fxch st(1)
fucom st(1)
fnstsw ax
sahf
jbe 0xb466ce
fstp st(0)
cmp dword [ebp - 0xd0], 8
jle 0xb46618
jmp 0xb46112
fstp st(1)
fld st(0)
mov ebx, 8
jmp 0xb46122
fstp st(2)
mov eax, dword [ebp - 0x120]
add ebx, 1
movzx ecx, byte [ebp - 0xf0]
fstp dword [ebp - 0xf8]
mov esi, dword [eax + 0x20]
fstp dword [ebp - 0xdc]
movsx edx, word [esi + ebx*2 - 2]
mov eax, edx
shl eax, cl
movsx ecx, word [esi + ebx*2]
sub ecx, edx
mov edx, ecx
movzx ecx, byte [ebp - 0xf0]
shl edx, cl
mov dword [esp + 8], edx
mov esi, dword [ebp - 0x11c]
lea edx, [eax + esi]
mov esi, dword [ebp - 0x140]
lea edx, [esi + edx*4]
lea eax, [esi + eax*4]
mov dword [esp + 4], edx
mov dword [esp], eax
mov eax, dword [ebp - 0xc8]
call eax
fabs
fld dword [ebp - 0xdc]
fxch st(1)
fucom st(1)
fnstsw ax
sahf
fld dword [ebp - 0xf8]
jbe 0xb4619e
fstp st(1)
jmp 0xb461a2
fstp st(2)
fxch st(1)
cmp dword [ebp - 0xd0], ebx
fld st(1)
jg 0xb46120
fstp st(0)
fld1
fld st(2)
fabs
fucomp st(1)
fnstsw ax
fxch st(1)
fmul st(0)
sahf
fsubr dword [0xe03860]
jbe 0xb461d1
fstp st(2)
fxch st(1)
fxch st(1)
jmp 0xb461d5
fstp st(1)
fxch st(1)
fstp dword [ebp - 0xd0]
fstp qword [esp]
call sub.msvcrt.dll_log
fld qword [0xe03868]
fmulp st(1)
fstp dword [ebp - 0xbc]
fld dword [ebp - 0xbc]
fld st(0)
fstp dword [ebp - 0xdc]
fmul dword [0xe03748]
fstp dword [ebp - 0xc8]
fld dword [ebp - 0xd0]
fmul st(0)
fsubr dword [0xe03860]
fst qword [esp]
fstp dword [ebp - 0xd0]
call sub.msvcrt.dll_log
fmul qword [0xe03868]
fstp dword [ebp - 0xbc]
fld dword [ebp - 0xbc]
fld dword [ebp - 0xc8]
fucom st(1)
fnstsw ax
fstp st(1)
fld dword [ebp - 0xd0]
sahf
fld dword [ebp - 0xdc]
ja 0xb4662a
fstp st(2)
fxch st(1)
fstp dword [ebp - 0xd0]
fstp qword [esp]
call sub.msvcrt.dll_log
fld qword [0xe03868]
fmulp st(1)
fstp dword [ebp - 0xbc]
fld dword [ebp - 0xbc]
fld dword [ebp - 0xd0]
jmp 0xb4662c
fstp st(0)
mov ecx, dword [ebp - 0x190]
mov esi, dword [ebp - 0x188]
mov eax, dword [ebp - 0x110]
test ecx, ecx
sete byte [ebp - 0xd0]
test esi, esi
movzx ebx, byte [ebp - 0xd0]
setne byte [ebp - 0xc8]
movzx ecx, byte [ebp - 0xc8]
xor eax, 1
mov edi, eax
and edi, 1
mov eax, ebx
mov ebx, ecx
or eax, ebx
mov ebx, edi
and al, bl
je 0xb464bc
mov ebx, dword [ebp + 8]
mov edx, dword [ebx + 0x78]
test edx, edx
je 0xb42cfe
mov edi, eax
mov eax, dword [ebp - 0xec]
cmp eax, 0x13
mov ecx, eax
jle 0xb462f7
mov ecx, 0x13
cmp dword [ebp - 0x100], ecx
jl 0xb45327
jmp 0xb42cfe
fldz
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x17c], 0
fld st(0)
jmp 0xb417e5
fmulp st(1)
jmp 0xb45096
mov eax, dword [ebp - 0x1f0]
jmp 0xb44f4a
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], str.celt_celt_encoder.c
mov dword [esp], str.assertion_failed:__celt_isnan_freq_0_____C1___celt_isnan_freq_N___
call fcn.00b371e0
mov dword [ebp - 0x1a4], 0
mov dword [ebp - 0x16c], 0
jmp 0xb41918
mov dword [esp + 8], 0x60b
mov dword [esp + 4], str.celt_celt_encoder.c
mov dword [esp], str.assertion_failed:_st__signalling0
call fcn.00b371e0
mov eax, dword [ebp + 8]
movzx ecx, byte [ebp - 0xf8]
mov eax, dword [eax + 0xd8]
mov dword [ebp - 0xd8], eax
sar eax, cl
add esi, eax
jmp 0xb4351b
fstp st(2)
fxch st(1)
fld qword [0xe03818]
fld dword [0xe03814]
fmul st(2)
fsubrp st(1)
fldz
fld st(0)
fucom st(2)
fnstsw ax
sahf
ja 0xb46403
fstp st(1)
fxch st(2)
fucomp st(3)
fnstsw ax
fstp st(2)
sahf
ja 0xb45b32
fld st(1)
fsqrt
fxch st(1)
fucomp st(2)
fnstsw ax
sahf
jbe 0xb41844
fstp qword [ebp - 0xd0]
fstp qword [esp]
call sub.msvcrt.dll_sqrt
fstp st(0)
fld qword [ebp - 0xd0]
jmp 0xb41846
fstp st(0)
fstp st(2)
fstp st(0)
fstp st(1)
jmp 0xb45b44
cmp dword [ebp - 0xec], 1
fld dword [eax]
fst dword [ebp - 0x80]
jle 0xb4646a
mov edx, 1
fld1
jmp 0xb46439
fld dword [ebp + edx*4 - 0x84]
fxch st(1)
fsub st(1), st(0)
mov eax, dword [ebp - 0x150]
fld dword [eax + edx*4]
fxch st(2)
fucom st(2)
fnstsw ax
sahf
jbe 0xb46453
fstp st(2)
fxch st(1)
jmp 0xb46457
fstp st(0)
fxch st(1)
fstp dword [ebp + edx*4 - 0x80]
add edx, 1
cmp dword [ebp - 0xec], edx
jne 0xb46430
fstp st(0)
jmp 0xb4646c
fstp st(0)
mov eax, dword [ebp - 0x124]
shl eax, 2
mov dword [ebp - 0x18c], eax
jmp 0xb4219c
fstp st(0)
mov dword [esp + 8], 0x172
mov dword [esp + 4], str.celt_celt_encoder.c
mov dword [esp], str.assertion_failed:__celt_isnan_norm_
call fcn.00b371e0
fstp st(0)
mov dword [esp + 8], 0x171
mov dword [esp + 4], str.celt_celt_encoder.c
mov dword [esp], str.assertion_failed:__celt_isnan_tmp_0__
call fcn.00b371e0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x78]
test ecx, ecx
jne 0xb462e5
jmp 0xb42cfe
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x48]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x10], eax
mov edi, dword [ebp - 0xf0]
mov dword [esp + 0xc], edi
mov eax, dword [ebp - 0xfc]
mov dword [esp + 8], eax
mov ebx, dword [ebp - 0xf4]
mov dword [esp + 4], ebx
mov eax, dword [ebp - 0xe0]
mov dword [esp], eax
mov esi, dword [ebp - 0x120]
mov edx, dword [ebp - 0x154]
mov ecx, dword [ebp - 0x13c]
mov eax, esi
call fcn.00b40330
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x48]
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], ebx
mov dword [esp + 0x18], eax
mov edi, dword [ebp - 0x138]
mov dword [esp + 0xc], edi
mov ecx, dword [ebp - 0x168]
mov dword [esp + 8], ecx
mov eax, dword [ebp - 0xe0]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.00b3d5d0
mov dword [esp + 0x14], ebx
mov eax, dword [ebp - 0x148]
mov dword [esp + 0x10], eax
mov ecx, dword [ebp - 0x168]
mov dword [esp + 0xc], ecx
mov eax, dword [ebp - 0xec]
mov dword [esp + 4], edi
mov dword [esp], esi
mov dword [esp + 8], eax
call fcn.00b4a1e0
mov edx, dword [ebp - 0x1c4]
test edx, edx
jle 0xb46685
fild dword [ebp - 0xf0]
mov edx, dword [ebp - 0x180]
mov eax, dword [ebp - 0x110]
fmul dword [0xe03748]
fld dword [edx + eax*4]
fadd st(1)
fstp dword [edx + eax*4]
add eax, 1
cmp eax, dword [ebp - 0x1c4]
jne 0xb465af
fstp st(0)
mov eax, dword [ebp + 0x1c]
mov ebx, dword [ebp + 0x1c]
fld dword [0xe03758]
mov dword [ebp - 0x110], 1
bsr eax, dword [eax + 0x1c]
mov edx, dword [ebx + 0x14]
fstp dword [ebp - 0x170]
xor eax, 0x1f
cmp dword [ebp - 0xf0], 1
lea ecx, [eax + edx - 0x1e]
mov eax, dword [ebp - 0x154]
setg byte [ebp - 0x1bd]
mov dword [ebp - 0x16c], eax
jmp 0xb44c61
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x1c]
jmp 0xb40cdb
fstp st(0)
fld dword [0xe038a8]
fld dword [0xe038ac]
fxch st(1)
jmp 0xb4662c
fstp st(1)
fmul dword [0xe03870]
fld dword [0xe037b0]
fucom st(1)
fnstsw ax
sahf
jbe 0xb46643
fstp st(1)
jmp 0xb46645
fstp st(0)
fadd dword [ebp - 0xd8]
mov eax, dword [ebp + 8]
fstp dword [ebp - 0xd8]
fld dword [0xe03824]
fadd dword [eax + 0xe4]
fxch st(1)
fmul dword [0xe03748]
fchs
fucom st(1)
fnstsw ax
sahf
jbe 0xb46675
mov eax, dword [ebp + 0x1c]
mov ebx, dword [ebp + 0x1c]
fld dword [0xe03758]
mov dword [ebp - 0x110], 1
bsr eax, dword [eax + 0x1c]
mov edx, dword [ebx + 0x14]
fstp dword [ebp - 0x170]
xor eax, 0x1f
cmp dword [ebp - 0xf0], 1
lea ecx, [eax + edx - 0x1e]
mov eax, dword [ebp - 0x154]
setg byte [ebp - 0x1bd]
mov dword [ebp - 0x16c], eax
jmp 0xb44c61
fstp st(1)
cmp dword [ebp - 0xd0], 8
fld st(0)
jg 0xb46110
jmp 0xb461b2