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

Disassembly:
test dword [0x520c14], 0xfffffe00
jne 0x4e6f60
test dword [0x520c14], 0xffffffff
jne 0x4e5c80
call fcn.004e28d0
jmp fcn.004e5c50
push ebp
mov ebp, esp
and esp, 0xfffffff8
push edi
push esi
push ebx
sub esp, 0x5c
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov eax, dword [ecx + 8]
mov esi, dword [ecx + 0xc]
mov edx, dword [ecx]
mov dword [esp + 0x14], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x2c], esi
mov edi, esi
and edi, 0x7fffffff
mov dword [esp + 0x34], edi
mov dword [esp + 0x10], edx
mov edx, dword [ebx + 8]
mov dword [esp + 0xc], eax
mov eax, dword [ebx]
mov dword [esp + 0x20], edx
mov edx, dword [ebx + 0xc]
mov ebx, dword [ebx + 4]
mov dword [esp + 0x28], edx
mov ecx, edx
and ecx, 0x7fffffff
mov dword [esp + 0x30], ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], ebx
xor esi, edx
and esi, 0x80000000
mov dword [esp + 0x50], esi
movzx edx, di
shr edi, 0x10
movzx esi, cx
mov dword [esp + 0x54], edi
mov eax, ecx
shr eax, 0x10
lea ebx, [edi - 1]
cmp ebx, 0x7ffd
ja 0x4e6498
lea ebx, [eax - 1]
cmp ebx, 0x7ffd
ja 0x4e6498
mov ebx, dword [esp + 0x54]
or edx, 0x10000
or esi, 0x10000
lea ebx, [ebx + eax - 0x4000]
add esp, 0xffffffd0
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x50]
mov dword [esp], edi
mov dword [esp + 4], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], eax
lea edx, [esp + 0x78]
mov dword [esp + 0x2c], edx
lea eax, [esp + 0x60]
lea edx, [esp + 0x68]
lea ecx, [esp + 0x70]
call fcn.004e6c30
add esp, 0x30
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
xor ecx, ecx
mov esi, eax
and esi, 2
or esi, ecx
je 0x4e5e11
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov edi, edx
shr edi, 0x11
shl edx, 0xf
shl eax, 0xf
or edi, eax
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x44]
mov eax, ecx
shr eax, 0x11
or edx, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x30], edx
mov edx, esi
shr edx, 0x11
shl esi, 0xf
shl ecx, 0xf
or edx, ecx
mov dword [esp + 0x3c], edx
mov ecx, edi
shr ecx, 0x11
or esi, ecx
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x48]
or esi, dword [esp + 0x4c]
je 0x4e5df5
mov ecx, 1
jmp 0x4e5df7
xor ecx, ecx
mov edx, eax
shr edx, 0x11
shl eax, 0xf
shl edi, 0xf
or edx, edi
or eax, ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
inc ebx
jmp 0x4e5e83
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov edi, edx
shr edi, 0x10
shl edx, 0x10
shl eax, 0x10
or edi, eax
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x44]
mov eax, ecx
shr eax, 0x10
or edx, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x30], edx
mov edx, esi
shr edx, 0x10
shl esi, 0x10
shl ecx, 0x10
or edx, ecx
mov dword [esp + 0x3c], edx
mov ecx, edi
shr ecx, 0x10
or esi, ecx
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x48]
or esi, dword [esp + 0x4c]
je 0x4e5e6a
mov ecx, 1
jmp 0x4e5e6c
xor ecx, ecx
mov edx, eax
shr edx, 0x10
shl eax, 0x10
shl edi, 0x10
or edx, edi
or eax, ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
cmp ebx, 0x7ffd
jae 0x4e5fc4
or eax, edx
je 0x4e63ce
fnstcw word [esp + 0x24]
mov eax, dword [esp + 0x24]
mov edx, dword [0x512a78]
mov ecx, dword [0x512a7c]
fld qword [edx]
fadd qword [ecx]
fstp qword [esp + 0x28]
and eax, 0xc00
mov dword [esp + 8], eax
jne 0x4e5ed4
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov dword [esp + 4], eax
mov dword [esp], edx
sub edx, 0
jl 0x4e5f3e
jmp 0x4e5f03
cmp eax, 0xc00
je 0x4e5f03
xor eax, eax
or eax, dword [esp + 0x50]
je 0x4e5ef4
mov eax, dword [esp + 8]
cmp eax, 0x400
je 0x4e5fb0
jmp 0x4e5f03
mov eax, dword [esp + 8]
cmp eax, 0x800
je 0x4e5fb0
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 8]
mov dword [eax], edx
mov edx, dword [esp + 0xc]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x50]
shl ebx, 0x10
add esi, ebx
or ecx, esi
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
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 0x4e5f66
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
add eax, 1
adc esi, 0
mov dword [esp + 0xc], eax
jmp 0x4e5f72
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
mov dword [esp + 0xc], eax
mov edi, dword [esp + 4]
mov eax, dword [esp]
add edi, edi
adc eax, eax
or edi, eax
jne 0x4e5f8a
mov dword [esp], 1
jmp 0x4e5f91
mov dword [esp], 0
mov dword [esp + 4], ebx
mov ebx, dword [esp + 8]
xor eax, eax
test ebx, ebx
sete al
mov ebx, dword [esp + 4]
and eax, dword [esp]
not eax
and edx, eax
jmp 0x4e5f17
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov dword [esp + 4], eax
mov dword [esp], edx
jmp 0x4e5f3e
fnstcw word [esp + 0x24]
mov esi, dword [esp + 0x24]
mov eax, esi
and eax, 0xc00
jne 0x4e5fe4
mov edx, dword [esp + 0x44]
sub edx, 0
jl 0x4e60b0
jmp 0x4e600b
cmp eax, 0xc00
je 0x4e600b
xor edx, edx
or edx, dword [esp + 0x50]
je 0x4e6000
cmp eax, 0x400
je 0x4e60a2
jmp 0x4e600b
cmp eax, 0x800
je 0x4e647e
mov dword [esp], 0
cmp ebx, 0x7ffd
jle 0x4e608b
mov edx, dword [0x512a80]
fld qword [edx]
fmul st(0)
fstp qword [esp + 0x28]
cmp eax, 0xc00
je 0x4e60f8
mov ecx, dword [esp + 0x50]
xor edx, edx
or ecx, edx
je 0x4e604b
cmp eax, 0x800
je 0x4e60bc
mov ecx, 1
jmp 0x4e6058
cmp eax, 0x400
je 0x4e60f4
xor ecx, ecx
mov esi, dword [ebp + 8]
shl ecx, 4
mov eax, dword [ecx + 0x507f10]
mov edx, dword [ecx + 0x507f14]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ebx, dword [ecx + 0x507f18]
mov ecx, dword [ecx + 0x507f1c]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ecx
add esp, 0x5c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
je 0x4e643d
test ebx, ebx
jl 0x4e6104
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
jmp 0x4e5e8f
mov edx, dword [esp + 0x40]
or edx, dword [esp + 0x44]
je 0x4e600b
mov dword [esp], 1
jmp 0x4e6012
mov ebx, 1
mov esi, dword [ebp + 8]
shl ebx, 4
mov eax, dword [ebx + 0x507f60]
mov edx, dword [ebx + 0x507f64]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ecx, dword [ebx + 0x507f68]
mov ebx, dword [ebx + 0x507f6c]
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 0x4e60c1
mov edx, dword [esp + 0x50]
xor eax, eax
or edx, eax
jne 0x4e60bc
jmp 0x4e60f4
cmp ebx, 0xffffffff
jge 0x4e611a
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0xc], eax
mov dword [esp], edx
jmp 0x4e617c
mov eax, dword [esp]
test eax, eax
jne 0x4e6132
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0xc], eax
mov dword [esp], edx
jmp 0x4e617c
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov eax, edi
sub eax, 0xffffffff
mov edx, ecx
sbb edx, 0x1ffff
jae 0x4e615a
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0xc], eax
mov dword [esp], edx
jmp 0x4e617c
inc edi
add ecx, 0xfffe0001
or edi, ecx
jne 0x4e6186
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0xc], eax
mov dword [esp], edx
sub eax, 0xffffffff
sbb edx, 0xffffffff
jae 0x4e6195
mov dword [esp + 0x1c], 1
jmp 0x4e619d
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0xc], eax
mov dword [esp], edx
mov dword [esp + 0x1c], 0
neg ebx
mov eax, ebx
and eax, 0x3f
mov dword [esp + 0x20], eax
mov edx, ebx
neg edx
and edx, 0x3f
mov dword [esp + 0x10], edx
cmp ebx, 0x40
jge 0x4e62c5
mov eax, dword [esp + 0x40]
or eax, dword [esp + 0x44]
je 0x4e61cd
mov ebx, 1
jmp 0x4e61cf
xor ebx, ebx
mov eax, edx
cmp eax, 0x1f
ja 0x4e61e6
mov ecx, eax
mov edx, dword [esp]
mov eax, dword [esp + 0xc]
shld edx, eax, cl
shl eax, cl
jmp 0x4e61f0
mov ecx, eax
mov edx, dword [esp + 0xc]
shl edx, cl
xor eax, eax
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x10]
mov dword [esp + 0x44], edx
or eax, ebx
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x40], eax
mov dword [esp + 8], ecx
mov dword [esp + 4], ebx
cmp edi, 0x1f
ja 0x4e622a
mov ecx, edi
mov edi, ebx
mov ebx, dword [esp + 8]
shld edi, ebx, cl
shl ebx, cl
mov dword [esp + 0x10], ebx
mov dword [esp + 0x18], edi
jmp 0x4e623e
mov ecx, edi
mov ebx, dword [esp + 8]
shl ebx, cl
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x20]
cmp ecx, 0x1f
ja 0x4e6261
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp]
mov edi, dword [esp + 0xc]
shrd edi, ebx, cl
shr ebx, cl
mov dword [esp + 0x14], ebx
mov dword [esp + 0xc], edi
jmp 0x4e6272
mov ebx, dword [esp]
shr ebx, cl
mov dword [esp + 0xc], ebx
mov dword [esp + 0x14], 0
mov ecx, dword [esp + 0x10]
or ecx, dword [esp + 0xc]
mov ebx, dword [esp + 0x18]
or ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x20]
cmp edi, 0x1f
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ebx
ja 0x4e62a8
mov ecx, edi
mov ebx, dword [esp + 4]
mov edi, dword [esp + 8]
shrd edi, ebx, cl
shr ebx, cl
mov dword [esp + 8], edi
jmp 0x4e62b6
mov ecx, edi
mov edi, dword [esp + 4]
shr edi, cl
xor ebx, ebx
mov dword [esp + 8], edi
mov ecx, edi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], ebx
jmp 0x4e637a
je 0x4e6406
cmp ebx, 0x80
jge 0x4e6355
mov edx, dword [esp + 0xc]
or edx, dword [esp + 0x40]
mov eax, dword [esp]
or eax, dword [esp + 0x44]
or edx, eax
je 0x4e62f3
mov dword [esp], 1
jmp 0x4e62fa
mov dword [esp], 0
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x10]
mov dword [esp + 4], eax
cmp edx, 0x1f
ja 0x4e631c
mov ecx, edx
mov edx, eax
shld edx, edi, cl
mov eax, edi
shl eax, cl
jmp 0x4e6324
mov ecx, edx
xor eax, eax
mov edx, edi
shl edx, cl
or eax, dword [esp]
mov ecx, dword [esp + 0x20]
cmp ecx, 0x1f
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
ja 0x4e6343
mov ebx, dword [esp + 4]
shrd edi, ebx, cl
shr ebx, cl
jmp 0x4e634b
mov edi, dword [esp + 4]
shr edi, cl
xor ebx, ebx
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], ebx
jmp 0x4e6370
mov dword [esp + 0x40], 1
mov eax, 1
xor edx, edx
mov dword [esp + 0x44], edx
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], edx
xor ecx, ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x4e63ff
or eax, edx
je 0x4e63a2
mov eax, dword [0x512a7c]
fld qword [eax]
fmul st(0)
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
fstp qword [esp + 0x28]
xor ebx, ebx
jmp 0x4e5e8f
test esi, 0x10
jne 0x4e63cc
mov eax, dword [0x512a7c]
fld qword [eax]
mov edx, dword [0x512a84]
fmul qword [edx]
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
fstp qword [esp + 0x28]
xor ebx, ebx
jmp 0x4e5e8f
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 0x4e5e8f
mov eax, dword [esp + 0x40]
or eax, dword [esp + 0x44]
je 0x4e6417
mov eax, 1
jmp 0x4e6419
xor eax, eax
or eax, dword [esp + 0xc]
mov edx, dword [esp]
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ebx
jmp 0x4e6370
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
inc ecx
add edx, 0xfffe0001
or ecx, edx
jne 0x4e6095
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
inc ecx
inc edx
or ecx, edx
jne 0x4e6095
mov edx, dword [esp]
test edx, edx
jne 0x4e601a
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
jmp 0x4e5e8f
mov edx, dword [esp + 0x40]
or edx, dword [esp + 0x44]
je 0x4e600b
mov dword [esp], 1
jmp 0x4e6012
mov ebx, dword [esp + 0x10]
or ebx, dword [esp + 0xc]
je 0x4e64ac
mov dword [esp + 4], 1
jmp 0x4e64b4
mov dword [esp + 4], 0
mov ebx, dword [esp + 4]
or ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x34]
mov dword [esp + 4], ebx
or edi, ebx
jne 0x4e64d9
mov dword [esp], 0
mov dword [esp + 4], 1
jmp 0x4e653d
mov ebx, dword [esp + 0x34]
sub ebx, 0x10000
jae 0x4e64f3
mov ebx, 2
mov dword [esp], ebx
mov dword [esp + 4], ebx
jmp 0x4e653d
mov ebx, dword [esp + 0x34]
sub ebx, 0x7fff0000
jae 0x4e6510
mov dword [esp], 0
mov dword [esp + 4], 4
jmp 0x4e653d
mov ebx, dword [esp + 0x34]
mov dword [esp], 0
sub ebx, 0x7fff0000
jb 0x4e6535
mov edi, dword [esp + 4]
or edi, ebx
je 0x4e6535
mov dword [esp + 4], 0x10
jmp 0x4e653d
mov dword [esp + 4], 8
mov ebx, dword [esp + 0x1c]
or ebx, dword [esp + 0x18]
je 0x4e6551
mov dword [esp + 8], 1
jmp 0x4e6559
mov dword [esp + 8], 0
mov ebx, dword [esp + 8]
or ebx, dword [esp + 0x20]
mov edi, ecx
mov dword [esp + 8], ebx
or edi, ebx
jne 0x4e6575
mov dword [esp + 8], 1
jmp 0x4e65ca
mov ebx, ecx
sub ebx, 0x10000
jae 0x4e6592
mov ebx, dword [esp]
mov dword [esp + 8], 2
or ebx, 2
mov dword [esp], ebx
jmp 0x4e65ca
mov ebx, ecx
sub ebx, 0x7fff0000
jae 0x4e65a6
mov dword [esp + 8], 4
jmp 0x4e65ca
mov ebx, ecx
sub ebx, 0x7fff0000
jb 0x4e65c2
mov edi, dword [esp + 8]
or edi, ebx
je 0x4e65c2
mov dword [esp + 8], 0x10
jmp 0x4e65ca
mov dword [esp + 8], 8
mov edi, dword [esp + 4]
or edi, dword [esp + 8]
mov ebx, dword [esp + 0x54]
cmp ebx, 0x7fff
je 0x4e69b1
cmp eax, 0x7fff
je 0x4e69b1
test edi, 1
je 0x4e6655
mov eax, dword [esp]
test eax, eax
je 0x4e660f
mov eax, dword [0x512a74]
fld qword [eax]
mov edx, dword [0x512a78]
fmul qword [edx]
fstp qword [esp + 0x28]
mov edx, dword [esp + 0x50]
xor eax, eax
or edx, eax
je 0x4e6620
mov ecx, 1
jmp 0x4e6622
xor ecx, ecx
mov esi, dword [ebp + 8]
shl ecx, 4
mov eax, dword [ecx + 0x507f40]
mov edx, dword [ecx + 0x507f44]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ebx, dword [ecx + 0x507f48]
mov ecx, dword [ecx + 0x507f4c]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ecx
add esp, 0x5c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 4]
cmp ebx, dword [esp + 8]
je 0x4e67d7
mov ebx, dword [0x512a74]
fld qword [ebx]
mov edi, dword [0x512a78]
fmul qword [edi]
mov ebx, dword [esp + 4]
fstp qword [esp + 0x28]
cmp ebx, 2
je 0x4e683c
mov eax, dword [esp + 0x20]
mov dword [esp + 4], eax
or eax, esi
mov dword [esp], esi
jne 0x4e66a9
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov dword [esp + 4], eax
mov dword [esp], ecx
mov eax, 0x31
jmp 0x4e66ae
mov eax, 0xfffffff1
mov ebx, dword [esp]
sub ebx, 1
jae 0x4e66bb
add eax, 0x20
jmp 0x4e66c2
mov ebx, dword [esp]
mov dword [esp + 4], ebx
bsr ebx, dword [esp + 4]
sub eax, ebx
add eax, 0x1f
cmp eax, 0x40
jge 0x4e677c
cmp eax, 0x1f
ja 0x4e66ea
mov ebx, dword [esp + 0x20]
mov ecx, eax
shld esi, ebx, cl
shl ebx, cl
mov dword [esp], ebx
jmp 0x4e66f9
mov esi, dword [esp + 0x20]
mov dword [esp], 0
mov ecx, eax
shl esi, cl
mov ecx, eax
neg ecx
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4e6726
mov ebx, dword [esp + 0x1c]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x18]
shrd ebx, edx, cl
mov edi, edx
mov edx, dword [esp + 8]
shr edi, cl
mov dword [esp + 0x20], ebx
mov dword [esp + 4], edi
jmp 0x4e6738
mov ebx, dword [esp + 0x18]
shr ebx, cl
mov dword [esp + 0x20], ebx
mov dword [esp + 4], 0
or esi, dword [esp + 4]
or ebx, dword [esp]
mov dword [esp + 0x20], ebx
cmp eax, 0x1f
ja 0x4e6760
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov ecx, eax
shld edi, ebx, cl
shl ebx, cl
mov dword [esp], ebx
mov dword [esp + 0x18], edi
jmp 0x4e6773
mov ebx, dword [esp + 0x1c]
mov dword [esp], 0
mov ecx, eax
shl ebx, cl
mov dword [esp + 0x18], ebx
mov ebx, dword [esp]
mov dword [esp + 0x1c], ebx
jmp 0x4e67cf
mov ecx, eax
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4e6799
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
shld esi, ebx, cl
shl ebx, cl
mov dword [esp + 0x20], ebx
jmp 0x4e67a7
mov esi, dword [esp + 0x1c]
shl esi, cl
mov dword [esp + 0x20], 0
mov edi, dword [esp + 0x20]
xor ebx, ebx
cmp eax, 0x40
sete bl
test ebx, ebx
je 0x4e67bb
mov edi, dword [esp + 0x1c]
je 0x4e67c1
mov esi, dword [esp + 0x18]
mov dword [esp + 0x20], edi
xor ebx, ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], ebx
neg eax
inc eax
jmp 0x4e5d1c
fnstcw word [esp + 0x24]
mov ebx, dword [esp + 0x24]
mov eax, dword [0x512a7c]
fld qword [eax]
and ebx, 0xc00
xor ecx, ecx
or ecx, dword [esp + 0x50]
mov edx, dword [0x512a74]
fmul qword [edx]
fstp qword [esp + 0x28]
je 0x4e680d
xor eax, eax
cmp ebx, 0x400
sete al
jmp 0x4e6818
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], ebx
or ebx, edx
mov dword [esp + 4], edx
jne 0x4e6864
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0xc]
mov dword [esp + 0x54], 0x31
mov dword [esp], ebx
mov dword [esp + 4], edi
jmp 0x4e686c
mov dword [esp + 0x54], 0xfffffff1
mov ebx, dword [esp + 4]
sub ebx, 1
jae 0x4e6882
mov ebx, dword [esp + 0x54]
add ebx, 0x20
mov dword [esp + 0x54], ebx
jmp 0x4e6889
mov ebx, dword [esp + 4]
mov dword [esp], ebx
bsr ebx, dword [esp]
mov edi, dword [esp + 0x54]
sub edi, ebx
add edi, 0x1f
cmp edi, 0x40
mov dword [esp + 0x54], edi
jge 0x4e694e
mov ebx, edi
cmp ebx, 0x1f
ja 0x4e68ba
mov ecx, ebx
mov ebx, dword [esp + 0x14]
shld edx, ebx, cl
shl ebx, cl
mov dword [esp], ebx
jmp 0x4e68c9
mov ecx, ebx
mov edx, dword [esp + 0x14]
shl edx, cl
mov dword [esp], 0
neg ecx
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4e68f4
mov ebx, dword [esp + 0x10]
mov dword [esp + 8], edx
mov edx, dword [esp + 0xc]
shrd ebx, edx, cl
mov edi, edx
mov edx, dword [esp + 8]
shr edi, cl
mov dword [esp + 0x14], ebx
mov dword [esp + 4], edi
jmp 0x4e6906
mov ebx, dword [esp + 0xc]
shr ebx, cl
mov dword [esp + 0x14], ebx
mov dword [esp + 4], 0
or edx, dword [esp + 4]
mov edi, dword [esp + 0x54]
or ebx, dword [esp]
mov dword [esp + 0x14], ebx
cmp edi, 0x1f
ja 0x4e6932
mov ecx, edi
mov edi, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
shld edi, ebx, cl
shl ebx, cl
mov dword [esp], ebx
mov dword [esp + 0xc], edi
jmp 0x4e6945
mov ecx, edi
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 0x4e69a1
mov ecx, edi
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4e696b
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
shld edx, ebx, cl
shl ebx, cl
mov dword [esp + 0x14], ebx
jmp 0x4e6979
mov edx, dword [esp + 0x10]
shl edx, cl
mov dword [esp + 0x14], 0
xor ebx, ebx
cmp edi, 0x40
sete bl
test ebx, ebx
mov ebx, dword [esp + 0x14]
je 0x4e698d
mov ebx, dword [esp + 0x10]
je 0x4e6993
mov edx, dword [esp + 0xc]
mov dword [esp + 0x14], ebx
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 0x4e5d1c
test edi, 0x10
je 0x4e6b84
mov eax, dword [esp + 4]
cmp eax, dword [esp + 8]
je 0x4e6a33
cmp eax, 0x10
je 0x4e69e7
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 0x4e6a00
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]
xor edx, edx
mov ecx, ebx
and ecx, 0x8000
or ecx, edx
jne 0x4e6b6b
mov edx, dword [ebp + 8]
mov dword [edx + 8], eax
mov eax, dword [0x512a70]
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 0x4e6b6b
mov edx, dword [esp + 0x2c]
and edx, 0x8000
xor eax, eax
or edx, eax
jne 0x4e6a4a
mov ecx, 1
jmp 0x4e6a4c
xor ecx, ecx
mov edx, dword [esp + 0x28]
and edx, 0x8000
xor eax, eax
or edx, eax
jne 0x4e6a63
mov edx, 1
jmp 0x4e6a65
xor edx, edx
mov eax, ecx
or eax, edx
je 0x4e6a78
mov eax, dword [0x512a70]
fld qword [eax]
fdiv st(0)
fstp qword [esp + 0x28]
cmp edx, ecx
je 0x4e6a9f
test ecx, ecx
je 0x4e6b27
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 0x4e6b6b
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x20]
mov edx, dword [esp + 0x34]
sbb edx, dword [esp + 0x30]
jb 0x4e6ad7
mov edx, dword [esp + 0x14]
sub edx, dword [esp + 0x20]
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x30]
or edx, eax
jne 0x4e6aef
mov eax, dword [esp + 0x10]
sub eax, dword [esp + 0x1c]
mov edx, dword [esp + 0xc]
sbb edx, dword [esp + 0x18]
jae 0x4e6aef
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 0x4e6b6b
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x14]
mov edx, dword [esp + 0x30]
sbb edx, dword [esp + 0x34]
jb 0x4e6b27
mov edx, dword [esp + 0x20]
sub edx, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x34]
or edx, eax
jne 0x4e6b3f
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
sbb edx, dword [esp + 0xc]
jae 0x4e6b3f
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 0x4e6b6b
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0xc]
xor edx, edx
and ecx, 0x80000000
or ecx, edx
je 0x4e6a84
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 edi, 1
je 0x4e6bc9
mov eax, dword [0x512a70]
fld qword [eax]
fdiv st(0)
mov edx, dword [0x507f30]
mov ecx, dword [0x507f34]
mov edi, dword [ebp + 8]
fstp qword [esp + 0x28]
mov dword [edi], edx
mov dword [edi + 4], ecx
mov ebx, dword [0x507f38]
mov esi, dword [0x507f3c]
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
mov eax, dword [esp]
test eax, eax
je 0x4e6be3
mov eax, dword [0x512a74]
fld qword [eax]
mov edx, dword [0x512a78]
fmul qword [edx]
fstp qword [esp + 0x28]
mov edx, dword [esp + 0x50]
xor eax, eax
or edx, eax
je 0x4e6bf4
mov ecx, 1
jmp 0x4e6bf6
xor ecx, ecx
mov esi, dword [ebp + 8]
shl ecx, 4
mov eax, dword [ecx + 0x507f10]
mov edx, dword [ecx + 0x507f14]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ebx, dword [ecx + 0x507f18]
mov ecx, dword [ecx + 0x507f1c]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ecx
add esp, 0x5c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
push ebp
mov ebp, esp
and esp, 0xfffffff8
push edi
push esi
push ebx
sub esp, 0xb4
mov esi, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov edx, dword [esi + 0xc]
mov ebx, dword [esi + 8]
mov edi, dword [esi + 4]
mov dword [esp + 0xa4], ebx
mov ebx, dword [esi]
mov esi, dword [ecx + 0xc]
mov dword [esp + 0xa8], edi
mov edi, dword [ecx + 8]
mov dword [esp + 0x9c], ebx
mov eax, edx
and eax, 0x7fffffff
mov ebx, esi
mov dword [esp + 0xc], esi
and ebx, 0x7fffffff
mov dword [esp + 0x94], edi
mov edi, dword [ecx + 4]
mov ecx, dword [ecx]
mov dword [esp + 0x98], edi
mov edi, edx
mov dword [esp + 0x90], ecx
xor edi, esi
and edi, 0x80000000
movzx esi, ax
mov dword [esp + 0x8c], edi
mov edi, eax
mov dword [esp + 0xb0], esi
shr edi, 0x10
mov dword [esp + 0xa0], edi
movzx ecx, bx
mov dword [esp + 0xac], ecx
mov esi, ebx
shr esi, 0x10
lea edi, [edi - 1]
cmp edi, 0x7ffd
ja 0x4e7849
lea edi, [esi - 1]
cmp edi, 0x7ffd
ja 0x4e7849
mov ebx, dword [esp + 0xa0]
mov eax, dword [esp + 0xb0]
mov edi, dword [esp + 0xac]
mov ecx, dword [esp + 0x98]
lea esi, [ebx + esi - 0x4000]
mov ebx, dword [esp + 0x9c]
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x90]
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]
mov edx, dword [esp + 0x64]
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
xor eax, eax
add edx, dword [esp + 0x70]
adc eax, 0
mov ebx, dword [esp + 0x74]
add ebx, ecx
mov ecx, 0
adc ecx, 0
add edx, ebx
adc eax, ecx
mov ebx, dword [esp + 0x50]
add esi, edx
adc edi, eax
xor ecx, ecx
add ebx, dword [esp + 0x68]
adc ecx, 0
mov edx, dword [esp + 0x6c]
xor eax, eax
add edx, dword [esp + 0x78]
adc eax, 0
add ebx, edx
adc ecx, eax
mov edx, dword [esp + 0x7c]
add edx, edi
mov edi, 0
adc edi, 0
add ebx, edx
adc ecx, edi
mov edi, dword [esp + 0x20]
xor eax, eax
add edi, dword [esp + 0x80]
adc eax, 0
mov edx, dword [esp + 0x84]
add edx, ecx
mov ecx, dword [esp + 0x88]
adc ecx, 0
add edi, edx
mov edx, dword [esp + 0x24]
adc eax, ecx
mov ecx, dword [esp + 0xc]
or ecx, dword [esp + 4]
or ecx, dword [esp]
mov dword [esp + 0x20], edi
test al, 2
je 0x4e72e0
inc dword [esp + 0x1c]
shl eax, 0xf
mov dword [esp + 0xc], ecx
mov ecx, edi
shr ecx, 0x11
or eax, ecx
shl edi, 0xf
mov ecx, ebx
shr ecx, 0x11
or edi, ecx
mov dword [esp + 0x20], edi
shl ebx, 0xf
mov edi, esi
shr edi, 0x11
or ebx, edi
mov edi, dword [esp + 0xc]
shl esi, 0xf
mov ecx, edx
shr ecx, 0x11
or esi, ecx
shl edx, 0xf
mov ecx, 1
cmp edi, 0
mov edi, 0
cmovne edi, ecx
or edx, edi
jmp 0x4e7329
mov dword [esp + 0xc], ecx
shl eax, 0x10
mov ecx, edi
shr ecx, 0x10
or eax, ecx
shl edi, 0x10
mov ecx, ebx
shr ecx, 0x10
or edi, ecx
shl ebx, 0x10
mov dword [esp + 0x20], edi
mov edi, esi
shr edi, 0x10
or ebx, edi
shl esi, 0x10
mov ecx, edx
mov edi, dword [esp + 0xc]
shr ecx, 0x10
or esi, ecx
shl edx, 0x10
mov ecx, 1
cmp edi, 0
mov edi, 0
cmovne edi, ecx
or edx, edi
mov ecx, dword [esp + 0x1c]
cmp ecx, 0x7ffd
jae 0x4e7406
test edx, edx
je 0x4e7710
fnstcw word [esp + 0x18]
mov edi, dword [esp + 0x18]
mov ecx, dword [0x512a78]
movsd xmm0, qword [ecx]
mov ecx, dword [0x512a7c]
addsd xmm0, qword [ecx]
movsd qword [esp + 0x10], xmm0
and edi, 0xc00
jne 0x4e7371
test edx, edx
jl 0x4e73c7
jmp 0x4e7396
cmp edi, 0xc00
je 0x4e7396
mov ecx, dword [esp + 0x8c]
test ecx, ecx
je 0x4e738e
cmp edi, 0x400
je 0x4e73c7
jmp 0x4e7396
cmp edi, 0x800
je 0x4e73c7
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x20]
mov dword [edx], esi
mov dword [edx + 4], ebx
mov ebx, dword [esp + 0x1c]
mov dword [edx + 8], ecx
shl ebx, 0x10
add ebx, eax
mov eax, dword [esp + 0x8c]
or eax, ebx
mov dword [edx + 0xc], eax
add esp, 0xb4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
inc esi
jne 0x4e73e4
inc ebx
jne 0x4e73e4
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x28], esi
lea esi, [eax + 1]
inc ecx
cmove eax, esi
mov esi, dword [esp + 0x28]
mov dword [esp + 0x20], ecx
mov ecx, 1
cmp edi, 0
mov edi, 0
cmove edi, ecx
add edx, edx
mov edx, 0
cmove edx, ecx
and edi, edx
not edi
and esi, edi
jmp 0x4e7396
fnstcw word [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xc], ecx
and ecx, 0xc00
jne 0x4e7424
mov edi, edx
shr edi, 0x1f
mov dword [esp], edi
jmp 0x4e7458
cmp ecx, 0xc00
je 0x4e7451
mov edi, dword [esp + 0x8c]
test edi, edi
je 0x4e7445
cmp ecx, 0x400
je 0x4e77e7
jmp 0x4e7451
cmp ecx, 0x800
je 0x4e7835
mov dword [esp], 0
mov edi, dword [esp + 0x1c]
cmp edi, 0x7ffd
jle 0x4e74e7
mov eax, dword [0x512a80]
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
cmp ecx, 0xc00
je 0x4e77a7
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x4e74a0
cmp ecx, 0x800
je 0x4e77a7
jmp 0x4e74ac
cmp ecx, 0x400
je 0x4e77a7
mov ebx, eax
mov edi, dword [ebp + 8]
shr ebx, 0x1b
and ebx, 0xfffffff0
mov eax, dword [ebx + 0x507f10]
mov dword [edi], eax
mov edx, dword [ebx + 0x507f14]
mov dword [edi + 4], edx
mov ecx, dword [ebx + 0x507f18]
mov dword [edi + 8], ecx
mov esi, dword [ebx + 0x507f1c]
mov dword [edi + 0xc], esi
add esp, 0xb4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp edi, 0x7ffd
je 0x4e77fb
mov ecx, edi
test ecx, ecx
jge 0x4e7339
cmp ecx, 0xffffffff
jl 0x4e752c
mov ecx, dword [esp]
test ecx, ecx
je 0x4e752c
cmp eax, 0x1ffff
jb 0x4e752c
jne 0x4e7536
mov ecx, dword [esp + 0x20]
cmp ecx, 0xffffffff
jb 0x4e752c
cmp ecx, 0xffffffff
jne 0x4e7536
cmp ebx, 0xffffffff
jb 0x4e752c
jne 0x4e7536
cmp esi, 0xffffffff
jae 0x4e7536
mov dword [esp + 4], 1
jmp 0x4e753e
mov dword [esp + 4], 0
neg edi
mov dword [esp + 0x1c], edi
mov ecx, edi
neg ecx
cmp edi, 0x20
mov dword [esp + 8], ecx
jge 0x4e75b8
mov dword [esp], eax
mov eax, ecx
mov ecx, eax
mov edi, esi
shl edi, cl
mov ecx, 1
cmp edx, 0
mov edx, 0
cmovne edx, ecx
mov ecx, eax
or edx, edi
mov edi, ebx
shl edi, cl
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x1c]
mov ecx, edx
shr esi, cl
mov ecx, eax
or esi, edi
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x20]
mov edi, esi
shl edi, cl
mov ecx, edx
shr ebx, cl
mov ecx, eax
mov eax, dword [esp]
or ebx, edi
mov edi, eax
shl edi, cl
mov ecx, edx
shr esi, cl
shr eax, cl
mov edx, dword [esp + 0x24]
or esi, edi
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x28]
jmp 0x4e76a6
mov ecx, edi
cmp ecx, 0x20
je 0x4e7786
cmp ecx, 0x40
jge 0x4e7618
mov ecx, dword [esp + 8]
mov edi, ebx
shl edi, cl
mov dword [esp], edi
mov edi, dword [esp + 0x20]
or esi, edx
mov edx, 0
mov esi, 1
cmovne edx, esi
mov esi, edi
shl esi, cl
or edx, dword [esp]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x1c]
mov ecx, edx
shr ebx, cl
or esi, ebx
mov ebx, eax
mov ecx, dword [esp + 8]
shl ebx, cl
mov ecx, edx
shr edi, cl
shr eax, cl
mov edx, dword [esp + 0x24]
mov dword [esp + 0x20], eax
or ebx, edi
jmp 0x4e76a4
cmp ecx, 0x40
je 0x4e776a
cmp ecx, 0x60
jge 0x4e7659
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x20]
shl edi, cl
or esi, ebx
or esi, edx
mov ebx, dword [esp + 0x20]
mov edx, 0
mov esi, 1
cmovne edx, esi
mov esi, eax
shl esi, cl
mov ecx, dword [esp + 0x1c]
shr ebx, cl
or edx, edi
or esi, ebx
mov ebx, eax
shr ebx, cl
jmp 0x4e769c
cmp ecx, 0x60
je 0x4e774e
cmp ecx, 0x80
jge 0x4e7693
or ebx, dword [esp + 0x20]
mov ecx, dword [esp + 8]
mov edi, eax
shl edi, cl
mov ecx, dword [esp + 0x1c]
or ebx, esi
or ebx, edx
mov ebx, 1
mov edx, 0
cmovne edx, ebx
mov esi, eax
shr esi, cl
or edx, edi
jmp 0x4e769a
mov edx, 1
xor esi, esi
xor ebx, ebx
mov dword [esp + 0x20], 0
xor eax, eax
mov ecx, dword [esp + 4]
test ecx, ecx
je 0x4e7741
test edx, edx
je 0x4e76db
mov ecx, dword [0x512a7c]
movsd xmm0, qword [ecx]
mulsd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
fnstcw word [esp + 0x18]
mov dword [esp + 0x1c], 0
jmp 0x4e7345
mov edx, dword [esp + 0xc]
test dl, 0x10
jne 0x4e7708
mov edx, dword [0x512a7c]
mov ecx, dword [0x512a84]
movsd xmm0, qword [edx]
mulsd xmm0, qword [ecx]
movsd qword [esp + 0x10], xmm0
mov dword [esp + 0x1c], 0
jmp 0x4e7710
mov dword [esp + 0x1c], 0
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x20]
mov dword [edx], esi
mov dword [edx + 4], ebx
mov ebx, dword [esp + 0x1c]
mov dword [edx + 8], ecx
shl ebx, 0x10
add ebx, eax
mov eax, dword [esp + 0x8c]
or eax, ebx
mov dword [edx + 0xc], eax
add esp, 0xb4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x1c], 0
jmp 0x4e7339
or esi, ebx
mov ecx, 1
or esi, edx
mov edx, 0
cmovne edx, ecx
or edx, dword [esp + 0x20]
mov esi, eax
jmp 0x4e769a
mov ecx, 1
or esi, edx
mov edx, 0
cmovne edx, ecx
or edx, ebx
mov ebx, eax
mov esi, dword [esp + 0x20]
jmp 0x4e769c
mov ecx, 1
cmp edx, 0
mov edx, 0
cmovne edx, ecx
or edx, esi
mov esi, ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x20], eax
jmp 0x4e76a4
mov ebx, dword [esp + 0x8c]
mov edi, dword [ebp + 8]
shr ebx, 0x1b
and ebx, 0xfffffff0
mov eax, dword [ebx + 0x507f60]
mov dword [edi], eax
mov edx, dword [ebx + 0x507f64]
mov dword [edi + 4], edx
mov ecx, dword [ebx + 0x507f68]
mov dword [edi + 8], ecx
mov esi, dword [ebx + 0x507f6c]
mov dword [edi + 0xc], esi
add esp, 0xb4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test edx, edx
je 0x4e7451
mov dword [esp], 1
jmp 0x4e7458
cmp eax, 0x1ffff
jne 0x4e7339
mov edi, dword [esp + 0x20]
cmp edi, 0xffffffff
jne 0x4e7339
cmp ebx, 0xffffffff
jne 0x4e7339
cmp esi, 0xffffffff
jne 0x4e7339
mov edi, dword [esp]
test edi, edi
jne 0x4e7468
jmp 0x4e7339
test edx, edx
je 0x4e7451
mov dword [esp], 1
jmp 0x4e7458
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, eax
jne 0x4e787e
mov dword [esp + 8], 0
mov dword [esp + 4], 1
jmp 0x4e78d0
mov edi, ecx
cmp edi, 0x10000
jae 0x4e7897
mov edi, 2
mov dword [esp + 8], edi
mov dword [esp + 4], edi
jmp 0x4e78d0
cmp edi, 0x7fff0000
jae 0x4e78b1
mov dword [esp + 8], 0
mov dword [esp + 4], 4
jmp 0x4e78d0
mov dword [esp + 8], 0
mov edi, 0x10
cmp ecx, 0x7fff0000
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, ebx
jne 0x4e78fc
mov dword [esp], 1
jmp 0x4e7941
mov edi, ecx
cmp edi, 0x10000
jae 0x4e791a
mov edi, dword [esp + 8]
mov dword [esp], 2
or edi, 2
mov dword [esp + 8], edi
jmp 0x4e7941
cmp edi, 0x7fff0000
jae 0x4e792b
mov dword [esp], 4
jmp 0x4e7941
mov edi, 0x10
cmp ecx, 0x7fff0000
mov ecx, 8
cmova ecx, edi
mov dword [esp], ecx
mov ecx, dword [esp + 4]
or ecx, dword [esp]
mov edi, dword [esp + 0xa0]
cmp edi, 0x7fff
je 0x4e7e7c
cmp esi, 0x7fff
je 0x4e7e7c
test cl, 1
je 0x4e79cd
mov eax, dword [esp + 8]
test eax, eax
je 0x4e798d
mov eax, dword [0x512a74]
mov edx, dword [0x512a78]
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
and ebx, 0xfffffff0
mov eax, dword [ebx + 0x507f40]
mov dword [edi], eax
mov edx, dword [ebx + 0x507f44]
mov dword [edi + 4], edx
mov ecx, dword [ebx + 0x507f48]
mov dword [edi + 8], ecx
mov esi, dword [ebx + 0x507f4c]
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 0x4e7b8e
mov eax, dword [0x512a74]
mov edx, dword [0x512a78]
mov ebx, dword [esp + 4]
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp + 0x10], xmm0
cmp ebx, 2
je 0x4e7c56
mov eax, dword [esp + 0xac]
test eax, eax
je 0x4e7a14
mov edx, eax
shl edx, 0xf
xor esi, esi
jmp 0x4e7a49
mov eax, dword [esp + 0x94]
test eax, eax
je 0x4e7a28
mov edx, eax
mov esi, 0x11
jmp 0x4e7a49
mov esi, dword [esp + 0x98]
mov edx, dword [esp + 0x90]
mov eax, 0x31
cmp esi, 0
cmovne edx, esi
mov esi, 0x51
cmovne esi, eax
bsr eax, edx
sub esi, eax
add esi, 0x1f
mov ebx, esi
neg ebx
cmp esi, 0x20
jge 0x4e7abf
mov eax, dword [esp + 0xac]
mov edx, dword [esp + 0x94]
mov ecx, esi
shl eax, cl
mov ecx, ebx
mov edi, edx
shr edi, cl
mov ecx, esi
shl edx, cl
or eax, edi
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x98]
mov ecx, ebx
mov edi, eax
shr edi, cl
mov ecx, esi
shl eax, cl
or edx, edi
mov dword [esp + 0x94], edx
mov edx, dword [esp + 0x90]
mov ecx, ebx
mov ebx, edx
shr ebx, cl
mov ecx, esi
shl edx, cl
mov dword [esp + 0x90], edx
or eax, ebx
mov dword [esp + 0x98], eax
jmp 0x4e7b86
je 0x4e7c27
cmp esi, 0x40
jge 0x4e7b12
mov edx, dword [esp + 0x94]
mov eax, dword [esp + 0x98]
mov ecx, esi
shl edx, cl
mov ecx, ebx
mov edi, eax
shr edi, cl
mov ecx, esi
shl eax, cl
or edi, edx
mov edx, dword [esp + 0x90]
mov dword [esp + 0xac], edi
mov ecx, ebx
mov ebx, edx
shr ebx, cl
mov ecx, esi
shl edx, cl
or ebx, eax
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], edx
jmp 0x4e7b7b
je 0x4e7c06
cmp esi, 0x60
jge 0x4e7b4b
mov eax, dword [esp + 0x98]
mov ecx, esi
shl eax, cl
mov ecx, ebx
mov ebx, dword [esp + 0x90]
mov edx, ebx
shr edx, cl
mov ecx, esi
shl ebx, cl
mov dword [esp + 0x94], ebx
or edx, eax
mov dword [esp + 0xac], edx
jmp 0x4e7b70
mov eax, dword [esp + 0x90]
mov dword [esp + 0x94], 0
mov ecx, esi
mov edx, eax
shl edx, cl
cmp esi, 0x60
cmove edx, eax
mov dword [esp + 0xac], edx
mov dword [esp + 0x98], 0
mov dword [esp + 0x90], 0
neg esi
inc esi
jmp 0x4e701c
fnstcw word [esp + 0x18]
mov ebx, dword [esp + 0x18]
mov eax, dword [0x512a7c]
mov edx, dword [0x512a74]
mov ecx, dword [esp + 0x8c]
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp + 0x10], xmm0
and ebx, 0xc00
test ecx, ecx
je 0x4e7bd2
mov eax, 1
xor edx, edx
cmp ebx, 0x400
cmove edx, eax
jmp 0x4e7be2
mov eax, 1
xor edx, edx
cmp ebx, 0x800
cmove edx, eax
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x8c]
mov dword [ecx], edx
xor edx, edx
mov dword [ecx + 4], edx
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
add esp, 0xb4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x90]
mov dword [esp + 0xac], eax
mov dword [esp + 0x94], edx
jmp 0x4e7b70
mov eax, dword [esp + 0x94]
mov edx, dword [esp + 0x98]
mov ebx, dword [esp + 0x90]
mov dword [esp + 0xac], eax
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], ebx
jmp 0x4e7b7b
mov eax, dword [esp + 0xb0]
test eax, eax
je 0x4e7c73
mov edi, eax
mov dword [esp + 0xa0], 0
shl edi, 0xf
jmp 0x4e7cb5
mov eax, dword [esp + 0xa4]
test eax, eax
je 0x4e7c8d
mov edi, eax
mov dword [esp + 0xa0], 0x11
jmp 0x4e7cb5
mov eax, dword [esp + 0xa8]
mov edi, dword [esp + 0x9c]
mov edx, 0x31
mov ebx, 0x51
cmp eax, 0
cmovne edi, eax
cmovne ebx, edx
mov dword [esp + 0xa0], ebx
bsr eax, edi
mov edx, dword [esp + 0xa0]
sub edx, eax
add edx, 0x1f
mov eax, edx
mov dword [esp + 0xa0], edx
neg eax
cmp edx, 0x20
jge 0x4e7d48
mov ecx, edx
mov edx, dword [esp + 0xb0]
shl edx, cl
mov ecx, eax
mov ebx, dword [esp + 0xa4]
mov edi, ebx
shr edi, cl
or edx, edi
mov ecx, dword [esp + 0xa0]
shl ebx, cl
mov dword [esp + 0xb0], edx
mov ecx, eax
mov edx, dword [esp + 0xa8]
mov edi, edx
shr edi, cl
or ebx, edi
mov ecx, dword [esp + 0xa0]
shl edx, cl
mov dword [esp + 0xa4], ebx
mov ecx, eax
mov ebx, dword [esp + 0x9c]
mov eax, ebx
shr eax, cl
or edx, eax
mov ecx, dword [esp + 0xa0]
shl ebx, cl
mov dword [esp + 0xa8], edx
mov dword [esp + 0x9c], ebx
jmp 0x4e7e1c
cmp edx, 0x20
je 0x4e7e50
cmp edx, 0x40
jge 0x4e7da3
mov ebx, edx
mov edx, dword [esp + 0xa8]
mov ecx, ebx
shl dword [esp + 0xa4], cl
mov ecx, eax
mov edi, edx
shr edi, cl
or edi, dword [esp + 0xa4]
mov ecx, ebx
shl edx, cl
mov dword [esp + 0xb0], edi
mov edi, dword [esp + 0x9c]
mov ecx, eax
mov eax, edi
shr eax, cl
mov ecx, ebx
shl edi, cl
or eax, edx
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], edi
jmp 0x4e7e11
cmp edx, 0x40
je 0x4e7e32
cmp edx, 0x60
jge 0x4e7de1
mov ebx, edx
mov edx, dword [esp + 0xa8]
mov edi, dword [esp + 0x9c]
mov ecx, ebx
shl edx, cl
mov ecx, eax
mov eax, edi
shr eax, cl
mov ecx, ebx
shl edi, cl
mov dword [esp + 0xa4], edi
or eax, edx
mov dword [esp + 0xb0], eax
jmp 0x4e7e06
mov ecx, edx
mov eax, dword [esp + 0x9c]
mov dword [esp + 0xa4], 0
mov edx, eax
shl edx, cl
cmp ecx, 0x60
cmove edx, eax
mov dword [esp + 0xb0], edx
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 0x4e701c
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0x9c]
mov dword [esp + 0xb0], eax
mov dword [esp + 0xa4], edx
jmp 0x4e7e06
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0xa8]
mov ebx, dword [esp + 0x9c]
mov dword [esp + 0xb0], eax
mov dword [esp + 0xa4], edx
mov dword [esp + 0xa8], ebx
jmp 0x4e7e11
test cl, 0x10
je 0x4e8063
mov ecx, dword [esp + 4]
cmp ecx, dword [esp]
je 0x4e7ee4
mov eax, ecx
cmp eax, 0x10
je 0x4e810f
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 0x4e804a
mov edx, dword [ebp + 8]
mov eax, dword [0x512a70]
movsd xmm0, qword [eax]
divsd xmm0, xmm0
mov dword [edx + 0xc], ecx
movsd qword [esp + 0x10], xmm0
mov ecx, dword [edx + 0xc]
jmp 0x4e804a
mov ecx, dword [esp + 0xc]
not edx
and edx, 0x8000
shr edx, 0xf
not ecx
and ecx, 0x8000
shr ecx, 0xf
mov dword [esp + 0xc], ecx
mov esi, edx
or esi, ecx
je 0x4e7f1c
mov ecx, dword [0x512a70]
movsd xmm0, qword [ecx]
divsd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
cmp edx, dword [esp + 0xc]
je 0x4e7f48
test edx, edx
je 0x4e8004
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 0x4e804a
cmp eax, ebx
jb 0x4e7f97
jne 0x4e7f5e
mov edx, dword [esp + 0xa4]
cmp edx, dword [esp + 0x94]
jb 0x4e7f97
mov edx, dword [esp + 0xa4]
cmp edx, dword [esp + 0x94]
jne 0x4e7fb5
mov edx, dword [esp + 0xa8]
cmp edx, dword [esp + 0x98]
jb 0x4e7f97
cmp edx, dword [esp + 0x98]
jne 0x4e7fb5
mov edx, dword [esp + 0x9c]
cmp edx, dword [esp + 0x90]
jae 0x4e7fb5
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 0x4e804a
cmp ebx, eax
jb 0x4e8004
jne 0x4e7fcb
mov eax, dword [esp + 0xa4]
cmp eax, dword [esp + 0x94]
ja 0x4e8004
mov eax, dword [esp + 0xa4]
cmp eax, dword [esp + 0x94]
jne 0x4e801f
mov eax, dword [esp + 0xa8]
cmp eax, dword [esp + 0x98]
ja 0x4e8004
cmp eax, dword [esp + 0x98]
jne 0x4e801f
mov eax, dword [esp + 0x9c]
cmp eax, dword [esp + 0x90]
jbe 0x4e801f
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 0x4e804a
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0xc]
test edx, 0x80000000
je 0x4e7f2a
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 cl, 1
je 0x4e80ae
mov eax, dword [0x512a70]
mov edx, dword [0x507f30]
mov edi, dword [ebp + 8]
movsd xmm0, qword [eax]
divsd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
mov dword [edi], edx
mov ecx, dword [0x507f34]
mov dword [edi + 4], ecx
mov ebx, dword [0x507f38]
mov dword [edi + 8], ebx
mov esi, dword [0x507f3c]
mov dword [edi + 0xc], esi
add esp, 0xb4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 8]
test eax, eax
je 0x4e80cf
mov eax, dword [0x512a74]
mov edx, dword [0x512a78]
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
and ebx, 0xfffffff0
mov eax, dword [ebx + 0x507f10]
mov dword [edi], eax
mov edx, dword [ebx + 0x507f14]
mov dword [edi + 4], edx
mov ecx, dword [ebx + 0x507f18]
mov dword [edi + 8], ecx
mov esi, dword [ebx + 0x507f1c]
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 0x4e7eb7