Function at 0x489530
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x7c
mov ecx, dword [esp + 0x88]
push esi
mov esi, dword [esp + 0x88]
push edi
mov edi, dword [esp + 0x94]
mov edx, dword [esp + 0x88]
fld dword [ecx + 4]
fadd dword [edi + 4]
mov eax, dword [edx]
mov dword [esp + 8], eax
mov dword [esp + 0x18], eax
fadd dword [esi + 4]
mov eax, dword [edx + 4]
mov dword [esp + 0x10], eax
mov eax, dword [edx + 8]
fadd dword [edx + 4]
mov dword [esp + 0xc], eax
mov dword [esp + 0x1c], eax
fmul dword [0x4b00a8]
fstp dword [esp + 0x44]
fld dword [esi]
fcomp dword [esp + 8]
fnstsw ax
test ah, 1
je 0x489596
mov eax, dword [esi]
mov dword [esp + 0x18], eax
fld dword [esi]
fcomp dword [esp + 8]
fnstsw ax
test ah, 0x41
jne 0x4895a9
mov eax, dword [esi]
mov dword [esp + 8], eax
fld dword [esi + 4]
fcomp dword [esp + 0x10]
fnstsw ax
test ah, 1
je 0x4895be
mov eax, dword [esi + 4]
mov dword [esp + 0x10], eax
fld dword [esi + 8]
fcomp dword [esp + 0xc]
fnstsw ax
test ah, 1
je 0x4895d3
mov eax, dword [esi + 8]
mov dword [esp + 0x1c], eax
fld dword [esi + 8]
fcomp dword [esp + 0xc]
fnstsw ax
test ah, 0x41
jne 0x4895e8
mov eax, dword [esi + 8]
mov dword [esp + 0xc], eax
fld dword [ecx]
fcomp dword [esp + 0x18]
fnstsw ax
test ah, 1
je 0x4895fb
mov eax, dword [ecx]
mov dword [esp + 0x18], eax
fld dword [ecx]
fcomp dword [esp + 8]
fnstsw ax
test ah, 0x41
jne 0x48960e
mov eax, dword [ecx]
mov dword [esp + 8], eax
fld dword [ecx + 4]
fcomp dword [esp + 0x10]
fnstsw ax
test ah, 1
je 0x489623
mov eax, dword [ecx + 4]
mov dword [esp + 0x10], eax
fld dword [ecx + 8]
fcomp dword [esp + 0x1c]
fnstsw ax
test ah, 1
je 0x489638
mov eax, dword [ecx + 8]
mov dword [esp + 0x1c], eax
fld dword [ecx + 8]
fcomp dword [esp + 0xc]
fnstsw ax
test ah, 0x41
jne 0x48964d
mov eax, dword [ecx + 8]
mov dword [esp + 0xc], eax
fld dword [edi]
fcomp dword [esp + 0x18]
fnstsw ax
test ah, 1
je 0x489660
mov eax, dword [edi]
mov dword [esp + 0x18], eax
fld dword [edi]
fcomp dword [esp + 8]
fnstsw ax
test ah, 0x41
jne 0x489673
mov eax, dword [edi]
mov dword [esp + 8], eax
fld dword [edi + 4]
fcomp dword [esp + 0x10]
fnstsw ax
test ah, 1
je 0x489688
mov eax, dword [edi + 4]
mov dword [esp + 0x10], eax
fld dword [edi + 8]
fcomp dword [esp + 0x1c]
fnstsw ax
test ah, 1
je 0x48969d
mov eax, dword [edi + 8]
mov dword [esp + 0x1c], eax
fld dword [edi + 8]
fcomp dword [esp + 0xc]
fnstsw ax
test ah, 0x41
jne 0x4896b2
mov eax, dword [edi + 8]
mov dword [esp + 0xc], eax
fld dword [esp + 0xb0]
fcomp dword [0x4b0004]
fnstsw ax
test ah, 0x40
jne 0x4896d7
fld dword [esp + 0x10]
fadd dword [esp + 0xb0]
fstp dword [esp + 0x3c]
jmp 0x4896df
mov dword [esp + 0x3c], 0x49742400
fld dword [edx + 4]
fsub dword [0x4b0314]
mov eax, dword [edx]
mov dword [esp + 0x54], eax
mov eax, dword [edx + 8]
mov dword [esp + 0x5c], eax
mov eax, dword [esi]
fstp dword [esp + 0x58]
fld dword [esi + 4]
fsub dword [0x4b0314]
mov dword [esp + 0x60], eax
mov eax, dword [esi + 8]
mov dword [esp + 0x68], eax
mov eax, dword [ecx]
mov esi, dword [esp + 0xbc]
mov dword [esp + 0x6c], eax
fstp dword [esp + 0x64]
fld dword [ecx + 4]
fsub dword [0x4b0314]
mov eax, dword [ecx + 8]
mov dword [esp + 0x74], eax
mov eax, dword [edi]
mov dword [esp + 0x78], eax
mov eax, dword [edi + 8]
fstp dword [esp + 0x70]
fld dword [edi + 4]
fsub dword [0x4b0314]
test esi, esi
mov dword [esp + 0x80], eax
fstp dword [esp + 0x7c]
je 0x489770
mov eax, 0x49742400
mov dword [esi + 0x10], eax
mov dword [esi + 8], eax
mov dword [esi], eax
mov eax, 0xc9742400
mov dword [esi + 0x14], eax
mov dword [esi + 0xc], eax
mov dword [esi + 4], eax
fld dword [edx]
fadd dword [ecx]
fmul dword [0x4b000c]
fstp dword [esp + 0x48]
fld dword [ecx + 4]
fadd dword [edx + 4]
fmul dword [0x4b000c]
fstp dword [esp + 0x4c]
fld dword [edx + 8]
fadd dword [ecx + 8]
lea ecx, [esp + 0x48]
push ecx
fmul dword [0x4b000c]
fstp dword [esp + 0x54]
call fcn.0046b220
mov edx, eax
add esp, 4
test edx, edx
mov dword [esp + 0x24], edx
je 0x48a40d
mov eax, dword [edx]
mov dword [esp + 0x40], 0
test eax, eax
jle 0x48a40d
push ebx
push ebp
xor eax, eax
jmp 0x4897d5
mov edx, dword [esp + 0x2c]
mov edx, dword [edx + 0xc]
mov cx, word [0x7ac5c8]
mov ax, word [edx + eax*2]
mov edx, eax
and edx, 0x3fff
cmp dx, cx
jge 0x489808
and eax, 0x3fff
lea edi, [eax*8]
sub edi, eax
mov eax, dword [0x7ac5c4]
shl edi, 4
jmp 0x489823
movsx ecx, cx
and eax, 0x3fff
sub eax, ecx
lea edi, [eax*8]
sub edi, eax
mov eax, dword [0x7ac5cc]
shl edi, 4
fld dword [edi + eax + 0xc]
fcomp dword [0x4b06d8]
add edi, eax
fnstsw ax
test ah, 0x41
je 0x48a3f1
fld dword [esp + 0x20]
fcomp dword [edi + 0x5c]
fnstsw ax
test ah, 0x41
je 0x48a3f1
fld dword [esp + 0x10]
fcomp dword [edi + 0x58]
fnstsw ax
test ah, 1
jne 0x48a3f1
fld dword [esp + 0x24]
fcomp dword [edi + 0x6c]
fnstsw ax
test ah, 0x41
je 0x48a3f1
fld dword [esp + 0x14]
fcomp dword [edi + 0x68]
fnstsw ax
test ah, 1
jne 0x48a3f1
fld dword [esp + 0x18]
fcomp dword [edi + 0x64]
fnstsw ax
test ah, 0x41
je 0x48a3f1
fld dword [esp + 0x44]
fcomp dword [edi + 0x60]
fnstsw ax
test ah, 1
jne 0x48a3f1
mov ebx, dword [esp + 0x90]
mov ebp, dword [esp + 0x94]
mov eax, dword [esp + 0x98]
fld dword [ebx + 8]
fmul dword [edi + 0x10]
fld dword [edi + 0xc]
fmul dword [ebx + 4]
faddp st(1)
fld dword [edi + 8]
fmul dword [ebx]
faddp st(1)
fadd dword [edi + 0x14]
fchs
fst dword [esp + 0x1c]
fld dword [edi + 0xc]
fmul dword [ebp + 4]
fld dword [ebp + 8]
fmul dword [edi + 0x10]
faddp st(1)
fld dword [edi + 8]
fmul dword [ebp]
faddp st(1)
fadd dword [edi + 0x14]
fchs
fstp dword [esp + 0x34]
fld dword [edi + 0x10]
fmul dword [eax + 8]
fld dword [edi + 8]
fmul dword [eax]
faddp st(1)
fld dword [eax + 4]
fmul dword [edi + 0xc]
mov eax, dword [esp + 0x9c]
faddp st(1)
fadd dword [edi + 0x14]
fchs
fstp dword [esp + 0x38]
fld dword [edi + 8]
fmul dword [eax]
fld dword [eax + 8]
fmul dword [edi + 0x10]
faddp st(1)
fld dword [eax + 4]
fmul dword [edi + 0xc]
faddp st(1)
fadd dword [edi + 0x14]
fchs
fstp dword [esp + 0x3c]
fcomp dword [0x4b0004]
fnstsw ax
test ah, 1
jne 0x48997f
fld dword [esp + 0x34]
fcomp dword [0x4b0004]
fnstsw ax
test ah, 1
jne 0x48997f
fld dword [esp + 0x38]
fcomp dword [0x4b0004]
fnstsw ax
test ah, 1
jne 0x48997f
fld dword [esp + 0x3c]
fcomp dword [0x4b0004]
fnstsw ax
test ah, 1
je 0x48a3f1
fld dword [esp + 0x68]
fmul dword [edi + 8]
fld dword [esp + 0x70]
fmul dword [edi + 0x10]
mov edx, dword [esp + 0x1c]
push 0x82fbb0
push edx
push ebx
faddp st(1)
fld dword [esp + 0x78]
fmul dword [edi + 0xc]
push ecx
lea eax, [esp + 0x6c]
faddp st(1)
fadd dword [edi + 0x14]
fchs
fstp dword [esp + 0x50]
fld dword [esp + 0x84]
fmul dword [edi + 8]
fld dword [esp + 0x8c]
fmul dword [edi + 0x10]
faddp st(1)
fld dword [esp + 0x88]
fmul dword [edi + 0xc]
faddp st(1)
fadd dword [edi + 0x14]
fchs
fstp dword [esp + 0x40]
fld dword [esp + 0x90]
fmul dword [edi + 8]
fld dword [esp + 0x98]
fmul dword [edi + 0x10]
faddp st(1)
fld dword [esp + 0x94]
fmul dword [edi + 0xc]
faddp st(1)
fadd dword [edi + 0x14]
fchs
fstp dword [esp + 0x38]
fld dword [esp + 0x6c]
fmul dword [edi + 8]
fld dword [esp + 0x74]
fmul dword [edi + 0x10]
faddp st(1)
fld dword [esp + 0x70]
fmul dword [edi + 0xc]
faddp st(1)
fadd dword [edi + 0x14]
fchs
fstp dword [esp]
push eax
call fcn.00444db0
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x54]
push 0x82fbc4
push ecx
push ebp
lea eax, [esp + 0x88]
push edx
push eax
call fcn.00444db0
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0xc0]
mov eax, dword [esp + 0x58]
push 0x82fbd8
push ecx
push edx
lea ecx, [esp + 0xa8]
push eax
push ecx
call fcn.00444db0
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0xd8]
push 0x82fbec
push edx
push eax
mov ecx, dword [esp + 0x70]
lea edx, [esp + 0xc8]
push ecx
push edx
call fcn.00444db0
fld dword [esp + 0x6c]
fcomp dword [0x4b06d4]
add esp, 0x50
fnstsw ax
test ah, 1
je 0x489e18
fld dword [esp + 0x34]
fcomp dword [0x4b06d4]
fnstsw ax
test ah, 1
je 0x489e18
fld dword [esp + 0x38]
fcomp dword [0x4b06d4]
fnstsw ax
test ah, 1
je 0x489e18
fld dword [esp + 0x3c]
fcomp dword [0x4b06d4]
fnstsw ax
test ah, 1
je 0x489e18
mov ecx, dword [esp + 0x2c]
xor eax, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x40], eax
cmp dword [ecx], eax
jle 0x489e07
mov edx, dword [esp + 0x2c]
mov ecx, dword [edx + 0xc]
mov ax, word [ecx + eax*2]
mov cx, word [0x7ac5c8]
mov edx, eax
and edx, 0x3fff
cmp dx, cx
jge 0x489b37
and eax, 0x3fff
lea esi, [eax*8]
sub esi, eax
mov eax, dword [0x7ac5c4]
shl esi, 4
jmp 0x489b52
movsx ecx, cx
and eax, 0x3fff
sub eax, ecx
lea esi, [eax*8]
sub esi, eax
mov eax, dword [0x7ac5cc]
shl esi, 4
add esi, eax
cmp esi, edi
je 0x489ded
fld dword [esi + 0xc]
fcomp dword [0x4b06d8]
fnstsw ax
test ah, 0x41
je 0x489ded
fld dword [esp + 0x20]
fcomp dword [esi + 0x5c]
fnstsw ax
test ah, 0x41
je 0x489ded
fld dword [esp + 0x10]
fcomp dword [esi + 0x58]
fnstsw ax
test ah, 1
jne 0x489ded
fld dword [esp + 0x24]
fcomp dword [esi + 0x6c]
fnstsw ax
test ah, 0x41
je 0x489ded
fld dword [esp + 0x14]
fcomp dword [esi + 0x68]
fnstsw ax
test ah, 1
jne 0x489ded
fld dword [esp + 0x18]
fcomp dword [esi + 0x64]
fnstsw ax
test ah, 0x41
je 0x489ded
fld dword [edi + 0x64]
fcomp dword [esi + 0x60]
fnstsw ax
test ah, 1
jne 0x489ded
fld dword [esi + 0xc]
fmul dword [ebx + 4]
fld dword [esi + 0x10]
fmul dword [ebx + 8]
faddp st(1)
fld dword [ebx]
fmul dword [esi + 8]
faddp st(1)
fadd dword [esi + 0x14]
fchs
fst dword [esp + 0x28]
fcomp dword [esp + 0x1c]
fnstsw ax
test ah, 0x41
jne 0x489c52
fld dword [esp + 0x64]
fmul dword [esi + 0x10]
fld dword [esp + 0x60]
fmul dword [esi + 0xc]
mov eax, dword [esp + 0x28]
lea edx, [esp + 0x50]
push edx
push eax
faddp st(1)
fld dword [esp + 0x64]
fmul dword [esi + 8]
push ebx
push ecx
lea ecx, [esp + 0x6c]
faddp st(1)
fadd dword [esi + 0x14]
fchs
fstp dword [esp]
push ecx
call fcn.00444db0
lea edx, [esp + 0x64]
push esi
push edx
call fcn.0046d2b0
add esp, 0x1c
test eax, eax
je 0x489c52
mov byte [esp + 0x30], 1
fld dword [esi + 0x10]
fmul dword [ebp + 8]
fld dword [esi + 0xc]
fmul dword [ebp + 4]
faddp st(1)
fld dword [ebp]
fmul dword [esi + 8]
faddp st(1)
fadd dword [esi + 0x14]
fchs
fst dword [esp + 0x28]
fcomp dword [esp + 0x34]
fnstsw ax
test ah, 0x41
jne 0x489cca
fld dword [esp + 0x70]
fmul dword [esi + 0x10]
fld dword [esp + 0x6c]
fmul dword [esi + 0xc]
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x50]
push eax
push ecx
faddp st(1)
fld dword [esp + 0x70]
fmul dword [esi + 8]
push ebp
push ecx
lea edx, [esp + 0x78]
faddp st(1)
fadd dword [esi + 0x14]
fchs
fstp dword [esp]
push edx
call fcn.00444db0
lea eax, [esp + 0x64]
push esi
push eax
call fcn.0046d2b0
add esp, 0x1c
test eax, eax
je 0x489cca
mov byte [esp + 0x31], 1
mov eax, dword [esp + 0x98]
fld dword [esi + 0x10]
fmul dword [eax + 8]
fld dword [esi + 0xc]
fmul dword [eax + 4]
faddp st(1)
fld dword [eax]
fmul dword [esi + 8]
faddp st(1)
fadd dword [esi + 0x14]
fchs
fst dword [esp + 0x28]
fcomp dword [esp + 0x38]
fnstsw ax
test ah, 0x41
jne 0x489d52
fld dword [esp + 0x7c]
fmul dword [esi + 0x10]
fld dword [esp + 0x78]
fmul dword [esi + 0xc]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x98]
lea ecx, [esp + 0x50]
faddp st(1)
fld dword [esp + 0x74]
fmul dword [esi + 8]
push ecx
push edx
push eax
push ecx
faddp st(1)
lea ecx, [esp + 0x84]
fadd dword [esi + 0x14]
fchs
fstp dword [esp]
push ecx
call fcn.00444db0
lea edx, [esp + 0x64]
push esi
push edx
call fcn.0046d2b0
add esp, 0x1c
test eax, eax
je 0x489d52
mov byte [esp + 0x32], 1
mov eax, dword [esp + 0x9c]
fld dword [eax]
fmul dword [esi + 8]
fld dword [esi + 0x10]
fmul dword [eax + 8]
faddp st(1)
fld dword [esi + 0xc]
fmul dword [eax + 4]
faddp st(1)
fadd dword [esi + 0x14]
fchs
fst dword [esp + 0x28]
fcomp dword [esp + 0x3c]
fnstsw ax
test ah, 0x41
jne 0x489de3
fld dword [esp + 0x88]
fmul dword [esi + 0x10]
fld dword [esp + 0x84]
fmul dword [esi + 0xc]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x9c]
lea eax, [esp + 0x50]
faddp st(1)
fld dword [esp + 0x80]
fmul dword [esi + 8]
push eax
push ecx
push edx
push ecx
faddp st(1)
lea eax, [esp + 0x90]
fadd dword [esi + 0x14]
fchs
fstp dword [esp]
push eax
call fcn.00444db0
lea ecx, [esp + 0x64]
push esi
push ecx
call fcn.0046d2b0
add esp, 0x1c
test eax, eax
je 0x489de3
mov byte [esp + 0x33], 1
cmp dword [esp + 0x30], 0x1010101
je 0x489e07
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x2c]
inc eax
mov ecx, dword [edx]
mov dword [esp + 0x40], eax
movsx eax, ax
cmp eax, ecx
jl 0x489b00
mov ecx, dword [esp + 0x2c]
movsx eax, word [esp + 0x40]
cmp eax, dword [ecx]
jl 0x48a3f1
fld dword [esp + 0xa0]
fadd dword [esp + 0xa8]
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0xa0]
mov ecx, eax
mov ebp, 4
mov dword [0x82fbd4], ecx
mov ecx, 1
fst dword [0x82fbd0]
fstp dword [0x82fbe4]
fld dword [esp + 0xa4]
fadd dword [esp + 0xac]
mov dword [0x82fbbc], edx
mov dword [0x82fbc0], eax
mov dword [0x82fbf8], edx
mov word [0x82ff50], bp
mov word [0x82ff52], bp
mov word [0x82fe30], 0
fst dword [0x82fbe8]
fstp dword [0x82fbfc]
mov word [0x82fe32], cx
mov word [0x82fe34], 2
mov word [0x82fe36], 3
mov al, byte [edi]
and eax, ecx
mov dword [esp + 0x28], ecx
add eax, 3
test ax, ax
jle 0x48a0ca
movsx eax, ax
lea esi, [edi + 0x1c]
mov dword [esp + 0x38], eax
mov ebx, dword [0x82ff50]
xor edi, edi
and ebx, 0xffff
mov dword [esp + 0x3c], edi
jle 0x48a099
xor ecx, ecx
xor edx, edx
cmp word [esp + 0x28], cx
sete cl
shl ecx, 3
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0x40]
add eax, edx
mov ax, word [eax*2 + 0x82fe30]
mov dword [esp + 0x34], eax
and eax, 0xffff
lea ecx, [eax + eax*4]
lea eax, [edx + 1]
cdq
fld dword [ecx*4 + 0x82fbb8]
idiv ebx
fmul dword [esi + 4]
fld dword [ecx*4 + 0x82fbb4]
fmul dword [esi]
faddp st(1)
fld dword [ecx*4 + 0x82fbb0]
fmul dword [esi - 4]
faddp st(1)
fadd dword [esi + 8]
lea ecx, [ecx*4 + 0x82fbb0]
mov eax, dword [esp + 0x40]
fst dword [esp + 0x1c]
fcomp dword [0x4b0004]
add edx, eax
xor eax, eax
mov ax, word [edx*2 + 0x82fe30]
lea edx, [eax + eax*4]
fnstsw ax
lea edx, [edx*4 + 0x82fbb0]
test ah, 0x41
je 0x48a003
movsx eax, word [esp + 0x28]
movsx ebx, di
shl eax, 3
mov dword [esp + 0x30], eax
add ebx, eax
mov ax, word [esp + 0x34]
inc edi
mov word [ebx*2 + 0x82fe30], ax
fld dword [edx + 8]
fmul dword [esi + 4]
fld dword [edx + 4]
fmul dword [esi]
faddp st(1)
fld dword [edx]
fmul dword [esi - 4]
faddp st(1)
fadd dword [esi + 8]
fcom dword [0x4b0004]
fnstsw ax
test ah, 0x41
jne 0x48a077
fld st(0)
fsub dword [esp + 0x1c]
xor eax, eax
mov ax, bp
fdivr st(1)
lea eax, [eax + eax*4]
lea eax, [eax*4 + 0x82fbb0]
push eax
push ecx
fstp dword [esp]
push ecx
push edx
fstp st(0)
call fcn.0048a420
mov edx, dword [esp + 0x40]
mov bp, word [0x82ff52]
movsx ecx, di
add ecx, edx
add esp, 0x10
inc edi
mov word [ecx*2 + 0x82fe30], bp
inc bp
mov word [0x82ff52], bp
jmp 0x48a079
fld dword [edx + 8]
fmul dword [esi + 4]
fld dword [edx + 4]
fmul dword [esi]
faddp st(1)
fld dword [edx]
fmul dword [esi - 4]
faddp st(1)
fadd dword [esi + 8]
fcom dword [0x4b0004]
fnstsw ax
test ah, 0x41
je 0x48a077
fld dword [esp + 0x1c]
fsub st(1)
xor eax, eax
mov ax, bp
fdivr dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea eax, [eax*4 + 0x82fbb0]
push eax
push ecx
fstp dword [esp]
push edx
push ecx
fstp st(0)
call fcn.0048a420
movsx ecx, word [esp + 0x38]
mov bp, word [0x82ff52]
add esp, 0x10
movsx edx, di
inc edi
lea eax, [edx + ecx*8]
mov word [eax*2 + 0x82fe30], bp
inc bp
mov word [0x82ff52], bp
jmp 0x48a079
fstp st(0)
mov eax, dword [esp + 0x3c]
mov ebx, dword [0x82ff50]
inc eax
and ebx, 0xffff
movsx edx, ax
cmp edx, ebx
mov dword [esp + 0x3c], eax
jl 0x489ef6
mov eax, dword [esp + 0x38]
xor ecx, ecx
cmp word [esp + 0x28], cx
mov word [0x82ff50], di
sete cl
add esi, 0x10
dec eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x38], eax
jne 0x489ecb
cmp di, 3
jb 0x48a3f1
mov edx, dword [0x82ff50]
xor esi, esi
mov ecx, edx
and ecx, 0xffff
jle 0x48a109
fld dword [esp + 0x18]
fsub dword [0x4b022c]
xor eax, eax
fstp dword [esp + 0x40]
lea eax, [eax + eax*4]
fld dword [eax*4 + 0x82fbb4]
fcomp dword [esp + 0x40]
fnstsw ax
test ah, 1
jne 0x48a109
inc esi
movsx eax, si
cmp eax, ecx
jl 0x48a0ec
movsx eax, si
cmp eax, ecx
jl 0x48a3f1
xor ebx, ebx
test ecx, ecx
jle 0x48a2ec
xor ecx, ecx
cmp word [esp + 0x28], cx
sete cl
shl ecx, 3
mov ebp, ecx
xor esi, esi
mov ecx, dword [esp + 0xc4]
lea edx, [esi + ebp]
xor eax, eax
mov ax, word [edx*2 + 0x82fe30]
test ecx, ecx
lea eax, [eax + eax*4]
lea edi, [eax*4 + 0x82fbb0]
je 0x48a1bd
fld dword [edi]
fcomp dword [ecx]
fnstsw ax
test ah, 1
je 0x48a160
mov edx, dword [edi]
mov dword [ecx], edx
fld dword [edi]
fcomp dword [ecx + 4]
fnstsw ax
test ah, 0x41
jne 0x48a171
mov eax, dword [edi]
mov dword [ecx + 4], eax
fld dword [edi + 4]
fcomp dword [ecx + 8]
fnstsw ax
test ah, 1
je 0x48a184
mov edx, dword [edi + 4]
mov dword [ecx + 8], edx
fld dword [edi + 4]
fcomp dword [ecx + 0xc]
fnstsw ax
test ah, 0x41
jne 0x48a197
mov eax, dword [edi + 4]
mov dword [ecx + 0xc], eax
fld dword [edi + 8]
fcomp dword [ecx + 0x10]
fnstsw ax
test ah, 1
je 0x48a1aa
mov edx, dword [edi + 8]
mov dword [ecx + 0x10], edx
fld dword [edi + 8]
fcomp dword [ecx + 0x14]
fnstsw ax
test ah, 0x41
jne 0x48a1bd
mov eax, dword [edi + 8]
mov dword [ecx + 0x14], eax
fld dword [esp + 0xb4]
fadd dword [edi + 4]
shl esi, 5
lea ecx, [esi + 0x82fe50]
fstp dword [edi + 4]
push ecx
push edi
push 0x4c7998
push 0x4c79d8
call fcn.004435f0
mov edx, dword [edi + 0xc]
mov ecx, dword [esp + 0xc0]
fld dword [esp + 0x5c]
mov dword [esi + 0x82fe68], edx
mov eax, dword [edi + 0x10]
mov dword [esi + 0x82fe6c], eax
mov dword [esi + 0x82fe60], ecx
fsub dword [edi + 4]
add esp, 0x10
fmul dword [0x4b0084]
fadd dword [0x4b01f4]
fadd dword [0x4b003c]
fstp dword [esp + 0x40]
mov eax, dword [esp + 0x40]
cmp ax, 0x64
jg 0x48a2d3
test ax, ax
jge 0x48a23a
xor eax, eax
jmp 0x48a244
cmp ax, 0x64
je 0x48a2d3
xor edx, edx
mov dl, byte [esi + 0x82fe63]
movsx ecx, ax
inc edx
mov eax, 0x51eb851f
imul edx, ecx
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x51eb851f
mov byte [esi + 0x82fe63], dl
xor edx, edx
mov dl, byte [esi + 0x82fe62]
inc edx
imul edx, ecx
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x51eb851f
mov byte [esi + 0x82fe62], dl
xor edx, edx
mov dl, byte [esi + 0x82fe61]
inc edx
imul edx, ecx
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x51eb851f
mov byte [esi + 0x82fe61], dl
xor edx, edx
mov dl, byte [esi + 0x82fe60]
inc edx
imul edx, ecx
imul edx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov byte [esi + 0x82fe60], dl
mov edx, dword [0x82ff50]
inc ebx
movsx esi, bx
mov eax, edx
and eax, 0xffff
cmp esi, eax
jl 0x48a12f
cmp dword [esp + 0xbc], 0xffffffff
jne 0x48a31b
mov eax, dword [0x74c7b0]
and edx, 0xffff
push 8
push edx
mov ecx, dword [eax]
push 0x82fe50
push 0x1c4
push 6
push eax
call dword [ecx + 0x70]
jmp 0x48a3f1
mov eax, edx
xor ebp, ebp
and eax, 0xffff
sub eax, 2
test eax, eax
jle 0x48a3f1
mov ecx, dword [0x6b94c4]
cmp ecx, 0x578
jge 0x48a3db
lea eax, [ecx + ecx*4]
mov edx, dword [esp + 0xc0]
shl eax, 3
sub eax, ecx
mov esi, 0x82fe50
shl eax, 2
inc ecx
mov dword [eax + 0x618264], 0
mov dword [eax + 0x61825c], 3
mov dword [eax + 0x618260], edx
mov edx, dword [esp + 0xbc]
mov dword [eax + 0x618258], 8
mov dword [eax + 0x618268], edx
mov dword [eax + 0x61826c], 0xc3800000
lea eax, [eax + 0x618274]
movsx edx, bp
mov dword [0x6b94c4], ecx
mov ecx, 8
mov edi, eax
shl edx, 5
rep movsd dword es:[edi], dword [esi]
lea esi, [edx + 0x82fe70]
lea edi, [eax + 0x20]
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
lea esi, [edx + 0x82fe90]
lea edi, [eax + 0x40]
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x6b94c4]
mov edx, dword [0x82ff50]
inc ebp
mov eax, edx
and eax, 0xffff
movsx esi, bp
sub eax, 2
cmp esi, eax
jl 0x48a335
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x2c]
inc eax
mov edx, dword [ecx]
mov dword [esp + 0x48], eax
movsx eax, ax
cmp eax, edx
jl 0x4897d1
pop ebp
pop ebx
pop edi
pop esi
add esp, 0x7c
ret