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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push esi
push edi
push ebx
sub esp, 0xbc
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov edi, dword [esi]
mov edx, dword [esi + 8]
mov dword [esp + 0xa8], edi
mov edi, dword [ebx + 8]
mov ecx, dword [esi + 0xc]
mov eax, ecx
mov dword [esp + 0xb8], edx
and eax, 0x7fffffff
mov edx, dword [esi + 4]
mov dword [esp + 0x9c], edi
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 4]
mov ebx, dword [ebx]
mov dword [esp + 0xa4], ebx
mov ebx, eax
shr ebx, 0x10
mov dword [esp], edx
mov edx, esi
and edx, 0x7fffffff
mov dword [esp + 0x1c], ecx
xor ecx, esi
mov dword [esp + 0x18], esi
and ecx, 0x80000000
movzx esi, ax
mov dword [esp + 0xb4], esi
mov esi, edx
mov dword [esp + 0xa0], edi
lea edi, [ebx - 1]
mov dword [esp + 0x98], ecx
movzx ecx, dx
shr esi, 0x10
mov dword [esp + 0xb0], ebx
cmp edi, 0x7ffd
mov dword [esp + 0xac], ecx
mov ebx, dword [esp]
ja 0x4b74e6
lea edi, [esi - 1]
cmp edi, 0x7ffd
ja 0x4b74e6
mov edx, dword [esp + 0xb0]
mov edi, dword [esp + 0xb4]
or edi, 0x10000
lea ecx, [edx + esi - 0x4000]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xa8]
mov eax, ecx
mov esi, dword [esp + 0xa4]
mul esi
mov dword [esp], eax
mov eax, ecx
mov dword [esp + 4], edx
mul dword [esp + 0xa0]
mov dword [esp + 8], eax
mov eax, ecx
mov dword [esp + 0x28], edx
mul dword [esp + 0x9c]
mov dword [esp + 0xb4], edi
mov edi, dword [esp + 0xac]
mov dword [esp + 0x2c], eax
or edi, 0x10000
mov eax, ecx
mov dword [esp + 0x30], edx
mul edi
mov dword [esp + 0x34], eax
mov eax, esi
mov dword [esp + 0x38], edx
mul ebx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x3c], eax
mov eax, ecx
mov dword [esp + 0x40], edx
mul ebx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x48], edx
mul ebx
mov dword [esp + 0x4c], eax
mov eax, edi
mov dword [esp + 0x50], edx
mul ebx
mov dword [esp + 0x54], eax
mov eax, esi
mov ebx, dword [esp + 0xb8]
mov dword [esp + 0x58], edx
mul ebx
mov dword [esp + 0x5c], eax
mov eax, ecx
mov dword [esp + 0x60], edx
mul ebx
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x68], edx
mul ebx
mov dword [esp + 0x6c], eax
mov eax, edi
mov dword [esp + 0x70], edx
mul ebx
mov dword [esp + 0x74], eax
mov eax, esi
mov ebx, dword [esp + 0xb4]
mov dword [esp + 0x78], edx
mul ebx
mov dword [esp + 0xac], edi
mov edi, eax
mov eax, ecx
xor ecx, ecx
mov dword [esp + 0x7c], edx
mul ebx
mov esi, dword [esp + 4]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x84], edx
mul ebx
xor ebx, ebx
add esi, dword [esp + 8]
mov dword [esp + 0x8c], edx
adc ebx, 0
add esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x2c]
adc ebx, 0
add ebx, dword [esp + 0x28]
mov dword [esp + 4], esi
mov esi, 0
adc esi, 0
add edx, dword [esp + 0x40]
mov dword [esp + 0x88], eax
adc ecx, 0
add ebx, edx
mov edx, dword [esp + 0x44]
adc esi, ecx
xor ecx, ecx
add edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x4c]
adc ecx, 0
add ebx, edx
mov edx, dword [esp + 0x34]
adc esi, ecx
xor ecx, ecx
add esi, dword [esp + 0x30]
mov dword [esp + 0x90], ebx
mov ebx, 0
adc ebx, 0
add edx, dword [esp + 0x48]
adc ecx, 0
add esi, edx
adc ebx, ecx
xor edx, edx
add eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
adc edx, 0
add ecx, edi
mov edi, 0
adc edi, 0
add eax, ecx
mov ecx, dword [esp + 0x7c]
adc edx, edi
add esi, eax
mov eax, dword [esp + 0x50]
adc ebx, edx
xor edi, edi
xor edx, edx
add ebx, dword [esp + 0x38]
mov dword [esp + 0x24], esi
adc edx, 0
xor esi, esi
add eax, dword [esp + 0x54]
adc esi, 0
add ebx, eax
adc edx, esi
xor eax, eax
mov esi, dword [esp + 0x68]
add esi, dword [esp + 0x6c]
adc eax, 0
add ecx, dword [esp + 0x80]
adc edi, 0
add esi, ecx
mov ecx, dword [esp + 0x70]
adc eax, edi
add ebx, esi
adc edx, eax
xor esi, esi
xor eax, eax
add edx, dword [esp + 0x58]
mov edi, dword [esp + 0x84]
adc esi, 0
add ecx, dword [esp + 0x74]
adc eax, 0
add edx, ecx
adc esi, eax
xor ecx, ecx
xor eax, eax
add edi, dword [esp + 0x88]
adc eax, 0
add edx, edi
mov dword [esp + 0x94], edx
adc esi, eax
mov eax, dword [esp + 0xac]
mul dword [esp + 0xb4]
add esi, dword [esp + 0x78]
mov edi, dword [esp + 0x8c]
adc ecx, 0
add edi, eax
mov eax, dword [esp + 0x94]
adc edx, 0
add esi, edi
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x90]
adc ecx, edx
or esi, dword [esp + 4]
or esi, dword [esp]
mov edx, dword [esp + 0x24]
test cl, 2
mov dword [esp + 0x1c], ecx
je 0x4b6fb0
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x90], esi
mov esi, ecx
mov edi, dword [esp + 0x1c]
shl edi, 0xf
shr esi, 0x11
or edi, esi
mov esi, eax
shl ecx, 0xf
shr esi, 0x11
or ecx, esi
mov esi, edx
mov dword [esp + 0x20], ecx
mov ecx, ebx
shl eax, 0xf
shr ecx, 0x11
or eax, ecx
mov ecx, dword [esp + 0x90]
test ecx, ecx
mov dword [esp + 0x1c], edi
mov edi, 1
cmovne ecx, edi
shl ebx, 0xf
shr esi, 0x11
shl edx, 0xf
or ebx, esi
inc dword [esp + 0x18]
or edx, ecx
jmp 0x4b7005
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x90], esi
mov esi, ecx
mov edi, dword [esp + 0x1c]
shl edi, 0x10
shr esi, 0x10
or edi, esi
mov esi, eax
shl ecx, 0x10
shr esi, 0x10
or ecx, esi
mov esi, edx
mov dword [esp + 0x20], ecx
mov ecx, ebx
shl eax, 0x10
shr ecx, 0x10
or eax, ecx
mov ecx, dword [esp + 0x90]
test ecx, ecx
mov dword [esp + 0x1c], edi
mov edi, 1
cmovne ecx, edi
shl ebx, 0x10
shr esi, 0x10
shl edx, 0x10
or ebx, esi
or edx, ecx
cmp dword [esp + 0x18], 0x7ffd
jae 0x4b70d4
test edx, edx
je 0x4b73bd
fnstcw word [esp + 0xc]
mov esi, dword [0x4fb3c8]
mov edi, dword [0x4fb3cc]
mov ecx, dword [esp + 0xc]
movsd xmm0, qword [esi]
and ecx, 0xc00
addsd xmm0, qword [edi]
movsd qword [esp + 0x10], xmm0
jne 0x4b704b
test edx, edx
jl 0x4b70a2
jmp 0x4b706f
cmp ecx, 0xc00
je 0x4b706f
cmp dword [esp + 0x98], 0
je 0x4b7067
cmp ecx, 0x400
je 0x4b70a2
jmp 0x4b706f
cmp ecx, 0x800
je 0x4b70a2
mov esi, dword [ebp + 8]
mov edx, dword [esp + 0x18]
shl edx, 0x10
add edx, dword [esp + 0x1c]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x98]
or ecx, edx
mov dword [esi], ebx
mov dword [esi + 8], eax
mov dword [esi + 0xc], ecx
add esp, 0xbc
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
inc ebx
jne 0x4b70ba
inc eax
jne 0x4b70ba
mov edi, dword [esp + 0x1c]
inc dword [esp + 0x20]
lea esi, [edi + 1]
cmove edi, esi
mov dword [esp + 0x1c], edi
test ecx, ecx
jne 0x4b70cc
xor ecx, ecx
add edx, edx
mov edx, 1
cmove ecx, edx
jmp 0x4b70ce
xor ecx, ecx
not ecx
and ebx, ecx
jmp 0x4b706f
fnstcw word [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
and ecx, 0xc00
jne 0x4b70ef
mov esi, edx
shr esi, 0x1f
jmp 0x4b711d
cmp ecx, 0xc00
je 0x4b711b
cmp dword [esp + 0x98], 0
je 0x4b710f
cmp ecx, 0x400
je 0x4b748a
jmp 0x4b711b
cmp ecx, 0x800
je 0x4b74d4
xor esi, esi
cmp dword [esp + 0x18], 0x7ffd
jle 0x4b71ae
mov eax, dword [0x4fb3d0]
cmp ecx, 0xc00
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
je 0x4b7458
cmp dword [esp + 0x98], 0
je 0x4b7162
cmp ecx, 0x800
je 0x4b7458
jmp 0x4b716e
cmp ecx, 0x400
je 0x4b7458
mov esi, dword [esp + 0x98]
shr esi, 0x1b
mov ebx, dword [ebp + 8]
mov eax, dword [esi + 0x4f44a0]
mov dword [ebx], eax
mov edx, dword [esi + 0x4f44a4]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 0x4f44a8]
mov dword [ebx + 8], ecx
mov edx, dword [esi + 0x4f44ac]
mov eax, dword [ebp + 8]
mov dword [eax + 0xc], edx
add esp, 0xbc
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
je 0x4b749c
cmp dword [esp + 0x18], 0
jge 0x4b7013
cmp dword [esp + 0x18], 0xffffffff
jl 0x4b71eb
test esi, esi
je 0x4b71eb
cmp dword [esp + 0x1c], 0x1ffff
jb 0x4b71eb
jne 0x4b71f5
cmp dword [esp + 0x20], 0xffffffff
jb 0x4b71eb
jne 0x4b71f5
cmp eax, 0xffffffff
jb 0x4b71eb
jne 0x4b71f5
cmp ebx, 0xffffffff
jae 0x4b71f5
mov dword [esp + 4], 1
jmp 0x4b71fd
mov dword [esp + 4], 0
mov esi, dword [esp + 0x18]
neg esi
mov ecx, esi
neg ecx
mov dword [esp + 0x18], esi
cmp esi, 0x20
jge 0x4b7271
mov esi, ecx
mov ecx, esi
mov edi, ebx
shl edi, cl
mov ecx, 1
test edx, edx
cmovne edx, ecx
mov ecx, esi
or edx, edi
mov edi, eax
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x18]
shl edi, cl
mov ecx, edx
shr ebx, cl
mov ecx, esi
or ebx, edi
mov dword [esp], ebx
mov ebx, dword [esp + 0x20]
mov edi, ebx
shl edi, cl
mov ecx, edx
shr eax, cl
mov ecx, esi
or eax, edi
mov edi, dword [esp + 0x1c]
mov esi, edi
shl esi, cl
mov ecx, edx
shr ebx, cl
or ebx, esi
mov dword [esp + 0x20], ebx
shr edi, cl
mov dword [esp + 0x1c], edi
mov edx, dword [esp + 0x24]
mov ebx, dword [esp]
jmp 0x4b735a
je 0x4b7439
cmp dword [esp + 0x18], 0x40
jge 0x4b72cc
or ebx, edx
mov edi, eax
mov esi, ecx
mov ecx, esi
mov edx, 0
mov ebx, 1
cmovne edx, ebx
shl edi, cl
or edx, edi
mov edi, dword [esp + 0x20]
mov ebx, edi
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x18]
shl ebx, cl
mov ecx, edx
shr eax, cl
mov ecx, esi
mov esi, dword [esp + 0x1c]
or ebx, eax
mov eax, esi
shl eax, cl
mov ecx, edx
shr edi, cl
shr esi, cl
or eax, edi
mov edx, dword [esp + 0x24]
mov dword [esp + 0x20], esi
jmp 0x4b7352
je 0x4b741b
cmp dword [esp + 0x18], 0x60
jge 0x4b7308
or ebx, eax
or ebx, edx
mov edx, 0
mov ebx, 1
mov esi, dword [esp + 0x20]
mov edi, esi
mov eax, dword [esp + 0x1c]
cmovne edx, ebx
mov ebx, eax
shl edi, cl
shl ebx, cl
or edx, edi
mov ecx, dword [esp + 0x18]
shr esi, cl
shr eax, cl
or ebx, esi
jmp 0x4b734a
je 0x4b73fd
cmp dword [esp + 0x18], 0x80
jge 0x4b7341
or eax, dword [esp + 0x20]
or eax, ebx
or eax, edx
mov edx, 0
mov edi, dword [esp + 0x1c]
mov esi, edi
mov eax, 1
mov ebx, edi
cmovne edx, eax
shl esi, cl
mov ecx, dword [esp + 0x18]
or edx, esi
shr ebx, cl
jmp 0x4b7348
mov edx, 1
xor ebx, ebx
xor eax, eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
cmp dword [esp + 4], 0
je 0x4b73f0
test edx, edx
je 0x4b738a
mov ecx, dword [0x4fb3cc]
mov dword [esp + 0x18], 0
movsd xmm0, qword [ecx]
mulsd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
jmp 0x4b701b
test byte [esp + 8], 0x10
jne 0x4b73b5
mov edx, dword [0x4fb3cc]
mov ecx, dword [0x4fb3d4]
mov dword [esp + 0x18], 0
movsd xmm0, qword [edx]
mulsd xmm0, qword [ecx]
movsd qword [esp + 0x10], xmm0
jmp 0x4b73bd
mov dword [esp + 0x18], 0
mov esi, dword [ebp + 8]
mov edx, dword [esp + 0x18]
shl edx, 0x10
add edx, dword [esp + 0x1c]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x98]
or ecx, edx
mov dword [esi], ebx
mov dword [esi + 8], eax
mov dword [esi + 0xc], ecx
add esp, 0xbc
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x18], 0
jmp 0x4b7013
or ebx, eax
mov eax, 1
or ebx, edx
mov edx, 0
mov ebx, dword [esp + 0x1c]
cmovne edx, eax
or edx, dword [esp + 0x20]
jmp 0x4b7348
mov ecx, 1
or ebx, edx
mov edx, 0
cmovne edx, ecx
mov ebx, dword [esp + 0x20]
or edx, eax
mov eax, dword [esp + 0x1c]
jmp 0x4b734a
mov ecx, 1
test edx, edx
mov esi, dword [esp + 0x1c]
cmovne edx, ecx
or edx, ebx
mov ebx, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x20], esi
jmp 0x4b7352
mov esi, dword [esp + 0x98]
shr esi, 0x1b
mov ebx, dword [ebp + 8]
mov eax, dword [esi + 0x4f44e0]
mov dword [ebx], eax
mov edx, dword [esi + 0x4f44e4]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 0x4f44e8]
mov dword [ebx + 8], ecx
mov edx, dword [esi + 0x4f44ec]
jmp 0x4b719b
test edx, edx
je 0x4b711b
mov esi, 1
jmp 0x4b711d
cmp dword [esp + 0x1c], 0x1ffff
jne 0x4b7013
cmp dword [esp + 0x20], 0xffffffff
jne 0x4b7013
cmp eax, 0xffffffff
jne 0x4b7013
cmp ebx, 0xffffffff
jne 0x4b7013
test esi, esi
jne 0x4b712b
jmp 0x4b7013
test edx, edx
je 0x4b711b
mov esi, 1
jmp 0x4b711d
mov edi, dword [esp + 0xb8]
xor ecx, ecx
or edi, ebx
or edi, dword [esp + 0xa8]
mov edi, 1
cmovne ecx, edi
or ecx, eax
jne 0x4b7516
mov dword [esp + 8], 0
mov dword [esp + 4], 1
jmp 0x4b7560
cmp ecx, 0x10000
jae 0x4b752d
mov edi, 2
mov dword [esp + 8], edi
mov dword [esp + 4], edi
jmp 0x4b7560
cmp ecx, 0x7fff0000
jae 0x4b7547
mov dword [esp + 8], 0
mov dword [esp + 4], 4
jmp 0x4b7560
mov edi, 0x10
mov ecx, 8
cmova ecx, edi
mov dword [esp + 8], 0
mov dword [esp + 4], ecx
mov edi, dword [esp + 0x9c]
xor ecx, ecx
or edi, dword [esp + 0xa0]
or edi, dword [esp + 0xa4]
mov edi, 1
cmovne ecx, edi
or ecx, edx
jne 0x4b758d
mov edi, 1
mov dword [esp], edi
jmp 0x4b75ca
cmp ecx, 0x10000
jae 0x4b75a9
mov edi, dword [esp + 8]
or edi, 2
mov dword [esp + 8], edi
mov dword [esp], 2
jmp 0x4b75ca
cmp ecx, 0x7fff0000
jae 0x4b75ba
mov dword [esp], 4
jmp 0x4b75ca
mov edi, 0x10
mov ecx, 8
cmova ecx, edi
mov dword [esp], ecx
mov edi, dword [esp + 4]
or edi, dword [esp]
cmp dword [esp + 0xb0], 0x7fff
je 0x4b7ae0
cmp esi, 0x7fff
je 0x4b7ae0
test edi, 1
je 0x4b7653
cmp dword [esp + 8], 0
je 0x4b7616
mov eax, dword [0x4fb3c4]
mov edx, dword [0x4fb3c8]
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp + 0x10], xmm0
mov ebx, dword [esp + 0x98]
shr ebx, 0x1b
mov edi, dword [ebp + 8]
mov eax, dword [ebx + 0x4f44c0]
mov dword [edi], eax
mov edx, dword [ebx + 0x4f44c4]
mov dword [edi + 4], edx
mov ecx, dword [ebx + 0x4f44c8]
mov dword [edi + 8], ecx
mov esi, dword [ebx + 0x4f44cc]
mov dword [edi + 0xc], esi
add esp, 0xbc
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 4]
cmp eax, dword [esp]
je 0x4b7825
mov eax, dword [0x4fb3c4]
mov edx, dword [0x4fb3c8]
cmp dword [esp + 4], 2
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp + 0x10], xmm0
je 0x4b78f2
cmp dword [esp + 0xac], 0
je 0x4b769c
mov edx, dword [esp + 0xac]
xor esi, esi
shl edx, 0xf
jmp 0x4b76d4
cmp dword [esp + 0x9c], 0
je 0x4b76b4
mov edx, dword [esp + 0x9c]
mov esi, 0x11
jmp 0x4b76d4
mov esi, dword [esp + 0xa0]
mov eax, 0x31
test esi, esi
mov edx, dword [esp + 0xa4]
cmovne edx, esi
mov esi, 0x51
cmovne esi, eax
bsr eax, edx
sub esi, eax
add esi, 0x1f
mov edx, esi
neg edx
mov dword [esp], edx
cmp esi, 0x20
jge 0x4b7750
mov edx, dword [esp + 0x9c]
mov ecx, esi
mov edi, edx
mov eax, dword [esp + 0xac]
shl eax, cl
mov ecx, dword [esp]
shr edi, cl
mov ecx, esi
or eax, edi
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0xa0]
mov edi, eax
shl edx, cl
mov ecx, dword [esp]
shr edi, cl
mov ecx, esi
or edx, edi
mov edi, dword [esp + 0xa4]
mov dword [esp + 0x9c], edx
mov edx, edi
shl eax, cl
mov ecx, dword [esp]
shr edx, cl
mov ecx, esi
shl edi, cl
or eax, edx
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], edi
jmp 0x4b781d
je 0x4b78c3
cmp esi, 0x40
jge 0x4b77a8
mov ecx, esi
mov edi, edx
mov eax, dword [esp + 0xa0]
mov edx, eax
shl dword [esp + 0x9c], cl
mov ecx, edi
shr edx, cl
mov ecx, esi
or edx, dword [esp + 0x9c]
shl eax, cl
mov ecx, edi
mov edi, dword [esp + 0xa4]
mov dword [esp + 0xac], edx
mov edx, edi
shr edx, cl
mov ecx, esi
shl edi, cl
or edx, eax
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa0], edi
jmp 0x4b7812
je 0x4b78a2
cmp esi, 0x60
jge 0x4b77e2
mov edi, dword [esp + 0xa4]
mov ecx, esi
mov edx, edi
mov eax, dword [esp + 0xa0]
shl eax, cl
mov ecx, dword [esp]
shr edx, cl
mov ecx, esi
shl edi, cl
or edx, eax
mov dword [esp + 0xac], edx
mov dword [esp + 0x9c], edi
jmp 0x4b7807
mov eax, dword [esp + 0xa4]
mov ecx, esi
mov edx, eax
shl edx, cl
cmp esi, 0x60
mov dword [esp + 0x9c], 0
cmove edx, eax
mov dword [esp + 0xac], edx
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
neg esi
inc esi
jmp 0x4b6ccd
fnstcw word [esp + 0xc]
mov eax, dword [0x4fb3cc]
mov edx, dword [0x4fb3c4]
mov ecx, dword [esp + 0xc]
movsd xmm0, qword [eax]
and ecx, 0xc00
mulsd xmm0, qword [edx]
movsd qword [esp + 0x10], xmm0
cmp dword [esp + 0x98], 0
je 0x4b7868
mov eax, 1
xor edx, edx
cmp ecx, 0x400
cmovne eax, edx
jmp 0x4b7878
mov eax, 1
xor edx, edx
cmp ecx, 0x800
cmovne eax, edx
mov edx, dword [ebp + 8]
mov dword [edx], eax
mov eax, dword [esp + 0x98]
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov dword [edx + 0xc], eax
add esp, 0xbc
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0xa4]
mov dword [esp + 0xac], eax
mov dword [esp + 0x9c], edx
jmp 0x4b7807
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0xa0]
mov edi, dword [esp + 0xa4]
mov dword [esp + 0xac], eax
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa0], edi
jmp 0x4b7812
cmp dword [esp + 0xb4], 0
je 0x4b7913
mov edi, dword [esp + 0xb4]
shl edi, 0xf
mov dword [esp + 0xb0], 0
jmp 0x4b7951
cmp dword [esp + 0xb8], 0
je 0x4b7931
mov edi, dword [esp + 0xb8]
mov dword [esp + 0xb0], 0x11
jmp 0x4b7951
mov eax, 0x31
mov edx, 0x51
test ebx, ebx
mov edi, dword [esp + 0xa8]
cmovne edx, eax
mov dword [esp + 0xb0], edx
cmovne edi, ebx
bsr eax, edi
mov edi, dword [esp + 0xb0]
sub edi, eax
add edi, 0x1f
mov edx, edi
neg edx
mov dword [esp + 0xb0], edi
cmp edi, 0x20
mov dword [esp + 4], edx
jge 0x4b79d9
mov edx, edi
mov ecx, edx
mov eax, dword [esp + 0xb8]
mov dword [esp], esi
mov esi, eax
mov edi, dword [esp + 0xb4]
shl edi, cl
mov ecx, dword [esp + 4]
shr esi, cl
mov ecx, edx
or edi, esi
mov esi, ebx
shl eax, cl
mov ecx, dword [esp + 4]
shr esi, cl
mov ecx, edx
or eax, esi
mov esi, dword [esp + 0xa8]
mov dword [esp + 0xb8], eax
mov eax, esi
shl ebx, cl
mov ecx, dword [esp + 4]
shr eax, cl
mov ecx, edx
shl esi, cl
or ebx, eax
mov dword [esp + 0xa8], esi
mov dword [esp + 0xb4], edi
mov esi, dword [esp]
jmp 0x4b7a95
je 0x4b7ac2
cmp dword [esp + 0xb0], 0x40
jge 0x4b7a2c
mov eax, edi
mov ecx, eax
mov edi, edx
mov edx, ebx
shl dword [esp + 0xb8], cl
mov ecx, edi
shr edx, cl
mov ecx, eax
or edx, dword [esp + 0xb8]
shl ebx, cl
mov ecx, edi
mov edi, dword [esp + 0xa8]
mov dword [esp + 0xb4], edx
mov edx, edi
shr edx, cl
mov ecx, eax
or edx, ebx
mov ebx, edi
mov dword [esp + 0xb8], edx
shl ebx, cl
jmp 0x4b7a8a
je 0x4b7aab
cmp dword [esp + 0xb0], 0x60
jge 0x4b7a63
mov edx, edi
mov ecx, edx
mov edi, dword [esp + 0xa8]
mov eax, edi
shl ebx, cl
mov ecx, dword [esp + 4]
shr eax, cl
mov ecx, edx
shl edi, cl
or eax, ebx
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], edi
jmp 0x4b7a88
mov eax, dword [esp + 0xa8]
mov edx, eax
mov ecx, edi
shl edx, cl
cmp ecx, 0x60
mov dword [esp + 0xb8], 0
cmove edx, eax
mov dword [esp + 0xb4], edx
xor ebx, ebx
mov dword [esp + 0xa8], 0
mov eax, dword [esp + 0xb0]
neg eax
inc eax
mov dword [esp + 0xb0], eax
jmp 0x4b6ccd
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xb8], eax
jmp 0x4b7a88
mov eax, dword [esp + 0xb8]
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xb4], eax
mov ebx, dword [esp + 0xa8]
jmp 0x4b7a8a
test edi, 0x10
je 0x4b7cad
mov ecx, dword [esp + 4]
cmp ecx, dword [esp]
je 0x4b7b4b
cmp dword [esp + 4], 0x10
je 0x4b7d50
mov ebx, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
mov eax, dword [esp + 0xa4]
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 0x4b7c94
mov eax, dword [0x4fb3c0]
mov edx, dword [ebp + 8]
movsd xmm0, qword [eax]
divsd xmm0, xmm0
mov dword [edx + 0xc], ecx
movsd qword [esp + 0x10], xmm0
mov ecx, dword [edx + 0xc]
jmp 0x4b7c94
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
not ecx
not esi
and ecx, 0x8000
and esi, 0x8000
shr ecx, 0xf
shr esi, 0xf
mov dword [esp + 0x1c], ecx
or ecx, esi
mov dword [esp + 0x18], esi
je 0x4b7b89
mov ecx, dword [0x4fb3c0]
movsd xmm0, qword [ecx]
divsd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [esp + 0x18]
je 0x4b7ba3
cmp dword [esp + 0x1c], 0
jne 0x4b7c7b
jmp 0x4b7c39
cmp eax, edx
jb 0x4b7c7b
jne 0x4b7bc3
mov ecx, dword [esp + 0xb8]
cmp ecx, dword [esp + 0x9c]
jb 0x4b7c7b
jmp 0x4b7bd1
mov ecx, dword [esp + 0xb8]
cmp ecx, dword [esp + 0x9c]
jne 0x4b7bf6
cmp ebx, dword [esp + 0xa0]
jb 0x4b7c7b
jne 0x4b7bf6
mov ecx, dword [esp + 0xa8]
cmp ecx, dword [esp + 0xa4]
jb 0x4b7c7b
cmp edx, eax
jb 0x4b7c39
jne 0x4b7c0e
mov eax, dword [esp + 0x9c]
cmp eax, dword [esp + 0xb8]
jb 0x4b7c39
jmp 0x4b7c1c
mov eax, dword [esp + 0x9c]
cmp eax, dword [esp + 0xb8]
jne 0x4b7c54
cmp ebx, dword [esp + 0xa0]
ja 0x4b7c39
jne 0x4b7c54
mov eax, dword [esp + 0xa8]
cmp eax, dword [esp + 0xa4]
jbe 0x4b7c54
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 0x4b7c94
mov eax, dword [ebp + 0xc]
test dword [eax + 0xc], 0x80000000
je 0x4b7c7b
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 0x4b7c94
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, 0xbc
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test edi, 1
je 0x4b7cf3
mov eax, dword [0x4fb3c0]
mov edx, dword [ebp + 8]
movsd xmm0, qword [eax]
divsd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov dword [edx + 0xc], 0xffff8000
add esp, 0xbc
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [esp + 8], 0
je 0x4b7d13
mov eax, dword [0x4fb3c4]
mov edx, dword [0x4fb3c8]
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp + 0x10], xmm0
mov ebx, dword [esp + 0x98]
shr ebx, 0x1b
mov edi, dword [ebp + 8]
mov eax, dword [ebx + 0x4f44a0]
mov dword [edi], eax
mov edx, dword [ebx + 0x4f44a4]
mov dword [edi + 4], edx
mov ecx, dword [ebx + 0x4f44a8]
mov dword [edi + 8], ecx
mov esi, dword [ebx + 0x4f44ac]
mov dword [edi + 0xc], esi
add esp, 0xbc
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov eax, dword [esp + 0xa8]
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 0x4b7b1e
push ebp
mov ebp, esp
and esp, 0xfffffff8
push esi
push edi
push ebx
sub esp, 0x5c
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov eax, dword [ecx + 8]
mov dword [esp + 0x14], eax
mov edx, dword [ecx + 0xc]
mov esi, edx
mov eax, dword [ecx + 4]
and esi, 0x7fffffff
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 0xc]
mov edi, dword [ecx]
mov ecx, eax
mov dword [esp + 0x34], edx
xor edx, eax
mov dword [esp + 0x38], esi
and ecx, 0x7fffffff
mov dword [esp + 0x30], eax
and edx, 0x80000000
movzx eax, si
shr esi, 0x10
mov dword [esp + 0x10], edi
mov edi, dword [ebx + 8]
mov dword [esp + 0x20], edi
mov edi, dword [ebx]
mov ebx, dword [ebx + 4]
mov dword [esp + 0x1c], edi
mov edi, ecx
mov dword [esp + 0x18], ebx
lea ebx, [esi - 1]
mov dword [esp + 0x50], edx
movzx edx, cx
shr edi, 0x10
mov dword [esp + 0x3c], ecx
cmp ebx, 0x7ffd
mov dword [esp + 0x54], esi
ja 0x4b85a9
lea ebx, [edi - 1]
cmp ebx, 0x7ffd
ja 0x4b85a9
mov ebx, dword [esp + 0x54]
add esp, 0xffffffd0
mov esi, dword [esp + 0x44]
or eax, 0x10000
or edx, 0x10000
lea ebx, [ebx + edi - 0x4000]
mov dword [esp], esi
mov dword [esp + 4], eax
mov edi, dword [esp + 0x40]
mov dword [esp + 8], edi
lea edi, [esp + 0x78]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x60]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x70]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x18], edx
lea edx, [esp + 0x68]
mov esi, dword [esp + 0x48]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x2c], edi
call fcn.004b8d00
add esp, 0x30
mov edx, dword [esp + 0x34]
xor edi, edi
mov dword [esp], edx
and edx, 2
mov ecx, dword [esp + 0x30]
or edx, edi
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
je 0x4b7f14
mov edx, ecx
mov edi, dword [esp]
shr edx, 0x11
shl edi, 0xf
or edx, edi
mov edi, eax
shl ecx, 0xf
shr edi, 0x11
or ecx, edi
mov edi, esi
shr edi, 0x11
shl eax, 0xf
mov dword [esp + 0x30], ecx
or edi, eax
mov ecx, dword [esp + 0x44]
mov eax, ecx
shl esi, 0xf
shr eax, 0x11
or esi, eax
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x48]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x3c], edi
or esi, dword [esp + 0x4c]
je 0x4b7ef8
mov esi, 1
jmp 0x4b7efa
xor esi, esi
mov eax, edx
inc ebx
shr eax, 0x11
shl edx, 0xf
shl ecx, 0xf
or edx, esi
or eax, ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], eax
jmp 0x4b7f81
mov edx, ecx
mov edi, dword [esp]
shr edx, 0x10
shl edi, 0x10
or edx, edi
mov edi, eax
shl ecx, 0x10
shr edi, 0x10
or ecx, edi
mov edi, esi
shr edi, 0x10
shl eax, 0x10
mov dword [esp + 0x30], ecx
or edi, eax
mov ecx, dword [esp + 0x44]
mov eax, ecx
shl esi, 0x10
shr eax, 0x10
or esi, eax
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x48]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x3c], edi
or esi, dword [esp + 0x4c]
je 0x4b7f68
mov esi, 1
jmp 0x4b7f6a
xor esi, esi
mov eax, edx
shr eax, 0x10
shl edx, 0x10
shl ecx, 0x10
or edx, esi
or eax, ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], eax
cmp ebx, 0x7ffd
jae 0x4b80c3
or edx, eax
je 0x4b84d6
fnstcw word [esp + 0x24]
mov edx, dword [0x4fb3c8]
mov ecx, dword [0x4fb3cc]
mov eax, dword [esp + 0x24]
fld qword [edx]
and eax, 0xc00
mov dword [esp + 8], eax
fadd qword [ecx]
fstp qword [esp + 0x28]
jne 0x4b7fd3
mov edx, dword [esp + 0x44]
xor ecx, ecx
mov eax, dword [esp + 0x40]
mov dword [esp], edx
sub edx, ecx
mov dword [esp + 4], eax
jl 0x4b803e
jmp 0x4b8003
cmp dword [esp + 8], 0xc00
je 0x4b8003
xor eax, eax
or eax, dword [esp + 0x50]
je 0x4b7ff5
cmp dword [esp + 8], 0x400
je 0x4b80af
jmp 0x4b8003
cmp dword [esp + 8], 0x800
je 0x4b80af
mov eax, dword [esp + 0x30]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov esi, dword [ebp + 8]
shl ebx, 0x10
add eax, ebx
mov dword [esi], edx
mov edx, dword [esp + 0x50]
or edx, eax
mov eax, dword [esp + 0xc]
mov dword [esi + 4], ecx
mov dword [esi + 8], eax
mov dword [esi + 0xc], edx
add esp, 0x5c
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x38]
add edx, 1
mov ecx, dword [esp + 0x3c]
mov eax, edx
adc ecx, 0
or eax, ecx
jne 0x4b8066
mov esi, dword [esp + 0x30]
add esi, 1
mov eax, dword [esp + 0x34]
mov dword [esp + 0xc], esi
adc eax, 0
jmp 0x4b8072
mov eax, dword [esp + 0x30]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 4]
add edi, edi
mov esi, dword [esp]
adc esi, esi
or edi, esi
jne 0x4b808a
mov dword [esp], 1
jmp 0x4b8091
mov dword [esp], 0
mov dword [esp + 4], ebx
xor ebx, ebx
cmp dword [esp + 8], 0
sete bl
and ebx, dword [esp]
not ebx
and edx, ebx
mov ebx, dword [esp + 4]
jmp 0x4b8017
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov dword [esp + 4], eax
mov dword [esp], edx
jmp 0x4b803e
fnstcw word [esp + 0x24]
mov esi, dword [esp + 0x24]
mov edi, esi
and edi, 0xc00
jne 0x4b80e5
xor eax, eax
mov edx, dword [esp + 0x44]
sub edx, eax
jl 0x4b81b1
jmp 0x4b810f
cmp edi, 0xc00
je 0x4b810f
xor eax, eax
or eax, dword [esp + 0x50]
je 0x4b8103
cmp edi, 0x400
je 0x4b81a3
jmp 0x4b810f
cmp edi, 0x800
je 0x4b8591
xor ecx, ecx
cmp ebx, 0x7ffd
jle 0x4b818c
mov eax, dword [0x4fb3d0]
cmp edi, 0xc00
fld qword [eax]
fmul st(0)
fstp qword [esp + 0x28]
je 0x4b81f7
xor eax, eax
mov edx, dword [esp + 0x50]
or edx, eax
je 0x4b814b
cmp edi, 0x800
je 0x4b81bb
mov eax, 1
jmp 0x4b8159
cmp edi, 0x400
je 0x4b81f3
xor eax, eax
shl eax, 4
mov esi, dword [ebp + 8]
mov edx, dword [eax + 0x4f44a0]
mov ecx, dword [eax + 0x4f44a4]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov ebx, dword [eax + 0x4f44a8]
mov eax, dword [eax + 0x4f44ac]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], eax
add esp, 0x5c
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
je 0x4b8545
test ebx, ebx
jl 0x4b8203
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
jmp 0x4b7f8d
mov eax, dword [esp + 0x40]
or eax, dword [esp + 0x44]
je 0x4b810f
mov ecx, 1
jmp 0x4b8111
mov ebx, 1
shl ebx, 4
mov esi, dword [ebp + 8]
mov eax, dword [ebx + 0x4f44e0]
mov edx, dword [ebx + 0x4f44e4]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ecx, dword [ebx + 0x4f44e8]
mov ebx, dword [ebx + 0x4f44ec]
mov dword [esi + 8], ecx
mov dword [esi + 0xc], ebx
add esp, 0x5c
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
xor ebx, ebx
jmp 0x4b81c0
xor eax, eax
mov edx, dword [esp + 0x50]
or edx, eax
jne 0x4b81bb
jmp 0x4b81f3
cmp ebx, 0xffffffff
jge 0x4b8219
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x10], eax
mov dword [esp], edx
jmp 0x4b828e
test ecx, ecx
jne 0x4b822e
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x10], eax
mov dword [esp], edx
jmp 0x4b828e
mov edx, dword [esp + 0x30]
mov ecx, 0xffffffff
mov edi, edx
sub edi, ecx
mov ecx, 0x1ffff
mov eax, dword [esp + 0x34]
mov edi, eax
sbb edi, ecx
jae 0x4b825b
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x10], eax
mov dword [esp], edx
jmp 0x4b828e
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x10], ecx
mov ecx, 0xffffffff
mov dword [esp], edi
mov edi, 0x1ffff
sub edx, ecx
sub eax, edi
or edx, eax
jne 0x4b8298
mov edx, 0xffffffff
mov eax, dword [esp + 0x10]
sub eax, edx
mov ecx, dword [esp]
sbb ecx, edx
jae 0x4b8298
mov dword [esp + 0x1c], 1
jmp 0x4b829e
xor eax, eax
mov dword [esp + 0x1c], eax
neg ebx
mov edx, ebx
mov eax, ebx
neg edx
and eax, 0x3f
and edx, 0x3f
mov dword [esp + 0x20], eax
cmp ebx, 0x40
mov dword [esp + 0x18], edx
jge 0x4b83ca
mov eax, dword [esp + 0x40]
or eax, dword [esp + 0x44]
je 0x4b82ce
mov ebx, 1
jmp 0x4b82d0
xor ebx, ebx
cmp dword [esp + 0x18], 0x1f
ja 0x4b82e7
mov ecx, edx
mov eax, dword [esp]
mov edx, dword [esp + 0x10]
shld eax, edx, cl
shl edx, cl
jmp 0x4b82f1
mov ecx, edx
xor edx, edx
mov eax, dword [esp + 0x10]
shl eax, cl
mov ecx, dword [esp + 0x30]
or edx, ebx
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 4], ebx
cmp dword [esp + 0x18], 0x1f
ja 0x4b832b
mov ecx, dword [esp + 0x18]
mov edi, ebx
mov ebx, dword [esp + 0xc]
shld edi, ebx, cl
shl ebx, cl
mov dword [esp + 0x14], edi
mov dword [esp + 8], ebx
jmp 0x4b8341
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0xc]
shl ebx, cl
mov dword [esp + 8], 0
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x20], 0x1f
ja 0x4b8362
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp]
mov edi, dword [esp + 0x10]
shrd edi, ebx, cl
shr ebx, cl
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], ebx
jmp 0x4b8375
mov ecx, dword [esp + 0x20]
xor ebx, ebx
mov edi, dword [esp]
shr edi, cl
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10], edi
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0x14]
or ecx, dword [esp + 0x10]
or ebx, dword [esp + 0x18]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ebx
cmp dword [esp + 0x20], 0x1f
ja 0x4b83ab
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 4]
mov edi, dword [esp + 0xc]
shrd edi, ebx, cl
mov dword [esp + 0xc], edi
shr ebx, cl
jmp 0x4b83bb
mov ecx, dword [esp + 0x20]
xor ebx, ebx
mov edi, dword [esp + 4]
shr edi, cl
mov dword [esp + 0xc], edi
mov ecx, edi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], ebx
jmp 0x4b8483
je 0x4b850e
cmp ebx, 0x80
jge 0x4b845e
mov edx, dword [esp + 0x10]
mov eax, dword [esp]
or edx, dword [esp + 0x40]
or eax, dword [esp + 0x44]
or edx, eax
je 0x4b83f8
mov dword [esp], 1
jmp 0x4b83fd
xor eax, eax
mov dword [esp], eax
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
mov dword [esp + 4], eax
cmp dword [esp + 0x18], 0x1f
ja 0x4b841d
mov edx, edi
mov ecx, dword [esp + 0x18]
shld eax, edi, cl
shl edx, cl
jmp 0x4b8427
mov eax, edi
xor edx, edx
mov ecx, dword [esp + 0x18]
shl eax, cl
or edx, dword [esp]
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], eax
cmp dword [esp + 0x20], 0x1f
ja 0x4b8448
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 4]
shrd edi, ebx, cl
shr ebx, cl
jmp 0x4b8454
mov ecx, dword [esp + 0x20]
xor ebx, ebx
mov edi, dword [esp + 4]
shr edi, cl
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], ebx
jmp 0x4b8479
xor eax, eax
mov edx, 1
mov dword [esp + 0x40], 1
mov dword [esp + 0x44], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
xor ecx, ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], ecx
cmp dword [esp + 0x1c], 0
je 0x4b8507
or edx, eax
je 0x4b84aa
mov eax, dword [0x4fb3cc]
xor ebx, ebx
mov edx, dword [esp + 0x40]
fld qword [eax]
fmul st(0)
fstp qword [esp + 0x28]
mov eax, dword [esp + 0x44]
jmp 0x4b7f8d
test esi, 0x10
jne 0x4b84d4
mov eax, dword [0x4fb3cc]
xor ebx, ebx
mov edx, dword [0x4fb3d4]
fld qword [eax]
fmul qword [edx]
fstp qword [esp + 0x28]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
jmp 0x4b7f8d
xor ebx, ebx
mov edi, dword [ebp + 8]
shl ebx, 0x10
add ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x50]
or esi, ebx
mov dword [edi], eax
mov dword [edi + 4], edx
mov dword [edi + 8], ecx
mov dword [edi + 0xc], esi
add esp, 0x5c
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
xor ebx, ebx
jmp 0x4b7f8d
mov eax, dword [esp + 0x40]
or eax, dword [esp + 0x44]
je 0x4b851f
mov edx, 1
jmp 0x4b8521
xor edx, edx
or edx, dword [esp + 0x10]
mov eax, dword [esp]
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ebx
jmp 0x4b8479
mov esi, 0xffffffff
mov edx, dword [esp + 0x30]
sub edx, esi
mov esi, 0x1ffff
mov eax, dword [esp + 0x34]
sub eax, esi
or edx, eax
jne 0x4b8196
mov eax, 0xffffffff
mov esi, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
sub esi, eax
sub edx, eax
or esi, edx
jne 0x4b8196
test ecx, ecx
jne 0x4b8119
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
jmp 0x4b7f8d
mov eax, dword [esp + 0x40]
or eax, dword [esp + 0x44]
je 0x4b810f
mov ecx, 1
jmp 0x4b8111
mov ebx, dword [esp + 0x10]
or ebx, dword [esp + 0xc]
je 0x4b85bd
mov dword [esp + 4], 1
jmp 0x4b85c3
xor ebx, ebx
mov dword [esp + 4], ebx
mov ebx, dword [esp + 4]
or ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x38]
mov dword [esp + 4], ebx
or esi, ebx
jne 0x4b85e8
mov dword [esp], 0
mov dword [esp + 8], 1
jmp 0x4b864f
mov ebx, 0x10000
mov esi, dword [esp + 0x38]
sub esi, ebx
jae 0x4b8603
mov ebx, 2
mov dword [esp], ebx
mov dword [esp + 8], ebx
jmp 0x4b864f
mov ebx, 0x7fff0000
mov esi, dword [esp + 0x38]
sub esi, ebx
jae 0x4b8621
mov dword [esp], 0
mov dword [esp + 8], 4
jmp 0x4b864f
mov ebx, 0x7fff0000
mov esi, dword [esp + 0x38]
mov dword [esp], 0
sub esi, ebx
jb 0x4b8647
mov ebx, dword [esp + 4]
or ebx, esi
je 0x4b8647
mov dword [esp + 8], 0x10
jmp 0x4b864f
mov dword [esp + 8], 8
mov ebx, dword [esp + 0x1c]
or ebx, dword [esp + 0x18]
je 0x4b8663
mov dword [esp + 4], 1
jmp 0x4b8669
xor ebx, ebx
mov dword [esp + 4], ebx
mov ebx, dword [esp + 4]
or ebx, dword [esp + 0x20]
mov esi, ecx
mov dword [esp + 4], ebx
or esi, ebx
jne 0x4b8682
mov ebx, 1
jmp 0x4b86c9
mov ebx, 0x10000
mov esi, ecx
sub esi, ebx
jae 0x4b869d
mov ebx, dword [esp]
or ebx, 2
mov dword [esp], ebx
mov ebx, 2
jmp 0x4b86c9
mov esi, 0x7fff0000
mov ebx, ecx
sub ebx, esi
jae 0x4b86af
mov ebx, 4
jmp 0x4b86c9
mov ebx, ecx
sub ebx, esi
jb 0x4b86c4
mov esi, dword [esp + 4]
or esi, ebx
je 0x4b86c4
mov ebx, 0x10
jmp 0x4b86c9
mov ebx, 8
mov esi, dword [esp + 8]
or esi, ebx
cmp dword [esp + 0x54], 0x7fff
je 0x4b8a97
cmp edi, 0x7fff
je 0x4b8a97
test esi, 1
je 0x4b8750
cmp dword [esp], 0
je 0x4b870a
mov eax, dword [0x4fb3c4]
mov edx, dword [0x4fb3c8]
fld qword [eax]
fmul qword [edx]
fstp qword [esp + 0x28]
xor eax, eax
mov edx, dword [esp + 0x50]
or edx, eax
je 0x4b871b
mov eax, 1
jmp 0x4b871d
xor eax, eax
shl eax, 4
mov esi, dword [ebp + 8]
mov edx, dword [eax + 0x4f44c0]
mov ecx, dword [eax + 0x4f44c4]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov ebx, dword [eax + 0x4f44c8]
mov eax, dword [eax + 0x4f44cc]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], eax
add esp, 0x5c
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp ebx, dword [esp + 8]
je 0x4b88be
mov ebx, dword [0x4fb3c4]
mov esi, dword [0x4fb3c8]
cmp dword [esp + 8], 2
fld qword [ebx]
fmul qword [esi]
fstp qword [esp + 0x28]
je 0x4b8923
mov ecx, dword [esp + 0x20]
mov dword [esp + 4], ecx
or ecx, edx
mov dword [esp], edx
jne 0x4b879e
mov ecx, dword [esp + 0x1c]
mov edi, 0x31
mov ebx, dword [esp + 0x18]
mov dword [esp + 4], ecx
mov dword [esp], ebx
jmp 0x4b87a3
mov edi, 0xfffffff1
mov ebx, 1
mov esi, dword [esp]
sub esi, ebx
jae 0x4b87b4
add edi, 0x20
jmp 0x4b87bb
mov ebx, dword [esp]
mov dword [esp + 4], ebx
bsr ebx, dword [esp + 4]
sub edi, ebx
add edi, 0x1f
cmp edi, 0x40
jge 0x4b886c
cmp edi, 0x1f
ja 0x4b87e3
mov ecx, edi
mov ebx, dword [esp + 0x20]
shld edx, ebx, cl
shl ebx, cl
mov dword [esp], ebx
jmp 0x4b87f2
mov ecx, edi
mov edx, dword [esp + 0x20]
mov dword [esp], 0
shl edx, cl
mov ecx, edi
neg ecx
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4b881d
mov dword [esp + 8], eax
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
shrd eax, ebx, cl
mov dword [esp + 0x20], eax
shr ebx, cl
mov dword [esp + 4], ebx
mov eax, dword [esp + 8]
jmp 0x4b882f
mov ebx, dword [esp + 0x18]
shr ebx, cl
mov dword [esp + 4], 0
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x20]
or ebx, dword [esp]
or edx, dword [esp + 4]
mov dword [esp + 0x20], ebx
cmp edi, 0x1f
ja 0x4b8858
mov ecx, edi
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
shld esi, ebx, cl
shl ebx, cl
mov dword [esp + 0x18], esi
jmp 0x4b8866
mov ecx, edi
xor ebx, ebx
mov esi, dword [esp + 0x1c]
shl esi, cl
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], ebx
jmp 0x4b88b6
mov ecx, edi
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4b8889
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
shld edx, ebx, cl
shl ebx, cl
mov dword [esp + 0x20], ebx
jmp 0x4b8895
xor edx, edx
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x1c]
shl edx, cl
cmp edi, 0x40
mov ebx, dword [esp + 0x20]
jne 0x4b88a2
mov ebx, dword [esp + 0x1c]
jne 0x4b88a8
mov edx, dword [esp + 0x18]
xor esi, esi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], esi
neg edi
inc edi
jmp 0x4b7e1c
fnstcw word [esp + 0x24]
mov eax, dword [0x4fb3cc]
xor ecx, ecx
mov edx, dword [0x4fb3c4]
mov ebx, dword [esp + 0x24]
fld qword [eax]
and ebx, 0xc00
fmul qword [edx]
fstp qword [esp + 0x28]
or ecx, dword [esp + 0x50]
je 0x4b88f4
xor eax, eax
cmp ebx, 0x400
sete al
jmp 0x4b88ff
xor eax, eax
cmp ebx, 0x800
sete al
mov edx, dword [ebp + 8]
mov dword [edx], eax
mov eax, dword [esp + 0x50]
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov dword [edx + 0xc], eax
add esp, 0x5c
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 0x14]
mov dword [esp + 4], ebx
or ebx, eax
mov dword [esp], eax
jne 0x4b894b
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
mov dword [esp + 4], ebx
mov dword [esp], esi
mov dword [esp + 0x54], 0x31
jmp 0x4b8953
mov dword [esp + 0x54], 0xfffffff1
mov ebx, 1
mov esi, dword [esp]
sub esi, ebx
jae 0x4b896c
mov ebx, dword [esp + 0x54]
add ebx, 0x20
mov dword [esp + 0x54], ebx
jmp 0x4b8973
mov ebx, dword [esp]
mov dword [esp + 4], ebx
bsr ebx, dword [esp + 4]
mov esi, dword [esp + 0x54]
sub esi, ebx
add esi, 0x1f
mov dword [esp + 0x54], esi
cmp esi, 0x40
jge 0x4b8a3b
cmp dword [esp + 0x54], 0x1f
ja 0x4b89a6
mov ecx, esi
mov ebx, dword [esp + 0x14]
shld eax, ebx, cl
shl ebx, cl
mov dword [esp + 4], ebx
jmp 0x4b89b6
mov ecx, esi
mov eax, dword [esp + 0x14]
mov dword [esp + 4], 0
shl eax, cl
neg ecx
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4b89e0
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc]
mov esi, eax
mov ebx, dword [esp + 0x10]
shrd ebx, eax, cl
shr esi, cl
mov eax, dword [esp + 8]
mov dword [esp + 0x14], ebx
mov dword [esp], esi
jmp 0x4b89f1
mov ebx, dword [esp + 0xc]
shr ebx, cl
mov dword [esp], 0
mov dword [esp + 0x14], ebx
or ebx, dword [esp + 4]
or eax, dword [esp]
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x54], 0x1f
ja 0x4b8a1d
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
shld esi, ebx, cl
shl ebx, cl
mov dword [esp + 0xc], esi
mov dword [esp], ebx
jmp 0x4b8a32
mov ecx, dword [esp + 0x54]
mov ebx, dword [esp + 0x10]
shl ebx, cl
mov dword [esp], 0
mov dword [esp + 0xc], ebx
mov ebx, dword [esp]
mov dword [esp + 0x10], ebx
jmp 0x4b8a87
mov ecx, esi
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4b8a58
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
shld eax, ebx, cl
shl ebx, cl
mov dword [esp + 0x14], ebx
jmp 0x4b8a64
xor eax, eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
shl eax, cl
cmp dword [esp + 0x54], 0x40
mov ebx, dword [esp + 0x14]
jne 0x4b8a73
mov ebx, dword [esp + 0x10]
jne 0x4b8a79
mov eax, dword [esp + 0xc]
xor esi, esi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], esi
mov ebx, dword [esp + 0x54]
neg ebx
inc ebx
mov dword [esp + 0x54], ebx
jmp 0x4b7e1c
test esi, 0x10
je 0x4b8c50
cmp ebx, dword [esp + 8]
je 0x4b8b17
cmp dword [esp + 8], 0x10
je 0x4b8acb
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
jmp 0x4b8ae4
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
mov ecx, ebx
xor edx, edx
and ecx, 0x8000
or ecx, edx
jne 0x4b8c37
mov edx, dword [ebp + 8]
mov dword [edx + 8], eax
mov eax, dword [0x4fb3c0]
mov dword [edx + 0xc], ebx
fld qword [eax]
fdiv st(0)
fstp qword [esp + 0x28]
mov eax, dword [edx + 8]
mov ebx, dword [edx + 0xc]
jmp 0x4b8c37
mov edx, dword [esp + 0x34]
xor eax, eax
and edx, 0x8000
or edx, eax
jne 0x4b8b2e
mov eax, 1
jmp 0x4b8b30
xor eax, eax
mov ecx, dword [esp + 0x30]
xor edx, edx
and ecx, 0x8000
or ecx, edx
jne 0x4b8b47
mov edx, 1
jmp 0x4b8b49
xor edx, edx
mov ecx, eax
or ecx, edx
je 0x4b8b5d
mov ecx, dword [0x4fb3c0]
fld qword [ecx]
fdiv st(0)
fstp qword [esp + 0x28]
cmp edx, eax
je 0x4b8b6b
test eax, eax
jne 0x4b8c21
jmp 0x4b8bdf
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x20]
mov edx, dword [esp + 0x38]
sbb edx, dword [esp + 0x3c]
jb 0x4b8c21
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x38]
sub edx, dword [esp + 0x20]
sub eax, dword [esp + 0x3c]
or edx, eax
jne 0x4b8ba7
mov eax, dword [esp + 0x10]
sub eax, dword [esp + 0x1c]
mov edx, dword [esp + 0xc]
sbb edx, dword [esp + 0x18]
jb 0x4b8c21
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x14]
mov edx, dword [esp + 0x3c]
sbb edx, dword [esp + 0x38]
jb 0x4b8bdf
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x3c]
sub edx, dword [esp + 0x14]
sub eax, dword [esp + 0x38]
or edx, eax
jne 0x4b8bf7
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
sbb edx, dword [esp + 0xc]
jae 0x4b8bf7
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 0x4b8c37
mov eax, dword [ebp + 0xc]
xor edx, edx
mov ecx, dword [eax + 0xc]
and ecx, 0x80000000
or ecx, edx
je 0x4b8c21
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 0x4b8c37
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, 0x5c
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test esi, 1
je 0x4b8c95
mov eax, dword [0x4fb3c0]
mov edi, dword [ebp + 8]
mov edx, dword [0x4f4460]
fld qword [eax]
fdiv st(0)
mov ecx, dword [0x4f4464]
fstp qword [esp + 0x28]
mov dword [edi], edx
mov dword [edi + 4], ecx
mov ebx, dword [0x4f4468]
mov esi, dword [0x4f446c]
mov dword [edi + 8], ebx
mov dword [edi + 0xc], esi
add esp, 0x5c
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [esp], 0
je 0x4b8cae
mov eax, dword [0x4fb3c4]
mov edx, dword [0x4fb3c8]
fld qword [eax]
fmul qword [edx]
fstp qword [esp + 0x28]
xor eax, eax
mov edx, dword [esp + 0x50]
or edx, eax
je 0x4b8cbf
mov eax, 1
jmp 0x4b8cc1
xor eax, eax
shl eax, 4
mov esi, dword [ebp + 8]
mov edx, dword [eax + 0x4f44a0]
mov ecx, dword [eax + 0x4f44a4]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov ebx, dword [eax + 0x4f44a8]
mov eax, dword [eax + 0x4f44ac]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], eax
add esp, 0x5c
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test dword [0x6e326c], 0xfffffe00
jne 0x4b6c10
test dword [0x6e326c], 0xffffffff
jne 0x4b7d80
call fcn.004b3de0
jmp fcn.004b8fe0