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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push edi
push esi
push ebx
sub esp, 0xb4
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov esi, dword [edx + 0xc]
mov eax, dword [edx + 8]
mov edi, dword [edx]
mov dword [esp + 0xa4], eax
mov eax, dword [edx + 4]
mov edx, dword [ecx + 0xc]
mov dword [esp + 0xa8], eax
mov ebx, esi
and ebx, 0x7fffffff
mov dword [esp + 0x9c], edi
mov edi, dword [ecx + 8]
mov dword [esp + 0xc], edx
mov eax, edx
and eax, 0x7fffffff
mov dword [esp + 0x94], edi
mov edi, dword [ecx + 4]
mov ecx, dword [ecx]
mov dword [esp + 0x98], edi
mov edi, esi
mov dword [esp + 0x90], ecx
xor edi, edx
and edi, 0x80000000
movzx edx, bx
mov dword [esp + 0x8c], edi
mov edi, ebx
mov dword [esp + 0xb0], edx
shr edi, 0x10
mov dword [esp + 0xa0], edi
movzx ecx, ax
mov dword [esp + 0xac], ecx
mov edx, eax
shr edx, 0x10
lea edi, [edi - 1]
cmp edi, 0x7ffd
ja 0x4b4e10
lea edi, [edx - 1]
cmp edi, 0x7ffd
ja 0x4b4e10
mov esi, dword [esp + 0xa0]
mov eax, dword [esp + 0xb0]
mov edi, dword [esp + 0xac]
mov ecx, dword [esp + 0x98]
lea ebx, [esi + edx - 0x4000]
mov esi, dword [esp + 0x90]
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x9c]
or eax, 0x10000
mov dword [esp + 0xb0], eax
mov eax, ebx
mul esi
or edi, 0x10000
mov dword [esp], eax
mov eax, ebx
mov dword [esp + 4], edx
mul ecx
mov dword [esp + 8], eax
mov eax, ebx
mov dword [esp + 0xc], edx
mul dword [esp + 0x94]
mov dword [esp + 0x2c], eax
mov eax, ebx
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0x24], edx
mul edi
mov dword [esp + 0x30], eax
mov eax, esi
mov dword [esp + 0x28], edx
mul ebx
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edx
mov eax, ecx
mul ebx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x40], edx
mul ebx
mov dword [esp + 0x44], eax
mov eax, edi
mov dword [esp + 0x48], edx
mul ebx
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], edx
mov eax, esi
mul ebx
mov dword [esp + 0x54], eax
mov eax, ecx
mov dword [esp + 0x58], edx
mul ebx
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x60], edx
mul ebx
mov dword [esp + 0x64], eax
mov eax, edi
mov dword [esp + 0x68], edx
mul ebx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x20], edx
mov eax, esi
mov esi, dword [esp + 0xb0]
mul esi
mov dword [esp + 0x70], edx
mov ebx, eax
mov eax, ecx
mul esi
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x78], edx
mul esi
mov dword [esp + 0x7c], eax
mov eax, edi
mov dword [esp + 0x80], edx
mul esi
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], edx
mov edx, dword [esp + 4]
xor edi, edi
add edx, dword [esp + 8]
adc edi, 0
add edx, dword [esp + 0x34]
adc edi, 0
xor esi, esi
add ecx, dword [esp + 0x2c]
adc esi, 0
mov dword [esp + 4], edx
xor eax, eax
mov edx, dword [esp + 0x38]
add edx, dword [esp + 0x3c]
adc eax, 0
add ecx, edx
adc esi, eax
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x24]
add edx, edi
mov edi, 0
adc edi, 0
add ecx, edx
mov edx, dword [esp + 0x40]
adc esi, edi
add eax, dword [esp + 0x30]
mov dword [esp + 0xc], ecx
mov ecx, 0
adc ecx, 0
xor edi, edi
add edx, dword [esp + 0x44]
adc edi, 0
add eax, edx
adc ecx, edi
mov edx, dword [esp + 0x58]
xor edi, edi
add edx, dword [esp + 0x5c]
adc edi, 0
add ebx, esi
mov esi, 0
adc esi, 0
add edx, ebx
adc edi, esi
mov esi, dword [esp + 0x28]
add eax, edx
mov ebx, dword [esp + 0x4c]
adc ecx, edi
xor edi, edi
add esi, dword [esp + 0x48]
mov dword [esp + 0x24], eax
adc edi, 0
xor eax, eax
add ebx, dword [esp + 0x60]
adc eax, 0
add esi, ebx
adc edi, eax
mov eax, dword [esp + 0x64]
xor edx, edx
add eax, dword [esp + 0x70]
adc edx, 0
mov ebx, dword [esp + 0x74]
add ebx, ecx
mov ecx, 0
adc ecx, 0
add eax, ebx
adc edx, ecx
add esi, eax
adc edi, edx
mov ebx, dword [esp + 0x50]
xor ecx, ecx
xor eax, eax
add ebx, dword [esp + 0x68]
adc ecx, 0
mov edx, dword [esp + 0x6c]
add edx, dword [esp + 0x78]
adc eax, 0
add ebx, edx
adc ecx, eax
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x84]
add edx, edi
mov edi, 0
adc edi, 0
add ebx, edx
adc ecx, edi
xor edx, edx
mov edi, dword [esp + 0x20]
add edi, dword [esp + 0x80]
adc edx, 0
add eax, ecx
mov ecx, dword [esp + 0x88]
adc ecx, 0
add edi, eax
mov eax, dword [esp + 0x24]
adc edx, ecx
mov ecx, dword [esp + 0xc]
or ecx, dword [esp + 4]
or ecx, dword [esp]
mov dword [esp + 0x20], edi
test dl, 2
je 0x4b48ed
inc dword [esp + 0x1c]
mov dword [esp + 0xc], ecx
shl edx, 0xf
mov ecx, edi
mov edi, ecx
shr edi, 0x11
or edx, edi
shl ecx, 0xf
mov edi, ebx
shr edi, 0x11
or ecx, edi
mov dword [esp + 0x20], ecx
shl ebx, 0xf
mov ecx, esi
shr ecx, 0x11
or ebx, ecx
shl esi, 0xf
mov edi, eax
shr edi, 0x11
or esi, edi
shl eax, 0xf
mov edi, dword [esp + 0xc]
mov ecx, 1
test edi, edi
cmovne edi, ecx
or eax, edi
jmp 0x4b4932
mov dword [esp + 0xc], ecx
mov ecx, edi
shl edx, 0x10
mov edi, ecx
shr edi, 0x10
or edx, edi
shl ecx, 0x10
mov edi, ebx
shr edi, 0x10
or ecx, edi
shl ebx, 0x10
mov dword [esp + 0x20], ecx
mov ecx, esi
shr ecx, 0x10
or ebx, ecx
shl esi, 0x10
mov edi, eax
shr edi, 0x10
or esi, edi
mov edi, dword [esp + 0xc]
shl eax, 0x10
mov ecx, 1
test edi, edi
cmovne edi, ecx
or eax, edi
cmp dword [esp + 0x1c], 0x7ffd
jae 0x4b4a08
test eax, eax
je 0x4b4cf3
fnstcw word [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov edi, dword [0x526d28]
movsd xmm0, qword [edi]
mov edi, dword [0x526d2c]
addsd xmm0, qword [edi]
movsd qword [esp + 0x10], xmm0
and ecx, 0xc00
jne 0x4b4978
test eax, eax
jl 0x4b49cd
jmp 0x4b499c
cmp ecx, 0xc00
je 0x4b499c
cmp dword [esp + 0x8c], 0
je 0x4b4994
cmp ecx, 0x400
je 0x4b49cd
jmp 0x4b499c
cmp ecx, 0x800
je 0x4b49cd
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x20]
mov dword [eax], esi
mov dword [eax + 4], ebx
mov ebx, dword [esp + 0x1c]
mov dword [eax + 8], ecx
shl ebx, 0x10
add ebx, edx
mov edx, dword [esp + 0x8c]
or edx, ebx
mov dword [eax + 0xc], edx
add esp, 0xb4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
inc esi
jne 0x4b49ea
inc ebx
jne 0x4b49ea
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x20]
lea edi, [edx + 1]
inc esi
cmove edx, edi
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x28]
xor edi, edi
test ecx, ecx
mov ecx, 1
cmove edi, ecx
add eax, eax
mov eax, 0
cmove eax, ecx
and edi, eax
not edi
and esi, edi
jmp 0x4b499c
fnstcw word [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xc], ecx
and ecx, 0xc00
jne 0x4b4a23
mov edi, eax
shr edi, 0x1f
jmp 0x4b4a51
cmp ecx, 0xc00
je 0x4b4a4f
cmp dword [esp + 0x8c], 0
je 0x4b4a43
cmp ecx, 0x400
je 0x4b4db6
jmp 0x4b4a4f
cmp ecx, 0x800
je 0x4b4dfe
xor edi, edi
cmp dword [esp + 0x1c], 0x7ffd
jle 0x4b4ae2
mov eax, dword [0x526d30]
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
cmp ecx, 0xc00
je 0x4b4d84
cmp dword [esp + 0x8c], 0
je 0x4b4a96
cmp ecx, 0x800
je 0x4b4d84
jmp 0x4b4aa2
cmp ecx, 0x400
je 0x4b4d84
mov esi, dword [esp + 0x8c]
mov ebx, dword [ebp + 8]
shr esi, 0x1b
mov eax, dword [esi + 0x51a3f0]
mov dword [ebx], eax
mov edx, dword [esi + 0x51a3f4]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 0x51a3f8]
mov dword [ebx + 8], ecx
mov edx, dword [esi + 0x51a3fc]
mov eax, dword [ebp + 8]
mov dword [eax + 0xc], edx
add esp, 0xb4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x1c], 0x7ffd
je 0x4b4dc8
cmp dword [esp + 0x1c], 0
jge 0x4b4940
cmp dword [esp + 0x1c], 0xffffffff
jl 0x4b4b2a
test edi, edi
je 0x4b4b2a
cmp edx, 0x1ffff
jb 0x4b4b2a
jne 0x4b4b34
cmp dword [esp + 0x20], 0xffffffff
jb 0x4b4b2a
cmp dword [esp + 0x20], 0xffffffff
jne 0x4b4b34
cmp ebx, 0xffffffff
jb 0x4b4b2a
jne 0x4b4b34
cmp esi, 0xffffffff
jae 0x4b4b34
mov dword [esp + 4], 1
jmp 0x4b4b3c
mov dword [esp + 4], 0
mov edi, dword [esp + 0x1c]
neg edi
mov dword [esp + 0x1c], edi
mov ecx, edi
neg ecx
cmp edi, 0x20
mov dword [esp + 8], ecx
jge 0x4b4bb4
mov dword [esp], edx
mov edx, ecx
mov ecx, edx
mov edi, esi
shl edi, cl
mov ecx, 1
test eax, eax
cmovne eax, ecx
mov ecx, edx
or eax, edi
mov edi, ebx
shl edi, cl
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
mov ecx, eax
shr esi, cl
mov ecx, edx
or esi, edi
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x20]
mov edi, esi
shl edi, cl
mov ecx, eax
shr ebx, cl
mov ecx, edx
mov edx, dword [esp]
or ebx, edi
mov edi, edx
shl edi, cl
mov ecx, eax
shr esi, cl
shr edx, cl
mov eax, dword [esp + 0x24]
or esi, edi
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x28]
jmp 0x4b4c91
je 0x4b4d69
cmp dword [esp + 0x1c], 0x40
jge 0x4b4c0d
mov edi, ebx
shl edi, cl
mov dword [esp], edi
mov edi, dword [esp + 0x20]
or esi, eax
mov eax, 0
mov esi, 1
cmovne eax, esi
mov esi, edi
shl esi, cl
or eax, dword [esp]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
mov ecx, eax
shr ebx, cl
or esi, ebx
mov ebx, edx
mov ecx, dword [esp + 8]
shl ebx, cl
mov ecx, eax
shr edi, cl
shr edx, cl
mov eax, dword [esp + 0x24]
mov dword [esp + 0x20], edx
or ebx, edi
jmp 0x4b4c8f
je 0x4b4d4d
cmp dword [esp + 0x1c], 0x60
jge 0x4b4c49
mov edi, dword [esp + 0x20]
shl edi, cl
or esi, ebx
or esi, eax
mov ebx, dword [esp + 0x20]
mov eax, 0
mov esi, 1
cmovne eax, esi
mov esi, edx
shl esi, cl
mov ecx, dword [esp + 0x1c]
shr ebx, cl
or eax, edi
or esi, ebx
mov ebx, edx
shr ebx, cl
jmp 0x4b4c87
je 0x4b4d31
cmp dword [esp + 0x1c], 0x80
jge 0x4b4c7e
or ebx, dword [esp + 0x20]
mov edi, edx
shl edi, cl
mov ecx, dword [esp + 0x1c]
or ebx, esi
or ebx, eax
mov eax, 0
mov ebx, 1
cmovne eax, ebx
mov esi, edx
shr esi, cl
or eax, edi
jmp 0x4b4c85
mov eax, 1
xor esi, esi
xor ebx, ebx
mov dword [esp + 0x20], 0
xor edx, edx
cmp dword [esp + 4], 0
je 0x4b4d24
test eax, eax
je 0x4b4cc1
mov ecx, dword [0x526d2c]
movsd xmm0, qword [ecx]
mulsd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
mov dword [esp + 0x1c], 0
jmp 0x4b4948
test byte [esp + 0xc], 0x10
jne 0x4b4ceb
mov eax, dword [0x526d2c]
mov ecx, dword [0x526d34]
movsd xmm0, qword [eax]
mulsd xmm0, qword [ecx]
movsd qword [esp + 0x10], xmm0
mov dword [esp + 0x1c], 0
jmp 0x4b4cf3
mov dword [esp + 0x1c], 0
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x20]
mov dword [eax], esi
mov dword [eax + 4], ebx
mov ebx, dword [esp + 0x1c]
mov dword [eax + 8], ecx
shl ebx, 0x10
add ebx, edx
mov edx, dword [esp + 0x8c]
or edx, ebx
mov dword [eax + 0xc], edx
add esp, 0xb4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x1c], 0
jmp 0x4b4940
or esi, ebx
mov ecx, 1
or esi, eax
mov eax, 0
cmovne eax, ecx
or eax, dword [esp + 0x20]
mov esi, edx
jmp 0x4b4c85
mov ecx, 1
or esi, eax
mov eax, 0
cmovne eax, ecx
or eax, ebx
mov ebx, edx
mov esi, dword [esp + 0x20]
jmp 0x4b4c87
mov ecx, 1
test eax, eax
cmovne eax, ecx
or eax, esi
mov esi, ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x20], edx
jmp 0x4b4c8f
mov esi, dword [esp + 0x8c]
mov ebx, dword [ebp + 8]
shr esi, 0x1b
mov eax, dword [esi + 0x51a430]
mov dword [ebx], eax
mov edx, dword [esi + 0x51a434]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 0x51a438]
mov dword [ebx + 8], ecx
mov edx, dword [esi + 0x51a43c]
jmp 0x4b4acf
test eax, eax
je 0x4b4a4f
mov edi, 1
jmp 0x4b4a51
cmp edx, 0x1ffff
jne 0x4b4940
cmp dword [esp + 0x20], 0xffffffff
jne 0x4b4940
cmp ebx, 0xffffffff
jne 0x4b4940
cmp esi, 0xffffffff
jne 0x4b4940
test edi, edi
jne 0x4b4a5f
jmp 0x4b4940
test eax, eax
je 0x4b4a4f
mov edi, 1
jmp 0x4b4a51
mov edi, dword [esp + 0xa4]
or edi, dword [esp + 0xa8]
xor ecx, ecx
or edi, dword [esp + 0x9c]
mov edi, 1
cmovne ecx, edi
or ecx, ebx
jne 0x4b4e45
mov dword [esp + 8], 0
mov dword [esp + 4], 1
jmp 0x4b4e8f
cmp ecx, 0x10000
jae 0x4b4e5c
mov edi, 2
mov dword [esp + 8], edi
mov dword [esp + 4], edi
jmp 0x4b4e8f
cmp ecx, 0x7fff0000
jae 0x4b4e76
mov dword [esp + 8], 0
mov dword [esp + 4], 4
jmp 0x4b4e8f
mov dword [esp + 8], 0
mov edi, 0x10
mov ecx, 8
cmova ecx, edi
mov dword [esp + 4], ecx
mov edi, dword [esp + 0x94]
or edi, dword [esp + 0x98]
xor ecx, ecx
or edi, dword [esp + 0x90]
mov edi, 1
cmovne ecx, edi
or ecx, eax
jne 0x4b4ebc
mov edi, 1
mov dword [esp], edi
jmp 0x4b4ef9
cmp ecx, 0x10000
jae 0x4b4ed8
mov edi, dword [esp + 8]
mov dword [esp], 2
or edi, 2
mov dword [esp + 8], edi
jmp 0x4b4ef9
cmp ecx, 0x7fff0000
jae 0x4b4ee9
mov dword [esp], 4
jmp 0x4b4ef9
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 + 0xa0], 0x7fff
je 0x4b5446
cmp edx, 0x7fff
je 0x4b5446
test edi, 1
je 0x4b4f82
cmp dword [esp + 8], 0
je 0x4b4f45
mov eax, dword [0x526d24]
mov edx, dword [0x526d28]
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp + 0x10], xmm0
mov ebx, dword [esp + 0x8c]
mov edi, dword [ebp + 8]
shr ebx, 0x1b
mov eax, dword [ebx + 0x51a410]
mov dword [edi], eax
mov edx, dword [ebx + 0x51a414]
mov dword [edi + 4], edx
mov ecx, dword [ebx + 0x51a418]
mov dword [edi + 8], ecx
mov esi, dword [ebx + 0x51a41c]
mov dword [edi + 0xc], esi
add esp, 0xb4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 4]
cmp eax, dword [esp]
je 0x4b5148
cmp dword [esp + 4], 2
mov eax, dword [0x526d24]
movsd xmm0, qword [eax]
mov ebx, dword [0x526d28]
mulsd xmm0, qword [ebx]
movsd qword [esp + 0x10], xmm0
je 0x4b5215
cmp dword [esp + 0xac], 0
je 0x4b4fcb
mov ebx, dword [esp + 0xac]
shl ebx, 0xf
xor edx, edx
jmp 0x4b5003
cmp dword [esp + 0x94], 0
je 0x4b4fe3
mov ebx, dword [esp + 0x94]
mov edx, 0x11
jmp 0x4b5003
mov edx, dword [esp + 0x98]
mov ebx, dword [esp + 0x90]
mov eax, 0x31
test edx, edx
cmovne ebx, edx
mov edx, 0x51
cmovne edx, eax
bsr eax, ebx
sub edx, eax
add edx, 0x1f
mov esi, edx
neg esi
cmp edx, 0x20
jge 0x4b5079
mov eax, dword [esp + 0xac]
mov ebx, dword [esp + 0x94]
mov ecx, edx
shl eax, cl
mov ecx, esi
mov edi, ebx
shr edi, cl
mov ecx, edx
shl ebx, cl
or eax, edi
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x98]
mov ecx, esi
mov edi, eax
shr edi, cl
mov ecx, edx
shl eax, cl
or ebx, edi
mov dword [esp + 0x94], ebx
mov ebx, dword [esp + 0x90]
mov ecx, esi
mov esi, ebx
shr esi, cl
mov ecx, edx
shl ebx, cl
mov dword [esp + 0x90], ebx
or eax, esi
mov dword [esp + 0x98], eax
jmp 0x4b5140
je 0x4b51e6
cmp edx, 0x40
jge 0x4b50cc
mov ebx, dword [esp + 0x94]
mov eax, dword [esp + 0x98]
mov ecx, edx
shl ebx, cl
mov ecx, esi
mov edi, eax
shr edi, cl
mov ecx, edx
shl eax, cl
or edi, ebx
mov ebx, dword [esp + 0x90]
mov dword [esp + 0xac], edi
mov ecx, esi
mov esi, ebx
shr esi, cl
mov ecx, edx
shl ebx, cl
or esi, eax
mov dword [esp + 0x94], esi
mov dword [esp + 0x98], ebx
jmp 0x4b5135
je 0x4b51c5
cmp edx, 0x60
jge 0x4b5105
mov eax, dword [esp + 0x98]
mov ecx, edx
shl eax, cl
mov ecx, esi
mov esi, dword [esp + 0x90]
mov ebx, esi
shr ebx, cl
mov ecx, edx
shl esi, cl
mov dword [esp + 0x94], esi
or ebx, eax
mov dword [esp + 0xac], ebx
jmp 0x4b512a
mov eax, dword [esp + 0x90]
mov dword [esp + 0x94], 0
mov ecx, edx
mov ebx, eax
shl ebx, cl
cmp edx, 0x60
cmove ebx, eax
mov dword [esp + 0xac], ebx
mov dword [esp + 0x98], 0
mov dword [esp + 0x90], 0
neg edx
inc edx
jmp 0x4b462c
fnstcw word [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov eax, dword [0x526d2c]
mov edx, dword [0x526d24]
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp + 0x10], xmm0
and ecx, 0xc00
cmp dword [esp + 0x8c], 0
je 0x4b518b
mov eax, 1
xor edx, edx
cmp ecx, 0x400
cmovne eax, edx
jmp 0x4b519b
mov eax, 1
xor edx, edx
cmp ecx, 0x800
cmovne eax, edx
mov edx, dword [ebp + 8]
mov dword [edx + 4], 0
mov dword [edx], eax
mov eax, dword [esp + 0x8c]
mov dword [edx + 8], 0
mov dword [edx + 0xc], eax
add esp, 0xb4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x98]
mov ebx, dword [esp + 0x90]
mov dword [esp + 0xac], eax
mov dword [esp + 0x94], ebx
jmp 0x4b512a
mov eax, dword [esp + 0x94]
mov ebx, dword [esp + 0x98]
mov esi, dword [esp + 0x90]
mov dword [esp + 0xac], eax
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], esi
jmp 0x4b5135
cmp dword [esp + 0xb0], 0
je 0x4b5236
mov edi, dword [esp + 0xb0]
mov dword [esp + 0xa0], 0
shl edi, 0xf
jmp 0x4b527b
cmp dword [esp + 0xa4], 0
je 0x4b5254
mov edi, dword [esp + 0xa4]
mov dword [esp + 0xa0], 0x11
jmp 0x4b527b
mov eax, dword [esp + 0xa8]
mov edi, dword [esp + 0x9c]
mov ebx, 0x31
mov esi, 0x51
test eax, eax
cmovne edi, eax
cmovne esi, ebx
mov dword [esp + 0xa0], esi
bsr eax, edi
mov ebx, dword [esp + 0xa0]
sub ebx, eax
add ebx, 0x1f
mov eax, ebx
mov dword [esp + 0xa0], ebx
neg eax
cmp ebx, 0x20
jge 0x4b530e
mov ecx, ebx
mov ebx, dword [esp + 0xb0]
shl ebx, cl
mov ecx, eax
mov esi, dword [esp + 0xa4]
mov edi, esi
shr edi, cl
or ebx, edi
mov ecx, dword [esp + 0xa0]
shl esi, cl
mov dword [esp + 0xb0], ebx
mov ecx, eax
mov ebx, dword [esp + 0xa8]
mov edi, ebx
shr edi, cl
or esi, edi
mov ecx, dword [esp + 0xa0]
shl ebx, cl
mov dword [esp + 0xa4], esi
mov ecx, eax
mov esi, dword [esp + 0x9c]
mov eax, esi
shr eax, cl
or ebx, eax
mov ecx, dword [esp + 0xa0]
shl esi, cl
mov dword [esp + 0xa8], ebx
mov dword [esp + 0x9c], esi
jmp 0x4b53e6
je 0x4b541a
cmp dword [esp + 0xa0], 0x40
jge 0x4b536b
mov esi, ebx
mov ebx, dword [esp + 0xa8]
mov ecx, esi
shl dword [esp + 0xa4], cl
mov ecx, eax
mov edi, ebx
shr edi, cl
or edi, dword [esp + 0xa4]
mov ecx, esi
shl ebx, cl
mov dword [esp + 0xb0], edi
mov edi, dword [esp + 0x9c]
mov ecx, eax
mov eax, edi
shr eax, cl
mov ecx, esi
shl edi, cl
or eax, ebx
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], edi
jmp 0x4b53db
je 0x4b53fc
cmp dword [esp + 0xa0], 0x60
jge 0x4b53ab
mov esi, ebx
mov ebx, dword [esp + 0xa8]
mov edi, dword [esp + 0x9c]
mov ecx, esi
shl ebx, cl
mov ecx, eax
mov eax, edi
shr eax, cl
mov ecx, esi
shl edi, cl
mov dword [esp + 0xa4], edi
or eax, ebx
mov dword [esp + 0xb0], eax
jmp 0x4b53d0
mov ecx, ebx
mov eax, dword [esp + 0x9c]
mov dword [esp + 0xa4], 0
mov ebx, eax
shl ebx, cl
cmp ecx, 0x60
cmove ebx, eax
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xa8], 0
mov dword [esp + 0x9c], 0
mov eax, dword [esp + 0xa0]
neg eax
inc eax
mov dword [esp + 0xa0], eax
jmp 0x4b462c
mov eax, dword [esp + 0xa8]
mov ebx, dword [esp + 0x9c]
mov dword [esp + 0xb0], eax
mov dword [esp + 0xa4], ebx
jmp 0x4b53d0
mov eax, dword [esp + 0xa4]
mov ebx, dword [esp + 0xa8]
mov esi, dword [esp + 0x9c]
mov dword [esp + 0xb0], eax
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xa8], esi
jmp 0x4b53db
test edi, 0x10
je 0x4b5628
mov edx, dword [esp + 4]
cmp edx, dword [esp]
je 0x4b54b1
cmp dword [esp + 4], 0x10
je 0x4b56cb
mov ebx, dword [ebp + 8]
mov eax, dword [esp + 0x90]
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 0x4b560f
mov edx, dword [ebp + 8]
mov eax, dword [0x526d20]
movsd xmm0, qword [eax]
divsd xmm0, xmm0
mov dword [edx + 0xc], ecx
movsd qword [esp + 0x10], xmm0
mov ecx, dword [edx + 0xc]
jmp 0x4b560f
mov edx, dword [esp + 0xc]
not esi
and esi, 0x8000
shr esi, 0xf
not edx
and edx, 0x8000
shr edx, 0xf
mov dword [esp + 0xc], edx
mov ecx, esi
or ecx, edx
je 0x4b54e9
mov edx, dword [0x526d20]
movsd xmm0, qword [edx]
divsd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
cmp esi, dword [esp + 0xc]
je 0x4b5515
test esi, esi
je 0x4b55cb
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 0x4b560f
cmp ebx, eax
jb 0x4b5561
je 0x4b552d
mov edx, dword [esp + 0xa4]
cmp edx, dword [esp + 0x94]
je 0x4b553f
jmp 0x4b557f
mov edx, dword [esp + 0xa4]
cmp edx, dword [esp + 0x94]
jb 0x4b5561
jne 0x4b557f
mov edx, dword [esp + 0xa8]
cmp edx, dword [esp + 0x98]
jb 0x4b5561
jne 0x4b557f
mov edx, dword [esp + 0x9c]
cmp edx, dword [esp + 0x90]
jae 0x4b557f
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 0x4b560f
cmp eax, ebx
jb 0x4b55cb
je 0x4b5597
mov eax, dword [esp + 0x94]
cmp eax, dword [esp + 0xa4]
je 0x4b55a9
jmp 0x4b55e6
mov eax, dword [esp + 0x94]
cmp eax, dword [esp + 0xa4]
jb 0x4b55cb
jne 0x4b55e6
mov eax, dword [esp + 0xa8]
cmp eax, dword [esp + 0x98]
ja 0x4b55cb
jne 0x4b55e6
mov eax, dword [esp + 0x9c]
cmp eax, dword [esp + 0x90]
jbe 0x4b55e6
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 0x4b560f
mov eax, dword [ebp + 0xc]
test dword [eax + 0xc], 0x80000000
je 0x4b54f7
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]
mov eax, dword [ebp + 8]
or ecx, 0x8000
mov dword [eax + 0xc], ecx
add esp, 0xb4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test edi, 1
je 0x4b566e
mov eax, dword [0x526d20]
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, 0xb4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp dword [esp + 8], 0
je 0x4b568e
mov eax, dword [0x526d24]
mov edx, dword [0x526d28]
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp + 0x10], xmm0
mov ebx, dword [esp + 0x8c]
mov edi, dword [ebp + 8]
shr ebx, 0x1b
mov eax, dword [ebx + 0x51a3f0]
mov dword [edi], eax
mov edx, dword [ebx + 0x51a3f4]
mov dword [edi + 4], edx
mov ecx, dword [ebx + 0x51a3f8]
mov dword [edi + 8], ecx
mov esi, dword [ebx + 0x51a3fc]
mov dword [edi + 0xc], esi
add esp, 0xb4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp + 8]
mov eax, dword [esp + 0x9c]
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 0x4b5484
push ebp
mov ebp, esp
and esp, 0xfffffff8
push edi
push esi
push ebx
sub esp, 0x5c
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov eax, dword [ecx + 8]
mov esi, dword [ecx + 0xc]
mov edx, dword [ecx]
mov dword [esp + 0x18], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x2c], esi
mov edi, esi
and edi, 0x7fffffff
mov dword [esp + 0x30], edi
mov dword [esp + 0x14], edx
mov edx, dword [ebx + 8]
mov dword [esp + 0x10], eax
mov eax, dword [ebx]
mov dword [esp + 0x54], edx
mov edx, dword [ebx + 0xc]
mov ebx, dword [ebx + 4]
mov dword [esp + 0x28], edx
mov ecx, edx
and ecx, 0x7fffffff
mov dword [esp + 0x34], ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], ebx
xor esi, edx
and esi, 0x80000000
mov dword [esp + 0x50], esi
movzx edx, di
shr edi, 0x10
movzx esi, cx
mov dword [esp + 0x58], edi
mov eax, ecx
shr eax, 0x10
lea ebx, [edi - 1]
cmp ebx, 0x7ffd
ja 0x4b5f06
lea ebx, [eax - 1]
cmp ebx, 0x7ffd
ja 0x4b5f06
mov ebx, dword [esp + 0x58]
or edx, 0x10000
or esi, 0x10000
lea ebx, [ebx + eax - 0x4000]
add esp, 0xffffffd0
mov edi, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x84]
mov dword [esp], edi
mov dword [esp + 4], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x50]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], eax
lea edx, [esp + 0x78]
mov dword [esp + 0x2c], edx
lea eax, [esp + 0x60]
lea edx, [esp + 0x68]
lea ecx, [esp + 0x70]
call fcn.004b6670
add esp, 0x30
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
xor edi, edi
mov dword [esp], edx
and edx, 2
or edx, edi
je 0x4b5888
mov edi, dword [esp]
mov edx, ecx
shr edx, 0x11
shl ecx, 0xf
shl edi, 0xf
or edx, edi
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x40]
mov edi, eax
shr edi, 0x11
or ecx, edi
mov edi, esi
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x44]
shr edi, 0x11
shl esi, 0xf
shl eax, 0xf
or edi, eax
mov dword [esp + 0x3c], edi
mov eax, ecx
shr eax, 0x11
or esi, eax
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x48]
or esi, dword [esp + 0x4c]
je 0x4b586c
mov esi, 1
jmp 0x4b586e
xor esi, esi
mov eax, edx
shr eax, 0x11
shl edx, 0xf
shl ecx, 0xf
or eax, ecx
or edx, esi
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], eax
inc ebx
jmp 0x4b58f5
mov edi, dword [esp]
mov edx, ecx
shr edx, 0x10
shl ecx, 0x10
shl edi, 0x10
or edx, edi
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x40]
mov edi, eax
shr edi, 0x10
or ecx, edi
mov edi, esi
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x44]
shr edi, 0x10
shl esi, 0x10
shl eax, 0x10
or edi, eax
mov dword [esp + 0x3c], edi
mov eax, ecx
shr eax, 0x10
or esi, eax
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x48]
or esi, dword [esp + 0x4c]
je 0x4b58dc
mov esi, 1
jmp 0x4b58de
xor esi, esi
mov eax, edx
shr eax, 0x10
shl edx, 0x10
shl ecx, 0x10
or eax, ecx
or edx, esi
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], eax
cmp ebx, 0x7ffd
jae 0x4b5a36
or edx, eax
je 0x4b5e3c
fnstcw word [esp + 0x24]
mov eax, dword [esp + 0x24]
mov edx, dword [0x526d28]
mov ecx, dword [0x526d2c]
fld qword [edx]
fadd qword [ecx]
fstp qword [esp + 0x28]
and eax, 0xc00
mov dword [esp + 8], eax
jne 0x4b5946
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov dword [esp + 4], eax
mov dword [esp], edx
sub edx, 0
jl 0x4b59b1
jmp 0x4b5976
cmp dword [esp + 8], 0xc00
je 0x4b5976
xor eax, eax
or eax, dword [esp + 0x50]
je 0x4b5968
cmp dword [esp + 8], 0x400
je 0x4b5a22
jmp 0x4b5976
cmp dword [esp + 8], 0x800
je 0x4b5a22
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x34]
mov esi, dword [ebp + 8]
mov dword [esi], edx
mov edx, dword [esp + 0x50]
mov dword [esi + 4], ecx
shl ebx, 0x10
add eax, ebx
or edx, eax
mov eax, dword [esp + 0xc]
mov dword [esi + 8], eax
mov dword [esi + 0xc], edx
add esp, 0x5c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
add edx, 1
adc ecx, 0
mov eax, edx
or eax, ecx
jne 0x4b59d9
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
add esi, 1
adc eax, 0
mov dword [esp + 0xc], esi
jmp 0x4b59e5
mov eax, dword [esp + 0x30]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 4]
mov esi, dword [esp]
add edi, edi
adc esi, esi
or edi, esi
jne 0x4b59fd
mov dword [esp], 1
jmp 0x4b5a04
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 0x4b598a
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov dword [esp + 4], eax
mov dword [esp], edx
jmp 0x4b59b1
fnstcw word [esp + 0x24]
mov esi, dword [esp + 0x24]
mov eax, esi
and eax, 0xc00
jne 0x4b5a56
mov edx, dword [esp + 0x44]
sub edx, 0
jl 0x4b5b20
jmp 0x4b5a7d
cmp eax, 0xc00
je 0x4b5a7d
xor edx, edx
or edx, dword [esp + 0x50]
je 0x4b5a72
cmp eax, 0x400
je 0x4b5b12
jmp 0x4b5a7d
cmp eax, 0x800
je 0x4b5eec
xor edx, edx
mov dword [esp], edx
cmp ebx, 0x7ffd
jle 0x4b5afb
mov edx, dword [0x526d30]
fld qword [edx]
fmul st(0)
fstp qword [esp + 0x28]
cmp eax, 0xc00
je 0x4b5b68
mov ecx, dword [esp + 0x50]
xor edx, edx
or ecx, edx
je 0x4b5abb
cmp eax, 0x800
je 0x4b5b2c
mov eax, 1
jmp 0x4b5ac8
cmp eax, 0x400
je 0x4b5b64
xor eax, eax
mov esi, dword [ebp + 8]
shl eax, 4
mov edx, dword [eax + 0x51a3f0]
mov ecx, dword [eax + 0x51a3f4]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov ebx, dword [eax + 0x51a3f8]
mov eax, dword [eax + 0x51a3fc]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], eax
add esp, 0x5c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
je 0x4b5eac
test ebx, ebx
jl 0x4b5b74
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
jmp 0x4b5901
mov edx, dword [esp + 0x40]
or edx, dword [esp + 0x44]
je 0x4b5a7d
mov dword [esp], 1
jmp 0x4b5a82
mov ebx, 1
mov esi, dword [ebp + 8]
shl ebx, 4
mov eax, dword [ebx + 0x51a430]
mov edx, dword [ebx + 0x51a434]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ecx, dword [ebx + 0x51a438]
mov ebx, dword [ebx + 0x51a43c]
mov dword [esi + 8], ecx
mov dword [esi + 0xc], ebx
add esp, 0x5c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
xor ebx, ebx
jmp 0x4b5b31
mov edx, dword [esp + 0x50]
xor eax, eax
or edx, eax
jne 0x4b5b2c
jmp 0x4b5b64
cmp ebx, 0xffffffff
jge 0x4b5b8b
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x10], eax
mov dword [esp + 4], edx
jmp 0x4b5bf3
cmp dword [esp], 0
jne 0x4b5ba3
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x10], eax
mov dword [esp + 4], edx
jmp 0x4b5bf3
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov ecx, eax
sub ecx, 0xffffffff
mov edi, edx
sbb edi, 0x1ffff
jae 0x4b5bcc
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x10], eax
mov dword [esp + 4], edx
jmp 0x4b5bf3
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x10], ecx
mov dword [esp + 4], edi
inc eax
add edx, 0xfffe0001
or eax, edx
jne 0x4b5bfd
mov eax, ecx
mov edx, edi
sub eax, 0xffffffff
sbb edx, 0xffffffff
jae 0x4b5bfd
mov dword [esp + 0x1c], 1
jmp 0x4b5c03
xor eax, eax
mov dword [esp + 0x1c], eax
neg ebx
mov eax, ebx
and eax, 0x3f
mov dword [esp + 0x20], eax
mov edx, ebx
neg edx
and edx, 0x3f
mov dword [esp + 0x18], edx
cmp ebx, 0x40
jge 0x4b5d2f
mov eax, dword [esp + 0x40]
or eax, dword [esp + 0x44]
je 0x4b5c33
mov ebx, 1
jmp 0x4b5c35
xor ebx, ebx
cmp dword [esp + 0x18], 0x1f
ja 0x4b5c4d
mov ecx, edx
mov eax, dword [esp + 4]
mov edx, dword [esp + 0x10]
shld eax, edx, cl
shl edx, cl
jmp 0x4b5c57
mov ecx, edx
mov eax, dword [esp + 0x10]
shl eax, cl
xor edx, edx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x44], eax
or edx, ebx
mov ebx, dword [esp + 0x34]
cmp dword [esp + 0x18], 0x1f
mov dword [esp + 0x40], edx
mov dword [esp + 0xc], ecx
mov dword [esp], ebx
ja 0x4b5c90
mov ecx, dword [esp + 0x18]
mov edi, ebx
mov ebx, dword [esp + 0xc]
shld edi, ebx, cl
shl ebx, cl
mov dword [esp + 8], ebx
mov dword [esp + 0x14], edi
jmp 0x4b5ca6
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0xc]
shl ebx, cl
mov dword [esp + 0x14], ebx
mov dword [esp + 8], 0
cmp dword [esp + 0x20], 0x1f
ja 0x4b5cc8
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 4]
mov edi, dword [esp + 0x10]
shrd edi, ebx, cl
shr ebx, cl
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10], edi
jmp 0x4b5cdc
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 4]
shr edi, cl
xor ebx, ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10], edi
mov ecx, dword [esp + 8]
or ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
or ebx, dword [esp + 0x18]
cmp dword [esp + 0x20], 0x1f
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ebx
ja 0x4b5d11
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp]
mov edi, dword [esp + 0xc]
shrd edi, ebx, cl
shr ebx, cl
mov dword [esp + 0xc], edi
jmp 0x4b5d20
mov ecx, dword [esp + 0x20]
mov edi, dword [esp]
shr edi, cl
xor ebx, ebx
mov dword [esp + 0xc], edi
mov ecx, edi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], ebx
jmp 0x4b5de9
je 0x4b5e74
cmp ebx, 0x80
jge 0x4b5dc4
mov edx, dword [esp + 0x10]
or edx, dword [esp + 0x40]
mov eax, dword [esp + 4]
or eax, dword [esp + 0x44]
or edx, eax
je 0x4b5d5e
mov dword [esp], 1
jmp 0x4b5d63
xor eax, eax
mov dword [esp], eax
cmp dword [esp + 0x18], 0x1f
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
ja 0x4b5d83
mov ecx, dword [esp + 0x18]
shld eax, edi, cl
mov edx, edi
shl edx, cl
jmp 0x4b5d8d
mov ecx, dword [esp + 0x18]
xor edx, edx
mov eax, edi
shl eax, cl
or edx, dword [esp]
cmp dword [esp + 0x20], 0x1f
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], eax
ja 0x4b5dae
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 4]
shrd edi, ebx, cl
shr ebx, cl
jmp 0x4b5dba
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 4]
shr edi, cl
xor ebx, ebx
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], ebx
jmp 0x4b5ddf
mov dword [esp + 0x40], 1
mov edx, 1
xor eax, eax
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 0x4b5e6d
or edx, eax
je 0x4b5e10
mov eax, dword [0x526d2c]
fld qword [eax]
fmul st(0)
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
fstp qword [esp + 0x28]
xor ebx, ebx
jmp 0x4b5901
test esi, 0x10
jne 0x4b5e3a
mov eax, dword [0x526d2c]
fld qword [eax]
mov edx, dword [0x526d34]
fmul qword [edx]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
fstp qword [esp + 0x28]
xor ebx, ebx
jmp 0x4b5901
xor ebx, ebx
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov edi, dword [ebp + 8]
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x50]
mov dword [edi], eax
mov dword [edi + 4], edx
shl ebx, 0x10
add ebx, dword [esp + 0x34]
or esi, ebx
mov dword [edi + 8], ecx
mov dword [edi + 0xc], esi
add esp, 0x5c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
xor ebx, ebx
jmp 0x4b5901
mov eax, dword [esp + 0x40]
or eax, dword [esp + 0x44]
je 0x4b5e85
mov edx, 1
jmp 0x4b5e87
xor edx, edx
or edx, dword [esp + 0x10]
mov eax, dword [esp + 4]
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 0x4b5ddf
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
inc ecx
add edx, 0xfffe0001
or ecx, edx
jne 0x4b5b05
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
inc ecx
inc edx
or ecx, edx
jne 0x4b5b05
cmp dword [esp], 0
jne 0x4b5a8a
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
jmp 0x4b5901
mov edx, dword [esp + 0x40]
or edx, dword [esp + 0x44]
je 0x4b5a7d
mov dword [esp], 1
jmp 0x4b5a82
mov ebx, dword [esp + 0x14]
or ebx, dword [esp + 0x10]
je 0x4b5f19
mov dword [esp], 1
jmp 0x4b5f1e
xor ebx, ebx
mov dword [esp], ebx
mov ebx, dword [esp]
or ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x30]
mov dword [esp], ebx
or edi, ebx
jne 0x4b5f42
mov dword [esp + 4], 0
mov dword [esp + 0xc], 1
jmp 0x4b5f9f
mov ebx, dword [esp + 0x30]
sub ebx, 0x10000
jae 0x4b5f5d
mov ebx, 2
mov dword [esp + 4], ebx
mov dword [esp + 0xc], ebx
jmp 0x4b5f9f
mov edi, dword [esp + 0x30]
sub edi, 0x7fff0000
jae 0x4b5f7b
mov dword [esp + 4], 0
mov dword [esp + 0xc], 4
jmp 0x4b5f9f
mov ebx, 0
mov dword [esp + 4], ebx
jb 0x4b5f97
mov ebx, dword [esp]
or ebx, edi
je 0x4b5f97
mov dword [esp + 0xc], 0x10
jmp 0x4b5f9f
mov dword [esp + 0xc], 8
mov ebx, dword [esp + 0x20]
or ebx, dword [esp + 0x1c]
je 0x4b5fb0
mov ebx, 1
jmp 0x4b5fb2
xor ebx, ebx
or ebx, dword [esp + 0x54]
mov dword [esp + 8], edx
mov edx, ecx
or edx, ebx
mov edx, dword [esp + 8]
jne 0x4b5fcd
mov dword [esp], 1
jmp 0x4b6020
mov dword [esp + 8], edx
mov edx, ecx
sub edx, 0x10000
mov edx, dword [esp + 8]
jae 0x4b5ff3
mov ebx, dword [esp + 4]
mov dword [esp], 2
or ebx, 2
mov dword [esp + 4], ebx
jmp 0x4b6020
mov edi, ecx
sub edi, 0x7fff0000
mov dword [esp], edi
jae 0x4b6009
mov dword [esp], 4
jmp 0x4b6020
jb 0x4b6019
or ebx, dword [esp]
je 0x4b6019
mov dword [esp], 0x10
jmp 0x4b6020
mov dword [esp], 8
mov ebx, dword [esp + 0xc]
or ebx, dword [esp]
cmp dword [esp + 0x58], 0x7fff
je 0x4b63f1
cmp eax, 0x7fff
je 0x4b63f1
test bl, 1
je 0x4b60a5
cmp dword [esp + 4], 0
je 0x4b605f
mov eax, dword [0x526d24]
fld qword [eax]
mov edx, dword [0x526d28]
fmul qword [edx]
fstp qword [esp + 0x28]
mov edx, dword [esp + 0x50]
xor eax, eax
or edx, eax
je 0x4b6070
mov eax, 1
jmp 0x4b6072
xor eax, eax
mov esi, dword [ebp + 8]
shl eax, 4
mov edx, dword [eax + 0x51a410]
mov ecx, dword [eax + 0x51a414]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov ebx, dword [eax + 0x51a418]
mov eax, dword [eax + 0x51a41c]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], eax
add esp, 0x5c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 0xc]
cmp ebx, dword [esp]
je 0x4b6215
cmp dword [esp + 0xc], 2
mov ebx, dword [0x526d24]
fld qword [ebx]
mov edi, dword [0x526d28]
fmul qword [edi]
fstp qword [esp + 0x28]
je 0x4b627a
mov eax, dword [esp + 0x54]
mov dword [esp + 4], eax
or eax, esi
mov dword [esp], esi
jne 0x4b60f6
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 4], eax
mov dword [esp], ecx
mov eax, 0x31
jmp 0x4b60fb
mov eax, 0xfffffff1
mov ebx, dword [esp]
sub ebx, 1
jae 0x4b6108
add eax, 0x20
jmp 0x4b610f
mov ebx, dword [esp]
mov dword [esp + 4], ebx
bsr ebx, dword [esp + 4]
sub eax, ebx
add eax, 0x1f
cmp eax, 0x40
jge 0x4b61be
cmp eax, 0x1f
ja 0x4b6138
mov ebx, dword [esp + 0x54]
mov ecx, eax
shld esi, ebx, cl
shl ebx, cl
mov dword [esp + 4], ebx
jmp 0x4b6148
mov esi, dword [esp + 0x54]
mov dword [esp + 4], 0
mov ecx, eax
shl esi, cl
mov ecx, eax
neg ecx
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4b6174
mov ebx, dword [esp + 0x20]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x1c]
shrd ebx, edx, cl
mov edi, edx
mov edx, dword [esp + 8]
shr edi, cl
mov dword [esp + 0x54], ebx
mov dword [esp], edi
jmp 0x4b6185
mov ebx, dword [esp + 0x1c]
shr ebx, cl
mov dword [esp + 0x54], ebx
mov dword [esp], 0
or esi, dword [esp]
or ebx, dword [esp + 4]
mov dword [esp + 0x54], ebx
cmp eax, 0x1f
ja 0x4b61aa
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
mov ecx, eax
shld edi, ebx, cl
shl ebx, cl
mov dword [esp + 0x1c], edi
jmp 0x4b61b8
mov edi, dword [esp + 0x20]
xor ebx, ebx
mov ecx, eax
shl edi, cl
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], ebx
jmp 0x4b620d
mov ecx, eax
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4b61db
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
shld esi, ebx, cl
shl ebx, cl
mov dword [esp + 0x54], ebx
jmp 0x4b61e7
mov esi, dword [esp + 0x20]
shl esi, cl
xor ebx, ebx
mov dword [esp + 0x54], ebx
mov edi, ebx
xor ebx, ebx
cmp eax, 0x40
sete bl
test ebx, ebx
je 0x4b61f9
mov edi, dword [esp + 0x20]
je 0x4b61ff
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x54], edi
xor ebx, ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], ebx
neg eax
inc eax
jmp 0x4b578c
fnstcw word [esp + 0x24]
mov ebx, dword [esp + 0x24]
mov eax, dword [0x526d2c]
fld qword [eax]
and ebx, 0xc00
xor ecx, ecx
or ecx, dword [esp + 0x50]
mov edx, dword [0x526d24]
fmul qword [edx]
fstp qword [esp + 0x28]
je 0x4b624b
xor eax, eax
cmp ebx, 0x400
sete al
jmp 0x4b6256
xor eax, eax
cmp ebx, 0x800
sete al
mov edx, dword [ebp + 8]
mov dword [edx + 4], 0
mov dword [edx], eax
mov eax, dword [esp + 0x50]
mov dword [edx + 8], 0
mov dword [edx + 0xc], eax
add esp, 0x5c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 0x18]
mov dword [esp], ebx
or ebx, edx
mov dword [esp + 4], edx
jne 0x4b62a2
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov dword [esp + 0x58], 0x31
mov dword [esp], ebx
mov dword [esp + 4], edi
jmp 0x4b62aa
mov dword [esp + 0x58], 0xfffffff1
mov ebx, dword [esp + 4]
sub ebx, 1
jae 0x4b62c0
mov ebx, dword [esp + 0x58]
add ebx, 0x20
mov dword [esp + 0x58], ebx
jmp 0x4b62c7
mov ebx, dword [esp + 4]
mov dword [esp], ebx
bsr ebx, dword [esp]
mov edi, dword [esp + 0x58]
sub edi, ebx
add edi, 0x1f
cmp edi, 0x40
mov dword [esp + 0x58], edi
jge 0x4b638e
cmp dword [esp + 0x58], 0x1f
ja 0x4b62f9
mov ecx, edi
mov ebx, dword [esp + 0x18]
shld edx, ebx, cl
shl ebx, cl
mov dword [esp + 4], ebx
jmp 0x4b6309
mov ecx, edi
mov edx, dword [esp + 0x18]
shl edx, cl
mov dword [esp + 4], 0
neg ecx
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4b6333
mov ebx, dword [esp + 0x14]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x10]
shrd ebx, edx, cl
mov edi, edx
mov edx, dword [esp + 8]
shr edi, cl
mov dword [esp + 0x18], ebx
mov dword [esp], edi
jmp 0x4b6344
mov ebx, dword [esp + 0x10]
shr ebx, cl
mov dword [esp + 0x18], ebx
mov dword [esp], 0
or edx, dword [esp]
or ebx, dword [esp + 4]
cmp dword [esp + 0x58], 0x1f
mov dword [esp + 0x18], ebx
ja 0x4b6370
mov ecx, dword [esp + 0x58]
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
shld edi, ebx, cl
shl ebx, cl
mov dword [esp], ebx
mov dword [esp + 0x10], edi
jmp 0x4b6385
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x14]
shl ebx, cl
mov dword [esp + 0x10], ebx
mov dword [esp], 0
mov ebx, dword [esp]
mov dword [esp + 0x14], ebx
jmp 0x4b63e1
mov ecx, edi
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4b63ab
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
shld edx, ebx, cl
shl ebx, cl
mov dword [esp + 0x18], ebx
jmp 0x4b63b7
xor edx, edx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x14]
shl edx, cl
mov edi, dword [esp + 0x18]
xor ebx, ebx
cmp dword [esp + 0x58], 0x40
sete bl
test ebx, ebx
je 0x4b63cd
mov edi, dword [esp + 0x14]
je 0x4b63d3
mov edx, dword [esp + 0x10]
mov dword [esp + 0x18], edi
xor ebx, ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x58]
neg ebx
inc ebx
mov dword [esp + 0x58], ebx
jmp 0x4b578c
test bl, 0x10
je 0x4b65c3
mov eax, dword [esp + 0xc]
cmp eax, dword [esp]
je 0x4b6471
cmp dword [esp + 0xc], 0x10
je 0x4b6425
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov ebx, dword [ebp + 0x10]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
jmp 0x4b643e
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ebx, dword [ebp + 0xc]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
mov ecx, ebx
and ecx, 0x8000
xor edx, edx
or ecx, edx
jne 0x4b65aa
mov edx, dword [ebp + 8]
mov dword [edx + 8], eax
mov eax, dword [0x526d20]
fld qword [eax]
fdiv st(0)
mov dword [edx + 0xc], ebx
fstp qword [esp + 0x28]
mov eax, dword [edx + 8]
mov ebx, dword [edx + 0xc]
jmp 0x4b65aa
mov edx, dword [esp + 0x2c]
and edx, 0x8000
xor eax, eax
or edx, eax
jne 0x4b6488
mov eax, 1
jmp 0x4b648a
xor eax, eax
mov ecx, dword [esp + 0x28]
and ecx, 0x8000
xor edx, edx
or ecx, edx
jne 0x4b64a1
mov edx, 1
jmp 0x4b64a3
xor edx, edx
mov ecx, eax
or ecx, edx
je 0x4b64b7
mov ecx, dword [0x526d20]
fld qword [ecx]
fdiv st(0)
fstp qword [esp + 0x28]
cmp edx, eax
je 0x4b64de
test eax, eax
je 0x4b6566
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 0x4b65aa
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 0x54]
mov edx, dword [esp + 0x30]
sbb edx, dword [esp + 0x34]
jb 0x4b6516
mov edx, dword [esp + 0x18]
sub edx, dword [esp + 0x54]
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x34]
or edx, eax
jne 0x4b652e
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
sbb edx, dword [esp + 0x1c]
jae 0x4b652e
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 0x4b65aa
mov eax, dword [esp + 0x54]
sub eax, dword [esp + 0x18]
mov edx, dword [esp + 0x34]
sbb edx, dword [esp + 0x30]
jb 0x4b6566
mov edx, dword [esp + 0x54]
sub edx, dword [esp + 0x18]
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x30]
or edx, eax
jne 0x4b657e
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
sbb edx, dword [esp + 0x10]
jae 0x4b657e
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 0x4b65aa
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0xc]
and ecx, 0x80000000
xor edx, edx
or ecx, edx
je 0x4b64c3
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]
mov edx, dword [ebp + 8]
or ebx, 0x8000
mov dword [edx + 8], eax
mov dword [edx + 0xc], ebx
add esp, 0x5c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test bl, 1
je 0x4b6605
mov eax, dword [0x526d20]
fld qword [eax]
fdiv st(0)
mov edx, dword [0x51a450]
mov ecx, dword [0x51a454]
mov edi, dword [ebp + 8]
fstp qword [esp + 0x28]
mov dword [edi], edx
mov dword [edi + 4], ecx
mov ebx, dword [0x51a458]
mov esi, dword [0x51a45c]
mov dword [edi + 8], ebx
mov dword [edi + 0xc], esi
add esp, 0x5c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp dword [esp + 4], 0
je 0x4b661f
mov eax, dword [0x526d24]
fld qword [eax]
mov edx, dword [0x526d28]
fmul qword [edx]
fstp qword [esp + 0x28]
mov edx, dword [esp + 0x50]
xor eax, eax
or edx, eax
je 0x4b6630
mov eax, 1
jmp 0x4b6632
xor eax, eax
mov esi, dword [ebp + 8]
shl eax, 4
mov edx, dword [eax + 0x51a3f0]
mov ecx, dword [eax + 0x51a3f4]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov ebx, dword [eax + 0x51a3f8]
mov eax, dword [eax + 0x51a3fc]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], eax
add esp, 0x5c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test dword [0x53a0b4], 0xfffffe00
jne 0x4b4570
test dword [0x53a0b4], 0xffffffff
jne 0x4b56f0
call fcn.004b12f0
jmp fcn.004b69a0