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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push esi
push edi
push ebx
sub esp, 0xbc
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov edi, dword [esi]
mov edx, dword [esi + 8]
mov dword [esp + 0xa8], edi
mov edi, dword [ebx + 8]
mov ecx, dword [esi + 0xc]
mov eax, ecx
mov dword [esp + 0xb8], edx
and eax, 0x7fffffff
mov edx, dword [esi + 4]
mov dword [esp + 0x9c], edi
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 4]
mov ebx, dword [ebx]
mov dword [esp + 0xa4], ebx
mov ebx, eax
shr ebx, 0x10
mov dword [esp], edx
mov edx, esi
and edx, 0x7fffffff
mov dword [esp + 0x1c], ecx
xor ecx, esi
mov dword [esp + 0x18], esi
and ecx, 0x80000000
movzx esi, ax
mov dword [esp + 0xb4], esi
mov esi, edx
mov dword [esp + 0xa0], edi
lea edi, [ebx - 1]
mov dword [esp + 0x98], ecx
movzx ecx, dx
shr esi, 0x10
mov dword [esp + 0xb0], ebx
cmp edi, 0x7ffd
mov dword [esp + 0xac], ecx
mov ebx, dword [esp]
ja 0x4c7f28
lea edi, [esi - 1]
cmp edi, 0x7ffd
ja 0x4c7f28
mov edx, dword [esp + 0xb0]
mov edi, dword [esp + 0xb4]
or edi, 0x10000
lea ecx, [edx + esi - 0x4000]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xa8]
mov eax, ecx
mov esi, dword [esp + 0xa4]
mul esi
mov dword [esp], eax
mov eax, ecx
mov dword [esp + 4], edx
mul dword [esp + 0xa0]
mov dword [esp + 8], eax
mov eax, ecx
mov dword [esp + 0x28], edx
mul dword [esp + 0x9c]
mov dword [esp + 0xb4], edi
mov edi, dword [esp + 0xac]
mov dword [esp + 0x2c], eax
or edi, 0x10000
mov eax, ecx
mov dword [esp + 0x30], edx
mul edi
mov dword [esp + 0x34], eax
mov eax, esi
mov dword [esp + 0x38], edx
mul ebx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x3c], eax
mov eax, ecx
mov dword [esp + 0x40], edx
mul ebx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x48], edx
mul ebx
mov dword [esp + 0x4c], eax
mov eax, edi
mov dword [esp + 0x50], edx
mul ebx
mov dword [esp + 0x54], eax
mov eax, esi
mov ebx, dword [esp + 0xb8]
mov dword [esp + 0x58], edx
mul ebx
mov dword [esp + 0x5c], eax
mov eax, ecx
mov dword [esp + 0x60], edx
mul ebx
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x68], edx
mul ebx
mov dword [esp + 0x6c], eax
mov eax, edi
mov dword [esp + 0x70], edx
mul ebx
mov dword [esp + 0x74], eax
mov eax, esi
mov ebx, dword [esp + 0xb4]
mov dword [esp + 0x78], edx
mul ebx
mov dword [esp + 0xac], edi
mov edi, eax
mov eax, ecx
xor ecx, ecx
mov dword [esp + 0x7c], edx
mul ebx
mov esi, dword [esp + 4]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x84], edx
mul ebx
xor ebx, ebx
add esi, dword [esp + 8]
mov dword [esp + 0x8c], edx
adc ebx, 0
add esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x2c]
adc ebx, 0
add ebx, dword [esp + 0x28]
mov dword [esp + 4], esi
mov esi, 0
adc esi, 0
add edx, dword [esp + 0x40]
mov dword [esp + 0x88], eax
adc ecx, 0
add ebx, edx
mov edx, dword [esp + 0x44]
adc esi, ecx
xor ecx, ecx
add edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x4c]
adc ecx, 0
add ebx, edx
mov edx, dword [esp + 0x34]
adc esi, ecx
xor ecx, ecx
add esi, dword [esp + 0x30]
mov dword [esp + 0x90], ebx
mov ebx, 0
adc ebx, 0
add edx, dword [esp + 0x48]
adc ecx, 0
add esi, edx
adc ebx, ecx
xor edx, edx
add eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
adc edx, 0
add ecx, edi
mov edi, 0
adc edi, 0
add eax, ecx
mov ecx, dword [esp + 0x7c]
adc edx, edi
add esi, eax
mov eax, dword [esp + 0x50]
adc ebx, edx
xor edi, edi
xor edx, edx
add ebx, dword [esp + 0x38]
mov dword [esp + 0x24], esi
adc edx, 0
xor esi, esi
add eax, dword [esp + 0x54]
adc esi, 0
add ebx, eax
adc edx, esi
xor eax, eax
mov esi, dword [esp + 0x68]
add esi, dword [esp + 0x6c]
adc eax, 0
add ecx, dword [esp + 0x80]
adc edi, 0
add esi, ecx
mov ecx, dword [esp + 0x70]
adc eax, edi
add ebx, esi
adc edx, eax
xor esi, esi
xor eax, eax
add edx, dword [esp + 0x58]
mov edi, dword [esp + 0x84]
adc esi, 0
add ecx, dword [esp + 0x74]
adc eax, 0
add edx, ecx
adc esi, eax
xor ecx, ecx
xor eax, eax
add edi, dword [esp + 0x88]
adc eax, 0
add edx, edi
mov dword [esp + 0x94], edx
adc esi, eax
mov eax, dword [esp + 0xac]
mul dword [esp + 0xb4]
add esi, dword [esp + 0x78]
mov edi, dword [esp + 0x8c]
adc ecx, 0
add edi, eax
mov eax, dword [esp + 0x94]
adc edx, 0
add esi, edi
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x90]
adc ecx, edx
or esi, dword [esp + 4]
or esi, dword [esp]
mov edx, dword [esp + 0x24]
test cl, 2
mov dword [esp + 0x1c], ecx
je 0x4c79f0
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x90], esi
mov esi, ecx
mov edi, dword [esp + 0x1c]
shl edi, 0xf
shr esi, 0x11
or edi, esi
mov esi, eax
shl ecx, 0xf
shr esi, 0x11
or ecx, esi
mov esi, edx
mov dword [esp + 0x20], ecx
mov ecx, ebx
shl eax, 0xf
shr ecx, 0x11
or eax, ecx
mov ecx, dword [esp + 0x90]
test ecx, ecx
mov dword [esp + 0x1c], edi
mov edi, 1
cmovne ecx, edi
shl ebx, 0xf
shr esi, 0x11
shl edx, 0xf
or ebx, esi
inc dword [esp + 0x18]
or edx, ecx
jmp 0x4c7a45
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x90], esi
mov esi, ecx
mov edi, dword [esp + 0x1c]
shl edi, 0x10
shr esi, 0x10
or edi, esi
mov esi, eax
shl ecx, 0x10
shr esi, 0x10
or ecx, esi
mov esi, edx
mov dword [esp + 0x20], ecx
mov ecx, ebx
shl eax, 0x10
shr ecx, 0x10
or eax, ecx
mov ecx, dword [esp + 0x90]
test ecx, ecx
mov dword [esp + 0x1c], edi
mov edi, 1
cmovne ecx, edi
shl ebx, 0x10
shr esi, 0x10
shl edx, 0x10
or ebx, esi
or edx, ecx
cmp dword [esp + 0x18], 0x7ffd
jae 0x4c7b14
test edx, edx
je 0x4c7dfd
fnstcw word [esp + 0xc]
mov esi, dword [0x50a9d8]
mov edi, dword [0x50a9dc]
mov ecx, dword [esp + 0xc]
movsd xmm0, qword [esi]
and ecx, 0xc00
addsd xmm0, qword [edi]
movsd qword [esp + 0x10], xmm0
jne 0x4c7a8b
test edx, edx
jl 0x4c7ae2
jmp 0x4c7aaf
cmp ecx, 0xc00
je 0x4c7aaf
cmp dword [esp + 0x98], 0
je 0x4c7aa7
cmp ecx, 0x400
je 0x4c7ae2
jmp 0x4c7aaf
cmp ecx, 0x800
je 0x4c7ae2
mov esi, dword [ebp + 8]
mov edx, dword [esp + 0x18]
shl edx, 0x10
add edx, dword [esp + 0x1c]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x98]
or ecx, edx
mov dword [esi], ebx
mov dword [esi + 8], eax
mov dword [esi + 0xc], ecx
add esp, 0xbc
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
inc ebx
jne 0x4c7afa
inc eax
jne 0x4c7afa
mov edi, dword [esp + 0x1c]
inc dword [esp + 0x20]
lea esi, [edi + 1]
cmove edi, esi
mov dword [esp + 0x1c], edi
test ecx, ecx
jne 0x4c7b0c
xor ecx, ecx
add edx, edx
mov edx, 1
cmove ecx, edx
jmp 0x4c7b0e
xor ecx, ecx
not ecx
and ebx, ecx
jmp 0x4c7aaf
fnstcw word [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
and ecx, 0xc00
jne 0x4c7b2f
mov esi, edx
shr esi, 0x1f
jmp 0x4c7b5d
cmp ecx, 0xc00
je 0x4c7b5b
cmp dword [esp + 0x98], 0
je 0x4c7b4f
cmp ecx, 0x400
je 0x4c7ecc
jmp 0x4c7b5b
cmp ecx, 0x800
je 0x4c7f16
xor esi, esi
cmp dword [esp + 0x18], 0x7ffd
jle 0x4c7bee
mov eax, dword [0x50a9e0]
cmp ecx, 0xc00
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
je 0x4c7e9a
cmp dword [esp + 0x98], 0
je 0x4c7ba2
cmp ecx, 0x800
je 0x4c7e9a
jmp 0x4c7bae
cmp ecx, 0x400
je 0x4c7e9a
mov esi, dword [esp + 0x98]
shr esi, 0x1b
mov ebx, dword [ebp + 8]
mov edx, dword [esi + 0x502d64]
mov eax, dword [esi + 0x502d60]
mov ecx, dword [esi + 0x502d68]
mov dword [ebx + 4], edx
mov dword [ebx], eax
mov dword [ebx + 8], ecx
mov edx, dword [esi + 0x502d6c]
mov eax, dword [ebp + 8]
mov dword [eax + 0xc], edx
add esp, 0xbc
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
je 0x4c7ede
cmp dword [esp + 0x18], 0
jge 0x4c7a53
cmp dword [esp + 0x18], 0xffffffff
jl 0x4c7c2b
test esi, esi
je 0x4c7c2b
cmp dword [esp + 0x1c], 0x1ffff
jb 0x4c7c2b
jne 0x4c7c35
cmp dword [esp + 0x20], 0xffffffff
jb 0x4c7c2b
jne 0x4c7c35
cmp eax, 0xffffffff
jb 0x4c7c2b
jne 0x4c7c35
cmp ebx, 0xffffffff
jae 0x4c7c35
mov dword [esp + 4], 1
jmp 0x4c7c3d
mov dword [esp + 4], 0
mov esi, dword [esp + 0x18]
neg esi
mov ecx, esi
neg ecx
mov dword [esp + 0x18], esi
cmp esi, 0x20
jge 0x4c7cb1
mov esi, ecx
mov ecx, esi
mov edi, ebx
shl edi, cl
mov ecx, 1
test edx, edx
cmovne edx, ecx
mov ecx, esi
or edx, edi
mov edi, eax
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x18]
shl edi, cl
mov ecx, edx
shr ebx, cl
mov ecx, esi
or ebx, edi
mov dword [esp], ebx
mov ebx, dword [esp + 0x20]
mov edi, ebx
shl edi, cl
mov ecx, edx
shr eax, cl
mov ecx, esi
or eax, edi
mov edi, dword [esp + 0x1c]
mov esi, edi
shl esi, cl
mov ecx, edx
shr ebx, cl
or ebx, esi
mov dword [esp + 0x20], ebx
shr edi, cl
mov dword [esp + 0x1c], edi
mov edx, dword [esp + 0x24]
mov ebx, dword [esp]
jmp 0x4c7d9a
je 0x4c7e7b
cmp dword [esp + 0x18], 0x40
jge 0x4c7d0c
or ebx, edx
mov edi, eax
mov esi, ecx
mov ecx, esi
mov edx, 0
mov ebx, 1
cmovne edx, ebx
shl edi, cl
or edx, edi
mov edi, dword [esp + 0x20]
mov ebx, edi
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x18]
shl ebx, cl
mov ecx, edx
shr eax, cl
mov ecx, esi
mov esi, dword [esp + 0x1c]
or ebx, eax
mov eax, esi
shl eax, cl
mov ecx, edx
shr edi, cl
shr esi, cl
or eax, edi
mov edx, dword [esp + 0x24]
mov dword [esp + 0x20], esi
jmp 0x4c7d92
je 0x4c7e5d
cmp dword [esp + 0x18], 0x60
jge 0x4c7d48
or ebx, eax
or ebx, edx
mov edx, 0
mov ebx, 1
mov esi, dword [esp + 0x20]
mov edi, esi
mov eax, dword [esp + 0x1c]
cmovne edx, ebx
mov ebx, eax
shl edi, cl
shl ebx, cl
or edx, edi
mov ecx, dword [esp + 0x18]
shr esi, cl
shr eax, cl
or ebx, esi
jmp 0x4c7d8a
je 0x4c7e3f
cmp dword [esp + 0x18], 0x80
jge 0x4c7d81
or eax, dword [esp + 0x20]
or eax, ebx
or eax, edx
mov edx, 0
mov edi, dword [esp + 0x1c]
mov esi, edi
mov eax, 1
mov ebx, edi
cmovne edx, eax
shl esi, cl
mov ecx, dword [esp + 0x18]
or edx, esi
shr ebx, cl
jmp 0x4c7d88
mov edx, 1
xor ebx, ebx
xor eax, eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
cmp dword [esp + 4], 0
je 0x4c7e32
test edx, edx
je 0x4c7dca
mov ecx, dword [0x50a9dc]
mov dword [esp + 0x18], 0
movsd xmm0, qword [ecx]
mulsd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
jmp 0x4c7a5b
test byte [esp + 8], 0x10
jne 0x4c7df5
mov edx, dword [0x50a9dc]
mov ecx, dword [0x50a9e4]
mov dword [esp + 0x18], 0
movsd xmm0, qword [edx]
mulsd xmm0, qword [ecx]
movsd qword [esp + 0x10], xmm0
jmp 0x4c7dfd
mov dword [esp + 0x18], 0
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x18]
shl ecx, 0x10
mov dword [edx], ebx
mov ebx, dword [esp + 0x1c]
mov dword [edx + 4], eax
add ebx, ecx
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x98]
or esi, ebx
mov dword [edx + 8], eax
mov dword [edx + 0xc], esi
add esp, 0xbc
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x18], 0
jmp 0x4c7a53
or ebx, eax
mov eax, 1
or ebx, edx
mov edx, 0
mov ebx, dword [esp + 0x1c]
cmovne edx, eax
or edx, dword [esp + 0x20]
jmp 0x4c7d88
mov ecx, 1
or ebx, edx
mov edx, 0
cmovne edx, ecx
mov ebx, dword [esp + 0x20]
or edx, eax
mov eax, dword [esp + 0x1c]
jmp 0x4c7d8a
mov ecx, 1
test edx, edx
mov esi, dword [esp + 0x1c]
cmovne edx, ecx
or edx, ebx
mov ebx, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x20], esi
jmp 0x4c7d92
mov esi, dword [esp + 0x98]
shr esi, 0x1b
mov ebx, dword [ebp + 8]
mov edx, dword [esi + 0x502da4]
mov eax, dword [esi + 0x502da0]
mov ecx, dword [esi + 0x502da8]
mov dword [ebx + 4], edx
mov dword [ebx], eax
mov dword [ebx + 8], ecx
mov edx, dword [esi + 0x502dac]
jmp 0x4c7bdb
test edx, edx
je 0x4c7b5b
mov esi, 1
jmp 0x4c7b5d
cmp dword [esp + 0x1c], 0x1ffff
jne 0x4c7a53
cmp dword [esp + 0x20], 0xffffffff
jne 0x4c7a53
cmp eax, 0xffffffff
jne 0x4c7a53
cmp ebx, 0xffffffff
jne 0x4c7a53
test esi, esi
jne 0x4c7b6b
jmp 0x4c7a53
test edx, edx
je 0x4c7b5b
mov esi, 1
jmp 0x4c7b5d
mov edi, dword [esp + 0xb8]
xor ecx, ecx
or edi, ebx
or edi, dword [esp + 0xa8]
mov edi, 1
cmovne ecx, edi
or ecx, eax
jne 0x4c7f58
mov dword [esp + 8], 0
mov dword [esp + 4], 1
jmp 0x4c7fa2
cmp ecx, 0x10000
jae 0x4c7f6f
mov edi, 2
mov dword [esp + 8], edi
mov dword [esp + 4], edi
jmp 0x4c7fa2
cmp ecx, 0x7fff0000
jae 0x4c7f89
mov dword [esp + 8], 0
mov dword [esp + 4], 4
jmp 0x4c7fa2
mov edi, 0x10
mov ecx, 8
cmova ecx, edi
mov dword [esp + 8], 0
mov dword [esp + 4], ecx
mov edi, dword [esp + 0x9c]
xor ecx, ecx
or edi, dword [esp + 0xa0]
or edi, dword [esp + 0xa4]
mov edi, 1
cmovne ecx, edi
or ecx, edx
jne 0x4c7fcf
mov edi, 1
mov dword [esp], edi
jmp 0x4c800c
cmp ecx, 0x10000
jae 0x4c7feb
mov edi, dword [esp + 8]
or edi, 2
mov dword [esp + 8], edi
mov dword [esp], 2
jmp 0x4c800c
cmp ecx, 0x7fff0000
jae 0x4c7ffc
mov dword [esp], 4
jmp 0x4c800c
mov edi, 0x10
mov ecx, 8
cmova ecx, edi
mov dword [esp], ecx
mov edi, dword [esp + 4]
or edi, dword [esp]
cmp dword [esp + 0xb0], 0x7fff
je 0x4c8522
cmp esi, 0x7fff
je 0x4c8522
test edi, 1
je 0x4c8095
cmp dword [esp + 8], 0
je 0x4c8058
mov eax, dword [0x50a9d4]
mov edx, dword [0x50a9d8]
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp + 0x10], xmm0
mov ebx, dword [esp + 0x98]
shr ebx, 0x1b
mov edi, dword [ebp + 8]
mov eax, dword [ebx + 0x502d80]
mov edx, dword [ebx + 0x502d84]
mov ecx, dword [ebx + 0x502d88]
mov esi, dword [ebx + 0x502d8c]
mov dword [edi], eax
mov dword [edi + 4], edx
mov dword [edi + 8], ecx
mov dword [edi + 0xc], esi
add esp, 0xbc
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 4]
cmp eax, dword [esp]
je 0x4c8267
mov eax, dword [0x50a9d4]
mov edx, dword [0x50a9d8]
cmp dword [esp + 4], 2
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp + 0x10], xmm0
je 0x4c8334
cmp dword [esp + 0xac], 0
je 0x4c80de
mov edx, dword [esp + 0xac]
xor esi, esi
shl edx, 0xf
jmp 0x4c8116
cmp dword [esp + 0x9c], 0
je 0x4c80f6
mov edx, dword [esp + 0x9c]
mov esi, 0x11
jmp 0x4c8116
mov esi, dword [esp + 0xa0]
mov eax, 0x31
test esi, esi
mov edx, dword [esp + 0xa4]
cmovne edx, esi
mov esi, 0x51
cmovne esi, eax
bsr eax, edx
sub esi, eax
add esi, 0x1f
mov edx, esi
neg edx
mov dword [esp], edx
cmp esi, 0x20
jge 0x4c8192
mov edx, dword [esp + 0x9c]
mov ecx, esi
mov edi, edx
mov eax, dword [esp + 0xac]
shl eax, cl
mov ecx, dword [esp]
shr edi, cl
mov ecx, esi
or eax, edi
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0xa0]
mov edi, eax
shl edx, cl
mov ecx, dword [esp]
shr edi, cl
mov ecx, esi
or edx, edi
mov edi, dword [esp + 0xa4]
mov dword [esp + 0x9c], edx
mov edx, edi
shl eax, cl
mov ecx, dword [esp]
shr edx, cl
mov ecx, esi
shl edi, cl
or eax, edx
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], edi
jmp 0x4c825f
je 0x4c8305
cmp esi, 0x40
jge 0x4c81ea
mov ecx, esi
mov edi, edx
mov eax, dword [esp + 0xa0]
mov edx, eax
shl dword [esp + 0x9c], cl
mov ecx, edi
shr edx, cl
mov ecx, esi
or edx, dword [esp + 0x9c]
shl eax, cl
mov ecx, edi
mov edi, dword [esp + 0xa4]
mov dword [esp + 0xac], edx
mov edx, edi
shr edx, cl
mov ecx, esi
shl edi, cl
or edx, eax
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa0], edi
jmp 0x4c8254
je 0x4c82e4
cmp esi, 0x60
jge 0x4c8224
mov edi, dword [esp + 0xa4]
mov ecx, esi
mov edx, edi
mov eax, dword [esp + 0xa0]
shl eax, cl
mov ecx, dword [esp]
shr edx, cl
mov ecx, esi
shl edi, cl
or edx, eax
mov dword [esp + 0xac], edx
mov dword [esp + 0x9c], edi
jmp 0x4c8249
mov eax, dword [esp + 0xa4]
mov ecx, esi
mov edx, eax
shl edx, cl
cmp esi, 0x60
mov dword [esp + 0x9c], 0
cmove edx, eax
mov dword [esp + 0xac], edx
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
neg esi
inc esi
jmp 0x4c770d
fnstcw word [esp + 0xc]
mov eax, dword [0x50a9dc]
mov edx, dword [0x50a9d4]
mov ecx, dword [esp + 0xc]
movsd xmm0, qword [eax]
and ecx, 0xc00
mulsd xmm0, qword [edx]
movsd qword [esp + 0x10], xmm0
cmp dword [esp + 0x98], 0
je 0x4c82aa
mov eax, 1
xor edx, edx
cmp ecx, 0x400
cmovne eax, edx
jmp 0x4c82ba
mov eax, 1
xor edx, edx
cmp ecx, 0x800
cmovne eax, edx
mov edx, dword [ebp + 8]
mov dword [edx], eax
mov eax, dword [esp + 0x98]
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov dword [edx + 0xc], eax
add esp, 0xbc
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0xa4]
mov dword [esp + 0xac], eax
mov dword [esp + 0x9c], edx
jmp 0x4c8249
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0xa0]
mov edi, dword [esp + 0xa4]
mov dword [esp + 0xac], eax
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa0], edi
jmp 0x4c8254
cmp dword [esp + 0xb4], 0
je 0x4c8355
mov edi, dword [esp + 0xb4]
shl edi, 0xf
mov dword [esp + 0xb0], 0
jmp 0x4c8393
cmp dword [esp + 0xb8], 0
je 0x4c8373
mov edi, dword [esp + 0xb8]
mov dword [esp + 0xb0], 0x11
jmp 0x4c8393
mov eax, 0x31
mov edx, 0x51
test ebx, ebx
mov edi, dword [esp + 0xa8]
cmovne edx, eax
mov dword [esp + 0xb0], edx
cmovne edi, ebx
bsr eax, edi
mov edi, dword [esp + 0xb0]
sub edi, eax
add edi, 0x1f
mov edx, edi
neg edx
mov dword [esp + 0xb0], edi
cmp edi, 0x20
mov dword [esp + 4], edx
jge 0x4c841b
mov edx, edi
mov ecx, edx
mov eax, dword [esp + 0xb8]
mov dword [esp], esi
mov esi, eax
mov edi, dword [esp + 0xb4]
shl edi, cl
mov ecx, dword [esp + 4]
shr esi, cl
mov ecx, edx
or edi, esi
mov esi, ebx
shl eax, cl
mov ecx, dword [esp + 4]
shr esi, cl
mov ecx, edx
or eax, esi
mov esi, dword [esp + 0xa8]
mov dword [esp + 0xb8], eax
mov eax, esi
shl ebx, cl
mov ecx, dword [esp + 4]
shr eax, cl
mov ecx, edx
shl esi, cl
or ebx, eax
mov dword [esp + 0xa8], esi
mov dword [esp + 0xb4], edi
mov esi, dword [esp]
jmp 0x4c84d7
je 0x4c8504
cmp dword [esp + 0xb0], 0x40
jge 0x4c846e
mov eax, edi
mov ecx, eax
mov edi, edx
mov edx, ebx
shl dword [esp + 0xb8], cl
mov ecx, edi
shr edx, cl
mov ecx, eax
or edx, dword [esp + 0xb8]
shl ebx, cl
mov ecx, edi
mov edi, dword [esp + 0xa8]
mov dword [esp + 0xb4], edx
mov edx, edi
shr edx, cl
mov ecx, eax
or edx, ebx
mov ebx, edi
mov dword [esp + 0xb8], edx
shl ebx, cl
jmp 0x4c84cc
je 0x4c84ed
cmp dword [esp + 0xb0], 0x60
jge 0x4c84a5
mov edx, edi
mov ecx, edx
mov edi, dword [esp + 0xa8]
mov eax, edi
shl ebx, cl
mov ecx, dword [esp + 4]
shr eax, cl
mov ecx, edx
shl edi, cl
or eax, ebx
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], edi
jmp 0x4c84ca
mov eax, dword [esp + 0xa8]
mov edx, eax
mov ecx, edi
shl edx, cl
cmp ecx, 0x60
mov dword [esp + 0xb8], 0
cmove edx, eax
mov dword [esp + 0xb4], edx
xor ebx, ebx
mov dword [esp + 0xa8], 0
mov eax, dword [esp + 0xb0]
neg eax
inc eax
mov dword [esp + 0xb0], eax
jmp 0x4c770d
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xb8], eax
jmp 0x4c84ca
mov eax, dword [esp + 0xb8]
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xb4], eax
mov ebx, dword [esp + 0xa8]
jmp 0x4c84cc
test edi, 0x10
je 0x4c86ef
mov ecx, dword [esp + 4]
cmp ecx, dword [esp]
je 0x4c858d
cmp dword [esp + 4], 0x10
je 0x4c8792
mov ebx, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
mov eax, dword [esp + 0xa4]
mov dword [ebx], eax
mov edx, dword [esi + 4]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 8]
mov dword [ebx + 8], ecx
mov ecx, dword [esi + 0xc]
test ecx, 0x8000
jne 0x4c86d6
mov eax, dword [0x50a9d0]
mov edx, dword [ebp + 8]
movsd xmm0, qword [eax]
divsd xmm0, xmm0
mov dword [edx + 0xc], ecx
movsd qword [esp + 0x10], xmm0
mov ecx, dword [edx + 0xc]
jmp 0x4c86d6
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
not ecx
not esi
and ecx, 0x8000
and esi, 0x8000
shr ecx, 0xf
shr esi, 0xf
mov dword [esp + 0x1c], ecx
or ecx, esi
mov dword [esp + 0x18], esi
je 0x4c85cb
mov ecx, dword [0x50a9d0]
movsd xmm0, qword [ecx]
divsd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [esp + 0x18]
je 0x4c85e5
cmp dword [esp + 0x1c], 0
jne 0x4c86bd
jmp 0x4c867b
cmp eax, edx
jb 0x4c86bd
jne 0x4c8605
mov ecx, dword [esp + 0xb8]
cmp ecx, dword [esp + 0x9c]
jb 0x4c86bd
jmp 0x4c8613
mov ecx, dword [esp + 0xb8]
cmp ecx, dword [esp + 0x9c]
jne 0x4c8638
cmp ebx, dword [esp + 0xa0]
jb 0x4c86bd
jne 0x4c8638
mov ecx, dword [esp + 0xa8]
cmp ecx, dword [esp + 0xa4]
jb 0x4c86bd
cmp edx, eax
jb 0x4c867b
jne 0x4c8650
mov eax, dword [esp + 0x9c]
cmp eax, dword [esp + 0xb8]
jb 0x4c867b
jmp 0x4c865e
mov eax, dword [esp + 0x9c]
cmp eax, dword [esp + 0xb8]
jne 0x4c8696
cmp ebx, dword [esp + 0xa0]
ja 0x4c867b
jne 0x4c8696
mov eax, dword [esp + 0xa8]
cmp eax, dword [esp + 0xa4]
jbe 0x4c8696
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 0x4c86d6
mov eax, dword [ebp + 0xc]
test dword [eax + 0xc], 0x80000000
je 0x4c86bd
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 0x4c86d6
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp + 8]
mov eax, dword [esi]
mov dword [ebx], eax
mov edx, dword [esi + 4]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 8]
mov dword [ebx + 8], ecx
mov ecx, dword [esi + 0xc]
mov eax, dword [ebp + 8]
or ecx, 0x8000
mov dword [eax + 0xc], ecx
add esp, 0xbc
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test edi, 1
je 0x4c8735
mov eax, dword [0x50a9d0]
mov edx, dword [ebp + 8]
movsd xmm0, qword [eax]
divsd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov dword [edx + 0xc], 0xffff8000
add esp, 0xbc
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [esp + 8], 0
je 0x4c8755
mov eax, dword [0x50a9d4]
mov edx, dword [0x50a9d8]
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp + 0x10], xmm0
mov ebx, dword [esp + 0x98]
shr ebx, 0x1b
mov edi, dword [ebp + 8]
mov eax, dword [ebx + 0x502d60]
mov edx, dword [ebx + 0x502d64]
mov ecx, dword [ebx + 0x502d68]
mov esi, dword [ebx + 0x502d6c]
mov dword [edi], eax
mov dword [edi + 4], edx
mov dword [edi + 8], ecx
mov dword [edi + 0xc], esi
add esp, 0xbc
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov eax, dword [esp + 0xa8]
mov dword [ebx], eax
mov edx, dword [esi + 4]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 8]
mov dword [ebx + 8], ecx
mov ecx, dword [esi + 0xc]
jmp 0x4c8560
push ebp
mov ebp, esp
and esp, 0xfffffff8
push esi
push edi
push ebx
sub esp, 0x5c
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov esi, dword [edx + 8]
mov eax, dword [edx + 0xc]
mov ebx, dword [edx]
mov dword [esp + 0x50], esi
mov esi, eax
mov dword [esp + 0x2c], ebx
and esi, 0x7fffffff
mov edi, dword [edx + 4]
mov ebx, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
mov dword [esp + 0x10], eax
xor eax, edx
mov dword [esp + 0x38], ebx
mov ebx, edx
mov dword [esp + 0xc], edx
and ebx, 0x7fffffff
movzx edx, si
and eax, 0x80000000
mov dword [esp + 0x54], edx
mov edx, esi
shr edx, 0x10
mov dword [esp + 0x24], edi
mov edi, dword [ecx]
mov dword [esp + 0x44], eax
movzx eax, bx
mov dword [esp + 0x3c], eax
mov eax, ebx
mov dword [esp + 0x48], edi
lea edi, [edx - 1]
mov ecx, dword [ecx + 4]
shr eax, 0x10
mov dword [esp + 0x4c], ecx
cmp edi, 0x7ffd
ja 0x4c90d4
lea edi, [eax - 1]
cmp edi, 0x7ffd
ja 0x4c90d4
mov ebx, dword [esp + 0x54]
lea ecx, [edx + eax - 0x4000]
mov eax, dword [esp + 0x24]
or ebx, 0x10000
mul dword [esp + 0x48]
mov esi, eax
mov edi, edx
mov eax, dword [esp + 0x2c]
mul dword [esp + 0x4c]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x3c]
or ecx, 0x10000
mov dword [esp + 0x3c], ecx
mov ecx, eax
add ecx, esi
mov dword [esp + 0x54], ebx
mov ebx, edx
mov eax, ecx
adc ebx, edi
sub eax, esi
mov esi, ebx
sbb esi, edi
jae 0x4c88ad
mov esi, 1
jmp 0x4c88af
xor esi, esi
mov eax, dword [esp + 0x24]
mul dword [esp + 0x4c]
mov edi, eax
add edi, ebx
mov eax, dword [esp + 0x48]
adc edx, 0
add edx, esi
mov dword [esp + 4], edx
mul dword [esp + 0x2c]
add edx, ecx
mov dword [esp], edx
sub edx, ecx
mov dword [esp + 8], eax
jae 0x4c88e0
mov edx, 1
jmp 0x4c88e2
xor edx, edx
mov eax, dword [esp + 0x24]
add edi, edx
adc dword [esp + 4], 0
mul dword [esp + 0x38]
mov ecx, eax
mov ebx, edx
mov eax, dword [esp + 0x2c]
mul dword [esp + 0x3c]
mov esi, eax
add esi, ecx
mov eax, esi
adc edx, ebx
sub eax, ecx
mov dword [esp + 0xc], edx
sbb edx, ebx
jae 0x4c8919
mov dword [esp + 0x20], 1
jmp 0x4c891f
xor edx, edx
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x24]
mul dword [esp + 0x3c]
mov ebx, eax
mov ecx, edx
mov eax, dword [esp + 0x2c]
mul dword [esp + 0x38]
add ebx, dword [esp + 0xc]
mov dword [esp + 0x10], eax
adc ecx, 0
add edx, esi
mov eax, edx
add ecx, dword [esp + 0x20]
sub eax, esi
jae 0x4c8951
mov esi, 1
jmp 0x4c8953
xor esi, esi
add ebx, esi
mov esi, dword [esp + 0x10]
adc ecx, 0
add edi, esi
mov eax, dword [esp + 4]
adc eax, edx
mov dword [esp + 0xc], edi
sub edi, esi
mov dword [esp + 4], eax
mov edi, dword [esp + 0xc]
sbb eax, edx
jae 0x4c897d
mov esi, 1
jmp 0x4c897f
xor esi, esi
mov eax, dword [esp + 0x38]
add ebx, esi
adc ecx, 0
mul dword [esp + 0x54]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, dword [esp + 0x3c]
mov esi, edx
mul dword [esp + 0x50]
add eax, ecx
mov dword [esp + 0x2c], eax
adc edx, esi
sub eax, ecx
mov dword [esp + 0x20], edx
mov ecx, dword [esp + 0x10]
sbb edx, esi
jae 0x4c89bc
mov dword [esp + 0x34], 1
jmp 0x4c89c2
xor esi, esi
mov dword [esp + 0x34], esi
mov eax, dword [esp + 0x3c]
mul dword [esp + 0x54]
mov esi, eax
add esi, dword [esp + 0x20]
mov eax, dword [esp + 0x38]
adc edx, 0
add edx, dword [esp + 0x34]
mov dword [esp + 0x10], edx
mul dword [esp + 0x50]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x2c]
add edx, eax
mov dword [esp + 0x30], edx
sub edx, eax
jae 0x4c89fc
mov eax, 1
jmp 0x4c89fe
xor eax, eax
add esi, eax
mov eax, dword [esp + 0x24]
adc dword [esp + 0x10], 0
add ebx, eax
mov edx, dword [esp + 0x30]
adc ecx, edx
mov dword [esp + 0x2c], ebx
sub ebx, eax
mov ebx, ecx
sbb ebx, edx
mov ebx, dword [esp + 0x2c]
jae 0x4c8a28
mov eax, 1
jmp 0x4c8a2a
xor eax, eax
add esi, eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], esi
adc dword [esp + 0x10], 0
mul dword [esp + 0x54]
mov ebx, eax
mov esi, edx
mov eax, dword [esp + 0x4c]
mul dword [esp + 0x50]
add eax, ebx
mov dword [esp + 0x24], eax
adc edx, esi
sub eax, ebx
mov dword [esp + 0x20], edx
mov ebx, dword [esp + 0x2c]
sbb edx, esi
mov esi, dword [esp + 0x30]
jae 0x4c8a71
mov dword [esp + 0x30], 1
jmp 0x4c8a77
xor eax, eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x4c]
mul dword [esp + 0x54]
add eax, dword [esp + 0x20]
mov dword [esp + 0x38], eax
adc edx, 0
add edx, dword [esp + 0x30]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x3c], edx
mul dword [esp + 0x50]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x24]
add edx, eax
mov dword [esp + 0x40], edx
sub edx, eax
jae 0x4c8ab3
mov eax, 1
jmp 0x4c8ab5
xor eax, eax
add dword [esp + 0x38], eax
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x34]
adc dword [esp + 0x3c], 0
add edi, ebx
mov eax, dword [esp + 4]
mov edx, dword [esp + 0x40]
adc eax, edx
mov dword [esp + 0xc], edi
sub edi, ebx
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x2c]
sbb eax, edx
mov edi, dword [esp + 0xc]
jae 0x4c8aef
mov eax, 1
jmp 0x4c8af1
xor eax, eax
mov edx, dword [esp + 0x38]
add edx, eax
mov eax, dword [esp + 0x3c]
adc eax, 0
add ebx, edx
mov dword [esp + 0x2c], ebx
adc ecx, eax
sub ebx, edx
mov ebx, ecx
sbb ebx, eax
mov ebx, dword [esp + 0x2c]
jae 0x4c8b19
mov eax, 1
jmp 0x4c8b1b
xor eax, eax
add esi, eax
mov eax, dword [esp + 0x10]
adc eax, 0
mov edx, eax
mov dword [esp + 0x10], eax
and edx, 2
xor eax, eax
or edx, eax
je 0x4c8b9a
mov edx, esi
mov eax, dword [esp + 0x10]
shr edx, 0x11
shl eax, 0xf
or edx, eax
mov eax, ecx
shl esi, 0xf
shr eax, 0x11
or esi, eax
mov eax, ebx
shr eax, 0x11
shl ecx, 0xf
or eax, ecx
mov ecx, dword [esp + 4]
mov dword [esp + 0x20], edx
shl ebx, 0xf
shr ecx, 0x11
mov edx, dword [esp + 8]
or ebx, ecx
or edx, dword [esp]
je 0x4c8b77
mov dword [esp], 1
jmp 0x4c8b7c
xor edx, edx
mov dword [esp], edx
mov ecx, edi
mov edx, dword [esp + 4]
shr ecx, 0x11
shl edx, 0xf
shl edi, 0xf
or ecx, edx
or edi, dword [esp]
inc dword [esp + 0x28]
mov dword [esp + 0x24], ecx
jmp 0x4c8bfb
mov edx, esi
mov eax, dword [esp + 0x10]
shr edx, 0x10
shl eax, 0x10
or edx, eax
mov eax, ecx
shl esi, 0x10
shr eax, 0x10
or esi, eax
mov eax, ebx
shr eax, 0x10
shl ecx, 0x10
or eax, ecx
mov ecx, dword [esp + 4]
mov dword [esp + 0x20], edx
shl ebx, 0x10
shr ecx, 0x10
mov edx, dword [esp + 8]
or ebx, ecx
or edx, dword [esp]
je 0x4c8bde
mov dword [esp], 1
jmp 0x4c8be3
xor edx, edx
mov dword [esp], edx
mov ecx, edi
mov edx, dword [esp + 4]
shr ecx, 0x10
shl edx, 0x10
shl edi, 0x10
or ecx, edx
or edi, dword [esp]
mov dword [esp + 0x24], ecx
cmp dword [esp + 0x28], 0x7ffd
jae 0x4c8cd0
mov edx, edi
or edx, dword [esp + 0x24]
je 0x4c8fc3
fnstcw word [esp + 0x14]
mov ecx, dword [0x50a9d8]
mov edx, dword [esp + 0x14]
and edx, 0xc00
fld qword [ecx]
mov dword [esp], edx
mov edx, dword [0x50a9dc]
fadd qword [edx]
fstp qword [esp + 0x18]
jne 0x4c8c48
xor edx, edx
mov ecx, dword [esp + 0x24]
sub ecx, edx
jl 0x4c8c96
jmp 0x4c8c6d
cmp dword [esp], 0xc00
je 0x4c8c6d
xor edx, edx
or edx, dword [esp + 0x44]
je 0x4c8c64
cmp dword [esp], 0x400
je 0x4c8c96
jmp 0x4c8c6d
cmp dword [esp], 0x800
je 0x4c8c96
mov edi, dword [ebp + 8]
mov edx, dword [esp + 0x28]
shl edx, 0x10
add edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x44]
or ecx, edx
mov dword [edi], ebx
mov dword [edi + 4], eax
mov dword [edi + 8], esi
mov dword [edi + 0xc], ecx
add esp, 0x5c
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
add ebx, 1
mov edx, ebx
adc eax, 0
or edx, eax
jne 0x4c8caa
add esi, 1
adc dword [esp + 0x20], 0
add edi, edi
mov edx, dword [esp + 0x24]
adc edx, edx
or edi, edx
jne 0x4c8cbd
mov ecx, 1
jmp 0x4c8cbf
xor ecx, ecx
xor edx, edx
cmp dword [esp], 0
sete dl
and edx, ecx
not edx
and ebx, edx
jmp 0x4c8c6d
fnstcw word [esp + 0x14]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x10], edx
and edx, 0xc00
mov dword [esp + 4], edx
jne 0x4c8cf8
xor edx, edx
mov ecx, dword [esp + 0x24]
sub ecx, edx
jl 0x4c906d
jmp 0x4c8d28
cmp dword [esp + 4], 0xc00
je 0x4c8d28
xor edx, edx
or edx, dword [esp + 0x44]
je 0x4c8d1a
cmp dword [esp + 4], 0x400
je 0x4c9061
jmp 0x4c8d28
cmp dword [esp + 4], 0x800
je 0x4c90bc
xor edx, edx
mov dword [esp], edx
cmp dword [esp + 0x28], 0x7ffd
jle 0x4c8db4
mov eax, dword [0x50a9e0]
cmp dword [esp + 4], 0xc00
fld qword [eax]
fmul st(0)
fstp qword [esp + 0x18]
je 0x4c9055
xor eax, eax
mov edx, dword [esp + 0x44]
or edx, eax
je 0x4c8d71
cmp dword [esp + 4], 0x800
je 0x4c9019
mov eax, 1
jmp 0x4c8d81
cmp dword [esp + 4], 0x400
je 0x4c9051
xor eax, eax
shl eax, 4
mov esi, dword [ebp + 8]
mov edx, dword [eax + 0x502d60]
mov ecx, dword [eax + 0x502d64]
mov ebx, dword [eax + 0x502d68]
mov eax, dword [eax + 0x502d6c]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov dword [esi + 8], ebx
mov dword [esi + 0xc], eax
add esp, 0x5c
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
je 0x4c9079
cmp dword [esp + 0x28], 0
jge 0x4c8c09
cmp dword [esp + 0x28], 0xffffffff
jl 0x4c8e10
cmp dword [esp], 0
je 0x4c8e10
mov ecx, esi
mov edx, 0xffffffff
sub ecx, edx
mov dword [esp], 0x1ffff
mov edx, dword [esp + 0x20]
sbb edx, dword [esp]
jb 0x4c8e10
mov edx, esi
mov ecx, 0xffffffff
sub edx, ecx
mov ecx, dword [esp]
neg ecx
add ecx, dword [esp + 0x20]
or edx, ecx
jne 0x4c8e1a
mov ecx, ebx
mov edx, 0xffffffff
sub ecx, edx
mov ecx, eax
sbb ecx, edx
jae 0x4c8e1a
mov dword [esp + 8], 1
jmp 0x4c8e20
xor edx, edx
mov dword [esp + 8], edx
mov edx, dword [esp + 0x28]
neg edx
mov ecx, edx
and ecx, 0x3f
mov dword [esp + 0xc], ecx
mov ecx, edx
neg ecx
and ecx, 0x3f
mov dword [esp + 0x28], edx
cmp edx, 0x40
mov dword [esp + 4], ecx
jge 0x4c8ef2
or edi, dword [esp + 0x24]
je 0x4c8e56
mov dword [esp], 1
jmp 0x4c8e5b
xor edx, edx
mov dword [esp], edx
cmp dword [esp + 4], 0x1f
ja 0x4c8e71
mov edx, eax
mov edi, ebx
shld edx, ebx, cl
mov dword [esp + 0x24], edx
shl edi, cl
jmp 0x4c8e7b
mov edx, ebx
xor edi, edi
shl edx, cl
mov dword [esp + 0x24], edx
or edi, dword [esp]
cmp dword [esp + 4], 0x1f
ja 0x4c8e99
mov edx, dword [esp + 0x20]
shld edx, esi, cl
mov dword [esp + 4], edx
mov edx, esi
shl edx, cl
mov dword [esp], edx
jmp 0x4c8ea8
mov edx, esi
shl edx, cl
mov dword [esp], 0
mov dword [esp + 4], edx
cmp dword [esp + 0xc], 0x1f
ja 0x4c8ebc
mov edx, eax
mov ecx, dword [esp + 0xc]
shrd ebx, eax, cl
shr edx, cl
jmp 0x4c8ec6
mov ebx, eax
xor edx, edx
mov ecx, dword [esp + 0xc]
shr ebx, cl
mov eax, dword [esp + 4]
or ebx, dword [esp]
or eax, edx
cmp dword [esp + 0xc], 0x1f
ja 0x4c8ee1
mov edx, dword [esp + 0x20]
shrd esi, edx, cl
shr edx, cl
jmp 0x4c8ee9
xor edx, edx
mov esi, dword [esp + 0x20]
shr esi, cl
mov dword [esp + 0x20], edx
jmp 0x4c8f72
je 0x4c8ff9
cmp dword [esp + 0x28], 0x80
jge 0x4c8f5f
or eax, dword [esp + 0x24]
or ebx, edi
or ebx, eax
je 0x4c8f13
mov edx, 1
jmp 0x4c8f15
xor edx, edx
cmp dword [esp + 4], 0x1f
ja 0x4c8f2d
mov edi, esi
mov ebx, dword [esp + 0x20]
shld ebx, esi, cl
mov dword [esp + 0x24], ebx
shl edi, cl
jmp 0x4c8f37
mov ebx, esi
xor edi, edi
shl ebx, cl
mov dword [esp + 0x24], ebx
or edi, edx
cmp dword [esp + 0xc], 0x1f
ja 0x4c8f51
mov ebx, esi
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x20]
shrd ebx, eax, cl
shr eax, cl
jmp 0x4c8f6c
mov ecx, dword [esp + 0xc]
xor eax, eax
mov ebx, dword [esp + 0x20]
shr ebx, cl
jmp 0x4c8f6c
xor ebx, ebx
mov edi, 1
mov dword [esp + 0x24], ebx
xor eax, eax
xor esi, esi
mov dword [esp + 0x20], esi
cmp dword [esp + 8], 0
je 0x4c8fee
mov edx, edi
or edx, dword [esp + 0x24]
je 0x4c8f9a
mov edx, dword [0x50a9dc]
xor ecx, ecx
mov dword [esp + 0x28], ecx
fld qword [edx]
fmul st(0)
fstp qword [esp + 0x18]
jmp 0x4c8c15
test byte [esp + 0x10], 0x10
jne 0x4c8fbd
mov edx, dword [0x50a9dc]
xor edi, edi
mov ecx, dword [0x50a9e4]
mov dword [esp + 0x28], edi
fld qword [edx]
fmul qword [ecx]
fstp qword [esp + 0x18]
jmp 0x4c8fc3
xor edx, edx
mov dword [esp + 0x28], edx
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x28]
shl ecx, 0x10
mov dword [edx], ebx
mov ebx, dword [esp + 0x20]
add ebx, ecx
mov edi, dword [esp + 0x44]
or edi, ebx
mov dword [edx + 4], eax
mov dword [edx + 8], esi
mov dword [edx + 0xc], edi
add esp, 0x5c
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
xor edx, edx
mov dword [esp + 0x28], edx
jmp 0x4c8c09
or edi, dword [esp + 0x24]
je 0x4c9006
mov edi, 1
jmp 0x4c9008
xor edi, edi
mov dword [esp + 0x24], eax
or edi, ebx
mov eax, dword [esp + 0x20]
mov ebx, esi
jmp 0x4c8f6c
mov ebx, 1
shl ebx, 4
mov esi, dword [ebp + 8]
mov eax, dword [ebx + 0x502da0]
mov edx, dword [ebx + 0x502da4]
mov ecx, dword [ebx + 0x502da8]
mov ebx, dword [ebx + 0x502dac]
mov dword [esi], eax
mov dword [esi + 4], edx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], ebx
add esp, 0x5c
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
xor ebx, ebx
jmp 0x4c901e
xor eax, eax
mov edx, dword [esp + 0x44]
or edx, eax
jne 0x4c9019
jmp 0x4c9051
mov edx, edi
or edx, dword [esp + 0x24]
je 0x4c8d28
mov dword [esp], 1
jmp 0x4c8d2d
mov ecx, 0x1ffff
mov edx, 0xffffffff
mov dword [esp + 0x2c], ebx
mov ebx, esi
neg ecx
sub ebx, edx
add ecx, dword [esp + 0x20]
or ebx, ecx
mov ebx, dword [esp + 0x2c]
jne 0x4c8c09
mov ecx, ebx
sub ecx, edx
neg edx
add edx, eax
or ecx, edx
jne 0x4c8c09
cmp dword [esp], 0
jne 0x4c8d37
jmp 0x4c8c09
mov edx, edi
or edx, dword [esp + 0x24]
je 0x4c8d28
mov dword [esp], 1
jmp 0x4c8d2d
mov edi, dword [esp + 0x2c]
or edi, dword [esp + 0x24]
je 0x4c90e8
mov dword [esp + 4], 1
jmp 0x4c90ee
xor edi, edi
mov dword [esp + 4], edi
mov edi, dword [esp + 4]
mov ecx, esi
or edi, dword [esp + 0x50]
mov dword [esp + 4], edi
or ecx, edi
jne 0x4c9111
mov dword [esp], 0
mov dword [esp + 8], 1
jmp 0x4c9170
mov edi, 0x10000
mov ecx, esi
sub ecx, edi
jae 0x4c912a
mov edi, 2
mov dword [esp], edi
mov dword [esp + 8], edi
jmp 0x4c9170
mov edi, 0x7fff0000
mov ecx, esi
sub ecx, edi
jae 0x4c9146
mov dword [esp], 0
mov dword [esp + 8], 4
jmp 0x4c9170
xor edi, edi
mov ecx, 0x7fff0000
mov dword [esp], edi
mov edi, esi
sub edi, ecx
jb 0x4c9168
mov ecx, dword [esp + 4]
or ecx, edi
je 0x4c9168
mov dword [esp + 8], 0x10
jmp 0x4c9170
mov dword [esp + 8], 8
mov edi, dword [esp + 0x48]
or edi, dword [esp + 0x4c]
je 0x4c9184
mov dword [esp + 4], 1
jmp 0x4c918a
xor edi, edi
mov dword [esp + 4], edi
mov edi, dword [esp + 4]
mov ecx, ebx
or edi, dword [esp + 0x38]
mov dword [esp + 4], edi
or ecx, edi
jne 0x4c91a3
mov edi, 1
jmp 0x4c91ea
mov edi, 0x10000
mov ecx, ebx
sub ecx, edi
jae 0x4c91be
mov edi, dword [esp]
or edi, 2
mov dword [esp], edi
mov edi, 2
jmp 0x4c91ea
mov ecx, 0x7fff0000
mov edi, ebx
sub edi, ecx
jae 0x4c91d0
mov edi, 4
jmp 0x4c91ea
mov edi, ebx
sub edi, ecx
jb 0x4c91e5
mov ecx, dword [esp + 4]
or ecx, edi
je 0x4c91e5
mov edi, 0x10
jmp 0x4c91ea
mov edi, 8
mov ecx, dword [esp + 8]
or ecx, edi
cmp edx, 0x7fff
je 0x4c9567
cmp eax, 0x7fff
je 0x4c9567
test cl, 1
je 0x4c926b
cmp dword [esp], 0
je 0x4c9225
mov eax, dword [0x50a9d4]
mov edx, dword [0x50a9d8]
fld qword [eax]
fmul qword [edx]
fstp qword [esp + 0x18]
xor eax, eax
mov edx, dword [esp + 0x44]
or edx, eax
je 0x4c9236
mov eax, 1
jmp 0x4c9238
xor eax, eax
shl eax, 4
mov esi, dword [ebp + 8]
mov edx, dword [eax + 0x502d80]
mov ecx, dword [eax + 0x502d84]
mov ebx, dword [eax + 0x502d88]
mov eax, dword [eax + 0x502d8c]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov dword [esi + 8], ebx
mov dword [esi + 0xc], eax
add esp, 0x5c
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp edi, dword [esp + 8]
je 0x4c93ce
mov ebx, dword [0x50a9d4]
mov esi, dword [0x50a9d8]
cmp dword [esp + 8], 2
fld qword [ebx]
fmul qword [esi]
fstp qword [esp + 0x18]
je 0x4c9433
mov ebx, dword [esp + 0x38]
mov esi, ebx
mov eax, dword [esp + 0x3c]
or esi, eax
mov dword [esp], eax
jne 0x4c92b7
mov eax, dword [esp + 0x4c]
mov ebx, dword [esp + 0x48]
mov dword [esp], eax
mov eax, 0x31
jmp 0x4c92bc
mov eax, 0xfffffff1
mov edi, 1
mov ecx, dword [esp]
sub ecx, edi
jae 0x4c92cd
add eax, 0x20
jmp 0x4c92d0
mov ebx, dword [esp]
bsr ebx, ebx
sub eax, ebx
add eax, 0x1f
cmp eax, 0x40
jge 0x4c936a
cmp eax, 0x1f
ja 0x4c92fb
mov ecx, eax
mov ebx, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
shld esi, ebx, cl
mov dword [esp + 0x3c], esi
shl ebx, cl
jmp 0x4c9309
mov ecx, eax
xor ebx, ebx
mov esi, dword [esp + 0x38]
shl esi, cl
mov dword [esp + 0x3c], esi
mov ecx, eax
neg ecx
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4c9328
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x4c]
shrd edi, esi, cl
mov dword [esp + 0x38], edi
shr esi, cl
jmp 0x4c9334
mov edi, dword [esp + 0x4c]
xor esi, esi
shr edi, cl
mov dword [esp + 0x38], edi
or dword [esp + 0x38], ebx
or dword [esp + 0x3c], esi
cmp eax, 0x1f
ja 0x4c9356
mov ecx, eax
mov esi, dword [esp + 0x48]
mov ebx, dword [esp + 0x4c]
shld ebx, esi, cl
mov dword [esp + 0x4c], ebx
shl esi, cl
jmp 0x4c9364
mov ecx, eax
xor esi, esi
mov ebx, dword [esp + 0x48]
shl ebx, cl
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x48], esi
jmp 0x4c93c6
mov ecx, eax
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4c938b
mov ebx, dword [esp + 0x4c]
mov esi, dword [esp + 0x48]
shld ebx, esi, cl
shl esi, cl
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x38], esi
jmp 0x4c939d
mov ebx, dword [esp + 0x48]
shl ebx, cl
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], ebx
cmp eax, 0x40
mov ebx, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
jne 0x4c93ae
mov ebx, dword [esp + 0x48]
jne 0x4c93b4
mov esi, dword [esp + 0x4c]
xor edi, edi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], esi
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], edi
neg eax
inc eax
jmp 0x4c8859
fnstcw word [esp + 0x14]
mov eax, dword [0x50a9dc]
xor ecx, ecx
mov edx, dword [0x50a9d4]
mov ebx, dword [esp + 0x14]
fld qword [eax]
and ebx, 0xc00
fmul qword [edx]
fstp qword [esp + 0x18]
or ecx, dword [esp + 0x44]
je 0x4c9404
xor eax, eax
cmp ebx, 0x400
sete al
jmp 0x4c940f
xor eax, eax
cmp ebx, 0x800
sete al
mov edx, dword [ebp + 8]
mov dword [edx], eax
mov eax, dword [esp + 0x44]
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov dword [edx + 0xc], eax
add esp, 0x5c
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 0x50]
mov esi, ebx
mov edx, dword [esp + 0x54]
or esi, edx
mov dword [esp], edx
jne 0x4c9456
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x2c]
mov dword [esp], edx
mov edx, 0x31
jmp 0x4c945b
mov edx, 0xfffffff1
mov edi, 1
mov ecx, dword [esp]
sub ecx, edi
jae 0x4c946c
add edx, 0x20
jmp 0x4c946f
mov ebx, dword [esp]
bsr ebx, ebx
sub edx, ebx
add edx, 0x1f
cmp edx, 0x40
jge 0x4c9509
cmp edx, 0x1f
ja 0x4c949a
mov ecx, edx
mov ebx, dword [esp + 0x50]
mov esi, dword [esp + 0x54]
shld esi, ebx, cl
mov dword [esp + 0x54], esi
shl ebx, cl
jmp 0x4c94a8
mov ecx, edx
xor ebx, ebx
mov esi, dword [esp + 0x50]
shl esi, cl
mov dword [esp + 0x54], esi
mov ecx, edx
neg ecx
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4c94c7
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x24]
shrd edi, esi, cl
mov dword [esp + 0x50], edi
shr esi, cl
jmp 0x4c94d3
mov edi, dword [esp + 0x24]
xor esi, esi
shr edi, cl
mov dword [esp + 0x50], edi
or dword [esp + 0x50], ebx
or dword [esp + 0x54], esi
cmp edx, 0x1f
ja 0x4c94f5
mov ecx, edx
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x2c]
shld ebx, esi, cl
mov dword [esp + 0x24], ebx
shl esi, cl
jmp 0x4c9503
mov ecx, edx
xor esi, esi
mov ebx, dword [esp + 0x2c]
shl ebx, cl
mov dword [esp + 0x24], ebx
mov dword [esp + 0x2c], esi
jmp 0x4c955f
mov ecx, edx
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4c952a
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x2c]
shld ebx, esi, cl
shl esi, cl
mov dword [esp + 0x54], ebx
mov dword [esp + 0x50], esi
jmp 0x4c953c
mov ebx, dword [esp + 0x2c]
shl ebx, cl
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], ebx
cmp edx, 0x40
mov esi, ebx
jne 0x4c9547
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x2c]
jne 0x4c9551
mov dword [esp + 0x50], ebx
xor edi, edi
mov dword [esp + 0x54], esi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x24], edi
neg edx
inc edx
jmp 0x4c8859
test cl, 0x10
je 0x4c970b
cmp edi, dword [esp + 8]
je 0x4c95e4
cmp dword [esp + 8], 0x10
je 0x4c9598
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp + 0x10]
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
jmp 0x4c95b1
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
mov ecx, ebx
xor edx, edx
and ecx, 0x8000
or ecx, edx
jne 0x4c96f2
mov edx, dword [ebp + 8]
mov dword [edx + 8], eax
mov eax, dword [0x50a9d0]
mov dword [edx + 0xc], ebx
fld qword [eax]
fdiv st(0)
fstp qword [esp + 0x18]
mov eax, dword [edx + 8]
mov ebx, dword [edx + 0xc]
jmp 0x4c96f2
mov edx, dword [esp + 0x10]
xor eax, eax
and edx, 0x8000
or edx, eax
jne 0x4c95fb
mov eax, 1
jmp 0x4c95fd
xor eax, eax
mov ecx, dword [esp + 0xc]
xor edx, edx
and ecx, 0x8000
or ecx, edx
jne 0x4c9614
mov edx, 1
jmp 0x4c9616
xor edx, edx
mov ecx, eax
or ecx, edx
je 0x4c962a
mov ecx, dword [0x50a9d0]
fld qword [ecx]
fdiv st(0)
fstp qword [esp + 0x18]
cmp edx, eax
je 0x4c9638
test eax, eax
jne 0x4c96dc
jmp 0x4c969a
mov eax, dword [esp + 0x50]
mov edx, esi
sub eax, dword [esp + 0x38]
sbb edx, ebx
jb 0x4c96dc
mov edx, dword [esp + 0x50]
mov eax, esi
sub edx, dword [esp + 0x38]
sub eax, ebx
or edx, eax
jne 0x4c966c
mov eax, dword [esp + 0x2c]
sub eax, dword [esp + 0x48]
mov edx, dword [esp + 0x24]
sbb edx, dword [esp + 0x4c]
jb 0x4c96dc
mov eax, dword [esp + 0x38]
mov edx, ebx
sub eax, dword [esp + 0x50]
sbb edx, esi
jb 0x4c969a
mov eax, dword [esp + 0x38]
sub ebx, esi
sub eax, dword [esp + 0x50]
or eax, ebx
jne 0x4c96b2
mov eax, dword [esp + 0x48]
sub eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x4c]
sbb edx, dword [esp + 0x24]
jae 0x4c96b2
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 0x4c96f2
mov eax, dword [ebp + 0xc]
xor edx, edx
mov ecx, dword [eax + 0xc]
and ecx, 0x80000000
or ecx, edx
je 0x4c96dc
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 0x4c96f2
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
mov edx, dword [ebp + 8]
or ebx, 0x8000
mov dword [edx + 8], eax
mov dword [edx + 0xc], ebx
add esp, 0x5c
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test cl, 1
je 0x4c974d
mov eax, dword [0x50a9d0]
mov edi, dword [ebp + 8]
mov edx, dword [0x502d20]
fld qword [eax]
fdiv st(0)
mov ecx, dword [0x502d24]
mov ebx, dword [0x502d28]
mov esi, dword [0x502d2c]
fstp qword [esp + 0x18]
mov dword [edi], edx
mov dword [edi + 4], ecx
mov dword [edi + 8], ebx
mov dword [edi + 0xc], esi
add esp, 0x5c
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [esp], 0
je 0x4c9766
mov eax, dword [0x50a9d4]
mov edx, dword [0x50a9d8]
fld qword [eax]
fmul qword [edx]
fstp qword [esp + 0x18]
xor eax, eax
mov edx, dword [esp + 0x44]
or edx, eax
je 0x4c9777
mov eax, 1
jmp 0x4c9779
xor eax, eax
shl eax, 4
mov esi, dword [ebp + 8]
mov edx, dword [eax + 0x502d60]
mov ecx, dword [eax + 0x502d64]
mov ebx, dword [eax + 0x502d68]
mov eax, dword [eax + 0x502d6c]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov dword [esi + 8], ebx
mov dword [esi + 0xc], eax
add esp, 0x5c
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test dword [0x515ad4], 0xfffffe00
jne 0x4c7650
test dword [0x515ad4], 0xffffffff
jne 0x4c87c0
call fcn.004c42e0
jmp fcn.004c97b0