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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push edi
push esi
push ebx
sub esp, 0x94
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp + 0x10]
mov ebx, dword [edx + 0xc]
mov ecx, dword [edx + 8]
mov eax, dword [edx + 4]
mov dword [esp + 0x74], ebx
mov edi, ebx
and edi, 0x7fffffff
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], ecx
mov ecx, dword [esi + 8]
mov dword [esp + 0x8c], eax
mov eax, dword [edx]
mov edx, dword [esi + 0xc]
mov dword [esp + 0x68], eax
mov eax, edx
mov dword [esp + 0x70], edx
and eax, 0x7fffffff
mov dword [esp + 0x78], eax
mov dword [esp + 0x58], ecx
mov ecx, dword [esi + 4]
mov esi, dword [esi]
mov dword [esp + 0x5c], ecx
xor ebx, edx
mov dword [esp + 0x64], esi
mov esi, dword [esp + 0x8c]
and ebx, 0x80000000
movzx edx, di
mov dword [esp + 0x60], ebx
mov dword [esp + 0x88], edx
shr edi, 0x10
mov dword [esp + 0x6c], edi
movzx edx, ax
mov dword [esp + 0x84], edx
shr eax, 0x10
lea edx, [edi - 1]
cmp edx, 0x7ffd
ja 0x489033
lea edx, [eax - 1]
cmp edx, 0x7ffd
ja 0x489033
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x84]
mov edi, dword [esp + 0x68]
mov ecx, dword [esp + 0x64]
lea eax, [edx + eax - 0x4000]
mov dword [esp + 0x7c], eax
mov eax, edi
mul ecx
or dword [esp + 0x88], 0x10000
or ebx, 0x10000
mov dword [esp + 0x74], eax
mov eax, edi
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x5c]
mul edx
mov dword [esp + 0x6c], eax
mov eax, edi
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x58]
mul edx
mov dword [esp + 0x10], eax
mov eax, edi
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x14], edx
mul ebx
mov dword [esp + 0x68], eax
mov eax, ecx
mov dword [esp + 0x18], edx
mul esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
mov eax, edi
mul esi
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x28], edx
mul esi
mov dword [esp + 0x2c], eax
mov eax, ebx
mov dword [esp + 0x30], edx
mul esi
mov esi, dword [esp + 0x80]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x34], edx
mov eax, ecx
mul esi
mov dword [esp + 0x38], eax
mov eax, edi
mov dword [esp + 0x3c], edx
mul esi
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x44], edx
mul esi
mov dword [esp + 0x48], eax
mov eax, ebx
mov dword [esp + 0x4c], edx
mul esi
mov esi, dword [esp + 0x88]
mov dword [esp + 0x80], eax
mov dword [esp + 0x78], edx
mov eax, ecx
mul esi
mov dword [esp + 0x64], edx
mov ecx, eax
mov eax, edi
mul esi
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x50], edx
mul esi
mov edi, 0
mov dword [esp + 0x58], eax
mov eax, ebx
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x54], edx
mul esi
mov esi, dword [esp + 0xc]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x6c]
add ebx, edx
adc edi, 0
mov edx, dword [esp + 0x1c]
add ebx, edx
mov edx, dword [esp + 0x10]
adc edi, 0
mov dword [esp + 0x70], ebx
mov ebx, dword [esp + 0x20]
add esi, edx
mov edx, 0
adc edx, 0
add ebx, eax
mov eax, 0
adc eax, 0
add esi, ebx
adc edx, eax
mov ebx, dword [esp + 0x38]
add ebx, edi
mov edi, 0
adc edi, 0
mov eax, dword [esp + 0x2c]
add esi, ebx
mov ebx, dword [esp + 0x68]
adc edx, edi
mov edi, dword [esp + 0x28]
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x14]
add esi, ebx
mov ebx, 0
adc ebx, 0
add edi, eax
mov eax, 0
adc eax, 0
add esi, edi
adc ebx, eax
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x40]
add eax, edi
mov edi, 0
adc edi, 0
add ecx, edx
mov edx, 0
adc edx, 0
add eax, ecx
adc edi, edx
mov ecx, dword [esp + 0x8c]
add esi, eax
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x44]
adc ebx, edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x48]
add edi, eax
mov eax, 0
adc eax, 0
add ecx, edx
mov edx, 0
adc edx, 0
add edi, ecx
adc eax, edx
mov edx, dword [esp + 0x64]
add esi, edx
mov ecx, 0
adc ecx, 0
mov edx, dword [esp + 0x5c]
add edx, ebx
mov ebx, 0
adc ebx, 0
add esi, edx
adc ecx, ebx
mov edx, dword [esp + 0x4c]
add edi, esi
adc eax, ecx
mov esi, dword [esp + 0x34]
add esi, edx
mov ecx, 0
adc ecx, 0
mov edx, dword [esp + 0x80]
mov ebx, dword [esp + 0x50]
add edx, ebx
mov ebx, 0
adc ebx, 0
add esi, edx
adc ecx, ebx
mov edx, dword [esp + 0x58]
add edx, eax
mov eax, 0
adc eax, 0
mov ebx, dword [esp + 0x78]
add esi, edx
adc ecx, eax
mov eax, dword [esp + 0x54]
add ebx, eax
mov edx, 0
adc edx, 0
mov eax, dword [esp + 0x88]
add eax, ecx
mov ecx, dword [esp + 0x84]
adc ecx, 0
add ebx, eax
mov eax, dword [esp + 0xc]
adc edx, ecx
or eax, dword [esp + 0x70]
or eax, dword [esp + 0x74]
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 0x14]
mov eax, 1
mov ecx, 0
cmovne ecx, eax
mov dword [esp + 0x74], ecx
test dl, 2
je 0x488aa2
mov eax, dword [esp + 0x78]
add dword [esp + 0x7c], 1
shl edx, 0xf
mov ecx, eax
shr ecx, 0x11
or edx, ecx
shl eax, 0xf
mov ecx, esi
shr ecx, 0x11
or eax, ecx
mov dword [esp + 0x78], eax
shl esi, 0xf
mov eax, edi
shr eax, 0x11
or esi, eax
shl edi, 0xf
mov eax, ebx
shr eax, 0x11
or edi, eax
shl ebx, 0xf
or ebx, dword [esp + 0x74]
jmp 0x488ad9
mov eax, dword [esp + 0x78]
shl edx, 0x10
mov ecx, eax
shr ecx, 0x10
or edx, ecx
shl eax, 0x10
mov ecx, esi
shr ecx, 0x10
or eax, ecx
mov dword [esp + 0x78], eax
shl esi, 0x10
mov eax, edi
shr eax, 0x10
or esi, eax
shl edi, 0x10
mov eax, ebx
shr eax, 0x10
or edi, eax
shl ebx, 0x10
or ebx, dword [esp + 0x74]
mov eax, dword [esp + 0x7c]
cmp eax, 0x7ffd
jae 0x488bca
test ebx, ebx
je 0x488ee6
fnstcw word [esp + 8]
mov eax, dword [esp + 8]
mov ecx, dword [0x4a49e8]
movsd xmm0, qword [ecx]
and eax, 0xc00
mov dword [esp + 0x80], eax
mov eax, dword [0x4a49ec]
addsd xmm0, qword [eax]
movsd qword [esp], xmm0
jne 0x488b24
test ebx, ebx
jl 0x488b86
jmp 0x488b58
mov eax, dword [esp + 0x80]
cmp eax, 0xc00
je 0x488b58
mov eax, dword [esp + 0x60]
test eax, eax
je 0x488b4a
mov eax, dword [esp + 0x80]
cmp eax, 0x400
je 0x488b86
jmp 0x488b58
mov eax, dword [esp + 0x80]
cmp eax, 0x800
je 0x488b86
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x78]
mov ebx, dword [esp + 0x7c]
mov dword [eax], edi
mov dword [eax + 4], esi
mov dword [eax + 8], ecx
shl ebx, 0x10
add ebx, edx
mov edx, dword [esp + 0x60]
or edx, ebx
mov dword [eax + 0xc], edx
add esp, 0x94
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
add edi, 1
jne 0x488ba1
add esi, 1
jne 0x488ba1
mov eax, dword [esp + 0x78]
lea ecx, [edx + 1]
add eax, 1
cmove edx, ecx
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x80]
mov ecx, 1
cmp eax, 0
mov eax, 0
cmove eax, ecx
add ebx, ebx
mov ebx, 0
cmove ebx, ecx
and eax, ebx
not eax
and edi, eax
jmp 0x488b58
fnstcw word [esp + 8]
mov eax, dword [esp + 8]
mov dword [esp + 0xc], eax
and eax, 0xc00
jne 0x488beb
mov ecx, ebx
shr ecx, 0x1f
mov dword [esp + 0x88], ecx
jmp 0x488c24
cmp eax, 0xc00
je 0x488c05
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x488c10
cmp eax, 0x400
je 0x488fc2
xor ecx, ecx
mov dword [esp + 0x88], ecx
jmp 0x488c24
cmp eax, 0x800
je 0x48901a
xor ecx, ecx
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0x7c]
cmp ecx, 0x7ffd
jle 0x488cba
mov edx, dword [0x4a49f0]
movsd xmm0, qword [edx]
mulsd xmm0, xmm0
movsd qword [esp], xmm0
cmp eax, 0xc00
je 0x488f78
mov edx, dword [esp + 0x60]
test edx, edx
je 0x488c67
cmp eax, 0x800
je 0x488f78
jmp 0x488c72
cmp eax, 0x400
je 0x488f78
mov eax, edx
mov edx, 1
cmp eax, 0
mov edi, 0
cmovne edi, edx
mov edx, dword [ebp + 8]
shl edi, 4
mov ecx, dword [edi + 0x49df48]
mov dword [edx], ecx
mov ebx, dword [edi + 0x49df4c]
mov dword [edx + 4], ebx
mov esi, dword [edi + 0x49df50]
mov dword [edx + 8], esi
mov eax, dword [edi + 0x49df54]
mov dword [edx + 0xc], eax
add esp, 0x94
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp ecx, 0x7ffd
je 0x488fdb
mov eax, ecx
test eax, eax
jge 0x488ae8
cmp eax, 0xffffffff
jl 0x488d04
mov eax, dword [esp + 0x88]
test eax, eax
je 0x488d04
cmp edx, 0x1ffff
jb 0x488d04
jne 0x488d0f
mov eax, dword [esp + 0x78]
cmp eax, 0xffffffff
jb 0x488d04
cmp eax, 0xffffffff
jne 0x488d0f
cmp esi, 0xffffffff
jb 0x488d04
jne 0x488d0f
cmp edi, 0xffffffff
jae 0x488d0f
mov eax, 1
mov dword [esp + 0x58], eax
jmp 0x488d15
xor eax, eax
mov dword [esp + 0x58], eax
neg ecx
mov dword [esp + 0x7c], ecx
mov eax, ecx
neg eax
cmp ecx, 0x20
mov dword [esp + 0x5c], eax
jge 0x488d91
mov dword [esp + 0x54], edx
mov ecx, eax
mov edx, edi
shl edx, cl
mov ecx, 1
cmp ebx, 0
mov ebx, 0
cmovne ebx, ecx
mov ecx, eax
or ebx, edx
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x7c]
mov edx, esi
shl edx, cl
mov ecx, ebx
shr edi, cl
mov ecx, eax
or edi, edx
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x78]
mov edx, edi
shl edx, cl
mov ecx, ebx
shr esi, cl
mov ecx, eax
or esi, edx
mov edx, dword [esp + 0x54]
mov eax, edx
shl eax, cl
mov ecx, ebx
shr edi, cl
mov ecx, ebx
shr edx, cl
or edi, eax
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x78], edi
mov edi, dword [esp + 0x18]
jmp 0x488e88
mov eax, ecx
cmp eax, 0x20
je 0x488f57
cmp eax, 0x40
jge 0x488df7
mov ecx, dword [esp + 0x5c]
mov eax, esi
shl eax, cl
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x7c]
or edi, ebx
mov edi, 1
mov ebx, 0
cmovne ebx, edi
mov edi, dword [esp + 0x78]
or ebx, dword [esp + 0x50]
shl edi, cl
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x78]
mov ecx, eax
shr esi, cl
or edi, esi
mov ecx, dword [esp + 0x5c]
mov esi, edx
shl esi, cl
mov ecx, eax
shr ebx, cl
mov ecx, eax
shr edx, cl
mov dword [esp + 0x78], edx
or esi, ebx
mov ebx, dword [esp + 0x14]
jmp 0x488e86
cmp eax, 0x40
je 0x488f3b
cmp eax, 0x60
jge 0x488e3e
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x78]
shl eax, cl
mov dword [esp + 0x50], eax
or edi, esi
mov esi, dword [esp + 0x78]
or edi, ebx
mov edi, 1
mov ebx, 0
cmovne ebx, edi
mov edi, edx
shl edi, cl
or ebx, dword [esp + 0x50]
mov ecx, dword [esp + 0x7c]
shr esi, cl
or edi, esi
mov esi, edx
shr esi, cl
jmp 0x488e80
cmp eax, 0x60
je 0x488f1f
cmp eax, 0x80
jge 0x488e77
or esi, dword [esp + 0x78]
mov ecx, dword [esp + 0x5c]
mov eax, edx
shl eax, cl
mov ecx, dword [esp + 0x7c]
or esi, edi
or esi, ebx
mov esi, 1
mov ebx, 0
cmovne ebx, esi
mov edi, edx
shr edi, cl
or ebx, eax
jmp 0x488e7e
mov ebx, 1
xor edi, edi
xor esi, esi
xor eax, eax
mov dword [esp + 0x78], eax
xor edx, edx
mov eax, dword [esp + 0x58]
test eax, eax
je 0x488f14
test ebx, ebx
je 0x488eb8
mov eax, dword [0x4a49ec]
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
movsd qword [esp], xmm0
mov ecx, 0
mov dword [esp + 0x7c], ecx
jmp 0x488af0
mov eax, dword [esp + 0xc]
test al, 0x10
jne 0x488ee0
mov eax, dword [0x4a49ec]
mov ecx, dword [0x4a49f4]
movsd xmm0, qword [eax]
mulsd xmm0, qword [ecx]
movsd qword [esp], xmm0
xor ebx, ebx
mov dword [esp + 0x7c], ebx
jmp 0x488ee6
xor eax, eax
mov dword [esp + 0x7c], eax
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x78]
mov ebx, dword [esp + 0x7c]
mov dword [eax], edi
mov dword [eax + 4], esi
mov dword [eax + 8], ecx
shl ebx, 0x10
add ebx, edx
mov edx, dword [esp + 0x60]
or edx, ebx
mov dword [eax + 0xc], edx
add esp, 0x94
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [esp + 0x7c], eax
jmp 0x488ae8
or edi, esi
or edi, ebx
mov eax, 1
mov ebx, 0
cmovne ebx, eax
or ebx, dword [esp + 0x78]
mov edi, edx
jmp 0x488e7e
or edi, ebx
mov eax, 1
mov ebx, 0
cmovne ebx, eax
or ebx, esi
mov esi, edx
mov edi, dword [esp + 0x78]
jmp 0x488e80
mov eax, 1
cmp ebx, 0
mov ebx, 0
cmovne ebx, eax
or ebx, edi
mov edi, esi
mov esi, dword [esp + 0x78]
mov dword [esp + 0x78], edx
jmp 0x488e86
mov eax, dword [esp + 0x60]
mov edx, 1
cmp eax, 0
mov edi, 0
cmovne edi, edx
mov edx, dword [ebp + 8]
shl edi, 4
mov ecx, dword [edi + 0x49df98]
mov dword [edx], ecx
mov ebx, dword [edi + 0x49df9c]
mov dword [edx + 4], ebx
mov esi, dword [edi + 0x49dfa0]
mov dword [edx + 8], esi
mov eax, dword [edi + 0x49dfa4]
mov dword [edx + 0xc], eax
add esp, 0x94
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test ebx, ebx
je 0x488c05
mov ecx, 1
mov dword [esp + 0x88], ecx
jmp 0x488c24
cmp edx, 0x1ffff
jne 0x488ae8
mov ecx, dword [esp + 0x78]
cmp ecx, 0xffffffff
jne 0x488ae8
cmp esi, 0xffffffff
jne 0x488ae8
cmp edi, 0xffffffff
jne 0x488ae8
mov ecx, dword [esp + 0x88]
test ecx, ecx
jne 0x488c34
jmp 0x488ae8
test ebx, ebx
je 0x488c1b
mov ecx, 1
mov dword [esp + 0x88], ecx
jmp 0x488c24
mov edx, dword [esp + 0x80]
or edx, esi
mov ebx, 1
or edx, dword [esp + 0x68]
mov edx, 0
cmovne edx, ebx
or edx, dword [esp + 0x7c]
jne 0x489060
xor ebx, ebx
mov edx, 1
mov dword [esp + 0xc], edx
jmp 0x48909e
cmp edx, 0x10000
jae 0x489073
mov ebx, 2
mov dword [esp + 0xc], ebx
jmp 0x48909e
cmp edx, 0x7fff0000
jae 0x489088
xor ebx, ebx
mov edx, 4
mov dword [esp + 0xc], edx
jmp 0x48909e
mov ebx, 0
mov edi, 0x10
mov edx, 8
cmova edx, edi
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x58]
or edx, dword [esp + 0x5c]
mov edi, 1
or edx, dword [esp + 0x64]
mov edx, 0
cmovne edx, edi
or edx, dword [esp + 0x78]
jne 0x4890c4
mov edx, 1
jmp 0x4890f2
cmp edx, 0x10000
jae 0x4890d6
or ebx, 2
mov edx, 2
jmp 0x4890f2
cmp edx, 0x7fff0000
jae 0x4890e5
mov edx, 4
jmp 0x4890f2
mov edi, 0x10
mov edx, 8
cmova edx, edi
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x6c]
or edi, edx
cmp ecx, 0x7fff
je 0x489569
cmp eax, 0x7fff
je 0x489569
test edi, 1
je 0x489181
test ebx, ebx
je 0x489137
mov eax, dword [0x4a49e4]
mov edx, dword [0x4a49e8]
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp], xmm0
mov eax, dword [esp + 0x60]
mov edx, 1
cmp eax, 0
mov edi, 0
cmovne edi, edx
mov edx, dword [ebp + 8]
shl edi, 4
mov ecx, dword [edi + 0x49df78]
mov dword [edx], ecx
mov ebx, dword [edi + 0x49df7c]
mov dword [edx + 4], ebx
mov esi, dword [edi + 0x49df80]
mov dword [edx + 8], esi
mov eax, dword [edi + 0x49df84]
mov dword [edx + 0xc], eax
add esp, 0x94
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 0xc]
cmp edx, ebx
je 0x489313
mov edx, dword [0x4a49e4]
mov ebx, dword [0x4a49e8]
mov edi, dword [esp + 0xc]
movsd xmm0, qword [edx]
mulsd xmm0, qword [ebx]
movsd qword [esp], xmm0
cmp edi, 2
je 0x4893c2
mov eax, dword [esp + 0x84]
test eax, eax
je 0x4891c7
mov edx, eax
shl edx, 0xf
xor eax, eax
jmp 0x4891f2
mov eax, dword [esp + 0x58]
test eax, eax
je 0x4891d8
mov edx, eax
mov eax, 0x11
jmp 0x4891f2
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x4891e9
mov edx, eax
mov eax, 0x31
jmp 0x4891f2
mov edx, dword [esp + 0x64]
mov eax, 0x51
bsr edx, edx
sub eax, edx
add eax, 0x1f
mov ebx, eax
neg ebx
mov dword [esp + 0x7c], ebx
cmp eax, 0x20
jge 0x489260
mov ebx, dword [esp + 0x84]
mov edi, dword [esp + 0x58]
mov ecx, eax
shl ebx, cl
mov edx, edi
mov ecx, dword [esp + 0x7c]
shr edx, cl
mov ecx, eax
shl edi, cl
mov ecx, dword [esp + 0x7c]
or ebx, edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x84], ebx
mov ebx, edx
shr ebx, cl
mov ecx, eax
shl edx, cl
mov ecx, dword [esp + 0x7c]
or edi, ebx
mov dword [esp + 0x58], edi
mov edi, dword [esp + 0x64]
mov ebx, edi
shr ebx, cl
mov ecx, eax
shl edi, cl
mov dword [esp + 0x64], edi
or edx, ebx
mov dword [esp + 0x5c], edx
jmp 0x489309
je 0x4893a2
cmp eax, 0x40
jge 0x4892ae
mov ebx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov ecx, eax
shl ebx, cl
mov edi, edx
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0x7c]
mov ecx, ebx
shr edi, cl
mov ecx, eax
shl edx, cl
or edi, dword [esp + 0x58]
mov ecx, ebx
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x84], edi
mov edi, ebx
shr edi, cl
mov ecx, eax
shl ebx, cl
mov dword [esp + 0x5c], ebx
or edi, edx
mov dword [esp + 0x58], edi
jmp 0x489303
je 0x48938a
cmp eax, 0x60
jge 0x4892e0
mov edx, dword [esp + 0x5c]
mov edi, dword [esp + 0x64]
mov ecx, eax
shl edx, cl
mov ebx, edi
mov ecx, dword [esp + 0x7c]
shr ebx, cl
mov ecx, eax
shl edi, cl
mov dword [esp + 0x58], edi
or ebx, edx
mov dword [esp + 0x84], ebx
jmp 0x4892fd
mov edx, dword [esp + 0x64]
mov ecx, eax
mov ebx, edx
shl ebx, cl
cmp eax, 0x60
cmove ebx, edx
mov dword [esp + 0x84], ebx
xor edi, edi
mov dword [esp + 0x58], edi
xor edx, edx
mov dword [esp + 0x5c], edx
xor edx, edx
mov dword [esp + 0x64], edx
neg eax
add eax, 1
jmp 0x4887bb
fnstcw word [esp + 8]
mov ebx, dword [esp + 8]
mov eax, dword [0x4a49ec]
mov edx, dword [0x4a49e4]
mov ecx, dword [esp + 0x60]
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp], xmm0
and ebx, 0xc00
test ecx, ecx
je 0x489356
mov eax, 1
cmp ebx, 0x400
mov edx, 0
cmove edx, eax
jmp 0x489369
mov eax, 1
cmp ebx, 0x800
mov edx, 0
cmove edx, eax
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x60]
mov dword [ecx], edx
xor edx, edx
mov dword [ecx + 4], edx
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
add esp, 0x94
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x84], edx
mov dword [esp + 0x58], ebx
jmp 0x4892fd
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x5c]
mov edi, dword [esp + 0x64]
mov dword [esp + 0x84], edx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], edi
jmp 0x489303
mov edx, dword [esp + 0x88]
test edx, edx
je 0x4893d8
shl edx, 0xf
xor ebx, ebx
mov dword [esp + 0x6c], ebx
jmp 0x48940c
mov edx, dword [esp + 0x80]
test edx, edx
je 0x4893ee
mov ebx, 0x11
mov dword [esp + 0x6c], ebx
jmp 0x48940c
test esi, esi
je 0x4893ff
mov edx, esi
mov ebx, 0x31
mov dword [esp + 0x6c], ebx
jmp 0x48940c
mov edx, dword [esp + 0x68]
mov ebx, 0x51
mov dword [esp + 0x6c], ebx
bsr edx, edx
sub ebx, edx
add ebx, 0x1f
mov dword [esp + 0x6c], ebx
mov edx, ebx
neg edx
cmp ebx, 0x20
jge 0x48947f
mov edi, dword [esp + 0x88]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x80]
mov ecx, ebx
shl edi, cl
mov dword [esp + 0x88], edi
mov ecx, edx
mov edi, eax
shr edi, cl
or dword [esp + 0x88], edi
mov ecx, ebx
shl eax, cl
mov ecx, edx
mov edi, esi
shr edi, cl
mov ecx, ebx
shl esi, cl
or eax, edi
mov edi, dword [esp + 0x68]
mov dword [esp + 0x80], eax
mov ecx, edx
mov eax, edi
shr eax, cl
mov ecx, ebx
shl edi, cl
mov dword [esp + 0x68], edi
or esi, eax
mov eax, dword [esp + 0x54]
jmp 0x489528
cmp ebx, 0x20
je 0x48954e
cmp ebx, 0x40
jge 0x4894d2
mov edi, dword [esp + 0x80]
mov ecx, ebx
shl edi, cl
mov ecx, edx
mov dword [esp + 0x80], edi
mov edi, esi
shr edi, cl
mov ecx, ebx
shl esi, cl
or edi, dword [esp + 0x80]
mov ecx, edx
mov edx, dword [esp + 0x68]
mov dword [esp + 0x88], edi
mov edi, edx
shr edi, cl
mov ecx, ebx
or edi, esi
mov dword [esp + 0x80], edi
mov esi, edx
shl esi, cl
jmp 0x489522
cmp ebx, 0x40
je 0x48953a
cmp ebx, 0x60
jge 0x489500
mov ecx, ebx
shl esi, cl
mov ecx, edx
mov edx, dword [esp + 0x68]
mov edi, edx
shr edi, cl
mov ecx, ebx
shl edx, cl
mov dword [esp + 0x80], edx
or edi, esi
mov dword [esp + 0x88], edi
jmp 0x489520
mov ecx, ebx
mov edx, dword [esp + 0x68]
mov ebx, edx
shl ebx, cl
cmp ecx, 0x60
cmove ebx, edx
xor esi, esi
mov dword [esp + 0x80], esi
mov dword [esp + 0x88], ebx
xor esi, esi
xor edx, edx
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x6c]
neg edx
add edx, 1
mov dword [esp + 0x6c], edx
jmp 0x4887bb
mov edx, dword [esp + 0x68]
mov dword [esp + 0x88], esi
mov dword [esp + 0x80], edx
jmp 0x489520
mov edx, dword [esp + 0x80]
mov dword [esp + 0x88], edx
mov dword [esp + 0x80], esi
mov esi, dword [esp + 0x68]
jmp 0x489522
test edi, 0x10
je 0x489758
mov eax, dword [esp + 0xc]
cmp edx, eax
je 0x4895cd
cmp eax, 0x10
je 0x48980b
mov ebx, dword [ebp + 8]
mov eax, dword [esp + 0x64]
mov esi, dword [ebp + 0x10]
mov dword [ebx], eax
mov edx, dword [esi + 4]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 8]
mov dword [ebx + 8], ecx
mov ecx, dword [esi + 0xc]
test ecx, 0x8000
jne 0x48973f
mov edx, dword [ebp + 8]
mov eax, dword [0x4a49e0]
mov dword [edx + 0xc], ecx
movsd xmm0, qword [eax]
divsd xmm0, xmm0
movsd qword [esp], xmm0
mov ecx, dword [edx + 0xc]
jmp 0x48973f
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
and eax, 0x8000
mov ecx, 1
mov eax, 0
cmove eax, ecx
and edx, 0x8000
mov edi, 0
cmove edi, ecx
mov ebx, eax
or ebx, edi
je 0x48960e
mov edx, dword [0x4a49e0]
movsd xmm0, qword [edx]
divsd xmm0, xmm0
movsd qword [esp], xmm0
cmp edi, eax
je 0x489638
test eax, eax
je 0x4896e2
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp + 8]
mov eax, dword [esi]
mov dword [ebx], eax
mov edx, dword [esi + 4]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 8]
mov dword [ebx + 8], ecx
mov ecx, dword [esi + 0xc]
jmp 0x48973f
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x7c]
cmp eax, edx
jb 0x48967e
cmp eax, edx
jne 0x489657
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x80]
cmp eax, edx
jb 0x48967e
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x80]
cmp eax, edx
jne 0x48969c
mov eax, dword [esp + 0x5c]
cmp esi, eax
jb 0x48967e
cmp esi, eax
jne 0x48969c
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x68]
cmp eax, edx
jae 0x48969c
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp + 8]
mov eax, dword [esi]
mov dword [ebx], eax
mov edx, dword [esi + 4]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 8]
mov dword [ebx + 8], ecx
mov ecx, dword [esi + 0xc]
jmp 0x48973f
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
cmp eax, edx
jb 0x4896e2
cmp eax, edx
jne 0x4896bb
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x80]
cmp eax, edx
jb 0x4896e2
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x80]
cmp eax, edx
jne 0x4896fd
mov eax, dword [esp + 0x5c]
cmp eax, esi
jb 0x4896e2
cmp eax, esi
jne 0x4896fd
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
cmp eax, edx
jae 0x4896fd
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov eax, dword [esi]
mov dword [ebx], eax
mov edx, dword [esi + 4]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 8]
mov dword [ebx + 8], ecx
mov ecx, dword [esi + 0xc]
jmp 0x48973f
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0xc]
test edx, 0x80000000
je 0x489726
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov eax, dword [esi]
mov dword [ebx], eax
mov edx, dword [esi + 4]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 8]
mov dword [ebx + 8], ecx
mov ecx, dword [esi + 0xc]
jmp 0x48973f
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp + 8]
mov eax, dword [esi]
mov dword [ebx], eax
mov edx, dword [esi + 4]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 8]
mov dword [ebx + 8], ecx
mov ecx, dword [esi + 0xc]
mov eax, dword [ebp + 8]
or ecx, 0x8000
mov dword [eax + 0xc], ecx
add esp, 0x94
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test edi, 1
je 0x4897a5
mov eax, dword [0x4a49e0]
mov edi, dword [ebp + 8]
movsd xmm0, qword [eax]
divsd xmm0, xmm0
movsd qword [esp], xmm0
mov edx, dword [0x49df68]
mov dword [edi], edx
mov ecx, dword [0x49df6c]
mov dword [edi + 4], ecx
mov ebx, dword [0x49df70]
mov dword [edi + 8], ebx
mov esi, dword [0x49df74]
mov dword [edi + 0xc], esi
add esp, 0x94
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test ebx, ebx
je 0x4897c1
mov eax, dword [0x4a49e4]
mov edx, dword [0x4a49e8]
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp], xmm0
mov eax, dword [esp + 0x60]
mov edx, 1
cmp eax, 0
mov edi, 0
cmovne edi, edx
mov edx, dword [ebp + 8]
shl edi, 4
mov ecx, dword [edi + 0x49df48]
mov dword [edx], ecx
mov ebx, dword [edi + 0x49df4c]
mov dword [edx + 4], ebx
mov esi, dword [edi + 0x49df50]
mov dword [edx + 8], esi
mov eax, dword [edi + 0x49df54]
mov dword [edx + 0xc], eax
add esp, 0x94
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp + 8]
mov eax, dword [esp + 0x68]
mov esi, dword [ebp + 0xc]
mov dword [ebx], eax
mov edx, dword [esi + 4]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 8]
mov dword [ebx + 8], ecx
mov ecx, dword [esi + 0xc]
jmp 0x4895a1
push ebp
mov ebp, esp
and esp, 0xfffffff8
push edi
push esi
push ebx
sub esp, 0x6c
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 0x10]
mov eax, dword [edi + 8]
mov ebx, dword [edi + 0xc]
mov edx, dword [edi]
mov dword [esp + 0x50], eax
mov eax, dword [edi + 4]
mov edi, dword [esi + 0xc]
mov dword [esp + 0x4c], ebx
mov ecx, ebx
and ecx, 0x7fffffff
mov dword [esp + 0x48], ecx
mov dword [esp + 0x44], edx
mov edx, dword [esi]
mov dword [esp + 0x40], eax
mov eax, dword [esi + 8]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x3c], edi
mov dword [esp + 0x54], edx
mov edx, dword [esi + 4]
mov dword [esp + 0x58], edx
mov eax, edi
and eax, 0x7fffffff
xor ebx, edi
and ebx, 0x80000000
mov dword [esp + 0x60], ebx
movzx edi, cx
shr ecx, 0x10
mov dword [esp + 0x64], ecx
movzx esi, ax
mov ebx, eax
shr ebx, 0x10
lea edx, [ecx - 1]
cmp edx, 0x7ffd
ja 0x489f95
lea edx, [ebx - 1]
cmp edx, 0x7ffd
ja 0x489f95
mov eax, dword [esp + 0x64]
or edi, 0x10000
or esi, 0x10000
lea ebx, [eax + ebx - 0x4000]
add esp, 0xffffffd0
mov eax, dword [esp + 0x80]
mov dword [esp], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 4], edi
mov edi, dword [esp + 0x74]
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x84]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x60]
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x50]
lea edx, [esp + 0x48]
lea ecx, [esp + 0x58]
call fcn.0048a650
add esp, 0x30
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
xor ecx, ecx
mov esi, eax
and esi, 2
or esi, ecx
je 0x4899c6
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov esi, edx
shr esi, 0x11
shl edx, 0xf
shl eax, 0xf
or esi, eax
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x28]
mov eax, ecx
shr eax, 0x11
or edx, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x20], edx
mov edx, edi
shr edx, 0x11
shl edi, 0xf
shl ecx, 0xf
or edx, ecx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x30]
mov ecx, eax
shr ecx, 0x11
or edi, ecx
or edx, dword [esp + 0x34]
mov dword [esp + 0x18], edi
je 0x4899a8
mov ecx, 1
jmp 0x4899aa
xor ecx, ecx
mov edi, esi
shr edi, 0x11
shl esi, 0xf
shl eax, 0xf
or edi, eax
or esi, ecx
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], edi
add ebx, 1
jmp 0x489a38
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov esi, edx
shr esi, 0x10
shl edx, 0x10
shl eax, 0x10
or esi, eax
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x28]
mov eax, ecx
shr eax, 0x10
or edx, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x20], edx
mov edx, edi
shr edx, 0x10
shl edi, 0x10
shl ecx, 0x10
or edx, ecx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x30]
mov ecx, eax
shr ecx, 0x10
or edi, ecx
or edx, dword [esp + 0x34]
mov dword [esp + 0x18], edi
je 0x489a1f
mov ecx, 1
jmp 0x489a21
xor ecx, ecx
mov edi, esi
shr edi, 0x10
shl esi, 0x10
shl eax, 0x10
or edi, eax
or esi, ecx
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], edi
cmp ebx, 0x7ffd
jae 0x489b82
or esi, edi
je 0x489ae7
fnstcw word [esp + 0x38]
mov edx, dword [esp + 0x38]
mov eax, dword [0x4a49e8]
mov ecx, dword [0x4a49ec]
fld qword [eax]
fadd qword [ecx]
fstp qword [esp + 0x10]
and edx, 0xc00
jne 0x489a7e
mov eax, dword [esp + 0x2c]
sub eax, 0
jl 0x489b18
jmp 0x489aa4
cmp edx, 0xc00
je 0x489aa4
xor eax, eax
or eax, dword [esp + 0x60]
je 0x489a9c
cmp edx, 0x400
je 0x489b18
jmp 0x489aa4
cmp edx, 0x800
je 0x489b18
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], edx
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x58]
mov dword [eax], ecx
mov ecx, dword [esp + 0x5c]
mov dword [eax + 4], esi
shl ebx, 0x10
add edx, ebx
mov ebx, dword [esp + 0x60]
or ebx, edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
add esp, 0x6c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [ebp + 8]
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x60]
mov dword [edi], eax
mov dword [edi + 4], edx
shl ebx, 0x10
add ebx, dword [esp + 0x24]
or esi, ebx
mov dword [edi + 8], ecx
mov dword [edi + 0xc], esi
add esp, 0x6c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
add ecx, 1
adc esi, 0
mov eax, ecx
or eax, esi
je 0x489b3e
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], edi
jmp 0x489b54
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
add eax, 1
adc edi, 0
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], edi
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
add edi, edi
adc eax, eax
or edi, eax
jne 0x489b6b
mov edi, 1
jmp 0x489b6d
xor edi, edi
xor eax, eax
test edx, edx
sete al
and eax, edi
not eax
cdq
and ecx, eax
and esi, edx
jmp 0x489abc
fnstcw word [esp + 0x38]
mov edx, dword [esp + 0x38]
mov dword [esp + 8], edx
and edx, 0xc00
jne 0x489ba7
mov eax, dword [esp + 0x2c]
sub eax, 0
jl 0x489c75
xor eax, eax
jmp 0x489bd5
cmp edx, 0xc00
je 0x489ba3
xor eax, eax
or eax, dword [esp + 0x60]
je 0x489bc7
cmp edx, 0x400
je 0x489c67
xor eax, eax
jmp 0x489bd5
cmp edx, 0x800
je 0x489f7d
xor eax, eax
cmp ebx, 0x7ffd
jle 0x489c50
mov eax, dword [0x4a49f0]
fld qword [eax]
fmul st(0)
fstp qword [esp + 0x10]
cmp edx, 0xc00
je 0x489cbb
mov ecx, dword [esp + 0x60]
xor eax, eax
or ecx, eax
je 0x489c0f
cmp edx, 0x800
je 0x489c7f
mov ecx, 1
jmp 0x489c1d
cmp edx, 0x400
je 0x489cb7
xor ecx, ecx
mov esi, dword [ebp + 8]
shl ecx, 4
mov eax, dword [ecx + 0x49df48]
mov edx, dword [ecx + 0x49df4c]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ebx, dword [ecx + 0x49df50]
mov ecx, dword [ecx + 0x49df54]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ecx
add esp, 0x6c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
je 0x489f39
test ebx, ebx
jl 0x489cc7
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
jmp 0x489a44
mov eax, dword [esp + 0x28]
or eax, dword [esp + 0x2c]
je 0x489bc3
mov eax, 1
jmp 0x489bd5
mov ebx, 1
mov esi, dword [ebp + 8]
shl ebx, 4
mov eax, dword [ebx + 0x49df98]
mov edx, dword [ebx + 0x49df9c]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ecx, dword [ebx + 0x49dfa0]
mov ebx, dword [ebx + 0x49dfa4]
mov dword [esi + 8], ecx
mov dword [esi + 0xc], ebx
add esp, 0x6c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
xor ebx, ebx
jmp 0x489c84
mov edx, dword [esp + 0x60]
xor eax, eax
or edx, eax
jne 0x489c7f
jmp 0x489cb7
cmp ebx, 0xffffffff
jge 0x489cdd
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov dword [esp], eax
mov dword [esp + 0x40], edx
jmp 0x489d3e
test eax, eax
jne 0x489cf2
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov dword [esp], eax
mov dword [esp + 0x40], edx
jmp 0x489d3e
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov eax, esi
sub eax, 0xffffffff
mov edx, ecx
sbb edx, 0x1ffff
jae 0x489d1a
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov dword [esp], eax
mov dword [esp + 0x40], edx
jmp 0x489d3e
add esi, 1
add ecx, 0xfffe0001
or esi, ecx
jne 0x489d49
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov dword [esp], eax
sub eax, 0xffffffff
mov dword [esp + 0x40], edx
sbb edx, 0xffffffff
jae 0x489d58
mov eax, 1
mov dword [esp + 0x3c], eax
jmp 0x489d5e
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov dword [esp], eax
mov dword [esp + 0x40], edx
xor eax, eax
mov dword [esp + 0x3c], eax
neg ebx
mov eax, ebx
and eax, 0x3f
mov dword [esp + 0x44], eax
mov edx, ebx
neg edx
and edx, 0x3f
mov dword [esp + 4], edx
cmp ebx, 0x40
jge 0x489e0b
mov eax, dword [esp + 0x28]
or eax, dword [esp + 0x2c]
je 0x489d8e
mov ebx, 1
jmp 0x489d90
xor ebx, ebx
mov eax, dword [esp]
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 4]
call fcn.0046e3e0
mov ecx, dword [esp + 4]
mov esi, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x48], eax
mov edi, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x2c], edi
or esi, ebx
mov dword [esp + 0x28], esi
mov dword [esp + 0x4c], edx
call fcn.0046e3e0
mov ecx, dword [esp + 0x44]
mov dword [esp + 4], eax
mov eax, dword [esp]
mov ebx, edx
mov edx, dword [esp + 0x40]
call fcn.0046e400
mov ecx, dword [esp + 4]
or ecx, eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x44]
or ebx, edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x1c], ebx
call fcn.0046e400
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
jmp 0x489ea2
je 0x489f02
cmp ebx, 0x80
jge 0x489e7d
mov edx, dword [esp]
or edx, dword [esp + 0x28]
mov eax, dword [esp + 0x40]
or eax, dword [esp + 0x2c]
or edx, eax
je 0x489e37
mov eax, 1
mov dword [esp + 0x40], eax
jmp 0x489e3d
xor eax, eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 4]
mov dword [esp + 0x48], eax
mov edx, ebx
call fcn.0046e3e0
mov ecx, dword [esp + 0x44]
mov esi, eax
or esi, dword [esp + 0x40]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x28], esi
mov edi, edx
mov dword [esp + 0x2c], edi
mov edx, ebx
call fcn.0046e400
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
jmp 0x489e98
mov dword [esp + 0x28], 1
mov esi, 1
xor edi, edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edi
xor ecx, ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x489efb
or esi, edi
je 0x489eca
mov eax, dword [0x4a49ec]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
fld qword [eax]
fmul st(0)
fstp qword [esp + 0x10]
xor ebx, ebx
jmp 0x489a44
mov eax, dword [esp + 8]
test al, 0x10
jne 0x489ef4
mov eax, dword [0x4a49ec]
mov edx, dword [0x4a49f4]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
fld qword [eax]
fmul qword [edx]
fstp qword [esp + 0x10]
xor ebx, ebx
jmp 0x489a44
xor ebx, ebx
jmp 0x489ae7
xor ebx, ebx
jmp 0x489a44
mov eax, dword [esp + 0x28]
or eax, dword [esp + 0x2c]
je 0x489f13
mov esi, 1
jmp 0x489f15
xor esi, esi
or esi, dword [esp]
mov edi, dword [esp + 0x40]
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x18], ecx
and al, 0x18
mov dword [esp + 0x1c], ebx
jmp 0x489e98
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
add esi, 1
add ecx, 0xfffe0001
or esi, ecx
jne 0x489c5a
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
add esi, 1
add ecx, 1
or esi, ecx
jne 0x489c5a
test eax, eax
jne 0x489bdd
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
jmp 0x489a44
mov eax, dword [esp + 0x28]
or eax, dword [esp + 0x2c]
je 0x489bd3
mov eax, 1
jmp 0x489bd5
mov edx, dword [esp + 0x44]
or edx, dword [esp + 0x40]
je 0x489faa
mov edx, 1
mov dword [esp + 8], edx
jmp 0x489fb0
xor edx, edx
mov dword [esp + 8], edx
or edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x48]
mov dword [esp + 8], edx
or ecx, edx
jne 0x489fd0
xor edx, edx
mov dword [esp + 4], edx
mov edx, 1
mov dword [esp], edx
jmp 0x48a032
mov edx, dword [esp + 0x48]
sub edx, 0x10000
jae 0x489fea
mov edx, 2
mov dword [esp + 4], edx
mov dword [esp], edx
jmp 0x48a032
mov edx, dword [esp + 0x48]
sub edx, 0x7fff0000
jae 0x48a006
xor edx, edx
mov dword [esp + 4], edx
mov edx, 4
mov dword [esp], edx
jmp 0x48a032
xor edx, edx
mov dword [esp + 4], edx
mov edx, dword [esp + 0x48]
sub edx, 0x7fff0000
jb 0x48a02a
mov ecx, dword [esp + 8]
or ecx, edx
je 0x48a02a
mov edx, 0x10
mov dword [esp], edx
jmp 0x48a032
mov edx, 8
mov dword [esp], edx
mov edx, dword [esp + 0x54]
or edx, dword [esp + 0x58]
je 0x48a047
mov edx, 1
mov dword [esp + 8], edx
jmp 0x48a04d
xor edx, edx
mov dword [esp + 8], edx
or edx, dword [esp + 0x5c]
mov ecx, eax
mov dword [esp + 8], edx
or ecx, edx
jne 0x48a066
mov edx, 1
mov dword [esp + 8], edx
jmp 0x48a0bb
mov edx, eax
sub edx, 0x10000
jae 0x48a080
or dword [esp + 4], 2
mov edx, 2
mov dword [esp + 8], edx
jmp 0x48a0bb
mov edx, eax
sub edx, 0x7fff0000
jae 0x48a095
mov edx, 4
mov dword [esp + 8], edx
jmp 0x48a0bb
mov edx, eax
sub edx, 0x7fff0000
jb 0x48a0b2
mov ecx, dword [esp + 8]
or ecx, edx
je 0x48a0b2
mov edx, 0x10
mov dword [esp + 8], edx
jmp 0x48a0bb
mov edx, 8
mov dword [esp + 8], edx
mov edx, dword [esp]
mov ecx, edx
or ecx, dword [esp + 8]
mov edx, dword [esp + 0x64]
cmp edx, 0x7fff
je 0x48a39d
cmp ebx, 0x7fff
je 0x48a39d
test cl, 1
je 0x48a146
mov eax, dword [esp + 4]
test eax, eax
je 0x48a100
mov eax, dword [0x4a49e4]
mov edx, dword [0x4a49e8]
fld qword [eax]
fmul qword [edx]
fstp qword [esp + 0x10]
mov edx, dword [esp + 0x60]
xor eax, eax
or edx, eax
je 0x48a111
mov ecx, 1
jmp 0x48a113
xor ecx, ecx
mov esi, dword [ebp + 8]
shl ecx, 4
mov eax, dword [ecx + 0x49df78]
mov edx, dword [ecx + 0x49df7c]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ebx, dword [ecx + 0x49df80]
mov ecx, dword [ecx + 0x49df84]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ecx
add esp, 0x6c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov edx, dword [esp]
mov eax, dword [esp + 8]
cmp eax, edx
je 0x48a22f
mov eax, dword [0x4a49e4]
fld qword [eax]
mov eax, dword [0x4a49e8]
fmul qword [eax]
mov eax, edx
fstp qword [esp + 0x10]
cmp eax, 2
je 0x48a2a9
mov eax, dword [esp + 0x5c]
mov dword [esp + 4], esi
mov ecx, eax
or ecx, esi
je 0x48a187
mov ebx, 0xfffffff1
jmp 0x48a198
mov eax, dword [esp + 0x54]
mov ebx, dword [esp + 0x58]
mov dword [esp + 4], ebx
mov ebx, 0x31
mov edx, dword [esp + 4]
sub edx, 1
jae 0x48a1a6
add ebx, 0x20
jmp 0x48a1aa
mov eax, dword [esp + 4]
bsr eax, eax
sub ebx, eax
add ebx, 0x1f
cmp ebx, 0x40
jge 0x48a1fd
mov eax, dword [esp + 0x5c]
mov edx, esi
mov ecx, ebx
call fcn.0046e3e0
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x54]
mov esi, edx
mov ecx, ebx
neg ecx
mov edx, dword [esp + 0x58]
and ecx, 0x3f
call fcn.0046e400
or dword [esp + 0x5c], eax
or esi, edx
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
mov ecx, ebx
call fcn.0046e3e0
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], edx
jmp 0x48a225
je 0x48a298
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
mov ecx, ebx
and ecx, 0x3f
call fcn.0046e3e0
mov dword [esp + 0x5c], eax
mov esi, edx
xor eax, eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
neg ebx
add ebx, 1
jmp 0x4898c3
fnstcw word [esp + 0x38]
mov ebx, dword [esp + 0x38]
mov eax, dword [0x4a49ec]
mov edx, dword [0x4a49e4]
fld qword [eax]
fmul qword [edx]
fstp qword [esp + 0x10]
and ebx, 0xc00
xor ecx, ecx
or ecx, dword [esp + 0x60]
je 0x48a268
cmp ebx, 0x400
je 0x48a393
xor eax, eax
jmp 0x48a276
cmp ebx, 0x800
je 0x48a393
xor eax, eax
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x60]
mov dword [ecx + 4], 0
mov dword [ecx], eax
xor eax, eax
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
add esp, 0x6c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x54]
mov esi, dword [esp + 0x58]
mov dword [esp + 0x5c], eax
jmp 0x48a21b
mov eax, dword [esp + 0x50]
mov dword [esp + 0x3c], edi
mov edx, eax
or edx, edi
je 0x48a2c2
mov edx, 0xfffffff1
mov dword [esp + 0x64], edx
jmp 0x48a2d7
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x3c], edx
mov edx, 0x31
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x3c]
sub edx, 1
jae 0x48a2e7
add dword [esp + 0x64], 0x20
jmp 0x48a2eb
mov eax, dword [esp + 0x3c]
bsr eax, eax
mov edx, dword [esp + 0x64]
sub edx, eax
add edx, 0x1f
mov dword [esp + 0x64], edx
cmp edx, 0x40
jge 0x48a34a
mov eax, dword [esp + 0x50]
mov ecx, edx
mov edx, edi
call fcn.0046e3e0
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x44]
mov edi, edx
mov edx, dword [esp + 0x40]
neg ecx
and ecx, 0x3f
call fcn.0046e400
mov ecx, dword [esp + 0x64]
or dword [esp + 0x50], eax
mov eax, dword [esp + 0x44]
or edi, edx
mov edx, dword [esp + 0x40]
call fcn.0046e3e0
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], edx
jmp 0x48a373
mov eax, edx
cmp eax, 0x40
je 0x48a385
mov ecx, eax
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
and ecx, 0x3f
call fcn.0046e3e0
mov dword [esp + 0x50], eax
mov edi, edx
xor eax, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x64]
neg eax
add eax, 1
mov dword [esp + 0x64], eax
jmp 0x4898c3
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x40]
mov dword [esp + 0x50], eax
jmp 0x48a369
mov eax, 1
jmp 0x48a276
test cl, 0x10
je 0x48a58f
mov ecx, dword [esp]
mov edx, dword [esp + 8]
cmp edx, ecx
je 0x48a408
mov eax, ecx
cmp eax, 0x10
je 0x48a632
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
mov ebx, dword [ebp + 0x10]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
xor edx, edx
mov ecx, ebx
and ecx, 0x8000
or ecx, edx
jne 0x48a576
mov edx, dword [ebp + 8]
mov dword [edx + 8], eax
mov eax, dword [0x4a49e0]
mov dword [edx + 0xc], ebx
fld qword [eax]
fdiv st(0)
fstp qword [esp + 0x10]
mov eax, dword [edx + 8]
mov ebx, dword [edx + 0xc]
jmp 0x48a576
mov ecx, dword [esp + 0x4c]
and ecx, 0x8000
xor edx, edx
or ecx, edx
je 0x48a41f
mov edx, 1
jmp 0x48a421
xor edx, edx
mov ebx, dword [esp + 0x3c]
and ebx, 0x8000
xor ecx, ecx
test edx, edx
sete cl
mov dword [esp + 0x4c], ecx
xor edx, edx
or ebx, edx
je 0x48a443
mov ecx, 1
jmp 0x48a445
xor ecx, ecx
xor edx, edx
test ecx, ecx
sete dl
mov ecx, dword [esp + 0x4c]
or ecx, edx
je 0x48a462
mov ecx, dword [0x4a49e0]
fld qword [ecx]
fdiv st(0)
fstp qword [esp + 0x10]
mov ecx, dword [esp + 0x4c]
cmp edx, ecx
je 0x48a48f
mov eax, ecx
test eax, eax
je 0x48a51e
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
jmp 0x48a576
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x48]
sub edx, ecx
sbb ebx, eax
jb 0x48a4c9
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x48]
sub edx, dword [esp + 0x5c]
sub ecx, eax
or edx, ecx
jne 0x48a4e4
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x54]
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x58]
sub edx, ecx
sbb ebx, esi
jae 0x48a4e4
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
jmp 0x48a576
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x48]
sub edx, ecx
mov esi, eax
sbb esi, ebx
jb 0x48a51e
sub eax, dword [esp + 0x48]
mov edx, dword [esp + 0x5c]
sub edx, dword [esp + 0x50]
or edx, eax
jne 0x48a536
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x58]
sub edx, eax
sbb ebx, ecx
jae 0x48a536
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
jmp 0x48a576
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0xc]
xor edx, edx
and ecx, 0x80000000
or ecx, edx
je 0x48a560
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
jmp 0x48a576
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
mov edx, dword [ebp + 8]
or ebx, 0x8000
mov dword [edx + 8], eax
mov dword [edx + 0xc], ebx
add esp, 0x6c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test cl, 1
je 0x48a5d1
mov eax, dword [0x4a49e0]
mov edi, dword [ebp + 8]
fld qword [eax]
fdiv st(0)
fstp qword [esp + 0x10]
mov edx, dword [0x49df68]
mov ecx, dword [0x49df6c]
mov dword [edi], edx
mov dword [edi + 4], ecx
mov ebx, dword [0x49df70]
mov esi, dword [0x49df74]
mov dword [edi + 8], ebx
mov dword [edi + 0xc], esi
add esp, 0x6c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 4]
test eax, eax
je 0x48a5ec
mov eax, dword [0x4a49e4]
mov edx, dword [0x4a49e8]
fld qword [eax]
fmul qword [edx]
fstp qword [esp + 0x10]
mov edx, dword [esp + 0x60]
xor eax, eax
or edx, eax
je 0x48a5fd
mov ecx, 1
jmp 0x48a5ff
xor ecx, ecx
mov esi, dword [ebp + 8]
shl ecx, 4
mov eax, dword [ecx + 0x49df48]
mov edx, dword [ecx + 0x49df4c]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ebx, dword [ecx + 0x49df50]
mov ecx, dword [ecx + 0x49df54]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ecx
add esp, 0x6c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
mov ebx, dword [ebp + 0xc]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
jmp 0x48a3d5
test dword [0x4afc84], 0xfffffe00
jne 0x488704
test dword [0x4afc84], 0xffffffff
jne 0x48982c
call fcn.00485580
jmp fcn.0048a9b0