Function at 0x4b50e0
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 0x4b3530
lea edi, [edx - 1]
cmp edi, 0x7ffd
ja 0x4b3530
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 0x4b300d
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 0x4b3052
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 0x4b3128
test eax, eax
je 0x4b3413
fnstcw word [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov edi, dword [0x4efee8]
movsd xmm0, qword [edi]
mov edi, dword [0x4efeec]
addsd xmm0, qword [edi]
movsd qword [esp + 0x10], xmm0
and ecx, 0xc00
jne 0x4b3098
test eax, eax
jl 0x4b30ed
jmp 0x4b30bc
cmp ecx, 0xc00
je 0x4b30bc
cmp dword [esp + 0x8c], 0
je 0x4b30b4
cmp ecx, 0x400
je 0x4b30ed
jmp 0x4b30bc
cmp ecx, 0x800
je 0x4b30ed
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 0x4b310a
inc ebx
jne 0x4b310a
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 0x4b30bc
fnstcw word [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xc], ecx
and ecx, 0xc00
jne 0x4b3143
mov edi, eax
shr edi, 0x1f
jmp 0x4b3171
cmp ecx, 0xc00
je 0x4b316f
cmp dword [esp + 0x8c], 0
je 0x4b3163
cmp ecx, 0x400
je 0x4b34d6
jmp 0x4b316f
cmp ecx, 0x800
je 0x4b351e
xor edi, edi
cmp dword [esp + 0x1c], 0x7ffd
jle 0x4b3202
mov eax, dword [0x4efef0]
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
cmp ecx, 0xc00
je 0x4b34a4
cmp dword [esp + 0x8c], 0
je 0x4b31b6
cmp ecx, 0x800
je 0x4b34a4
jmp 0x4b31c2
cmp ecx, 0x400
je 0x4b34a4
mov esi, dword [esp + 0x8c]
mov ebx, dword [ebp + 8]
shr esi, 0x1b
mov eax, dword [esi + 0x4e9050]
mov dword [ebx], eax
mov edx, dword [esi + 0x4e9054]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 0x4e9058]
mov dword [ebx + 8], ecx
mov edx, dword [esi + 0x4e905c]
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 0x4b34e8
cmp dword [esp + 0x1c], 0
jge 0x4b3060
cmp dword [esp + 0x1c], 0xffffffff
jl 0x4b324a
test edi, edi
je 0x4b324a
cmp edx, 0x1ffff
jb 0x4b324a
jne 0x4b3254
cmp dword [esp + 0x20], 0xffffffff
jb 0x4b324a
cmp dword [esp + 0x20], 0xffffffff
jne 0x4b3254
cmp ebx, 0xffffffff
jb 0x4b324a
jne 0x4b3254
cmp esi, 0xffffffff
jae 0x4b3254
mov dword [esp + 4], 1
jmp 0x4b325c
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 0x4b32d4
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 0x4b33b1
je 0x4b3489
cmp dword [esp + 0x1c], 0x40
jge 0x4b332d
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 0x4b33af
je 0x4b346d
cmp dword [esp + 0x1c], 0x60
jge 0x4b3369
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 0x4b33a7
je 0x4b3451
cmp dword [esp + 0x1c], 0x80
jge 0x4b339e
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 0x4b33a5
mov eax, 1
xor esi, esi
xor ebx, ebx
mov dword [esp + 0x20], 0
xor edx, edx
cmp dword [esp + 4], 0
je 0x4b3444
test eax, eax
je 0x4b33e1
mov ecx, dword [0x4efeec]
movsd xmm0, qword [ecx]
mulsd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
mov dword [esp + 0x1c], 0
jmp 0x4b3068
test byte [esp + 0xc], 0x10
jne 0x4b340b
mov eax, dword [0x4efeec]
mov ecx, dword [0x4efef4]
movsd xmm0, qword [eax]
mulsd xmm0, qword [ecx]
movsd qword [esp + 0x10], xmm0
mov dword [esp + 0x1c], 0
jmp 0x4b3413
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 0x4b3060
or esi, ebx
mov ecx, 1
or esi, eax
mov eax, 0
cmovne eax, ecx
or eax, dword [esp + 0x20]
mov esi, edx
jmp 0x4b33a5
mov ecx, 1
or esi, eax
mov eax, 0
cmovne eax, ecx
or eax, ebx
mov ebx, edx
mov esi, dword [esp + 0x20]
jmp 0x4b33a7
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 0x4b33af
mov esi, dword [esp + 0x8c]
mov ebx, dword [ebp + 8]
shr esi, 0x1b
mov eax, dword [esi + 0x4e9090]
mov dword [ebx], eax
mov edx, dword [esi + 0x4e9094]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 0x4e9098]
mov dword [ebx + 8], ecx
mov edx, dword [esi + 0x4e909c]
jmp 0x4b31ef
test eax, eax
je 0x4b316f
mov edi, 1
jmp 0x4b3171
cmp edx, 0x1ffff
jne 0x4b3060
cmp dword [esp + 0x20], 0xffffffff
jne 0x4b3060
cmp ebx, 0xffffffff
jne 0x4b3060
cmp esi, 0xffffffff
jne 0x4b3060
test edi, edi
jne 0x4b317f
jmp 0x4b3060
test eax, eax
je 0x4b316f
mov edi, 1
jmp 0x4b3171
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 0x4b3565
mov dword [esp + 8], 0
mov dword [esp + 4], 1
jmp 0x4b35af
cmp ecx, 0x10000
jae 0x4b357c
mov edi, 2
mov dword [esp + 8], edi
mov dword [esp + 4], edi
jmp 0x4b35af
cmp ecx, 0x7fff0000
jae 0x4b3596
mov dword [esp + 8], 0
mov dword [esp + 4], 4
jmp 0x4b35af
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 0x4b35dc
mov edi, 1
mov dword [esp], edi
jmp 0x4b3619
cmp ecx, 0x10000
jae 0x4b35f8
mov edi, dword [esp + 8]
mov dword [esp], 2
or edi, 2
mov dword [esp + 8], edi
jmp 0x4b3619
cmp ecx, 0x7fff0000
jae 0x4b3609
mov dword [esp], 4
jmp 0x4b3619
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 0x4b3b66
cmp edx, 0x7fff
je 0x4b3b66
test edi, 1
je 0x4b36a2
cmp dword [esp + 8], 0
je 0x4b3665
mov eax, dword [0x4efee4]
mov edx, dword [0x4efee8]
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 + 0x4e9070]
mov dword [edi], eax
mov edx, dword [ebx + 0x4e9074]
mov dword [edi + 4], edx
mov ecx, dword [ebx + 0x4e9078]
mov dword [edi + 8], ecx
mov esi, dword [ebx + 0x4e907c]
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 0x4b3868
cmp dword [esp + 4], 2
mov eax, dword [0x4efee4]
movsd xmm0, qword [eax]
mov ebx, dword [0x4efee8]
mulsd xmm0, qword [ebx]
movsd qword [esp + 0x10], xmm0
je 0x4b3935
cmp dword [esp + 0xac], 0
je 0x4b36eb
mov ebx, dword [esp + 0xac]
shl ebx, 0xf
xor edx, edx
jmp 0x4b3723
cmp dword [esp + 0x94], 0
je 0x4b3703
mov ebx, dword [esp + 0x94]
mov edx, 0x11
jmp 0x4b3723
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 0x4b3799
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 0x4b3860
je 0x4b3906
cmp edx, 0x40
jge 0x4b37ec
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 0x4b3855
je 0x4b38e5
cmp edx, 0x60
jge 0x4b3825
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 0x4b384a
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 0x4b2d4c
fnstcw word [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov eax, dword [0x4efeec]
mov edx, dword [0x4efee4]
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp + 0x10], xmm0
and ecx, 0xc00
cmp dword [esp + 0x8c], 0
je 0x4b38ab
mov eax, 1
xor edx, edx
cmp ecx, 0x400
cmovne eax, edx
jmp 0x4b38bb
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 0x4b384a
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 0x4b3855
cmp dword [esp + 0xb0], 0
je 0x4b3956
mov edi, dword [esp + 0xb0]
mov dword [esp + 0xa0], 0
shl edi, 0xf
jmp 0x4b399b
cmp dword [esp + 0xa4], 0
je 0x4b3974
mov edi, dword [esp + 0xa4]
mov dword [esp + 0xa0], 0x11
jmp 0x4b399b
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 0x4b3a2e
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 0x4b3b06
je 0x4b3b3a
cmp dword [esp + 0xa0], 0x40
jge 0x4b3a8b
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 0x4b3afb
je 0x4b3b1c
cmp dword [esp + 0xa0], 0x60
jge 0x4b3acb
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 0x4b3af0
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 0x4b2d4c
mov eax, dword [esp + 0xa8]
mov ebx, dword [esp + 0x9c]
mov dword [esp + 0xb0], eax
mov dword [esp + 0xa4], ebx
jmp 0x4b3af0
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 0x4b3afb
test edi, 0x10
je 0x4b3d48
mov edx, dword [esp + 4]
cmp edx, dword [esp]
je 0x4b3bd1
cmp dword [esp + 4], 0x10
je 0x4b3deb
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 0x4b3d2f
mov edx, dword [ebp + 8]
mov eax, dword [0x4efee0]
movsd xmm0, qword [eax]
divsd xmm0, xmm0
mov dword [edx + 0xc], ecx
movsd qword [esp + 0x10], xmm0
mov ecx, dword [edx + 0xc]
jmp 0x4b3d2f
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 0x4b3c09
mov edx, dword [0x4efee0]
movsd xmm0, qword [edx]
divsd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
cmp esi, dword [esp + 0xc]
je 0x4b3c35
test esi, esi
je 0x4b3ceb
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 0x4b3d2f
cmp ebx, eax
jb 0x4b3c81
je 0x4b3c4d
mov edx, dword [esp + 0xa4]
cmp edx, dword [esp + 0x94]
je 0x4b3c5f
jmp 0x4b3c9f
mov edx, dword [esp + 0xa4]
cmp edx, dword [esp + 0x94]
jb 0x4b3c81
jne 0x4b3c9f
mov edx, dword [esp + 0xa8]
cmp edx, dword [esp + 0x98]
jb 0x4b3c81
jne 0x4b3c9f
mov edx, dword [esp + 0x9c]
cmp edx, dword [esp + 0x90]
jae 0x4b3c9f
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 0x4b3d2f
cmp eax, ebx
jb 0x4b3ceb
je 0x4b3cb7
mov eax, dword [esp + 0x94]
cmp eax, dword [esp + 0xa4]
je 0x4b3cc9
jmp 0x4b3d06
mov eax, dword [esp + 0x94]
cmp eax, dword [esp + 0xa4]
jb 0x4b3ceb
jne 0x4b3d06
mov eax, dword [esp + 0xa8]
cmp eax, dword [esp + 0x98]
ja 0x4b3ceb
jne 0x4b3d06
mov eax, dword [esp + 0x9c]
cmp eax, dword [esp + 0x90]
jbe 0x4b3d06
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 0x4b3d2f
mov eax, dword [ebp + 0xc]
test dword [eax + 0xc], 0x80000000
je 0x4b3c17
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 0x4b3d8e
mov eax, dword [0x4efee0]
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 0x4b3dae
mov eax, dword [0x4efee4]
mov edx, dword [0x4efee8]
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 + 0x4e9050]
mov dword [edi], eax
mov edx, dword [ebx + 0x4e9054]
mov dword [edi + 4], edx
mov ecx, dword [ebx + 0x4e9058]
mov dword [edi + 8], ecx
mov esi, dword [ebx + 0x4e905c]
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 0x4b3ba4
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 edx, dword [ecx + 0xc]
mov edi, dword [ecx]
mov dword [esp + 0x14], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x2c], edx
mov esi, edx
and esi, 0x7fffffff
mov dword [esp + 0x30], esi
mov dword [esp + 0x10], edi
mov edi, dword [ebx + 8]
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 0xc]
mov ecx, eax
mov dword [esp + 0x20], edi
mov edi, dword [ebx]
mov ebx, dword [ebx + 4]
mov dword [esp + 0x28], eax
and ecx, 0x7fffffff
xor edx, eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], ebx
and edx, 0x80000000
movzx eax, si
mov dword [esp + 0x50], edx
shr esi, 0x10
mov dword [esp + 0x54], esi
movzx edx, cx
mov edi, ecx
shr edi, 0x10
lea ebx, [esi - 1]
cmp ebx, 0x7ffd
ja 0x4b4639
lea ebx, [edi - 1]
cmp ebx, 0x7ffd
ja 0x4b4639
mov ebx, dword [esp + 0x54]
or eax, 0x10000
or edx, 0x10000
lea ebx, [ebx + edi - 0x4000]
add esp, 0xffffffd0
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x40]
mov ecx, dword [esp + 0x50]
mov dword [esp], esi
mov esi, dword [esp + 0x48]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], esi
lea edi, [esp + 0x78]
mov dword [esp + 0x2c], edi
lea eax, [esp + 0x60]
lea edx, [esp + 0x68]
lea ecx, [esp + 0x70]
call fcn.004b4db0
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 0x4b3fa4
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 0x4b3f88
mov esi, 1
jmp 0x4b3f8a
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 0x4b4011
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 0x4b3ff8
mov esi, 1
jmp 0x4b3ffa
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 0x4b4153
or edx, eax
je 0x4b4566
fnstcw word [esp + 0x24]
mov eax, dword [esp + 0x24]
mov edx, dword [0x4efee8]
mov ecx, dword [0x4efeec]
fld qword [edx]
fadd qword [ecx]
fstp qword [esp + 0x28]
and eax, 0xc00
mov dword [esp + 8], eax
jne 0x4b4063
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov dword [esp + 4], eax
mov dword [esp], edx
xor ecx, ecx
sub edx, ecx
jl 0x4b40ce
jmp 0x4b4093
cmp dword [esp + 8], 0xc00
je 0x4b4093
xor eax, eax
or eax, dword [esp + 0x50]
je 0x4b4085
cmp dword [esp + 8], 0x400
je 0x4b413f
jmp 0x4b4093
cmp dword [esp + 8], 0x800
je 0x4b413f
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 0x4b40f6
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
add esi, 1
adc eax, 0
mov dword [esp + 0xc], esi
jmp 0x4b4102
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 0x4b411a
mov dword [esp], 1
jmp 0x4b4121
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 0x4b40a7
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov dword [esp + 4], eax
mov dword [esp], edx
jmp 0x4b40ce
fnstcw word [esp + 0x24]
mov esi, dword [esp + 0x24]
mov edi, esi
and edi, 0xc00
jne 0x4b4175
mov edx, dword [esp + 0x44]
xor eax, eax
sub edx, eax
jl 0x4b4241
jmp 0x4b419f
cmp edi, 0xc00
je 0x4b419f
xor eax, eax
or eax, dword [esp + 0x50]
je 0x4b4193
cmp edi, 0x400
je 0x4b4233
jmp 0x4b419f
cmp edi, 0x800
je 0x4b4621
xor ecx, ecx
cmp ebx, 0x7ffd
jle 0x4b421c
mov eax, dword [0x4efef0]
fld qword [eax]
fmul st(0)
fstp qword [esp + 0x28]
cmp edi, 0xc00
je 0x4b4287
mov edx, dword [esp + 0x50]
xor eax, eax
or edx, eax
je 0x4b41db
cmp edi, 0x800
je 0x4b424b
mov eax, 1
jmp 0x4b41e9
cmp edi, 0x400
je 0x4b4283
xor eax, eax
mov esi, dword [ebp + 8]
shl eax, 4
mov edx, dword [eax + 0x4e9050]
mov ecx, dword [eax + 0x4e9054]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov ebx, dword [eax + 0x4e9058]
mov eax, dword [eax + 0x4e905c]
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 0x4b45d5
test ebx, ebx
jl 0x4b4293
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
jmp 0x4b401d
mov eax, dword [esp + 0x40]
or eax, dword [esp + 0x44]
je 0x4b419f
mov ecx, 1
jmp 0x4b41a1
mov ebx, 1
mov esi, dword [ebp + 8]
shl ebx, 4
mov eax, dword [ebx + 0x4e9090]
mov edx, dword [ebx + 0x4e9094]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ecx, dword [ebx + 0x4e9098]
mov ebx, dword [ebx + 0x4e909c]
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 0x4b4250
mov edx, dword [esp + 0x50]
xor eax, eax
or edx, eax
jne 0x4b424b
jmp 0x4b4283
cmp ebx, 0xffffffff
jge 0x4b42a9
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov dword [esp + 8], eax
mov dword [esp], edx
jmp 0x4b431e
test ecx, ecx
jne 0x4b42be
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov dword [esp + 8], eax
mov dword [esp], edx
jmp 0x4b431e
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov ecx, 0xffffffff
mov edi, edx
sub edi, ecx
mov edi, eax
mov ecx, 0x1ffff
sbb edi, ecx
jae 0x4b42eb
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov dword [esp + 8], eax
mov dword [esp], edx
jmp 0x4b431e
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
mov dword [esp + 8], ecx
mov dword [esp], edi
mov edi, 0x1ffff
mov ecx, 0xffffffff
sub edx, ecx
sub eax, edi
or edx, eax
jne 0x4b4328
mov eax, dword [esp + 8]
mov ecx, dword [esp]
mov edx, 0xffffffff
sub eax, edx
sbb ecx, edx
jae 0x4b4328
mov dword [esp + 0x1c], 1
jmp 0x4b432e
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 0x4b445a
mov eax, dword [esp + 0x40]
or eax, dword [esp + 0x44]
je 0x4b435e
mov ebx, 1
jmp 0x4b4360
xor ebx, ebx
cmp dword [esp + 0x18], 0x1f
ja 0x4b4377
mov ecx, edx
mov eax, dword [esp]
mov edx, dword [esp + 8]
shld eax, edx, cl
shl edx, cl
jmp 0x4b4381
mov ecx, edx
mov eax, dword [esp + 8]
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 + 0x10], ecx
mov dword [esp + 4], ebx
ja 0x4b43bb
mov ecx, dword [esp + 0x18]
mov edi, ebx
mov ebx, dword [esp + 0x10]
shld edi, ebx, cl
shl ebx, cl
mov dword [esp + 0xc], ebx
mov dword [esp + 0x14], edi
jmp 0x4b43d1
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
shl ebx, cl
mov dword [esp + 0x14], ebx
mov dword [esp + 0xc], 0
cmp dword [esp + 0x20], 0x1f
ja 0x4b43f2
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp]
mov edi, dword [esp + 8]
shrd edi, ebx, cl
shr ebx, cl
mov dword [esp + 0x18], ebx
mov dword [esp + 8], edi
jmp 0x4b4405
mov ecx, dword [esp + 0x20]
mov edi, dword [esp]
shr edi, cl
xor ebx, ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 8], edi
mov ecx, dword [esp + 0xc]
or ecx, dword [esp + 8]
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 0x4b443b
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 + 0x10], edi
jmp 0x4b444b
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 4]
shr edi, cl
xor ebx, ebx
mov dword [esp + 0x10], edi
mov ecx, edi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], ebx
jmp 0x4b4513
je 0x4b459e
cmp ebx, 0x80
jge 0x4b44ee
mov edx, dword [esp + 8]
or edx, dword [esp + 0x40]
mov eax, dword [esp]
or eax, dword [esp + 0x44]
or edx, eax
je 0x4b4488
mov dword [esp], 1
jmp 0x4b448d
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 0x4b44ad
mov ecx, dword [esp + 0x18]
shld eax, edi, cl
mov edx, edi
shl edx, cl
jmp 0x4b44b7
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 0x4b44d8
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 4]
shrd edi, ebx, cl
shr ebx, cl
jmp 0x4b44e4
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 0x4b4509
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 0x4b4597
or edx, eax
je 0x4b453a
mov eax, dword [0x4efeec]
fld qword [eax]
fmul st(0)
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
fstp qword [esp + 0x28]
xor ebx, ebx
jmp 0x4b401d
test esi, 0x10
jne 0x4b4564
mov eax, dword [0x4efeec]
fld qword [eax]
mov edx, dword [0x4efef4]
fmul qword [edx]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
fstp qword [esp + 0x28]
xor ebx, ebx
jmp 0x4b401d
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 0x4b401d
mov eax, dword [esp + 0x40]
or eax, dword [esp + 0x44]
je 0x4b45af
mov edx, 1
jmp 0x4b45b1
xor edx, edx
or edx, dword [esp + 8]
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 0x4b4509
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov esi, 0xffffffff
sub edx, esi
mov esi, 0x1ffff
sub eax, esi
or edx, eax
jne 0x4b4226
mov esi, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov eax, 0xffffffff
sub esi, eax
sub edx, eax
or esi, edx
jne 0x4b4226
test ecx, ecx
jne 0x4b41a9
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
jmp 0x4b401d
mov eax, dword [esp + 0x40]
or eax, dword [esp + 0x44]
je 0x4b419f
mov ecx, 1
jmp 0x4b41a1
mov ebx, dword [esp + 0x10]
or ebx, dword [esp + 0xc]
je 0x4b464d
mov dword [esp + 4], 1
jmp 0x4b4653
xor ebx, ebx
mov dword [esp + 4], ebx
mov ebx, dword [esp + 4]
or ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x30]
mov dword [esp + 4], ebx
or esi, ebx
jne 0x4b4678
mov dword [esp], 0
mov dword [esp + 8], 1
jmp 0x4b46df
mov esi, dword [esp + 0x30]
mov ebx, 0x10000
sub esi, ebx
jae 0x4b4693
mov ebx, 2
mov dword [esp], ebx
mov dword [esp + 8], ebx
jmp 0x4b46df
mov esi, dword [esp + 0x30]
mov ebx, 0x7fff0000
sub esi, ebx
jae 0x4b46b1
mov dword [esp], 0
mov dword [esp + 8], 4
jmp 0x4b46df
mov esi, dword [esp + 0x30]
mov dword [esp], 0
mov ebx, 0x7fff0000
sub esi, ebx
jb 0x4b46d7
mov ebx, dword [esp + 4]
or ebx, esi
je 0x4b46d7
mov dword [esp + 8], 0x10
jmp 0x4b46df
mov dword [esp + 8], 8
mov ebx, dword [esp + 0x1c]
or ebx, dword [esp + 0x18]
je 0x4b46f3
mov dword [esp + 4], 1
jmp 0x4b46f9
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 0x4b4712
mov ebx, 1
jmp 0x4b4759
mov esi, ecx
mov ebx, 0x10000
sub esi, ebx
jae 0x4b472d
mov ebx, dword [esp]
or ebx, 2
mov dword [esp], ebx
mov ebx, 2
jmp 0x4b4759
mov ebx, ecx
mov esi, 0x7fff0000
sub ebx, esi
jae 0x4b473f
mov ebx, 4
jmp 0x4b4759
mov ebx, ecx
sub ebx, esi
jb 0x4b4754
mov esi, dword [esp + 4]
or esi, ebx
je 0x4b4754
mov ebx, 0x10
jmp 0x4b4759
mov ebx, 8
mov esi, dword [esp + 8]
or esi, ebx
cmp dword [esp + 0x54], 0x7fff
je 0x4b4b33
cmp edi, 0x7fff
je 0x4b4b33
test esi, 1
je 0x4b47e0
cmp dword [esp], 0
je 0x4b479a
mov eax, dword [0x4efee4]
fld qword [eax]
mov edx, dword [0x4efee8]
fmul qword [edx]
fstp qword [esp + 0x28]
mov edx, dword [esp + 0x50]
xor eax, eax
or edx, eax
je 0x4b47ab
mov eax, 1
jmp 0x4b47ad
xor eax, eax
mov esi, dword [ebp + 8]
shl eax, 4
mov edx, dword [eax + 0x4e9070]
mov ecx, dword [eax + 0x4e9074]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov ebx, dword [eax + 0x4e9078]
mov eax, dword [eax + 0x4e907c]
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
cmp ebx, dword [esp + 8]
je 0x4b4953
cmp dword [esp + 8], 2
mov ebx, dword [0x4efee4]
fld qword [ebx]
mov esi, dword [0x4efee8]
fmul qword [esi]
fstp qword [esp + 0x28]
je 0x4b49b8
mov ecx, dword [esp + 0x20]
mov dword [esp + 4], ecx
or ecx, edx
mov dword [esp], edx
jne 0x4b482e
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [esp + 4], ecx
mov dword [esp], ebx
mov edi, 0x31
jmp 0x4b4833
mov edi, 0xfffffff1
mov esi, dword [esp]
mov ebx, 1
sub esi, ebx
jae 0x4b4844
add edi, 0x20
jmp 0x4b484b
mov ebx, dword [esp]
mov dword [esp + 4], ebx
bsr ebx, dword [esp + 4]
sub edi, ebx
add edi, 0x1f
cmp edi, 0x40
jge 0x4b48fa
cmp edi, 0x1f
ja 0x4b4873
mov ebx, dword [esp + 0x20]
mov ecx, edi
shld edx, ebx, cl
shl ebx, cl
mov dword [esp], ebx
jmp 0x4b4882
mov edx, dword [esp + 0x20]
mov dword [esp], 0
mov ecx, edi
shl edx, cl
mov ecx, edi
neg ecx
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4b48af
mov ebx, dword [esp + 0x1c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x18]
shrd ebx, eax, cl
mov esi, eax
mov eax, dword [esp + 8]
shr esi, cl
mov dword [esp + 0x20], ebx
mov dword [esp + 4], esi
jmp 0x4b48c1
mov ebx, dword [esp + 0x18]
shr ebx, cl
mov dword [esp + 0x20], ebx
mov dword [esp + 4], 0
or edx, dword [esp + 4]
or ebx, dword [esp]
mov dword [esp + 0x20], ebx
cmp edi, 0x1f
ja 0x4b48e6
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov ecx, edi
shld esi, ebx, cl
shl ebx, cl
mov dword [esp + 0x18], esi
jmp 0x4b48f4
mov esi, dword [esp + 0x1c]
xor ebx, ebx
mov ecx, edi
shl esi, cl
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], ebx
jmp 0x4b494b
mov ecx, edi
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4b4917
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
shld edx, ebx, cl
shl ebx, cl
mov dword [esp + 0x20], ebx
jmp 0x4b4923
xor edx, edx
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x1c]
shl edx, cl
mov esi, dword [esp + 0x20]
xor ebx, ebx
cmp edi, 0x40
sete bl
test ebx, ebx
je 0x4b4937
mov esi, dword [esp + 0x1c]
je 0x4b493d
mov edx, dword [esp + 0x18]
mov dword [esp + 0x20], esi
xor ebx, ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], ebx
neg edi
inc edi
jmp 0x4b3eac
fnstcw word [esp + 0x24]
mov ebx, dword [esp + 0x24]
mov eax, dword [0x4efeec]
fld qword [eax]
and ebx, 0xc00
xor ecx, ecx
or ecx, dword [esp + 0x50]
mov edx, dword [0x4efee4]
fmul qword [edx]
fstp qword [esp + 0x28]
je 0x4b4989
xor eax, eax
cmp ebx, 0x400
sete al
jmp 0x4b4994
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 + 0x14]
mov dword [esp + 4], ebx
or ebx, eax
mov dword [esp], eax
jne 0x4b49e0
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
mov dword [esp + 0x54], 0x31
mov dword [esp + 4], ebx
mov dword [esp], esi
jmp 0x4b49e8
mov dword [esp + 0x54], 0xfffffff1
mov esi, dword [esp]
mov ebx, 1
sub esi, ebx
jae 0x4b4a01
mov ebx, dword [esp + 0x54]
add ebx, 0x20
mov dword [esp + 0x54], ebx
jmp 0x4b4a08
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
cmp esi, 0x40
mov dword [esp + 0x54], esi
jge 0x4b4ad0
cmp dword [esp + 0x54], 0x1f
ja 0x4b4a3a
mov ecx, esi
mov ebx, dword [esp + 0x14]
shld eax, ebx, cl
shl ebx, cl
mov dword [esp], ebx
jmp 0x4b4a49
mov ecx, esi
mov eax, dword [esp + 0x14]
shl eax, cl
mov dword [esp], 0
neg ecx
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4b4a74
mov ebx, dword [esp + 0x10]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc]
shrd ebx, eax, cl
mov esi, eax
mov eax, dword [esp + 8]
shr esi, cl
mov dword [esp + 0x14], ebx
mov dword [esp + 4], esi
jmp 0x4b4a86
mov ebx, dword [esp + 0xc]
shr ebx, cl
mov dword [esp + 0x14], ebx
mov dword [esp + 4], 0
or eax, dword [esp + 4]
or ebx, dword [esp]
cmp dword [esp + 0x54], 0x1f
mov dword [esp + 0x14], ebx
ja 0x4b4ab2
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], ebx
mov dword [esp + 0xc], esi
jmp 0x4b4ac7
mov ecx, dword [esp + 0x54]
mov ebx, dword [esp + 0x10]
shl ebx, cl
mov dword [esp + 0xc], ebx
mov dword [esp], 0
mov ebx, dword [esp]
mov dword [esp + 0x10], ebx
jmp 0x4b4b23
mov ecx, esi
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4b4aed
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
shld eax, ebx, cl
shl ebx, cl
mov dword [esp + 0x14], ebx
jmp 0x4b4af9
xor eax, eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
shl eax, cl
mov esi, dword [esp + 0x14]
xor ebx, ebx
cmp dword [esp + 0x54], 0x40
sete bl
test ebx, ebx
je 0x4b4b0f
mov esi, dword [esp + 0x10]
je 0x4b4b15
mov eax, dword [esp + 0xc]
mov dword [esp + 0x14], esi
xor ebx, ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x54]
neg ebx
inc ebx
mov dword [esp + 0x54], ebx
jmp 0x4b3eac
test esi, 0x10
je 0x4b4d05
cmp ebx, dword [esp + 8]
je 0x4b4bb3
cmp dword [esp + 8], 0x10
je 0x4b4b67
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
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 0x4b4b80
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
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 0x4b4cec
mov edx, dword [ebp + 8]
mov dword [edx + 8], eax
mov eax, dword [0x4efee0]
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 0x4b4cec
mov edx, dword [esp + 0x2c]
and edx, 0x8000
xor eax, eax
or edx, eax
jne 0x4b4bca
mov eax, 1
jmp 0x4b4bcc
xor eax, eax
mov ecx, dword [esp + 0x28]
and ecx, 0x8000
xor edx, edx
or ecx, edx
jne 0x4b4be3
mov edx, 1
jmp 0x4b4be5
xor edx, edx
mov ecx, eax
or ecx, edx
je 0x4b4bf9
mov ecx, dword [0x4efee0]
fld qword [ecx]
fdiv st(0)
fstp qword [esp + 0x28]
cmp edx, eax
je 0x4b4c20
test eax, eax
je 0x4b4ca8
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 0x4b4cec
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x20]
mov edx, dword [esp + 0x30]
sbb edx, dword [esp + 0x34]
jb 0x4b4c58
mov edx, dword [esp + 0x14]
sub edx, dword [esp + 0x20]
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x34]
or edx, eax
jne 0x4b4c70
mov eax, dword [esp + 0x10]
sub eax, dword [esp + 0x1c]
mov edx, dword [esp + 0xc]
sbb edx, dword [esp + 0x18]
jae 0x4b4c70
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 0x4b4cec
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x14]
mov edx, dword [esp + 0x34]
sbb edx, dword [esp + 0x30]
jb 0x4b4ca8
mov edx, dword [esp + 0x20]
sub edx, dword [esp + 0x14]
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x30]
or edx, eax
jne 0x4b4cc0
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
sbb edx, dword [esp + 0xc]
jae 0x4b4cc0
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 0x4b4cec
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0xc]
and ecx, 0x80000000
xor edx, edx
or ecx, edx
je 0x4b4c05
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 esi, 1
je 0x4b4d4a
mov eax, dword [0x4efee0]
fld qword [eax]
fdiv st(0)
mov edx, dword [0x4e90b0]
mov ecx, dword [0x4e90b4]
mov edi, dword [ebp + 8]
fstp qword [esp + 0x28]
mov dword [edi], edx
mov dword [edi + 4], ecx
mov ebx, dword [0x4e90b8]
mov esi, dword [0x4e90bc]
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], 0
je 0x4b4d63
mov eax, dword [0x4efee4]
fld qword [eax]
mov edx, dword [0x4efee8]
fmul qword [edx]
fstp qword [esp + 0x28]
mov edx, dword [esp + 0x50]
xor eax, eax
or edx, eax
je 0x4b4d74
mov eax, 1
jmp 0x4b4d76
xor eax, eax
mov esi, dword [ebp + 8]
shl eax, 4
mov edx, dword [eax + 0x4e9050]
mov ecx, dword [eax + 0x4e9054]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov ebx, dword [eax + 0x4e9058]
mov eax, dword [eax + 0x4e905c]
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 [0x4faa44], 0xfffffe00
jne 0x4b2c90
test dword [0x4faa44], 0xffffffff
jne 0x4b3e10
call fcn.004afa10
jmp fcn.004b50e0