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

Disassembly:
test dword [0x520c14], 0xfffffe00
jne 0x4e9bf0
test dword [0x520c14], 0xffffffff
jne 0x4e8170
call fcn.004e28d0
jmp fcn.004e8140
push ebp
mov ebp, esp
and esp, 0xfffffff8
push edi
push esi
push ebx
sub esp, 0xdc
mov edi, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov edx, dword [edi + 8]
mov ebx, dword [edi + 0xc]
mov esi, dword [ecx + 8]
mov dword [esp + 0x8c], edx
mov edx, dword [ecx + 0xc]
mov dword [esp + 0x58], ebx
mov eax, ebx
xor ebx, edx
and eax, 0x7fffffff
mov dword [esp + 0x68], eax
mov dword [esp + 0xc0], esi
mov dword [esp + 8], edx
mov esi, edx
and ebx, 0x80000000
and esi, 0x7fffffff
mov dword [esp + 0x64], esi
mov esi, dword [edi]
mov edi, dword [edi + 4]
mov dword [esp + 0x88], esi
mov esi, dword [ecx]
mov ecx, dword [ecx + 4]
movzx edx, ax
shr eax, 0x10
mov dword [esp + 0x10], edi
mov dword [esp + 0xbc], esi
mov esi, dword [esp + 0x8c]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0xa4], ebx
movzx ebx, cx
mov dword [esp + 0x54], eax
shr ecx, 0x10
mov dword [esp + 0x60], ecx
lea eax, [eax - 1]
cmp eax, 0x7ffd
ja 0x4e9433
mov eax, ecx
lea ecx, [eax - 1]
cmp ecx, 0x7ffd
ja 0x4e9433
mov eax, dword [esp + 0x54]
sub eax, dword [esp + 0x60]
mov dword [esp + 0x54], eax
or edx, 0x10000
mov edi, edx
or ebx, 0x10000
lea ecx, [eax + 0x3ffd]
mov eax, esi
sub eax, dword [esp + 0xc0]
sub edi, ebx
mov dword [esp + 0x9c], ecx
or eax, edi
je 0x4e91cb
mov eax, dword [esp + 0xc0]
sub eax, esi
mov ecx, ebx
sbb ecx, edx
jb 0x4e829d
mov ecx, dword [esp + 0xc0]
sub ecx, esi
mov eax, ebx
sub eax, edx
or ecx, eax
jne 0x4e82ee
mov eax, dword [esp + 0xbc]
sub eax, dword [esp + 0x88]
mov ecx, dword [esp + 0xc]
sbb ecx, dword [esp + 0x10]
jae 0x4e82ee
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
mov eax, esi
shr eax, 0x12
shl esi, 0xe
shl edx, 0xe
or eax, edx
mov dword [esp + 0x90], eax
mov edx, edi
shr edx, 0x12
or esi, edx
mov eax, ecx
mov edx, dword [esp + 0x54]
shr eax, 0x12
shl ecx, 0xe
mov dword [esp + 0x88], ecx
shl edi, 0xe
or eax, edi
mov dword [esp + 4], eax
lea ecx, [edx + 0x3ffe]
mov dword [esp + 0x9c], ecx
jmp 0x4e832c
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
mov eax, esi
shr eax, 0x11
shl esi, 0xf
shl edx, 0xf
or eax, edx
mov dword [esp + 0x90], eax
mov edx, edi
shr edx, 0x11
or esi, edx
mov eax, ecx
shr eax, 0x11
shl ecx, 0xf
mov dword [esp + 0x88], ecx
shl edi, 0xf
or eax, edi
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc0]
mov edi, dword [esp + 0xbc]
mov edx, eax
shr edx, 0x11
shl eax, 0xf
shl ebx, 0xf
or edx, ebx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0xcc], edx
mov ecx, ebx
shr ecx, 0x11
or eax, ecx
mov dword [esp + 0xc0], eax
mov ecx, edi
shr ecx, 0x11
shl edi, 0xf
shl ebx, 0xf
or ecx, ebx
mov dword [esp + 0xbc], edi
mov dword [esp + 0xc8], ecx
sub eax, esi
sbb edx, dword [esp + 0x90]
jb 0x4e838a
or eax, edx
jne 0x4e83a2
mov eax, 0xffffffff
mov dword [esp + 0xd0], eax
mov dword [esp + 0xc4], eax
jmp 0x4e84e3
mov eax, dword [esp + 0x90]
sub eax, dword [esp + 0xcc]
jb 0x4e83bf
mov dword [esp + 0xc4], 0xffffffff
jmp 0x4e83f4
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0xcc]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
div dword [esp + 0x1c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc4], eax
mov edi, dword [esp + 0xc4]
mov eax, edi
mul dword [esp + 0xc0]
mov ecx, eax
mov eax, dword [esp + 0xcc]
mov ebx, edx
mul edi
add ebx, eax
adc edx, 0
mov eax, dword [esp + 4]
mov edi, eax
sub edi, ecx
mov dword [esp], edi
sub eax, ecx
jae 0x4e842c
mov edi, 1
jmp 0x4e842e
xor edi, edi
mov eax, dword [esp + 0x90]
mov ecx, esi
sub ecx, ebx
sbb eax, edx
sub ecx, edi
sbb eax, 0
mov edx, eax
sub edx, 0
jge 0x4e8498
mov edx, dword [esp + 0xc4]
mov ebx, dword [esp]
mov dword [esp + 0x8c], esi
mov esi, dword [esp + 0xc0]
dec edx
add ebx, esi
mov edi, ebx
sub edi, esi
jae 0x4e846f
mov edi, 1
jmp 0x4e8471
xor edi, edi
add ecx, dword [esp + 0xcc]
adc eax, 0
add ecx, edi
adc eax, 0
mov edi, eax
sub edi, 0
jl 0x4e845f
mov esi, dword [esp + 0x8c]
mov dword [esp + 0xc4], edx
mov dword [esp], ebx
mov eax, ecx
sub eax, dword [esp + 0xcc]
jb 0x4e84b0
mov dword [esp + 0xd0], 0xffffffff
jmp 0x4e84e3
mov eax, dword [esp]
mov edx, dword [esp + 0xcc]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
div dword [esp + 0x2c]
mov dword [esp + 0x30], eax
xor eax, eax
or eax, dword [esp + 0x30]
mov dword [esp + 0xd0], eax
mov edi, dword [esp + 0xbc]
mov ebx, dword [esp + 0xc4]
mov dword [esp + 0x8c], esi
mov esi, dword [esp + 0xd0]
mov eax, edi
mul esi
mov ecx, edx
mov dword [esp + 0x74], eax
mov eax, edi
mul ebx
mov edi, dword [esp + 0xc8]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
mov eax, esi
mul edi
mov dword [esp + 0x80], eax
mov eax, ebx
mov dword [esp + 0x70], edx
mul edi
mov edi, dword [esp + 0xc0]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x84], edx
mov eax, edi
mul esi
mov dword [esp + 0x68], eax
mov eax, edi
mov edi, dword [esp + 0xcc]
mov dword [esp + 0x64], edx
mul ebx
mov dword [esp + 0x54], eax
mov eax, edi
mov dword [esp + 0x10], edx
mul esi
mov esi, dword [esp + 0x8c]
mov dword [esp + 0x60], eax
mov dword [esp], edx
mov eax, edi
mul ebx
add ecx, dword [esp + 0x78]
mov ebx, dword [esp + 0x74]
mov edi, dword [esp + 0x84]
mov dword [esp + 8], eax
mov eax, 0
adc eax, 0
add ecx, dword [esp + 0x80]
adc eax, 0
mov dword [esp + 0xc], edx
or ebx, ecx
mov edx, dword [esp + 0x7c]
je 0x4e85b1
mov dword [esp + 0x78], 1
jmp 0x4e85b9
mov dword [esp + 0x78], 0
xor ebx, ebx
sub ebx, dword [esp + 0x74]
mov dword [esp + 0xd4], ebx
mov ebx, 0
sbb ebx, ecx
add edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0xa0], ebx
mov ebx, 0
adc ebx, 0
add edx, dword [esp + 0x6c]
adc ebx, 0
add ecx, eax
mov eax, 0
adc eax, 0
add edx, ecx
adc ebx, eax
xor ecx, ecx
add edi, dword [esp + 0x64]
adc ecx, 0
add edi, dword [esp + 0x54]
adc ecx, 0
add edi, dword [esp + 0x60]
adc ecx, 0
add edx, dword [esp + 0x78]
mov eax, dword [esp + 0x88]
add edi, ebx
adc ecx, 0
mov dword [esp + 0x7c], ecx
mov ebx, eax
sub ebx, edx
mov edx, dword [esp + 4]
mov ecx, edx
sbb ecx, edi
mov edi, ebx
sub edi, eax
mov eax, ecx
sbb eax, edx
mov edx, dword [esp + 0x7c]
jb 0x4e8642
or edi, eax
jne 0x4e8661
mov eax, dword [esp + 0x78]
test eax, eax
je 0x4e866b
mov edi, dword [esp + 0x88]
mov eax, dword [esp + 4]
neg edi
add edi, ebx
neg eax
add eax, ecx
or edi, eax
jne 0x4e866b
mov dword [esp + 4], 1
jmp 0x4e8673
mov dword [esp + 4], 0
mov edi, dword [esp + 0x10]
xor eax, eax
add edi, dword [esp]
adc eax, 0
add edi, dword [esp + 8]
adc eax, dword [esp + 0xc]
add edi, edx
adc eax, 0
add edi, dword [esp + 4]
adc eax, 0
mov edx, dword [esp + 0x90]
sub esi, edi
sbb edx, eax
mov dword [esp + 0x90], edx
sub edx, 0
jge 0x4e877d
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x8c], esi
mov esi, dword [esp + 0xa0]
mov edx, dword [esp + 0xbc]
mov edi, dword [esp + 0xc8]
add dword [esp + 0xd0], 0xffffffff
adc dword [esp + 0xc4], 0xffffffff
add eax, edx
adc esi, edi
mov dword [esp + 0xd4], eax
sub eax, edx
mov edx, esi
sbb edx, edi
mov eax, dword [esp + 0xd4]
jae 0x4e8702
mov edx, 1
jmp 0x4e8704
xor edx, edx
add ebx, dword [esp + 0xc0]
adc ecx, dword [esp + 0xcc]
add ebx, edx
adc ecx, 0
test edx, edx
je 0x4e8731
mov edi, ebx
sub edi, dword [esp + 0xc0]
mov edx, ecx
sub edx, dword [esp + 0xcc]
or edi, edx
je 0x4e8745
mov edx, ebx
sub edx, dword [esp + 0xc0]
mov edi, ecx
sbb edi, dword [esp + 0xcc]
jae 0x4e874c
mov edx, 1
jmp 0x4e874e
xor edx, edx
add dword [esp + 0x8c], edx
mov edx, dword [esp + 0x90]
adc edx, 0
mov dword [esp + 0x90], edx
sub edx, 0
jl 0x4e86c3
mov dword [esp + 0xa0], esi
mov dword [esp + 0xd4], eax
mov edx, dword [esp + 0xc0]
mov eax, dword [esp + 0xcc]
sub edx, ebx
sbb eax, ecx
jb 0x4e8795
or edx, eax
jne 0x4e87a1
mov esi, 0xffffffff
mov edi, esi
jmp 0x4e88d4
mov eax, ecx
sub eax, dword [esp + 0xcc]
jb 0x4e87b3
mov edi, 0xffffffff
jmp 0x4e87da
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], eax
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
div dword [esp + 0x3c]
mov dword [esp + 0x40], eax
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0xc0]
mul edi
mov esi, edx
mov dword [esp + 0xa8], ecx
mov ecx, eax
mov eax, dword [esp + 0xcc]
mul edi
add esi, eax
adc edx, 0
mov dword [esp + 4], edx
mov edx, dword [esp + 0xa0]
mov eax, edx
sub eax, ecx
mov dword [esp], eax
sub edx, ecx
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 4]
jae 0x4e8827
mov dword [esp + 4], 1
jmp 0x4e882f
mov dword [esp + 4], 0
mov eax, ebx
sub eax, esi
mov esi, ecx
sbb esi, edx
sub eax, dword [esp + 4]
sbb esi, 0
mov edx, esi
sub edx, 0
jge 0x4e8896
mov edx, dword [esp]
mov dword [esp + 0xa8], ecx
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0xac], ebx
dec edi
add edx, ecx
mov ebx, edx
sub ebx, ecx
jae 0x4e886d
mov ebx, 1
jmp 0x4e886f
xor ebx, ebx
add eax, dword [esp + 0xcc]
adc esi, 0
add eax, ebx
adc esi, 0
mov ebx, esi
sub ebx, 0
jl 0x4e885d
mov ecx, dword [esp + 0xa8]
mov ebx, dword [esp + 0xac]
mov dword [esp], edx
mov edx, eax
sub edx, dword [esp + 0xcc]
jb 0x4e88a8
mov esi, 0xffffffff
jmp 0x4e88d4
mov edx, dword [esp + 0xcc]
mov dword [esp + 0x44], eax
mov eax, dword [esp]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
div dword [esp + 0x4c]
mov dword [esp + 0x50], eax
xor esi, esi
or esi, dword [esp + 0x50]
mov edx, esi
and edx, 0x3fff
xor eax, eax
sub edx, 4
sbb eax, 0
jb 0x4e88ee
or edx, eax
jne 0x4e8c0b
mov dword [esp + 0xac], ebx
mov ebx, dword [esp + 0xbc]
mov dword [esp + 0xa8], ecx
mov eax, ebx
mul esi
mov dword [esp + 0x78], eax
mov eax, ebx
mov ebx, dword [esp + 0xc8]
mov ecx, edx
mul edi
mov dword [esp + 0x70], eax
mov eax, ebx
mov dword [esp + 0x88], edx
mul esi
mov dword [esp + 0x74], eax
mov dword [esp + 0x6c], edx
mov eax, ebx
mul edi
mov ebx, dword [esp + 0xc0]
mov dword [esp + 0x68], eax
mov eax, ebx
mov dword [esp + 0x7c], edx
mul esi
mov dword [esp + 0x64], eax
mov eax, ebx
mov ebx, dword [esp + 0xcc]
mov dword [esp + 0x60], edx
mul edi
mov dword [esp + 0x10], eax
mov eax, ebx
mov dword [esp + 0xc], edx
mul esi
mov dword [esp + 0x54], eax
mov dword [esp], edx
mov eax, ebx
mul edi
add ecx, dword [esp + 0x70]
mov ebx, dword [esp + 0xac]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov eax, 0
adc eax, 0
add ecx, dword [esp + 0x74]
adc eax, 0
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x78]
or eax, ecx
mov ecx, dword [esp + 0xa8]
je 0x4e89bc
mov dword [esp + 0x90], 1
jmp 0x4e89c7
mov dword [esp + 0x90], 0
mov dword [esp + 0xb8], esi
mov esi, dword [esp + 0x64]
mov dword [esp + 0xac], ebx
xor edx, edx
xor ebx, ebx
sub edx, dword [esp + 0x78]
mov dword [esp + 0xa8], ecx
mov ecx, dword [esp + 0x88]
mov dword [esp + 0xb0], edx
sbb ebx, dword [esp + 0x80]
xor eax, eax
add ecx, dword [esp + 0x6c]
mov dword [esp + 0xb4], ebx
adc eax, 0
add ecx, dword [esp + 0x68]
adc eax, 0
xor edx, edx
add esi, dword [esp + 0x84]
adc edx, 0
add ecx, esi
adc eax, edx
mov esi, dword [esp + 0x7c]
xor ebx, ebx
add ecx, dword [esp + 0x90]
add esi, dword [esp + 0x60]
adc ebx, 0
add esi, dword [esp + 0x10]
adc ebx, 0
add esi, dword [esp + 0x54]
adc ebx, 0
mov edx, dword [esp + 0xd4]
add esi, eax
adc ebx, 0
mov dword [esp + 0x8c], ebx
mov eax, edx
sub eax, ecx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x74], eax
mov ebx, ecx
sbb ebx, esi
mov esi, dword [esp + 0xb8]
mov dword [esp + 0x70], ebx
sub eax, edx
sbb ebx, ecx
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x94], ebx
mov ebx, dword [esp + 0xac]
jb 0x4e8a9b
or eax, dword [esp + 0x94]
jne 0x4e8abd
mov eax, dword [esp + 0x90]
test eax, eax
je 0x4e8ac7
mov eax, dword [esp + 0xa0]
neg edx
neg eax
add edx, dword [esp + 0x74]
add eax, dword [esp + 0x70]
or edx, eax
jne 0x4e8ac7
mov dword [esp + 0x10], 1
jmp 0x4e8acf
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0xc]
xor edx, edx
add eax, dword [esp]
adc edx, 0
add eax, dword [esp + 4]
adc edx, dword [esp + 8]
add eax, dword [esp + 0x8c]
adc edx, 0
add eax, dword [esp + 0x10]
adc edx, 0
sub ebx, eax
sbb ecx, edx
mov eax, ecx
sub eax, 0
jge 0x4e8be6
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov dword [esp + 0xac], ebx
mov dword [esp], edi
mov edi, dword [esp + 0xb0]
mov ebx, dword [esp + 0xb4]
mov dword [esp + 0xa8], ecx
mov ecx, dword [esp + 0xbc]
add esi, 0xffffffff
adc dword [esp], 0xffffffff
mov dword [esp + 0xb8], esi
mov esi, dword [esp + 0xc8]
add edi, ecx
adc ebx, esi
mov dword [esp + 0xb0], edi
mov dword [esp + 0xb4], ebx
sub edi, ecx
sbb ebx, esi
mov esi, dword [esp + 0xb8]
mov ecx, dword [esp + 0xa8]
jae 0x4e8b73
mov ebx, 1
jmp 0x4e8b75
xor ebx, ebx
add edx, dword [esp + 0xc0]
adc eax, dword [esp + 0xcc]
add edx, ebx
adc eax, 0
test ebx, ebx
je 0x4e8ba2
mov edi, edx
sub edi, dword [esp + 0xc0]
mov ebx, eax
sub ebx, dword [esp + 0xcc]
or edi, ebx
je 0x4e8bb6
mov ebx, edx
sub ebx, dword [esp + 0xc0]
mov edi, eax
sbb edi, dword [esp + 0xcc]
jae 0x4e8bbd
mov ebx, 1
jmp 0x4e8bbf
xor ebx, ebx
add dword [esp + 0xac], ebx
adc ecx, 0
mov ebx, ecx
sub ebx, 0
jl 0x4e8b15
mov ebx, dword [esp + 0xac]
mov edi, dword [esp]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
or ebx, dword [esp + 0x74]
or ecx, dword [esp + 0x70]
or ebx, dword [esp + 0xb0]
or ecx, dword [esp + 0xb4]
or ebx, ecx
je 0x4e8c07
mov eax, 1
jmp 0x4e8c09
xor eax, eax
or esi, eax
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0x54], 0
mov eax, esi
shl eax, 0x11
mov dword [esp + 0x60], eax
mov edx, ecx
shl edx, 0x11
mov eax, edi
shl eax, 0x11
shr edi, 0xf
shr esi, 0xf
or eax, esi
mov esi, dword [esp + 0xc4]
or edx, edi
mov ebx, esi
shl ebx, 0x11
mov edi, dword [esp + 0x9c]
shr esi, 0xf
mov dword [esp + 0xc4], esi
shr ecx, 0xf
or ebx, ecx
cmp edi, 0x7ffd
jae 0x4e8d41
mov ecx, dword [esp + 0x54]
or ecx, dword [esp + 0x60]
je 0x4e909c
fnstcw word [esp + 0x98]
mov esi, dword [esp + 0x98]
mov ecx, dword [0x512a90]
mov edi, dword [0x512a98]
fld qword [ecx]
fadd qword [edi]
fstp qword [esp + 0x58]
and esi, 0xc00
jne 0x4e8ca8
mov ecx, dword [esp + 0x60]
sub ecx, 0
jl 0x4e8d02
jmp 0x4e8ccd
cmp esi, 0xc00
je 0x4e8ccd
xor ecx, ecx
or ecx, dword [esp + 0xa4]
je 0x4e8cc5
cmp esi, 0x400
je 0x4e8d02
jmp 0x4e8ccd
cmp esi, 0x800
je 0x4e8d02
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
mov eax, dword [esp + 0x9c]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0xa4]
shl eax, 0x10
add eax, dword [esp + 0xc4]
or edx, eax
mov dword [ecx + 8], ebx
mov dword [ecx + 0xc], edx
add esp, 0xdc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
add eax, 1
adc edx, 0
mov ecx, eax
or ecx, edx
jne 0x4e8d19
add ebx, 1
adc dword [esp + 0xc4], 0
mov edi, dword [esp + 0x54]
mov ecx, dword [esp + 0x60]
add edi, edi
adc ecx, ecx
or edi, ecx
jne 0x4e8d30
mov edi, 1
jmp 0x4e8d32
xor edi, edi
xor ecx, ecx
test esi, esi
sete cl
and ecx, edi
not ecx
and eax, ecx
jmp 0x4e8ccd
fnstcw word [esp + 0x98]
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x10], ecx
and ecx, 0xc00
mov dword [esp + 4], ecx
jne 0x4e8d6e
mov ecx, dword [esp + 0x60]
sub ecx, 0
jl 0x4e916f
jmp 0x4e8da3
cmp ecx, 0xc00
je 0x4e8da3
xor ecx, ecx
or ecx, dword [esp + 0xa4]
je 0x4e8d93
mov ecx, dword [esp + 4]
cmp ecx, 0x400
je 0x4e9161
jmp 0x4e8da3
mov ecx, dword [esp + 4]
cmp ecx, 0x800
je 0x4e91b1
mov dword [esp], 0
mov ecx, dword [esp + 0x9c]
cmp ecx, 0x7ffd
jle 0x4e8e44
mov eax, dword [0x512a94]
fld qword [eax]
fmul st(0)
mov edx, dword [esp + 4]
fstp qword [esp + 0x58]
cmp edx, 0xc00
je 0x4e9152
mov edx, dword [esp + 0xa4]
xor eax, eax
or edx, eax
je 0x4e8dfd
mov eax, dword [esp + 4]
cmp eax, 0x800
je 0x4e9113
mov ecx, 1
jmp 0x4e8e0e
mov eax, dword [esp + 4]
cmp eax, 0x400
je 0x4e914e
xor ecx, ecx
mov esi, dword [ebp + 8]
shl ecx, 4
mov eax, dword [ecx + 0x507fc0]
mov edx, dword [ecx + 0x507fc4]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ebx, dword [ecx + 0x507fc8]
mov ecx, dword [ecx + 0x507fcc]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ecx
add esp, 0xdc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp ecx, 0x7ffd
je 0x4e917b
test ecx, ecx
jge 0x4e8c65
cmp ecx, 0xffffffff
jl 0x4e8e98
mov ecx, dword [esp]
test ecx, ecx
je 0x4e8e98
mov esi, dword [esp + 0xc4]
mov ecx, ebx
sub ecx, 0xffffffff
sbb esi, 0x1ffff
jb 0x4e8e98
mov ecx, dword [esp + 0xc4]
lea edi, [ebx + 1]
lea esi, [ecx - 0x1ffff]
or edi, esi
jne 0x4e8ea2
mov ecx, eax
sub ecx, 0xffffffff
mov esi, edx
sbb esi, 0xffffffff
jae 0x4e8ea2
mov dword [esp + 8], 1
jmp 0x4e8eaa
mov dword [esp + 8], 0
mov esi, dword [esp + 0x9c]
neg esi
mov dword [esp + 0x9c], esi
mov ecx, esi
and ecx, 0x3f
mov dword [esp + 0xc], ecx
mov ecx, esi
neg ecx
and ecx, 0x3f
cmp esi, 0x40
jge 0x4e8f96
mov esi, dword [esp + 0x54]
or esi, dword [esp + 0x60]
je 0x4e8ee6
mov dword [esp], 1
jmp 0x4e8eed
mov dword [esp], 0
cmp ecx, 0x1f
ja 0x4e8f05
mov esi, edx
shld esi, eax, cl
mov dword [esp + 0x60], esi
mov edi, eax
shl edi, cl
mov dword [esp + 0x54], edi
jmp 0x4e8f15
mov dword [esp + 0x54], 0
mov esi, eax
shl esi, cl
mov dword [esp + 0x60], esi
mov esi, dword [esp + 0x54]
or esi, dword [esp]
mov dword [esp + 0x54], esi
cmp ecx, 0x1f
ja 0x4e8f3c
mov esi, dword [esp + 0xc4]
shld esi, ebx, cl
mov dword [esp + 4], esi
mov edi, ebx
shl edi, cl
mov dword [esp], edi
jmp 0x4e8f4b
mov dword [esp], 0
mov esi, ebx
shl esi, cl
mov dword [esp + 4], esi
mov ecx, dword [esp + 0xc]
cmp ecx, 0x1f
ja 0x4e8f5d
shrd eax, edx, cl
mov esi, edx
shr esi, cl
jmp 0x4e8f63
xor esi, esi
mov eax, edx
shr eax, cl
or eax, dword [esp]
mov edx, dword [esp + 4]
or edx, esi
cmp ecx, 0x1f
ja 0x4e8f7f
mov esi, dword [esp + 0xc4]
shrd ebx, esi, cl
shr esi, cl
jmp 0x4e8f8a
mov ebx, dword [esp + 0xc4]
shr ebx, cl
xor esi, esi
mov dword [esp + 0xc4], esi
jmp 0x4e902c
cmp esi, 0x40
je 0x4e90e1
cmp esi, 0x80
jge 0x4e9013
or edx, dword [esp + 0x60]
or eax, edx
je 0x4e8fb6
mov eax, 1
jmp 0x4e8fb8
xor eax, eax
cmp ecx, 0x1f
ja 0x4e8fd5
mov edx, dword [esp + 0xc4]
shld edx, ebx, cl
mov dword [esp + 0x60], edx
mov esi, ebx
shl esi, cl
mov dword [esp + 0x54], esi
jmp 0x4e8fe5
mov dword [esp + 0x54], 0
mov edx, ebx
shl edx, cl
mov dword [esp + 0x60], edx
or dword [esp + 0x54], eax
mov eax, dword [esp + 0xc]
cmp eax, 0x1f
ja 0x4e9004
mov ecx, eax
mov edx, dword [esp + 0xc4]
mov eax, ebx
shrd eax, edx, cl
shr edx, cl
jmp 0x4e9023
mov ecx, eax
mov eax, dword [esp + 0xc4]
shr eax, cl
xor edx, edx
jmp 0x4e9023
mov dword [esp + 0x54], 1
xor eax, eax
xor edx, edx
mov dword [esp + 0x60], eax
xor ebx, ebx
mov dword [esp + 0xc4], ebx
mov ecx, dword [esp + 8]
test ecx, ecx
je 0x4e90d1
mov ecx, dword [esp + 0x54]
or ecx, dword [esp + 0x60]
je 0x4e9067
mov ecx, dword [0x512a98]
fld qword [ecx]
fmul st(0)
fstp qword [esp + 0x58]
fnstcw word [esp + 0x98]
mov dword [esp + 0x9c], 0
jmp 0x4e8c7a
mov ecx, dword [esp + 0x10]
test cl, 0x10
jne 0x4e9091
mov ecx, dword [0x512a98]
fld qword [ecx]
mov esi, dword [0x512a9c]
fmul qword [esi]
fstp qword [esp + 0x58]
mov dword [esp + 0x9c], 0
jmp 0x4e909c
mov dword [esp + 0x9c], 0
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
mov eax, dword [esp + 0x9c]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0xa4]
shl eax, 0x10
add eax, dword [esp + 0xc4]
or edx, eax
mov dword [ecx + 8], ebx
mov dword [ecx + 0xc], edx
add esp, 0xdc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x9c], 0
jmp 0x4e8c65
mov ecx, dword [esp + 0x54]
or ecx, dword [esp + 0x60]
je 0x4e90f5
mov dword [esp + 0x54], 1
jmp 0x4e90fd
mov dword [esp + 0x54], 0
or dword [esp + 0x54], eax
mov eax, ebx
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0xc4]
jmp 0x4e9023
mov ebx, 1
mov esi, dword [ebp + 8]
shl ebx, 4
mov eax, dword [ebx + 0x508000]
mov edx, dword [ebx + 0x508004]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ecx, dword [ebx + 0x508008]
mov ebx, dword [ebx + 0x50800c]
mov dword [esi + 8], ecx
mov dword [esi + 0xc], ebx
add esp, 0xdc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
xor ebx, ebx
jmp 0x4e9118
mov edx, dword [esp + 0xa4]
xor eax, eax
or edx, eax
jne 0x4e9113
jmp 0x4e914e
mov ecx, dword [esp + 0x54]
or ecx, dword [esp + 0x60]
je 0x4e8da3
mov dword [esp], 1
jmp 0x4e8daa
mov ecx, dword [esp + 0xc4]
lea edi, [ebx + 1]
lea esi, [ecx - 0x1ffff]
or edi, esi
jne 0x4e8c65
lea esi, [eax + 1]
lea ecx, [edx + 1]
or esi, ecx
jne 0x4e8c65
mov ecx, dword [esp]
test ecx, ecx
jne 0x4e8dbd
jmp 0x4e8c65
mov ecx, dword [esp + 0x54]
or ecx, dword [esp + 0x60]
je 0x4e8da3
mov dword [esp], 1
jmp 0x4e8daa
mov ecx, dword [esp + 0x88]
sub ecx, dword [esp + 0xbc]
mov eax, dword [esp + 0x10]
sub eax, dword [esp + 0xc]
or ecx, eax
jne 0x4e8265
mov eax, dword [esp + 0x54]
lea eax, [eax + 0x3ffe]
cmp eax, 0x7ffd
jle 0x4e928f
fnstcw word [esp + 0x98]
mov ecx, dword [esp + 0x98]
mov eax, dword [0x512a94]
fld qword [eax]
fmul st(0)
fstp qword [esp + 0x58]
and ecx, 0xc00
cmp ecx, 0xc00
je 0x4e9424
mov edx, dword [esp + 0xa4]
xor eax, eax
or edx, eax
je 0x4e924b
cmp ecx, 0x800
je 0x4e93e5
mov ecx, 1
jmp 0x4e9259
cmp ecx, 0x400
je 0x4e9420
xor ecx, ecx
mov esi, dword [ebp + 8]
shl ecx, 4
mov eax, dword [ecx + 0x507fc0]
mov edx, dword [ecx + 0x507fc4]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ebx, dword [ecx + 0x507fc8]
mov ecx, dword [ecx + 0x507fcc]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ecx
add esp, 0xdc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test eax, eax
js 0x4e92c5
mov ebx, dword [ebp + 8]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0xa4]
xor edx, edx
mov dword [ebx], edx
mov dword [ebx + 4], edx
add eax, 0x3fff
shl eax, 0x10
or ecx, eax
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], ecx
add esp, 0xdc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp eax, 0xffffffcf
jle 0x4e931f
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x54]
xor ebx, ebx
mov dword [eax], ebx
mov dword [eax + 4], ebx
add edx, 0x402e
mov dword [esp + 0x54], edx
cmp edx, 0x1f
ja 0x4e92f5
mov ecx, edx
mov eax, 1
shld ebx, eax, cl
shl eax, cl
jmp 0x4e9300
mov ecx, edx
xor eax, eax
mov ebx, 1
shl ebx, cl
mov edx, dword [esp + 0xa4]
mov ecx, dword [ebp + 8]
or edx, ebx
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
add esp, 0xdc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp eax, 0xffffff8f
jle 0x4e9377
mov eax, dword [esp + 0x54]
add eax, 0x406e
mov dword [esp + 0x54], eax
cmp eax, 0x1f
ja 0x4e9346
mov ecx, eax
xor edx, edx
mov eax, 1
shld edx, eax, cl
shl eax, cl
jmp 0x4e9351
mov ecx, eax
xor eax, eax
mov edx, 1
shl edx, cl
mov ecx, dword [ebp + 8]
mov dword [ecx + 8], 0
mov dword [ecx], eax
mov eax, dword [esp + 0xa4]
mov dword [ecx + 4], edx
mov dword [ecx + 0xc], eax
add esp, 0xdc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
fnstcw word [esp + 0x98]
mov ecx, dword [esp + 0x98]
mov eax, dword [0x512a98]
fld qword [eax]
fmul st(0)
fstp qword [esp + 0x58]
and ecx, 0xc00
xor edx, edx
or edx, dword [esp + 0xa4]
je 0x4e93b0
xor eax, eax
cmp ecx, 0x400
sete al
jmp 0x4e93bb
xor eax, eax
cmp ecx, 0x800
sete al
mov edx, dword [ebp + 8]
mov dword [edx + 4], 0
mov dword [edx], eax
mov eax, dword [esp + 0xa4]
mov dword [edx + 8], 0
mov dword [edx + 0xc], eax
add esp, 0xdc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov ebx, 1
mov esi, dword [ebp + 8]
shl ebx, 4
mov eax, dword [ebx + 0x508000]
mov edx, dword [ebx + 0x508004]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ecx, dword [ebx + 0x508008]
mov ebx, dword [ebx + 0x50800c]
mov dword [esi + 8], ecx
mov dword [esi + 0xc], ebx
add esp, 0xdc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
xor ebx, ebx
jmp 0x4e93ea
mov edx, dword [esp + 0xa4]
xor eax, eax
or edx, eax
jne 0x4e93e5
jmp 0x4e9420
mov eax, dword [esp + 0x88]
or eax, dword [esp + 0x10]
je 0x4e9449
mov dword [esp], 1
jmp 0x4e9450
mov dword [esp], 0
mov eax, dword [esp]
mov ecx, dword [esp + 0x68]
or eax, esi
mov dword [esp], eax
or ecx, eax
jne 0x4e9469
mov dword [esp], 1
jmp 0x4e94b3
mov eax, dword [esp + 0x68]
sub eax, 0x10000
jae 0x4e947d
mov dword [esp], 2
jmp 0x4e94b3
mov eax, dword [esp + 0x68]
sub eax, 0x7fff0000
jae 0x4e9491
mov dword [esp], 4
jmp 0x4e94b3
mov eax, dword [esp + 0x68]
sub eax, 0x7fff0000
jb 0x4e94ac
mov ecx, dword [esp]
or ecx, eax
je 0x4e94ac
mov dword [esp], 0x10
jmp 0x4e94b3
mov dword [esp], 8
mov eax, dword [esp + 0xbc]
or eax, dword [esp + 0xc]
je 0x4e94ca
mov dword [esp + 4], 1
jmp 0x4e94d2
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
or eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0x64]
mov dword [esp + 4], eax
or ecx, eax
jne 0x4e94f0
mov eax, 1
jmp 0x4e9533
mov eax, dword [esp + 0x64]
sub eax, 0x10000
jae 0x4e9502
mov eax, 2
jmp 0x4e9533
mov eax, dword [esp + 0x64]
sub eax, 0x7fff0000
jae 0x4e9514
mov eax, 4
jmp 0x4e9533
mov eax, dword [esp + 0x64]
sub eax, 0x7fff0000
jb 0x4e952e
mov ecx, dword [esp + 4]
or ecx, eax
je 0x4e952e
mov eax, 0x10
jmp 0x4e9533
mov eax, 8
mov ecx, dword [esp]
or ecx, eax
mov dword [esp + 4], ecx
test cl, 0x10
je 0x4e9723
cmp eax, dword [esp]
je 0x4e95bd
mov eax, dword [esp]
cmp eax, 0x10
je 0x4e9570
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0xbc]
mov edx, dword [esp + 0xc]
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 0x4e958a
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x88]
mov edx, edi
mov ebx, dword [ebp + 0xc]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
xor edx, edx
mov ecx, ebx
and ecx, 0x8000
or ecx, edx
jne 0x4e9707
mov edx, dword [ebp + 8]
mov dword [edx + 8], eax
mov eax, dword [0x512a88]
fld qword [eax]
fdiv st(0)
mov dword [edx + 0xc], ebx
fstp qword [esp + 0x58]
mov eax, dword [edx + 8]
mov ebx, dword [edx + 0xc]
jmp 0x4e9707
mov edx, dword [esp + 0x58]
and edx, 0x8000
xor eax, eax
or edx, eax
jne 0x4e95d4
mov eax, 1
jmp 0x4e95d6
xor eax, eax
mov ecx, dword [esp + 8]
and ecx, 0x8000
xor edx, edx
or ecx, edx
jne 0x4e95ed
mov ecx, 1
jmp 0x4e95ef
xor ecx, ecx
mov edx, eax
or edx, ecx
je 0x4e9603
mov edx, dword [0x512a88]
fld qword [edx]
fdiv st(0)
fstp qword [esp + 0x58]
cmp ecx, eax
je 0x4e962a
test eax, eax
je 0x4e96c3
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 0x4e9707
mov edx, dword [esp + 0x68]
mov eax, esi
sub eax, dword [esp + 0xc0]
sbb edx, dword [esp + 0x64]
jb 0x4e9668
mov eax, dword [esp + 0x68]
sub eax, dword [esp + 0x64]
mov edx, esi
sub edx, dword [esp + 0xc0]
or edx, eax
jne 0x4e9683
mov eax, dword [esp + 0x88]
sub eax, dword [esp + 0xbc]
mov edx, edi
sbb edx, dword [esp + 0xc]
jae 0x4e9683
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 0x4e9707
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0x64]
sub eax, esi
sbb edx, dword [esp + 0x68]
jb 0x4e96c3
mov eax, dword [esp + 0xc0]
sub eax, esi
mov esi, dword [esp + 0x64]
sub esi, dword [esp + 0x68]
or eax, esi
jne 0x4e96db
mov eax, dword [esp + 0xbc]
sub eax, dword [esp + 0x88]
mov edx, dword [esp + 0xc]
sbb edx, dword [esp + 0x10]
jae 0x4e96db
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 0x4e9707
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0xc]
xor edx, edx
and ecx, 0x80000000
or ecx, edx
je 0x4e960f
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, 0xdc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test dword [esp], eax
je 0x4e9770
mov ecx, dword [esp]
test cl, 2
jne 0x4e9770
mov eax, dword [0x512a88]
fld qword [eax]
fdiv st(0)
mov edx, dword [0x507fb0]
mov ecx, dword [0x507fb4]
mov edi, dword [ebp + 8]
fstp qword [esp + 0x58]
mov dword [edi], edx
mov dword [edi + 4], ecx
mov ebx, dword [0x507fb8]
mov esi, dword [0x507fbc]
mov dword [edi + 8], ebx
mov dword [edi + 0xc], esi
add esp, 0xdc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp]
test cl, 8
je 0x4e97db
test al, 2
je 0x4e978f
mov eax, dword [0x512a8c]
fld qword [eax]
mov edx, dword [0x512a90]
fmul qword [edx]
fstp qword [esp + 0x58]
mov edx, dword [esp + 0xa4]
xor eax, eax
or edx, eax
je 0x4e97a3
mov ecx, 1
jmp 0x4e97a5
xor ecx, ecx
mov esi, dword [ebp + 8]
shl ecx, 4
mov eax, dword [ecx + 0x507fc0]
mov edx, dword [ecx + 0x507fc4]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ebx, dword [ecx + 0x507fc8]
mov ecx, dword [ecx + 0x507fcc]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ecx
add esp, 0xdc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test al, 1
je 0x4e983e
mov eax, dword [0x512a90]
fld qword [eax]
mov edx, dword [0x512a88]
fdiv qword [edx]
mov ebx, dword [esp + 0xa4]
fstp qword [esp + 0x58]
xor ecx, ecx
or ebx, ecx
je 0x4e9806
mov ecx, 1
jmp 0x4e9808
xor ecx, ecx
mov esi, dword [ebp + 8]
shl ecx, 4
mov eax, dword [ecx + 0x507fc0]
mov edx, dword [ecx + 0x507fc4]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ebx, dword [ecx + 0x507fc8]
mov ecx, dword [ecx + 0x507fcc]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ecx
add esp, 0xdc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test cl, 1
jne 0x4e9847
test al, 8
je 0x4e98ae
mov eax, dword [esp + 4]
test al, 2
je 0x4e9862
mov eax, dword [0x512a8c]
fld qword [eax]
mov edx, dword [0x512a90]
fmul qword [edx]
fstp qword [esp + 0x58]
mov edx, dword [esp + 0xa4]
xor eax, eax
or edx, eax
je 0x4e9876
mov ecx, 1
jmp 0x4e9878
xor ecx, ecx
mov esi, dword [ebp + 8]
shl ecx, 4
mov eax, dword [ecx + 0x507fe0]
mov edx, dword [ecx + 0x507fe4]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ebx, dword [ecx + 0x507fe8]
mov ecx, dword [ecx + 0x507fec]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ecx
add esp, 0xdc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov eax, dword [0x512a8c]
fld qword [eax]
mov ecx, dword [0x512a90]
fmul qword [ecx]
mov edi, dword [esp + 0x60]
fstp qword [esp + 0x58]
test edi, edi
jne 0x4e9a7f
mov eax, dword [esp + 0xc0]
mov dword [esp + 4], eax
or eax, ebx
mov dword [esp], ebx
jne 0x4e98fb
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x60], 0x31
mov dword [esp + 4], eax
mov dword [esp], ecx
jmp 0x4e9903
mov dword [esp + 0x60], 0xfffffff1
mov eax, dword [esp]
sub eax, 1
jae 0x4e9918
mov eax, dword [esp + 0x60]
add eax, 0x20
mov dword [esp + 0x60], eax
jmp 0x4e991f
mov eax, dword [esp]
mov dword [esp + 4], eax
bsr eax, dword [esp + 4]
mov ecx, dword [esp + 0x60]
sub ecx, eax
add ecx, 0x1f
cmp ecx, 0x40
mov dword [esp + 0x60], ecx
jge 0x4e9a09
mov eax, ecx
cmp eax, 0x1f
ja 0x4e9953
mov eax, dword [esp + 0xc0]
shld ebx, eax, cl
shl eax, cl
mov dword [esp + 4], eax
jmp 0x4e9964
mov ebx, dword [esp + 0xc0]
shl ebx, cl
mov dword [esp + 4], 0
neg ecx
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4e9993
mov eax, dword [esp + 0xc]
mov dword [esp], edx
mov edx, dword [esp + 0xbc]
shrd edx, eax, cl
mov edi, eax
shr edi, cl
mov dword [esp + 0xc0], edx
mov edx, dword [esp]
mov dword [esp + 8], edi
jmp 0x4e99a8
mov eax, dword [esp + 0xc]
shr eax, cl
mov dword [esp + 0xc0], eax
mov dword [esp + 8], 0
or ebx, dword [esp + 8]
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0x60]
or eax, dword [esp + 4]
mov dword [esp + 0xc0], eax
cmp ecx, 0x1f
ja 0x4e99e7
mov eax, dword [esp + 0xc]
mov dword [esp], edx
mov edx, dword [esp + 0xbc]
shld eax, edx, cl
shl edx, cl
mov dword [esp + 4], edx
mov edx, dword [esp]
mov dword [esp + 0xc], eax
jmp 0x4e99fc
mov eax, dword [esp + 0xbc]
shl eax, cl
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
mov dword [esp + 0xbc], eax
jmp 0x4e9a76
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4e9a2a
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0xbc]
shld ebx, eax, cl
shl eax, cl
mov dword [esp + 0xc0], eax
jmp 0x4e9a3e
mov ebx, dword [esp + 0xbc]
shl ebx, cl
mov dword [esp + 0xc0], 0
mov ecx, dword [esp + 0x60]
mov edi, dword [esp + 0xc0]
xor eax, eax
cmp ecx, 0x40
sete al
test eax, eax
je 0x4e9a5c
mov edi, dword [esp + 0xbc]
je 0x4e9a62
mov ebx, dword [esp + 0xc]
mov dword [esp + 0xc0], edi
xor eax, eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc], eax
mov eax, ecx
neg eax
inc eax
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x54]
test eax, eax
jne 0x4e822b
mov dword [esp + 4], esi
mov eax, esi
mov dword [esp], edx
or eax, edx
jne 0x4e9ab4
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x54], 0x31
mov dword [esp + 4], eax
mov dword [esp], ecx
jmp 0x4e9abc
mov dword [esp + 0x54], 0xfffffff1
mov eax, dword [esp]
sub eax, 1
jae 0x4e9ad1
mov eax, dword [esp + 0x54]
add eax, 0x20
mov dword [esp + 0x54], eax
jmp 0x4e9ad8
mov eax, dword [esp]
mov dword [esp + 4], eax
bsr eax, dword [esp + 4]
mov ecx, dword [esp + 0x54]
sub ecx, eax
add ecx, 0x1f
cmp ecx, 0x40
mov dword [esp + 0x54], ecx
jge 0x4e9b8a
mov eax, ecx
cmp eax, 0x1f
ja 0x4e9b05
shld edx, esi, cl
shl esi, cl
mov dword [esp + 4], esi
jmp 0x4e9b11
mov dword [esp + 4], 0
mov edx, esi
shl edx, cl
neg ecx
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4e9b30
mov esi, dword [esp + 0x88]
mov eax, dword [esp + 0x10]
shrd esi, eax, cl
shr eax, cl
mov dword [esp], eax
jmp 0x4e9b3d
mov esi, dword [esp + 0x10]
shr esi, cl
mov dword [esp], 0
or esi, dword [esp + 4]
or edx, dword [esp]
mov eax, dword [esp + 0x54]
cmp eax, 0x1f
ja 0x4e9b68
mov ecx, eax
mov eax, dword [esp + 0x88]
mov edi, dword [esp + 0x10]
shld edi, eax, cl
shl eax, cl
mov dword [esp], eax
mov dword [esp + 0x10], edi
jmp 0x4e9b7e
mov ecx, eax
mov eax, dword [esp + 0x88]
shl eax, cl
mov dword [esp + 0x10], eax
mov dword [esp], 0
mov eax, dword [esp]
mov dword [esp + 0x88], eax
jmp 0x4e9bd9
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4e9ba4
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x88]
shld edx, esi, cl
shl esi, cl
jmp 0x4e9baf
mov edx, dword [esp + 0x88]
shl edx, cl
xor esi, esi
mov ecx, dword [esp + 0x54]
xor edi, edi
xor eax, eax
cmp ecx, 0x40
sete al
test eax, eax
je 0x4e9bc8
mov esi, dword [esp + 0x88]
je 0x4e9bce
mov edx, dword [esp + 0x10]
mov dword [esp + 0x88], edi
mov dword [esp + 0x10], edi
mov eax, ecx
neg eax
inc eax
mov dword [esp + 0x54], eax
jmp 0x4e822b
push ebp
mov ebp, esp
and esp, 0xfffffff8
push edi
push esi
push ebx
sub esp, 0xa4
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov edx, dword [eax + 0xc]
mov edi, dword [ebx + 0xc]
mov ecx, edx
mov dword [esp + 0x2c], edx
and ecx, 0x7fffffff
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edi
mov esi, edi
xor edx, edi
and esi, 0x7fffffff
mov dword [esp + 0x20], esi
mov esi, dword [eax + 8]
mov dword [esp + 0xc], esi
mov esi, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp + 0x4c], esi
mov esi, ecx
mov dword [esp + 0x48], eax
mov eax, dword [ebx + 8]
and edx, 0x80000000
shr esi, 0x10
mov dword [esp + 0x98], eax
mov eax, dword [ebx + 4]
mov ebx, dword [ebx]
mov dword [esp + 0x94], eax
mov dword [esp + 0x90], ebx
mov dword [esp + 0x78], edx
movzx ebx, cx
mov edx, dword [esp + 0x20]
movzx eax, dx
shr edx, 0x10
mov dword [esp + 8], edx
lea edx, [esi - 1]
cmp edx, 0x7ffd
mov edx, dword [esp + 0xc]
ja 0x4eae05
mov edi, dword [esp + 8]
lea edi, [edi - 1]
cmp edi, 0x7ffd
ja 0x4eae05
mov dword [esp + 0x5c], edx
sub esi, dword [esp + 8]
or ebx, 0x10000
lea edi, [esi + 0x3ffd]
mov dword [esp + 0x74], edi
or eax, 0x10000
cmp ebx, eax
je 0x4eabb8
cmp eax, ebx
jb 0x4e9d01
jne 0x4e9d4e
cmp edx, dword [esp + 0x98]
ja 0x4e9d01
jne 0x4e9d4e
mov edi, dword [esp + 0x4c]
cmp edi, dword [esp + 0x94]
ja 0x4e9d01
cmp edi, dword [esp + 0x94]
jne 0x4e9d4e
mov edi, dword [esp + 0x48]
cmp edi, dword [esp + 0x90]
jbe 0x4e9d4e
shl ebx, 0xe
mov edi, edx
shr edi, 0x12
or ebx, edi
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x60], ebx
shl edx, 0xe
mov ecx, edi
shr ecx, 0x12
or edx, ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0xc], edx
mov dword [esp + 0x5c], edx
shl edi, 0xe
mov edx, ecx
shr edx, 0x12
or edi, edx
mov edx, dword [esp + 0xc]
mov dword [esp + 0x4c], edi
shl ecx, 0xe
lea esi, [esi + 0x3ffe]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x74], esi
jmp 0x4e9d87
mov ecx, dword [esp + 0x4c]
shl ebx, 0xf
mov esi, edx
shr esi, 0x11
or ebx, esi
shl edx, 0xf
mov dword [esp + 0x60], ebx
mov edi, ecx
shr edi, 0x11
or edx, edi
mov edi, dword [esp + 0x48]
mov dword [esp + 0x5c], edx
shl ecx, 0xf
mov esi, edi
shr esi, 0x11
or ecx, esi
mov dword [esp + 0x4c], ecx
shl edi, 0xf
mov dword [esp + 0x48], edi
mov esi, dword [esp + 0x98]
mov ecx, dword [esp + 0x94]
shl eax, 0xf
mov edi, esi
shr edi, 0x11
or eax, edi
mov dword [esp + 0x64], eax
shl esi, 0xf
mov edi, ecx
shr edi, 0x11
or esi, edi
mov edi, dword [esp + 0x90]
mov dword [esp + 0x98], esi
shl ecx, 0xf
mov esi, edi
shr esi, 0x11
or ecx, esi
mov dword [esp + 0x94], ecx
shl edi, 0xf
mov dword [esp + 0x90], edi
cmp eax, ebx
jb 0x4e9de5
jne 0x4e9df7
cmp edx, dword [esp + 0x98]
jb 0x4e9df7
mov eax, 0xffffffff
mov dword [esp + 0x68], eax
mov dword [esp + 0x7c], eax
jmp 0x4e9ed8
cmp eax, ebx
ja 0x4e9e05
mov dword [esp + 0x7c], 0xffffffff
jmp 0x4e9e15
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x5c]
div dword [esp + 0x64]
mov dword [esp + 0x7c], eax
mov esi, dword [esp + 0x7c]
mov eax, dword [esp + 0x98]
mul esi
mov edi, dword [esp + 0x4c]
mov ebx, eax
mov eax, dword [esp + 0x64]
mov dword [esp], eax
mov ecx, edx
mul esi
neg ebx
add ebx, edi
add ecx, eax
adc edx, 0
cmp edi, ebx
mov edi, 0
adc edi, 0
mov eax, dword [esp + 0x5c]
neg ecx
add ecx, eax
sub ecx, edi
cmp ecx, eax
ja 0x4e9e5c
test edi, edi
je 0x4e9e63
cmp ecx, eax
jne 0x4e9e63
mov edi, 1
jmp 0x4e9e65
xor edi, edi
mov eax, dword [esp + 0x60]
sub eax, edx
sub eax, edi
js 0x4e9e79
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ebx
jmp 0x4e9eb9
mov edi, dword [esp]
mov edx, dword [esp + 0x98]
dec esi
add ebx, edx
cmp ebx, edx
mov edx, 0
adc edx, 0
add ecx, edi
add ecx, edx
cmp ecx, edi
jb 0x4e9ea0
test edx, edx
je 0x4e9ea7
cmp ecx, edi
jne 0x4e9ea7
mov edx, 1
jmp 0x4e9ea9
xor edx, edx
add eax, edx
js 0x4e9e7c
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x7c], esi
cmp ecx, dword [esp]
jb 0x4e9ec8
mov dword [esp + 0x68], 0xffffffff
jmp 0x4e9ed8
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
div dword [esp + 0x64]
mov dword [esp + 0x68], eax
mov ebx, dword [esp + 0x68]
mov edi, dword [esp + 0x90]
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x88], ebx
mov eax, edi
mul ebx
mov dword [esp + 0x80], esi
mov ecx, edx
mov dword [esp + 0xa0], eax
mov eax, esi
mul edi
mov edi, dword [esp + 0x94]
mov dword [esp], eax
mov eax, ebx
mov dword [esp + 4], edx
mul edi
mov dword [esp + 8], eax
mov eax, esi
mov dword [esp + 0xc], edx
mul edi
mov edi, dword [esp + 0x98]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
mov eax, edi
mul ebx
mov dword [esp + 0x28], eax
mov eax, edi
mov edi, dword [esp + 0x64]
mov dword [esp + 0x2c], edx
mul esi
mov dword [esp + 0x84], edi
mov dword [esp + 0x30], eax
mov eax, edi
mov dword [esp + 0x34], edx
mul ebx
mov dword [esp + 0x38], eax
mov eax, esi
mov ebx, edx
mul edi
xor edi, edi
add ecx, dword [esp]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], edx
adc edi, 0
add ecx, dword [esp + 8]
adc edi, 0
xor esi, esi
add edi, dword [esp + 4]
adc esi, 0
add edi, dword [esp + 0xc]
adc esi, 0
mov dword [esp + 0x9c], ecx
xor eax, eax
mov ecx, dword [esp + 0x20]
add ecx, dword [esp + 0x28]
adc eax, 0
add edi, ecx
adc esi, eax
xor eax, eax
xor edx, edx
add esi, dword [esp + 0x24]
adc eax, 0
add esi, dword [esp + 0x2c]
adc eax, 0
mov ecx, dword [esp + 0x30]
add ecx, dword [esp + 0x38]
adc edx, 0
add esi, ecx
adc eax, edx
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x3c]
add ecx, ebx
mov ebx, 0
adc ebx, 0
add edx, eax
mov eax, dword [esp + 0x40]
adc eax, 0
add ecx, edx
adc ebx, eax
mov eax, dword [esp + 0xa0]
xor edx, edx
cmp eax, 0
mov dword [esp + 0x44], ebx
mov ebx, 1
cmovne edx, ebx
mov ebx, dword [esp + 0x9c]
neg eax
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x44]
add ebx, edx
neg ebx
mov dword [esp + 0x9c], ebx
jne 0x4ea026
test edx, edx
je 0x4ea02d
mov edx, ebx
test edx, edx
jne 0x4ea02d
mov ebx, 1
jmp 0x4ea02f
xor ebx, ebx
mov edx, dword [esp + 0x48]
neg edi
add edi, edx
sub edi, ebx
cmp edi, edx
ja 0x4ea047
test ebx, ebx
je 0x4ea04e
cmp edi, dword [esp + 0x48]
jne 0x4ea04e
mov ebx, 1
jmp 0x4ea050
xor ebx, ebx
mov edx, dword [esp + 0x4c]
neg esi
add esi, edx
sub esi, ebx
cmp esi, edx
ja 0x4ea068
test ebx, ebx
je 0x4ea06f
cmp esi, dword [esp + 0x4c]
jne 0x4ea06f
mov edx, 1
jmp 0x4ea071
xor edx, edx
mov ebx, dword [esp + 0x5c]
neg ecx
add ecx, ebx
sub ecx, edx
cmp ecx, ebx
ja 0x4ea087
test edx, edx
je 0x4ea08e
cmp ecx, ebx
jne 0x4ea08e
mov ebx, 1
jmp 0x4ea090
xor ebx, ebx
mov edx, dword [esp + 0x60]
sub edx, eax
sub edx, ebx
jns 0x4ea195
mov eax, dword [esp + 0x88]
dec eax
mov dword [esp + 0x88], eax
cmp eax, 0xffffffff
jne 0x4ea0c5
mov eax, dword [esp + 0x80]
dec eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0xa0]
mov dword [esp], edx
mov edx, dword [esp + 0x90]
add eax, edx
xor ebx, ebx
cmp eax, edx
mov edx, dword [esp + 0x94]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x9c]
adc ebx, 0
add eax, edx
add eax, ebx
mov dword [esp + 0x9c], eax
cmp eax, edx
mov edx, dword [esp]
jb 0x4ea11c
mov eax, ebx
test eax, eax
je 0x4ea123
mov eax, dword [esp + 0x9c]
cmp eax, dword [esp + 0x94]
jne 0x4ea123
mov ebx, 1
jmp 0x4ea125
xor ebx, ebx
mov eax, dword [esp + 0x98]
add edi, eax
add edi, ebx
cmp edi, eax
jb 0x4ea141
test ebx, ebx
je 0x4ea148
cmp edi, dword [esp + 0x98]
jne 0x4ea148
mov ebx, 1
jmp 0x4ea14a
xor ebx, ebx
mov eax, dword [esp + 0x84]
add esi, eax
add esi, ebx
cmp esi, eax
jb 0x4ea166
test ebx, ebx
je 0x4ea16d
cmp esi, dword [esp + 0x84]
jne 0x4ea16d
mov eax, 1
jmp 0x4ea16f
xor eax, eax
add ecx, eax
test eax, eax
je 0x4ea180
test ecx, ecx
jne 0x4ea180
mov eax, 1
jmp 0x4ea182
xor eax, eax
add edx, eax
js 0x4ea09e
mov eax, dword [esp + 0x88]
mov dword [esp + 0x68], eax
cmp esi, dword [esp + 0x84]
mov dword [esp + 0x60], esi
mov dword [esp + 0x5c], edi
jb 0x4ea1b0
mov dword [esp + 0x6c], 0xffffffff
jmp 0x4ea1c0
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x5c]
div dword [esp + 0x64]
mov dword [esp + 0x6c], eax
mov esi, dword [esp + 0x6c]
mov eax, dword [esp + 0x98]
mul esi
mov edi, dword [esp + 0x9c]
mov ebx, eax
mov eax, dword [esp + 0x64]
mov dword [esp + 4], eax
mov ecx, edx
mul esi
neg ebx
add ebx, edi
add ecx, eax
adc edx, 0
xor eax, eax
cmp edi, ebx
adc eax, 0
mov edi, dword [esp + 0x5c]
neg ecx
add ecx, edi
mov dword [esp], edi
sub ecx, eax
cmp ecx, edi
ja 0x4ea20c
test eax, eax
je 0x4ea213
cmp ecx, dword [esp]
jne 0x4ea213
mov edi, 1
jmp 0x4ea215
xor edi, edi
mov eax, dword [esp + 0x60]
sub eax, edx
sub eax, edi
js 0x4ea229
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], ebx
jmp 0x4ea26c
mov edi, eax
mov eax, dword [esp + 4]
mov edx, dword [esp + 0x98]
dec esi
add ebx, edx
cmp ebx, edx
mov edx, 0
adc edx, 0
add ecx, eax
add ecx, edx
cmp ecx, eax
jb 0x4ea253
test edx, edx
je 0x4ea25a
cmp ecx, eax
jne 0x4ea25a
mov edx, 1
jmp 0x4ea25c
xor edx, edx
add edi, edx
js 0x4ea22f
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x6c], esi
cmp ecx, dword [esp + 4]
jb 0x4ea27c
mov dword [esp + 0x70], 0xffffffff
jmp 0x4ea28c
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
div dword [esp + 0x64]
mov dword [esp + 0x70], eax
mov ecx, dword [esp + 0x70]
mov edx, ecx
and edx, 0x3fff
cmp edx, 4
ja 0x4ea5dd
mov edi, dword [esp + 0x90]
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x88], ecx
mov eax, edi
mul ecx
mov dword [esp + 0x80], eax
mov eax, edi
mov edi, dword [esp + 0x94]
mov ebx, edx
mul esi
mov dword [esp + 8], eax
mov eax, edi
mov dword [esp + 0xc], edx
mul ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
mov eax, edi
mul esi
mov edi, dword [esp + 0x98]
mov dword [esp + 0x28], eax
mov eax, edi
mov dword [esp + 0x2c], edx
mul ecx
mov dword [esp + 0x30], eax
mov eax, edi
mov edi, dword [esp + 0x64]
mov dword [esp + 0x34], edx
mul esi
mov dword [esp + 0x8c], edi
mov dword [esp + 0x38], eax
mov eax, ecx
mov dword [esp + 0x3c], edx
mul edi
add ebx, dword [esp + 8]
mov dword [esp + 0x40], eax
mov eax, esi
mov dword [esp + 0x44], edx
mov esi, 0
adc esi, 0
mul edi
add ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x38]
adc esi, 0
add esi, dword [esp + 0xc]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x84], ebx
mov ebx, 0
adc ebx, 0
add esi, dword [esp + 0x24]
adc ebx, 0
xor ecx, ecx
add edx, dword [esp + 0x30]
adc ecx, 0
add esi, edx
adc ebx, ecx
xor eax, eax
add ebx, dword [esp + 0x2c]
adc eax, 0
add ebx, dword [esp + 0x34]
adc eax, 0
xor edx, edx
add edi, dword [esp + 0x40]
adc edx, 0
add ebx, edi
adc eax, edx
mov edx, dword [esp + 0x3c]
xor ecx, ecx
add edx, dword [esp + 0x44]
adc ecx, 0
mov edi, dword [esp + 0x48]
add edi, eax
mov eax, dword [esp + 0x4c]
adc eax, 0
add edx, edi
adc ecx, eax
mov edi, dword [esp + 0x80]
mov dword [esp], ecx
mov eax, 1
xor ecx, ecx
cmp edi, 0
cmovne ecx, eax
mov eax, dword [esp + 0x84]
mov dword [esp + 4], ecx
neg edi
mov dword [esp + 0x80], edi
mov edi, dword [esp + 0x6c]
add eax, ecx
mov ecx, dword [esp + 0x88]
neg eax
mov dword [esp + 0x84], eax
jne 0x4ea400
mov eax, dword [esp + 4]
test eax, eax
je 0x4ea40a
mov eax, dword [esp + 0x84]
test eax, eax
jne 0x4ea40a
mov dword [esp + 4], 1
jmp 0x4ea412
mov dword [esp + 4], 0
mov eax, dword [esp + 0xa0]
neg esi
add esi, eax
sub esi, dword [esp + 4]
cmp esi, eax
ja 0x4ea436
mov eax, dword [esp + 4]
test eax, eax
je 0x4ea440
cmp esi, dword [esp + 0xa0]
jne 0x4ea440
mov dword [esp + 4], 1
jmp 0x4ea448
mov dword [esp + 4], 0
mov eax, dword [esp + 0x9c]
neg ebx
add ebx, eax
sub ebx, dword [esp + 4]
cmp ebx, eax
ja 0x4ea46c
mov eax, dword [esp + 4]
test eax, eax
je 0x4ea476
cmp ebx, dword [esp + 0x9c]
jne 0x4ea476
mov dword [esp + 8], 1
jmp 0x4ea47e
mov dword [esp + 8], 0
mov eax, dword [esp + 0x5c]
mov dword [esp + 4], eax
neg edx
add edx, eax
sub edx, dword [esp + 8]
cmp edx, eax
ja 0x4ea4a0
mov eax, dword [esp + 8]
test eax, eax
je 0x4ea4aa
cmp edx, dword [esp + 4]
jne 0x4ea4aa
mov dword [esp + 4], 1
jmp 0x4ea4b2
mov dword [esp + 4], 0
mov eax, dword [esp + 0x60]
sub eax, dword [esp]
sub eax, dword [esp + 4]
jns 0x4ea5bb
mov dword [esp], eax
mov dword [esp + 0x88], ecx
mov eax, dword [esp + 0x88]
dec eax
mov dword [esp + 0x88], eax
lea ecx, [edi - 1]
cmp eax, 0xffffffff
cmove edi, ecx
mov eax, dword [esp + 0x90]
xor ecx, ecx
mov dword [esp + 4], edi
mov edi, dword [esp + 0x80]
add edi, eax
mov dword [esp + 0x80], edi
cmp edi, eax
adc ecx, 0
mov edi, dword [esp + 0x94]
mov eax, dword [esp + 0x84]
add eax, edi
add eax, ecx
mov dword [esp + 0x84], eax
cmp eax, edi
mov edi, dword [esp + 4]
jb 0x4ea53e
mov eax, ecx
test eax, eax
je 0x4ea545
mov eax, dword [esp + 0x84]
cmp eax, dword [esp + 0x94]
jne 0x4ea545
mov ecx, 1
jmp 0x4ea547
xor ecx, ecx
mov eax, dword [esp + 0x98]
add esi, eax
add esi, ecx
cmp esi, eax
jb 0x4ea563
test ecx, ecx
je 0x4ea56a
cmp esi, dword [esp + 0x98]
jne 0x4ea56a
mov ecx, 1
jmp 0x4ea56c
xor ecx, ecx
mov eax, dword [esp + 0x8c]
add ebx, eax
add ebx, ecx
cmp ebx, eax
jb 0x4ea588
test ecx, ecx
je 0x4ea58f
cmp ebx, dword [esp + 0x8c]
jne 0x4ea58f
mov eax, 1
jmp 0x4ea591
xor eax, eax
add edx, eax
test eax, eax
je 0x4ea5a2
test edx, edx
jne 0x4ea5a2
mov eax, 1
jmp 0x4ea5a4
xor eax, eax
mov ecx, dword [esp]
add ecx, eax
mov dword [esp], ecx
js 0x4ea4cd
mov eax, ecx
mov ecx, dword [esp + 0x88]
or eax, edx
or eax, ebx
or eax, esi
mov edx, 1
xor ebx, ebx
or eax, dword [esp + 0x84]
or eax, dword [esp + 0x80]
cmovne ebx, edx
or ecx, ebx
jmp 0x4ea5e1
mov edi, dword [esp + 0x6c]
mov ebx, ecx
shl ebx, 0x11
mov edx, edi
shl edx, 0x11
shr ecx, 0xf
or edx, ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x70], edx
mov eax, ecx
shl eax, 0x11
shr edi, 0xf
or eax, edi
mov edi, dword [esp + 0x7c]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x74]
mov esi, edi
shl esi, 0x11
shr ecx, 0xf
or esi, ecx
mov dword [esp + 0x68], esi
shr edi, 0xf
mov dword [esp + 0x7c], edi
cmp eax, 0x7ffd
jae 0x4ea75b
test ebx, ebx
je 0x4ea721
fnstcw word [esp + 0x58]
mov eax, dword [esp + 0x58]
mov edx, dword [0x512a90]
mov ecx, dword [0x512a98]
movsd xmm0, qword [edx]
addsd xmm0, qword [ecx]
movsd qword [esp + 0x18], xmm0
and eax, 0xc00
jne 0x4ea665
test ebx, ebx
jl 0x4ea6be
jmp 0x4ea684
cmp eax, 0xc00
je 0x4ea684
mov edx, dword [esp + 0x78]
test edx, edx
je 0x4ea67d
cmp eax, 0x400
je 0x4ea6be
jmp 0x4ea684
cmp eax, 0x800
je 0x4ea6be
mov esi, dword [esp + 0x7c]
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
mov eax, dword [ebp + 8]
mov dword [eax], edx
mov edx, dword [esp + 0x74]
mov dword [eax + 4], edi
mov dword [eax + 8], ecx
shl edx, 0x10
mov ecx, dword [esp + 0x78]
add edx, esi
or ecx, edx
mov dword [eax + 0xc], ecx
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x70]
inc edx
jne 0x4ea6ea
mov edi, dword [esp + 0x6c]
inc edi
jne 0x4ea6e0
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x7c]
inc ecx
inc esi
cmp ecx, 0
cmovne esi, dword [esp + 0x7c]
jmp 0x4ea6f6
mov esi, dword [esp + 0x7c]
mov ecx, dword [esp + 0x68]
jmp 0x4ea6f6
mov esi, dword [esp + 0x7c]
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x6c]
mov dword [esp], edi
mov edi, 1
cmp eax, 0
mov eax, 0
cmove eax, edi
add ebx, ebx
mov ebx, 0
cmove ebx, edi
mov edi, dword [esp]
and eax, ebx
not eax
and edx, eax
jmp 0x4ea694
mov eax, dword [esp + 0x7c]
mov edi, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
mov esi, dword [esp + 0x70]
mov ecx, dword [ebp + 8]
mov ebx, dword [esp + 0x78]
mov dword [ecx], esi
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x74]
mov dword [ecx + 8], edi
shl edx, 0x10
add eax, edx
or ebx, eax
mov dword [ecx + 0xc], ebx
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
fnstcw word [esp + 0x58]
mov edx, dword [esp + 0x58]
mov dword [esp + 0xc], edx
and edx, 0xc00
jne 0x4ea776
mov eax, ebx
shr eax, 0x1f
jmp 0x4ea7a2
cmp edx, 0xc00
je 0x4ea7a0
mov eax, dword [esp + 0x78]
test eax, eax
je 0x4ea794
cmp edx, 0x400
je 0x4eab50
jmp 0x4ea7a0
cmp edx, 0x800
je 0x4eaba6
xor eax, eax
mov ecx, dword [esp + 0x74]
cmp ecx, 0x7ffd
jle 0x4ea82a
mov eax, dword [0x512a94]
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
movsd qword [esp + 0x18], xmm0
cmp edx, 0xc00
je 0x4eab13
mov eax, dword [esp + 0x78]
test eax, eax
je 0x4ea7e3
cmp edx, 0x800
je 0x4eab13
jmp 0x4ea7ef
cmp edx, 0x400
je 0x4eab13
mov ebx, eax
mov edi, dword [ebp + 8]
shr ebx, 0x1b
and ebx, 0xfffffff0
mov eax, dword [ebx + 0x507fc0]
mov dword [edi], eax
mov edx, dword [ebx + 0x507fc4]
mov dword [edi + 4], edx
mov ecx, dword [ebx + 0x507fc8]
mov dword [edi + 8], ecx
mov esi, dword [ebx + 0x507fcc]
mov dword [edi + 0xc], esi
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp ecx, 0x7ffd
je 0x4eab62
mov edx, ecx
test edx, edx
jge 0x4ea62e
cmp edx, 0xffffffff
jge 0x4ea84b
mov edx, dword [esp + 0x70]
jmp 0x4ea893
test eax, eax
jne 0x4ea855
mov edx, dword [esp + 0x70]
jmp 0x4ea893
mov eax, dword [esp + 0x7c]
cmp eax, 0x1ffff
jae 0x4ea866
mov edx, dword [esp + 0x70]
jmp 0x4ea893
jne 0x4ea89d
mov eax, dword [esp + 0x68]
cmp eax, 0xffffffff
jae 0x4ea877
mov edx, dword [esp + 0x70]
jmp 0x4ea893
jne 0x4ea89d
mov eax, dword [esp + 0x6c]
cmp eax, 0xffffffff
jae 0x4ea888
mov edx, dword [esp + 0x70]
jmp 0x4ea893
jne 0x4ea89d
mov edx, dword [esp + 0x70]
cmp edx, 0xffffffff
jae 0x4ea8a1
mov dword [esp + 4], 1
jmp 0x4ea8a9
mov edx, dword [esp + 0x70]
mov dword [esp + 4], 0
neg ecx
mov dword [esp + 0x74], ecx
mov eax, ecx
neg eax
cmp ecx, 0x20
mov dword [esp + 8], eax
jge 0x4ea919
mov esi, eax
mov ecx, esi
mov edi, edx
shl edi, cl
mov eax, 1
cmp ebx, 0
mov ebx, 0
cmovne ebx, eax
or ebx, edi
mov eax, dword [esp + 0x6c]
mov dword [esp], ebx
mov ebx, dword [esp + 0x68]
mov edi, eax
shl edi, cl
mov ecx, dword [esp + 0x74]
shr edx, cl
mov ecx, esi
or edi, edx
mov edx, ebx
shl edx, cl
mov ecx, dword [esp + 0x74]
shr eax, cl
mov ecx, esi
mov esi, edi
or edx, eax
mov eax, dword [esp + 0x7c]
mov edi, eax
shl edi, cl
mov ecx, dword [esp + 0x74]
shr ebx, cl
shr eax, cl
or edi, ebx
mov ebx, dword [esp]
jmp 0x4eaa02
mov eax, ecx
cmp eax, 0x20
je 0x4eaaf0
cmp eax, 0x40
jge 0x4ea973
mov edi, dword [esp + 0x6c]
mov ecx, dword [esp + 8]
mov esi, edi
shl esi, cl
xor eax, eax
or ebx, edx
mov edx, 1
cmovne eax, edx
or eax, esi
mov ebx, dword [esp + 0x68]
mov dword [esp], eax
mov esi, ebx
shl esi, cl
mov ecx, dword [esp + 0x74]
shr edi, cl
mov ecx, dword [esp + 8]
or esi, edi
mov edi, dword [esp + 0x7c]
mov edx, edi
shl edx, cl
mov ecx, dword [esp + 0x74]
shr ebx, cl
shr edi, cl
or edx, ebx
mov ebx, eax
jmp 0x4eaa00
cmp eax, 0x40
je 0x4eaad0
cmp eax, 0x60
jge 0x4ea9b6
or edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x68]
mov esi, eax
or edx, ebx
mov ecx, dword [esp + 8]
mov ebx, 0
mov edx, 1
cmovne ebx, edx
shl esi, cl
mov edx, dword [esp + 0x7c]
or ebx, esi
mov esi, edx
shl esi, cl
mov ecx, dword [esp + 0x74]
shr eax, cl
shr edx, cl
or esi, eax
jmp 0x4ea9fe
cmp eax, 0x60
je 0x4eaab0
cmp eax, 0x80
jge 0x4ea9f5
mov esi, dword [esp + 0x7c]
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x68]
or edi, dword [esp + 0x6c]
mov eax, esi
shl eax, cl
mov ecx, dword [esp + 0x74]
shr esi, cl
or edi, edx
mov edx, 1
or edi, ebx
mov ebx, 0
cmovne ebx, edx
or ebx, eax
jmp 0x4ea9fc
xor esi, esi
mov ebx, 1
xor edx, edx
xor edi, edi
xor eax, eax
mov ecx, dword [esp + 4]
test ecx, ecx
je 0x4eaa93
test ebx, ebx
je 0x4eaa46
mov dword [esp + 0x70], esi
mov dword [esp + 0x6c], edx
mov dword [esp + 0x68], edi
mov dword [esp + 0x7c], eax
mov eax, dword [0x512a98]
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
movsd qword [esp + 0x18], xmm0
fnstcw word [esp + 0x58]
mov dword [esp + 0x74], 0
jmp 0x4ea63a
mov ecx, dword [esp + 0xc]
test cl, 0x10
jne 0x4eaa86
mov ecx, dword [0x512a98]
mov ebx, dword [0x512a9c]
movsd xmm0, qword [ecx]
mulsd xmm0, qword [ebx]
movsd qword [esp + 0x18], xmm0
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], esi
mov dword [esp + 0x6c], edx
mov dword [esp + 0x68], edi
mov dword [esp + 0x7c], eax
jmp 0x4ea731
mov dword [esp + 0x74], 0
jmp 0x4ea731
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], esi
mov dword [esp + 0x6c], edx
mov dword [esp + 0x68], edi
mov dword [esp + 0x7c], eax
jmp 0x4ea62e
or edx, dword [esp + 0x6c]
mov esi, dword [esp + 0x7c]
mov eax, 1
or edx, ebx
mov ebx, 0
cmovne ebx, eax
or ebx, dword [esp + 0x68]
jmp 0x4ea9fc
mov esi, dword [esp + 0x68]
mov eax, 1
or ebx, edx
mov edx, dword [esp + 0x7c]
mov ebx, 0
cmovne ebx, eax
or ebx, dword [esp + 0x6c]
jmp 0x4ea9fe
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x7c]
mov eax, 1
cmp ebx, 0
mov ebx, 0
cmovne ebx, eax
or ebx, edx
mov edx, dword [esp + 0x68]
jmp 0x4eaa00
mov ebx, dword [esp + 0x78]
mov edi, dword [ebp + 8]
shr ebx, 0x1b
and ebx, 0xfffffff0
mov eax, dword [ebx + 0x508000]
mov dword [edi], eax
mov edx, dword [ebx + 0x508004]
mov dword [edi + 4], edx
mov ecx, dword [ebx + 0x508008]
mov dword [edi + 8], ecx
mov esi, dword [ebx + 0x50800c]
mov dword [edi + 0xc], esi
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test ebx, ebx
je 0x4ea7a0
mov eax, 1
jmp 0x4ea7a2
mov ecx, dword [esp + 0x7c]
cmp ecx, 0x1ffff
jne 0x4ea62e
mov ecx, dword [esp + 0x68]
cmp ecx, 0xffffffff
jne 0x4ea62e
mov ecx, dword [esp + 0x6c]
cmp ecx, 0xffffffff
jne 0x4ea62e
mov ecx, dword [esp + 0x70]
cmp ecx, 0xffffffff
jne 0x4ea62e
test eax, eax
jne 0x4ea7ae
jmp 0x4ea62e
test ebx, ebx
je 0x4ea7a0
mov eax, 1
jmp 0x4ea7a2
cmp edx, dword [esp + 0x98]
jne 0x4e9cc9
mov edi, dword [esp + 0x4c]
cmp edi, dword [esp + 0x94]
jne 0x4e9cc9
mov edi, dword [esp + 0x48]
cmp edi, dword [esp + 0x90]
jne 0x4e9cc9
lea edx, [esi + 0x3ffe]
cmp edx, 0x7ffd
jle 0x4eac8b
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], ebx
fnstcw word [esp + 0x58]
mov edx, dword [esp + 0x58]
mov eax, dword [0x512a94]
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
movsd qword [esp + 0x18], xmm0
and edx, 0xc00
cmp edx, 0xc00
je 0x4eab13
mov eax, dword [esp + 0x78]
test eax, eax
je 0x4eac44
cmp edx, 0x800
je 0x4eab13
jmp 0x4eac50
cmp edx, 0x400
je 0x4eab13
mov ebx, eax
mov edi, dword [ebp + 8]
shr ebx, 0x1b
and ebx, 0xfffffff0
mov eax, dword [ebx + 0x507fc0]
mov dword [edi], eax
mov edx, dword [ebx + 0x507fc4]
mov dword [edi + 4], edx
mov ecx, dword [ebx + 0x507fc8]
mov dword [edi + 8], ecx
mov esi, dword [ebx + 0x507fcc]
mov dword [edi + 0xc], esi
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test edx, edx
js 0x4eacbb
mov ebx, dword [ebp + 8]
mov edx, dword [esp + 0x78]
xor eax, eax
mov dword [ebx], eax
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
add esi, 0x3fff
shl esi, 0x10
or edx, esi
mov dword [ebx + 0xc], edx
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp edx, 0xffffffef
jle 0x4eacf2
mov ebx, dword [ebp + 8]
mov edx, dword [esp + 0x78]
xor eax, eax
mov dword [ebx], eax
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
add esi, 0x400e
mov ecx, esi
mov esi, 1
shl esi, cl
or edx, esi
mov dword [ebx + 0xc], edx
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp edx, 0xffffffcf
jle 0x4ead27
mov ebx, dword [ebp + 8]
mov edx, dword [esp + 0x78]
xor eax, eax
mov dword [ebx], eax
mov dword [ebx + 4], eax
add esi, 0x400e
mov ecx, esi
mov esi, 1
shl esi, cl
mov dword [ebx + 0xc], edx
mov dword [ebx + 8], esi
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp edx, 0xffffffaf
jle 0x4ead5c
mov ebx, dword [ebp + 8]
mov edx, dword [esp + 0x78]
xor eax, eax
mov dword [ebx], eax
mov dword [ebx + 8], eax
add esi, 0x400e
mov ecx, esi
mov esi, 1
shl esi, cl
mov dword [ebx + 0xc], edx
mov dword [ebx + 4], esi
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp edx, 0xffffff8f
jle 0x4ead91
mov ebx, dword [ebp + 8]
mov edx, dword [esp + 0x78]
xor eax, eax
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
add esi, 0x400e
mov ecx, esi
mov esi, 1
shl esi, cl
mov dword [ebx + 0xc], edx
mov dword [ebx], esi
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], ebx
fnstcw word [esp + 0x58]
mov ecx, dword [esp + 0x58]
mov eax, dword [0x512a98]
mov edx, dword [esp + 0x78]
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
movsd qword [esp + 0x18], xmm0
and ecx, 0xc00
test edx, edx
je 0x4eadd4
mov eax, 1
xor edx, edx
cmp ecx, 0x400
cmove edx, eax
jmp 0x4eade4
mov eax, 1
xor edx, edx
cmp ecx, 0x800
cmove edx, eax
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x78]
mov dword [ecx], edx
xor edx, edx
mov dword [ecx + 4], edx
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov edi, edx
or edi, dword [esp + 0x4c]
xor ecx, ecx
or edi, dword [esp + 0x48]
mov edi, 1
cmovne ecx, edi
or ecx, dword [esp + 0x24]
jne 0x4eae29
mov dword [esp + 4], 1
jmp 0x4eae66
mov edi, ecx
cmp edi, 0x10000
jae 0x4eae3d
mov dword [esp + 4], 2
jmp 0x4eae66
cmp edi, 0x7fff0000
jae 0x4eae4f
mov dword [esp + 4], 4
jmp 0x4eae66
mov edi, 0x10
cmp ecx, 0x7fff0000
mov ecx, 8
cmova ecx, edi
mov dword [esp + 4], ecx
mov edi, dword [esp + 0x98]
or edi, dword [esp + 0x94]
xor ecx, ecx
or edi, dword [esp + 0x90]
mov edi, 1
cmovne ecx, edi
or ecx, dword [esp + 0x20]
jne 0x4eae92
mov edi, 1
jmp 0x4eaec7
mov edi, ecx
cmp edi, 0x10000
jae 0x4eaea3
mov edi, 2
jmp 0x4eaec7
cmp edi, 0x7fff0000
jae 0x4eaeb2
mov edi, 4
jmp 0x4eaec7
mov edi, ecx
mov ecx, 0x10
cmp edi, 0x7fff0000
mov edi, 8
cmova edi, ecx
mov ecx, dword [esp + 4]
or ecx, edi
mov dword [esp], ecx
test cl, 0x10
je 0x4eb0ac
cmp edi, dword [esp + 4]
je 0x4eaf34
mov eax, dword [esp + 4]
cmp eax, 0x10
je 0x4eb513
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 eax, dword [esi + 0xc]
mov edx, dword [ebp + 8]
test eax, 0x8000
mov dword [edx + 0xc], eax
jne 0x4eb094
mov eax, dword [0x512a88]
mov edx, dword [ebp + 8]
movsd xmm0, qword [eax]
divsd xmm0, xmm0
movsd qword [esp + 0x18], xmm0
mov eax, dword [edx + 0xc]
jmp 0x4eb094
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
not eax
and eax, 0x8000
shr eax, 0xf
mov dword [esp + 0x2c], eax
not ecx
and ecx, 0x8000
shr ecx, 0xf
mov dword [esp + 0x28], ecx
or eax, ecx
je 0x4eaf70
mov eax, dword [0x512a88]
movsd xmm0, qword [eax]
divsd xmm0, xmm0
movsd qword [esp + 0x18], xmm0
mov eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x28]
je 0x4eafa3
test eax, eax
je 0x4eb048
mov ebx, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
mov eax, dword [ebx]
mov dword [esi], eax
mov edx, dword [ebx + 4]
mov dword [esi + 4], edx
mov ecx, dword [ebx + 8]
mov dword [esi + 8], ecx
mov eax, dword [ebx + 0xc]
mov dword [esi + 0xc], eax
jmp 0x4eb094
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x20]
jb 0x4eafe5
cmp eax, dword [esp + 0x20]
mov dword [esp + 0x5c], edx
jne 0x4eb006
cmp edx, dword [esp + 0x98]
jb 0x4eafe5
jne 0x4eb006
mov eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x94]
jb 0x4eafe5
cmp eax, dword [esp + 0x94]
jne 0x4eb006
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x90]
jae 0x4eb006
mov ebx, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
mov eax, dword [ebx]
mov dword [esi], eax
mov edx, dword [ebx + 4]
mov dword [esi + 4], edx
mov ecx, dword [ebx + 8]
mov dword [esi + 8], ecx
mov eax, dword [ebx + 0xc]
mov dword [esi + 0xc], eax
jmp 0x4eb094
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x20]
ja 0x4eb048
cmp eax, dword [esp + 0x20]
jne 0x4eb066
mov eax, dword [esp + 0x5c]
cmp eax, dword [esp + 0x98]
ja 0x4eb048
jne 0x4eb066
mov eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x94]
ja 0x4eb048
cmp eax, dword [esp + 0x94]
jne 0x4eb066
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x90]
jbe 0x4eb066
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov eax, dword [ebx]
mov dword [esi], eax
mov edx, dword [ebx + 4]
mov dword [esi + 4], edx
mov ecx, dword [ebx + 8]
mov dword [esi + 8], ecx
mov eax, dword [ebx + 0xc]
mov dword [esi + 0xc], eax
jmp 0x4eb094
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0xc]
test edx, 0x80000000
je 0x4eaf82
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov eax, dword [ebx]
mov dword [esi], eax
mov edx, dword [ebx + 4]
mov dword [esi + 4], edx
mov ecx, dword [ebx + 8]
mov dword [esi + 8], ecx
mov eax, dword [ebx + 0xc]
mov dword [esi + 0xc], eax
mov edx, dword [ebp + 8]
or eax, 0x8000
mov dword [edx + 0xc], eax
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test dword [esp + 4], edi
je 0x4eb101
mov ecx, dword [esp + 4]
test cl, 2
jne 0x4eb101
mov eax, dword [0x512a88]
mov edx, dword [0x507fb0]
mov edi, dword [ebp + 8]
movsd xmm0, qword [eax]
divsd xmm0, xmm0
movsd qword [esp + 0x18], xmm0
mov dword [edi], edx
mov ecx, dword [0x507fb4]
mov dword [edi + 4], ecx
mov ebx, dword [0x507fb8]
mov dword [edi + 8], ebx
mov esi, dword [0x507fbc]
mov dword [edi + 0xc], esi
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 4]
test cl, 8
je 0x4eb168
test edi, 2
je 0x4eb12b
mov eax, dword [0x512a8c]
mov edx, dword [0x512a90]
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp + 0x18], xmm0
mov ebx, dword [esp + 0x78]
mov edi, dword [ebp + 8]
shr ebx, 0x1b
and ebx, 0xfffffff0
mov eax, dword [ebx + 0x507fc0]
mov dword [edi], eax
mov edx, dword [ebx + 0x507fc4]
mov dword [edi + 4], edx
mov ecx, dword [ebx + 0x507fc8]
mov dword [edi + 8], ecx
mov esi, dword [ebx + 0x507fcc]
mov dword [edi + 0xc], esi
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test edi, 1
jne 0x4eb59d
test cl, 1
jne 0x4eb181
test edi, 8
je 0x4eb1de
mov eax, dword [esp]
test al, 2
je 0x4eb1a1
mov eax, dword [0x512a8c]
mov edx, dword [0x512a90]
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp + 0x18], xmm0
mov ebx, dword [esp + 0x78]
mov edi, dword [ebp + 8]
shr ebx, 0x1b
and ebx, 0xfffffff0
mov eax, dword [ebx + 0x507fe0]
mov dword [edi], eax
mov edx, dword [ebx + 0x507fe4]
mov dword [edi + 4], edx
mov ecx, dword [ebx + 0x507fe8]
mov dword [edi + 8], ecx
mov esi, dword [ebx + 0x507fec]
mov dword [edi + 0xc], esi
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 8]
mov dword [esp + 0x64], eax
test edi, edi
mov dword [esp + 0x60], ebx
mov ebx, dword [0x512a90]
mov dword [esp + 0x5c], edx
mov edx, dword [0x512a8c]
movsd xmm0, qword [edx]
mulsd xmm0, qword [ebx]
movsd qword [esp + 0x18], xmm0
jne 0x4eb3ad
test eax, eax
je 0x4eb223
mov dword [esp + 8], 0
mov ecx, eax
shl ecx, 0xf
jmp 0x4eb25f
mov edx, dword [esp + 0x98]
test edx, edx
je 0x4eb23a
mov ecx, edx
mov dword [esp + 8], 0x11
jmp 0x4eb25f
mov edx, dword [esp + 0x94]
mov ecx, dword [esp + 0x90]
mov ebx, 0x31
mov edi, 0x51
cmp edx, 0
cmovne ecx, edx
cmovne edi, ebx
mov dword [esp + 8], edi
bsr edx, ecx
mov ebx, dword [esp + 8]
sub ebx, edx
add ebx, 0x1f
mov edx, ebx
mov dword [esp + 8], ebx
neg edx
cmp ebx, 0x20
jge 0x4eb2db
mov ecx, ebx
shl eax, cl
mov ebx, dword [esp + 0x98]
mov ecx, edx
mov edi, ebx
shr edi, cl
mov ecx, dword [esp + 8]
shl ebx, cl
or eax, edi
mov dword [esp], eax
mov eax, dword [esp + 0x94]
mov ecx, edx
mov edi, eax
shr edi, cl
mov ecx, dword [esp + 8]
shl eax, cl
or ebx, edi
mov dword [esp + 0x98], ebx
mov ebx, dword [esp + 0x90]
mov ecx, edx
mov edx, ebx
shr edx, cl
mov ecx, dword [esp + 8]
shl ebx, cl
mov dword [esp + 0x90], ebx
or eax, edx
mov dword [esp + 0x94], eax
mov eax, dword [esp]
jmp 0x4eb3a0
mov eax, ebx
cmp eax, 0x20
je 0x4eb54b
cmp eax, 0x40
jge 0x4eb335
mov eax, dword [esp + 0x94]
mov ecx, ebx
shl dword [esp + 0x98], cl
mov ecx, edx
mov edi, eax
shr edi, cl
or edi, dword [esp + 0x98]
mov ecx, ebx
shl eax, cl
mov dword [esp], edi
mov edi, dword [esp + 0x90]
mov ecx, edx
mov edx, edi
shr edx, cl
mov ecx, ebx
shl edi, cl
or edx, eax
mov eax, dword [esp]
mov dword [esp + 0x98], edx
mov dword [esp + 0x94], edi
jmp 0x4eb395
cmp eax, 0x40
je 0x4eb531
cmp eax, 0x60
jge 0x4eb36c
mov edi, eax
mov ebx, dword [esp + 0x94]
mov ecx, edi
shl ebx, cl
mov ecx, edx
mov edx, dword [esp + 0x90]
mov eax, edx
shr eax, cl
mov ecx, edi
shl edx, cl
mov dword [esp + 0x98], edx
or eax, ebx
jmp 0x4eb38a
mov ecx, eax
mov edx, dword [esp + 0x90]
mov dword [esp + 0x98], 0
mov eax, edx
shl eax, cl
cmp ecx, 0x60
cmove eax, edx
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 0
mov edx, dword [esp + 8]
neg edx
inc edx
mov dword [esp + 8], edx
jmp 0x4eb3b1
mov eax, dword [esp + 0x64]
test esi, esi
jne 0x4eb506
mov ebx, dword [esp + 0x60]
test ebx, ebx
je 0x4eb3ca
mov edi, ebx
shl edi, 0xf
xor esi, esi
jmp 0x4eb3f4
mov edi, dword [esp + 0x5c]
test edi, edi
je 0x4eb3d9
mov esi, 0x11
jmp 0x4eb3f4
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x48]
mov edx, 0x31
cmp esi, 0
cmovne edi, esi
mov esi, 0x51
cmovne esi, edx
bsr edx, edi
sub esi, edx
add esi, 0x1f
mov edi, esi
neg edi
mov dword [esp + 4], edi
cmp esi, 0x20
jge 0x4eb462
mov edx, dword [esp + 0x5c]
mov ecx, esi
shl ebx, cl
mov edi, edx
mov ecx, dword [esp + 4]
shr edi, cl
mov ecx, esi
shl edx, cl
mov ecx, dword [esp + 4]
or ebx, edi
mov dword [esp], ebx
mov ebx, dword [esp + 0x4c]
mov edi, ebx
shr edi, cl
mov ecx, esi
shl ebx, cl
or edx, edi
mov ecx, dword [esp + 4]
mov edi, dword [esp + 0x48]
mov dword [esp + 0xc], edx
mov dword [esp + 0x5c], edx
mov edx, edi
shr edx, cl
mov ecx, esi
shl edi, cl
or ebx, edx
mov edx, dword [esp + 0xc]
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp]
mov dword [esp + 0x48], edi
jmp 0x4eb4fe
je 0x4eb584
cmp esi, 0x40
jge 0x4eb4a9
mov edi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x4c]
mov ecx, esi
shl edi, cl
mov edx, ebx
mov ecx, dword [esp + 4]
shr edx, cl
mov ecx, esi
shl ebx, cl
mov ecx, dword [esp + 4]
or edi, edx
mov dword [esp], edi
mov edi, dword [esp + 0x48]
mov edx, edi
shr edx, cl
mov ecx, esi
shl edi, cl
or edx, ebx
mov ebx, dword [esp]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x4c], edi
jmp 0x4eb4f6
je 0x4eb573
cmp esi, 0x60
jge 0x4eb4d4
mov edi, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
mov ecx, esi
shl edi, cl
mov ebx, edx
mov ecx, dword [esp + 4]
shr ebx, cl
mov ecx, esi
shl edx, cl
mov dword [esp + 0x5c], edx
or ebx, edi
jmp 0x4eb4ee
mov edx, dword [esp + 0x48]
mov dword [esp + 0x5c], 0
mov ecx, esi
mov ebx, edx
shl ebx, cl
cmp esi, 0x60
cmove ebx, edx
xor edx, edx
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
neg esi
inc esi
jmp 0x4e9ca8
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x60]
jmp 0x4e9ca8
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 eax, dword [esi + 0xc]
jmp 0x4eaf05
mov eax, dword [esp + 0x94]
mov edx, dword [esp + 0x90]
mov dword [esp + 0x98], edx
jmp 0x4eb38a
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x94]
mov ebx, dword [esp + 0x90]
mov dword [esp + 0x98], edx
mov dword [esp + 0x94], ebx
jmp 0x4eb395
mov ebx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x5c], edx
jmp 0x4eb4ee
mov ebx, dword [esp + 0x5c]
mov edx, dword [esp + 0x4c]
mov edi, dword [esp + 0x48]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x4c], edi
jmp 0x4eb4f6
mov eax, dword [0x512a90]
mov edx, dword [0x512a88]
mov edi, dword [esp + 0x78]
movsd xmm0, qword [eax]
divsd xmm0, qword [edx]
mov eax, dword [ebp + 8]
movsd qword [esp + 0x18], xmm0
shr edi, 0x1b
and edi, 0xfffffff0
mov ecx, dword [edi + 0x507fc0]
mov dword [eax], ecx
mov ebx, dword [edi + 0x507fc4]
mov dword [eax + 4], ebx
mov esi, dword [edi + 0x507fc8]
mov dword [eax + 8], esi
mov ecx, dword [edi + 0x507fcc]
mov dword [eax + 0xc], ecx
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret