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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push edi
push esi
push ebx
sub esp, 0xa4
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp + 0x10]
mov eax, dword [edx + 0xc]
mov edi, dword [esi + 0xc]
mov ecx, eax
mov dword [esp + 0x2c], eax
and ecx, 0x7fffffff
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], edi
mov ebx, edi
xor eax, edi
and ebx, 0x7fffffff
mov dword [esp + 0x10], ebx
mov ebx, dword [edx + 8]
mov dword [esp + 0xc], ebx
mov ebx, dword [edx + 4]
mov edx, dword [edx]
mov dword [esp + 0x44], ebx
mov ebx, ecx
mov dword [esp + 0x48], edx
mov edx, dword [esi + 8]
and eax, 0x80000000
shr ebx, 0x10
mov dword [esp + 0x98], edx
mov edx, dword [esi + 4]
mov esi, dword [esi]
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], esi
mov dword [esp + 0x74], eax
movzx edx, cx
mov eax, dword [esp + 0x10]
movzx esi, ax
shr eax, 0x10
mov dword [esp + 8], eax
lea eax, [ebx - 1]
cmp eax, 0x7ffd
mov eax, dword [esp + 0xc]
ja 0x4b638c
mov edi, dword [esp + 8]
lea edi, [edi - 1]
cmp edi, 0x7ffd
ja 0x4b638c
mov dword [esp + 0x58], eax
sub ebx, dword [esp + 8]
or edx, 0x10000
lea edi, [ebx + 0x3ffd]
mov dword [esp + 0x70], edi
or esi, 0x10000
cmp edx, esi
je 0x4b6113
cmp esi, edx
jb 0x4b5220
jne 0x4b526d
cmp eax, dword [esp + 0x98]
ja 0x4b5220
jne 0x4b526d
mov edi, dword [esp + 0x44]
cmp edi, dword [esp + 0x90]
ja 0x4b5220
cmp edi, dword [esp + 0x90]
jne 0x4b526d
mov edi, dword [esp + 0x48]
cmp edi, dword [esp + 0x94]
jbe 0x4b526d
shl edx, 0xe
mov edi, eax
shr edi, 0x12
or edx, edi
mov edi, dword [esp + 0x44]
mov dword [esp + 0x5c], edx
shl eax, 0xe
mov ecx, edi
shr ecx, 0x12
or eax, ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0xc], eax
mov dword [esp + 0x58], eax
shl edi, 0xe
mov eax, ecx
shr eax, 0x12
or edi, eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x44], edi
shl ecx, 0xe
lea ebx, [ebx + 0x3ffe]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x70], ebx
jmp 0x4b52a6
mov ecx, dword [esp + 0x44]
shl edx, 0xf
mov ebx, eax
shr ebx, 0x11
or edx, ebx
shl eax, 0xf
mov dword [esp + 0x5c], edx
mov edi, ecx
shr edi, 0x11
or eax, edi
mov edi, dword [esp + 0x48]
mov dword [esp + 0x58], eax
shl ecx, 0xf
mov ebx, edi
shr ebx, 0x11
or ecx, ebx
mov dword [esp + 0x44], ecx
shl edi, 0xf
mov dword [esp + 0x48], edi
mov ebx, dword [esp + 0x98]
mov ecx, dword [esp + 0x90]
shl esi, 0xf
mov edi, ebx
shr edi, 0x11
or esi, edi
mov dword [esp + 0x60], esi
shl ebx, 0xf
mov edi, ecx
shr edi, 0x11
or ebx, edi
mov edi, dword [esp + 0x94]
mov dword [esp + 0x98], ebx
shl ecx, 0xf
mov ebx, edi
shr ebx, 0x11
or ecx, ebx
mov dword [esp + 0x90], ecx
shl edi, 0xf
mov dword [esp + 0x94], edi
cmp esi, edx
jb 0x4b5304
jne 0x4b532d
cmp eax, dword [esp + 0x98]
jb 0x4b532d
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 4], edx
mov dword [esp + 0x80], ecx
mov edi, 0xffffffff
mov dword [esp + 0x64], edi
mov dword [esp + 0x78], edi
mov edi, dword [esp + 0x60]
jmp 0x4b5437
cmp esi, edx
ja 0x4b533b
mov dword [esp + 0x78], 0xffffffff
jmp 0x4b534b
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
div dword [esp + 0x60]
mov dword [esp + 0x78], eax
mov esi, dword [esp + 0x78]
mov eax, dword [esp + 0x98]
mov edi, dword [esp + 0x60]
mul esi
mov dword [esp], esi
mov ebx, eax
mov ecx, edx
mov eax, edi
mul esi
neg ebx
add ecx, eax
adc edx, 0
mov esi, dword [esp + 0x44]
add ebx, esi
xor eax, eax
cmp esi, ebx
mov esi, dword [esp + 0x58]
mov dword [esp + 4], esi
adc eax, 0
neg ecx
add ecx, esi
sub ecx, eax
cmp ecx, esi
ja 0x4b5397
test eax, eax
je 0x4b539e
cmp ecx, dword [esp + 4]
jne 0x4b539e
mov eax, 1
jmp 0x4b53a0
xor eax, eax
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x80], esi
neg edx
add edx, esi
sub edx, eax
js 0x4b53bd
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], ebx
jmp 0x4b5402
mov esi, dword [esp]
mov eax, dword [esp + 0x98]
dec esi
add ebx, eax
cmp ebx, eax
mov eax, 0
adc eax, 0
add ecx, edi
add ecx, eax
cmp ecx, edi
jb 0x4b53e4
test eax, eax
je 0x4b53eb
cmp ecx, edi
jne 0x4b53eb
mov eax, 1
jmp 0x4b53ed
xor eax, eax
add edx, eax
js 0x4b53c0
mov dword [esp], esi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], ebx
mov ebx, esi
mov dword [esp + 0x78], ebx
cmp edi, ecx
ja 0x4b5410
mov dword [esp + 0x64], 0xffffffff
jmp 0x4b5437
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
div dword [esp + 0x60]
mov dword [esp + 0x64], eax
mov edi, dword [esp + 0x60]
mov edx, dword [esp + 0x58]
mov dword [esp + 4], edx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x80], ecx
mov ebx, dword [esp + 0x64]
mov ecx, dword [esp + 0x94]
mov esi, dword [esp + 0x78]
mov dword [esp + 0x84], edi
mov eax, ecx
mul ebx
mov dword [esp + 0x88], ebx
mov dword [esp + 0x7c], esi
mov dword [esp + 0xa0], eax
mov eax, esi
mov dword [esp + 0x9c], edx
mul ecx
mov ecx, dword [esp + 0x90]
mov dword [esp], eax
mov eax, ebx
mov dword [esp + 8], edx
mul ecx
mov dword [esp + 0xc], eax
mov eax, esi
mov dword [esp + 0x10], edx
mul ecx
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x28], edx
mov eax, ecx
mul ebx
mov dword [esp + 0x2c], eax
mov eax, ecx
mov dword [esp + 0x30], edx
mul esi
mov dword [esp + 0x34], edx
mov ecx, eax
mov eax, edi
mul ebx
xor ebx, ebx
mov dword [esp + 0x38], eax
mov eax, esi
mov dword [esp + 0x3c], edx
mul edi
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x40], edx
xor esi, esi
mov edx, dword [esp + 0x9c]
add edx, dword [esp]
adc ebx, 0
add edx, dword [esp + 0xc]
adc ebx, 0
add ebx, dword [esp + 8]
adc esi, 0
add ebx, dword [esp + 0x10]
adc esi, 0
add edi, dword [esp + 0x2c]
mov dword [esp + 0x9c], edx
mov edx, 0
adc edx, 0
add ebx, edi
adc esi, edx
xor edi, edi
add esi, dword [esp + 0x28]
adc edi, 0
add esi, dword [esp + 0x30]
adc edi, 0
xor edx, edx
add ecx, dword [esp + 0x38]
adc edx, 0
add esi, ecx
adc edi, edx
mov edx, dword [esp + 0x34]
xor ecx, ecx
add edx, dword [esp + 0x3c]
adc ecx, 0
add eax, edi
mov edi, dword [esp + 0x40]
adc edi, 0
add edx, eax
adc ecx, edi
mov edi, dword [esp + 0xa0]
mov eax, 1
test edi, edi
cmove eax, edi
neg edi
mov dword [esp + 0xa0], edi
mov edi, dword [esp + 0x9c]
add edi, eax
neg edi
mov dword [esp + 0x9c], edi
mov edi, dword [esp + 0x84]
jne 0x4b5580
test eax, eax
je 0x4b558a
cmp dword [esp + 0x9c], 0
jne 0x4b558a
mov eax, 1
mov dword [esp], eax
jmp 0x4b5591
mov dword [esp], 0
mov eax, dword [esp + 0x48]
neg ebx
add ebx, eax
sub ebx, dword [esp]
cmp ebx, eax
ja 0x4b55ac
cmp dword [esp], 0
je 0x4b55b6
cmp ebx, dword [esp + 0x48]
jne 0x4b55b6
mov eax, 1
mov dword [esp], eax
jmp 0x4b55bd
mov dword [esp], 0
mov eax, dword [esp + 0x44]
neg esi
add esi, eax
sub esi, dword [esp]
cmp esi, eax
ja 0x4b55d8
cmp dword [esp], 0
je 0x4b55e2
cmp esi, dword [esp + 0x44]
jne 0x4b55e2
mov eax, 1
mov dword [esp], eax
jmp 0x4b55e9
mov dword [esp], 0
mov eax, dword [esp + 4]
neg edx
add edx, eax
sub edx, dword [esp]
cmp edx, eax
ja 0x4b5604
cmp dword [esp], 0
je 0x4b560e
cmp edx, dword [esp + 4]
jne 0x4b560e
mov eax, 1
mov dword [esp], eax
jmp 0x4b5615
mov dword [esp], 0
mov eax, dword [esp + 0x80]
sub eax, ecx
sub eax, dword [esp]
mov dword [esp + 0x80], eax
jns 0x4b5731
mov dword [esp + 0x84], edi
mov ecx, dword [esp + 0x88]
dec ecx
mov dword [esp + 0x88], ecx
cmp ecx, 0xffffffff
jne 0x4b5656
mov ecx, dword [esp + 0x7c]
dec ecx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0xa0]
add eax, ecx
xor edi, edi
cmp eax, ecx
mov ecx, dword [esp + 0x90]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x9c]
adc edi, 0
mov dword [esp], edi
add eax, ecx
add eax, edi
mov dword [esp + 0x9c], eax
cmp eax, ecx
mov eax, dword [esp + 0x80]
jb 0x4b56b8
cmp dword [esp], 0
je 0x4b56bf
mov ecx, dword [esp + 0x9c]
cmp ecx, dword [esp + 0x90]
jne 0x4b56bf
mov ecx, 1
jmp 0x4b56c1
xor ecx, ecx
mov edi, dword [esp + 0x98]
add ebx, edi
add ebx, ecx
cmp ebx, edi
jb 0x4b56dd
test ecx, ecx
je 0x4b56e4
cmp ebx, dword [esp + 0x98]
jne 0x4b56e4
mov ecx, 1
jmp 0x4b56e6
xor ecx, ecx
mov edi, dword [esp + 0x84]
add esi, edi
add esi, ecx
cmp esi, edi
jb 0x4b5702
test ecx, ecx
je 0x4b5709
cmp esi, dword [esp + 0x84]
jne 0x4b5709
mov ecx, 1
jmp 0x4b570b
xor ecx, ecx
add edx, ecx
test ecx, ecx
je 0x4b571c
test edx, edx
jne 0x4b571c
mov ecx, 1
jmp 0x4b571e
xor ecx, ecx
add eax, ecx
js 0x4b5635
mov edx, dword [esp + 0x88]
mov dword [esp + 0x64], edx
mov dword [esp + 0x5c], esi
cmp edi, esi
mov dword [esp + 0x58], ebx
ja 0x4b5747
mov dword [esp + 0x68], 0xffffffff
jmp 0x4b575b
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
div dword [esp + 0x60]
mov dword [esp + 0x68], eax
mov edi, dword [esp + 0x60]
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x98]
mul ecx
mov ebx, eax
mov eax, edi
mov esi, edx
mul ecx
neg ebx
add esi, eax
adc edx, 0
mov eax, dword [esp + 0x9c]
add ebx, eax
cmp eax, ebx
mov eax, dword [esp + 0x58]
mov dword [esp + 8], ebx
mov dword [esp], eax
mov ebx, 0
adc ebx, 0
mov dword [esp + 4], ebx
neg esi
add esi, eax
sub esi, ebx
cmp esi, eax
mov eax, dword [esp + 8]
ja 0x4b57b3
cmp dword [esp + 4], 0
je 0x4b57bd
cmp esi, dword [esp]
jne 0x4b57bd
mov ebx, 1
mov dword [esp], ebx
jmp 0x4b57c4
mov dword [esp], 0
mov ebx, dword [esp + 0x5c]
sub ebx, edx
sub ebx, dword [esp]
js 0x4b57d9
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], eax
jmp 0x4b5816
mov edx, dword [esp + 0x98]
dec ecx
add eax, edx
cmp eax, edx
mov edx, 0
adc edx, 0
add esi, edi
add esi, edx
cmp esi, edi
jb 0x4b57fd
test edx, edx
je 0x4b5804
cmp esi, edi
jne 0x4b5804
mov edx, 1
jmp 0x4b5806
xor edx, edx
add ebx, edx
js 0x4b57d9
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], eax
mov dword [esp + 0x68], ecx
cmp edi, esi
ja 0x4b5824
mov dword [esp + 0x6c], 0xffffffff
jmp 0x4b5834
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x50]
div dword [esp + 0x60]
mov dword [esp + 0x6c], eax
mov ecx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x68]
mov edx, ecx
and edx, 0x3fff
cmp edx, 4
ja 0x4b5b71
mov edi, dword [esp + 0x94]
mov dword [esp + 0x8c], ebx
mov eax, edi
mul ecx
mov dword [esp + 0x84], ecx
mov esi, edx
mov dword [esp + 0x7c], eax
mov eax, edi
mul ebx
mov edi, dword [esp + 0x90]
mov dword [esp + 4], eax
mov eax, edi
mov dword [esp + 8], edx
mul ecx
mov dword [esp + 0xc], eax
mov eax, edi
mov edi, dword [esp + 0x98]
mov dword [esp + 0x10], edx
mul ebx
mov dword [esp + 0x1c], eax
mov eax, edi
mov dword [esp + 0x28], edx
mul ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edx
mov eax, edi
mul ebx
mov edi, dword [esp + 0x60]
mov dword [esp + 0x88], edi
mov dword [esp + 0x34], eax
mov eax, ecx
xor ecx, ecx
mov dword [esp + 0x38], edx
mul edi
mov dword [esp + 0x3c], eax
mov eax, ebx
mov dword [esp + 0x40], edx
mul edi
xor edi, edi
add esi, dword [esp + 4]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], edx
adc edi, 0
add esi, dword [esp + 0xc]
mov edx, dword [esp + 0x1c]
adc edi, 0
add edi, dword [esp + 8]
mov dword [esp + 0x80], esi
mov esi, 0
adc esi, 0
add edi, dword [esp + 0x10]
adc esi, 0
add edx, dword [esp + 0x2c]
adc ecx, 0
add edi, edx
adc esi, ecx
mov edx, dword [esp + 0x34]
xor eax, eax
xor ebx, ebx
add esi, dword [esp + 0x28]
adc eax, 0
add esi, dword [esp + 0x30]
adc eax, 0
add edx, dword [esp + 0x3c]
adc ebx, 0
add esi, edx
adc eax, ebx
mov edx, dword [esp + 0x38]
xor ebx, ebx
add edx, dword [esp + 0x40]
adc ebx, 0
mov ecx, dword [esp + 0x44]
add ecx, eax
mov eax, dword [esp + 0x48]
adc eax, 0
add edx, ecx
adc ebx, eax
mov ecx, dword [esp + 0x7c]
mov dword [esp], ebx
mov ebx, dword [esp + 0x80]
mov eax, 1
test ecx, ecx
cmove eax, ecx
neg ecx
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x84]
add ebx, eax
neg ebx
mov dword [esp + 0x80], ebx
mov ebx, dword [esp + 0x8c]
jne 0x4b599a
test eax, eax
je 0x4b59a5
cmp dword [esp + 0x80], 0
jne 0x4b59a5
mov eax, 1
mov dword [esp + 4], eax
jmp 0x4b59ad
mov dword [esp + 4], 0
mov eax, dword [esp + 0xa0]
neg edi
add edi, eax
sub edi, dword [esp + 4]
cmp edi, eax
ja 0x4b59d0
cmp dword [esp + 4], 0
je 0x4b59db
cmp edi, dword [esp + 0xa0]
jne 0x4b59db
mov eax, 1
mov dword [esp + 4], eax
jmp 0x4b59e3
mov dword [esp + 4], 0
mov eax, dword [esp + 0x9c]
neg esi
add esi, eax
sub esi, dword [esp + 4]
cmp esi, eax
ja 0x4b5a06
cmp dword [esp + 4], 0
je 0x4b5a11
cmp esi, dword [esp + 0x9c]
jne 0x4b5a11
mov eax, 1
mov dword [esp + 8], eax
jmp 0x4b5a19
mov dword [esp + 8], 0
mov eax, dword [esp + 0x58]
mov dword [esp + 4], eax
neg edx
add edx, eax
sub edx, dword [esp + 8]
cmp edx, eax
ja 0x4b5a3a
cmp dword [esp + 8], 0
je 0x4b5a45
cmp edx, dword [esp + 4]
jne 0x4b5a45
mov eax, 1
mov dword [esp + 4], eax
jmp 0x4b5a4d
mov dword [esp + 4], 0
mov eax, dword [esp + 0x5c]
sub eax, dword [esp]
sub eax, dword [esp + 4]
jns 0x4b5b54
mov dword [esp], eax
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x84]
dec ecx
mov dword [esp + 0x84], ecx
lea eax, [ebx - 1]
cmp ecx, 0xffffffff
cmove ebx, eax
mov eax, dword [esp + 0x94]
xor ecx, ecx
mov dword [esp + 0x8c], ebx
mov ebx, dword [esp + 0x7c]
add ebx, eax
mov dword [esp + 0x7c], ebx
cmp ebx, eax
adc ecx, 0
mov ebx, dword [esp + 0x90]
mov eax, dword [esp + 0x80]
mov dword [esp + 4], ecx
add eax, ebx
add eax, ecx
mov dword [esp + 0x80], eax
cmp eax, ebx
mov ebx, dword [esp + 0x8c]
jb 0x4b5ad9
cmp dword [esp + 4], 0
je 0x4b5ae0
mov ecx, eax
cmp ecx, dword [esp + 0x90]
jne 0x4b5ae0
mov ecx, 1
jmp 0x4b5ae2
xor ecx, ecx
mov eax, dword [esp + 0x98]
add edi, eax
add edi, ecx
cmp edi, eax
jb 0x4b5afe
test ecx, ecx
je 0x4b5b05
cmp edi, dword [esp + 0x98]
jne 0x4b5b05
mov ecx, 1
jmp 0x4b5b07
xor ecx, ecx
mov eax, dword [esp + 0x88]
add esi, eax
add esi, ecx
cmp esi, eax
jb 0x4b5b23
test ecx, ecx
je 0x4b5b2a
cmp esi, dword [esp + 0x88]
jne 0x4b5b2a
mov ecx, 1
jmp 0x4b5b2c
xor ecx, ecx
add edx, ecx
test ecx, ecx
je 0x4b5b3d
test edx, edx
jne 0x4b5b3d
mov ecx, 1
jmp 0x4b5b3f
xor ecx, ecx
mov eax, dword [esp]
add eax, ecx
mov dword [esp], eax
js 0x4b5a68
mov ecx, dword [esp + 0x84]
or eax, edx
or eax, esi
or eax, edi
xor esi, esi
mov edx, 1
or eax, dword [esp + 0x80]
or eax, dword [esp + 0x7c]
cmovne esi, edx
or ecx, esi
mov edi, dword [esp + 0x64]
mov edx, ecx
shl edx, 0x11
mov esi, ebx
shl esi, 0x11
shr ecx, 0xf
or esi, ecx
mov dword [esp + 0x6c], esi
mov ecx, edi
shl ecx, 0x11
shr ebx, 0xf
or ecx, ebx
mov ebx, dword [esp + 0x78]
mov dword [esp + 0x68], ecx
mov eax, ebx
shl eax, 0x11
shr edi, 0xf
or eax, edi
mov dword [esp + 0x64], eax
shr ebx, 0xf
cmp dword [esp + 0x70], 0x7ffd
mov dword [esp + 0x78], ebx
jae 0x4b5cea
test edx, edx
je 0x4b5cb0
fnstcw word [esp + 0x54]
mov edi, dword [esp + 0x54]
mov eax, dword [0x4eff00]
mov ecx, dword [0x4eff08]
movsd xmm0, qword [eax]
addsd xmm0, qword [ecx]
movsd qword [esp + 0x20], xmm0
and edi, 0xc00
jne 0x4b5bf4
test edx, edx
jl 0x4b5c4f
jmp 0x4b5c15
cmp edi, 0xc00
je 0x4b5c15
cmp dword [esp + 0x74], 0
je 0x4b5c0d
cmp edi, 0x400
je 0x4b5c4f
jmp 0x4b5c15
cmp edi, 0x800
je 0x4b5c4f
mov esi, dword [esp + 0x78]
mov ebx, dword [esp + 0x64]
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
mov edx, dword [ebp + 8]
mov dword [edx], ecx
mov ecx, dword [esp + 0x74]
mov dword [edx + 4], eax
mov eax, dword [esp + 0x70]
mov dword [edx + 8], ebx
shl eax, 0x10
add eax, esi
or ecx, eax
mov dword [edx + 0xc], ecx
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x6c]
inc ecx
jne 0x4b5c7a
mov eax, dword [esp + 0x68]
inc eax
jne 0x4b5c70
mov ebx, dword [esp + 0x64]
mov esi, dword [esp + 0x78]
inc ebx
inc esi
test ebx, ebx
cmovne esi, dword [esp + 0x78]
jmp 0x4b5c86
mov esi, dword [esp + 0x78]
mov ebx, dword [esp + 0x64]
jmp 0x4b5c86
mov esi, dword [esp + 0x78]
mov ebx, dword [esp + 0x64]
mov eax, dword [esp + 0x68]
mov dword [esp], eax
mov eax, 1
test edi, edi
mov edi, 0
cmove edi, eax
add edx, edx
mov edx, 0
cmove edx, eax
mov eax, dword [esp]
and edi, edx
not edi
and ecx, edi
jmp 0x4b5c25
mov eax, dword [esp + 0x78]
mov esi, dword [esp + 0x64]
mov ebx, dword [esp + 0x68]
mov edi, dword [esp + 0x6c]
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x70]
mov dword [edx], edi
mov dword [edx + 4], ebx
mov ebx, dword [esp + 0x74]
mov dword [edx + 8], esi
shl ecx, 0x10
add eax, ecx
or ebx, eax
mov dword [edx + 0xc], ebx
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
fnstcw word [esp + 0x54]
mov eax, dword [esp + 0x54]
mov dword [esp + 0x10], eax
and eax, 0xc00
jne 0x4b5d04
mov ecx, edx
shr ecx, 0x1f
jmp 0x4b5d2c
cmp eax, 0xc00
je 0x4b5d2a
cmp dword [esp + 0x74], 0
je 0x4b5d1f
cmp eax, 0x400
je 0x4b60b3
jmp 0x4b5d2a
cmp eax, 0x800
je 0x4b6101
xor ecx, ecx
cmp dword [esp + 0x70], 0x7ffd
jle 0x4b5db1
mov edx, dword [0x4eff04]
movsd xmm0, qword [edx]
mulsd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
cmp eax, 0xc00
je 0x4b6084
cmp dword [esp + 0x74], 0
je 0x4b5d69
cmp eax, 0x800
je 0x4b6084
jmp 0x4b5d74
cmp eax, 0x400
je 0x4b6084
mov esi, dword [esp + 0x74]
mov ebx, dword [ebp + 8]
shr esi, 0x1b
mov eax, dword [esi + 0x4e90f0]
mov dword [ebx], eax
mov edx, dword [esi + 0x4e90f4]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 0x4e90f8]
mov dword [ebx + 8], ecx
mov edx, dword [esi + 0x4e90fc]
mov eax, dword [ebp + 8]
mov dword [eax + 0xc], edx
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x70], 0x7ffd
je 0x4b60c5
cmp dword [esp + 0x70], 0
jge 0x4b5bbd
cmp dword [esp + 0x70], 0xffffffff
jge 0x4b5dd7
mov ebx, dword [esp + 0x6c]
jmp 0x4b5e14
test ecx, ecx
jne 0x4b5de1
mov ebx, dword [esp + 0x6c]
jmp 0x4b5e14
cmp dword [esp + 0x78], 0x1ffff
jae 0x4b5df1
mov ebx, dword [esp + 0x6c]
jmp 0x4b5e14
jne 0x4b5e1f
cmp dword [esp + 0x64], 0xffffffff
jae 0x4b5e00
mov ebx, dword [esp + 0x6c]
jmp 0x4b5e14
jne 0x4b5e1f
cmp dword [esp + 0x68], 0xffffffff
mov ebx, dword [esp + 0x6c]
jb 0x4b5e14
jne 0x4b5e23
cmp ebx, 0xffffffff
jae 0x4b5e23
mov eax, 1
mov dword [esp + 8], eax
jmp 0x4b5e2b
mov ebx, dword [esp + 0x6c]
mov dword [esp + 8], 0
mov ecx, dword [esp + 0x70]
neg ecx
mov dword [esp + 0x70], ecx
mov eax, ecx
neg eax
cmp ecx, 0x20
mov dword [esp + 0xc], eax
jge 0x4b5e9f
mov ecx, eax
mov eax, ebx
shl eax, cl
mov esi, 1
test edx, edx
cmovne edx, esi
or edx, eax
mov eax, dword [esp + 0x68]
mov dword [esp], edx
mov edx, dword [esp + 0x70]
mov edi, eax
shl edi, cl
mov ecx, edx
shr ebx, cl
mov ecx, dword [esp + 0xc]
or edi, ebx
mov dword [esp + 4], edi
mov edi, dword [esp + 0x64]
mov ebx, edi
shl ebx, cl
mov ecx, edx
shr eax, cl
mov ecx, dword [esp + 0xc]
or ebx, eax
mov eax, dword [esp + 0x78]
mov esi, eax
shl esi, cl
mov ecx, edx
shr edi, cl
shr eax, cl
or esi, edi
mov edx, dword [esp]
mov edi, dword [esp + 4]
jmp 0x4b5f80
je 0x4b6067
cmp dword [esp + 0x70], 0x40
jge 0x4b5ef4
mov esi, dword [esp + 0x68]
mov ecx, eax
mov edi, esi
shl edi, cl
xor eax, eax
or edx, ebx
mov ebx, 1
cmovne eax, ebx
or eax, edi
mov edx, dword [esp + 0x64]
mov dword [esp], eax
mov edi, edx
shl edi, cl
mov ecx, dword [esp + 0x70]
shr esi, cl
mov ecx, dword [esp + 0xc]
or edi, esi
mov esi, dword [esp + 0x78]
mov ebx, esi
shl ebx, cl
mov ecx, dword [esp + 0x70]
shr edx, cl
shr esi, cl
or ebx, edx
mov edx, eax
jmp 0x4b5f7e
je 0x4b6047
cmp dword [esp + 0x70], 0x60
jge 0x4b5f36
or ebx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
mov edi, eax
or ebx, edx
mov ecx, dword [esp + 0xc]
mov edx, 0
mov ebx, 1
cmovne edx, ebx
shl edi, cl
mov ebx, dword [esp + 0x78]
or edx, edi
mov edi, ebx
shl edi, cl
mov ecx, dword [esp + 0x70]
shr eax, cl
shr ebx, cl
or edi, eax
jmp 0x4b5f7c
je 0x4b6027
cmp dword [esp + 0x70], 0x80
jge 0x4b5f73
mov edi, dword [esp + 0x78]
mov ecx, eax
mov esi, dword [esp + 0x64]
or esi, dword [esp + 0x68]
mov eax, edi
shl eax, cl
mov ecx, dword [esp + 0x70]
shr edi, cl
or esi, ebx
mov ebx, 1
or esi, edx
mov edx, 0
cmovne edx, ebx
or edx, eax
jmp 0x4b5f7a
xor edi, edi
mov edx, 1
xor ebx, ebx
xor esi, esi
xor eax, eax
cmp dword [esp + 8], 0
je 0x4b600a
test edx, edx
je 0x4b5fbf
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], edi
mov dword [esp + 0x68], ebx
mov dword [esp + 0x64], esi
mov dword [esp + 0x78], eax
mov eax, dword [0x4eff08]
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
jmp 0x4b5bc5
test byte [esp + 0x10], 0x10
jne 0x4b5ffd
mov edx, dword [0x4eff08]
mov ecx, dword [0x4eff0c]
movsd xmm0, qword [edx]
mulsd xmm0, qword [ecx]
movsd qword [esp + 0x20], xmm0
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], edi
mov dword [esp + 0x68], ebx
mov dword [esp + 0x64], esi
mov dword [esp + 0x78], eax
jmp 0x4b5cc0
mov dword [esp + 0x70], 0
jmp 0x4b5cc0
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], edi
mov dword [esp + 0x68], ebx
mov dword [esp + 0x64], esi
mov dword [esp + 0x78], eax
jmp 0x4b5bbd
or ebx, dword [esp + 0x68]
mov edi, dword [esp + 0x78]
mov eax, 1
or ebx, edx
mov edx, 0
cmovne edx, eax
or edx, dword [esp + 0x64]
jmp 0x4b5f7a
mov edi, dword [esp + 0x64]
mov eax, 1
or edx, ebx
mov ebx, dword [esp + 0x78]
mov edx, 0
cmovne edx, eax
or edx, dword [esp + 0x68]
jmp 0x4b5f7c
mov edi, dword [esp + 0x68]
mov esi, dword [esp + 0x78]
mov eax, 1
test edx, edx
cmovne edx, eax
or edx, ebx
mov ebx, dword [esp + 0x64]
jmp 0x4b5f7e
mov esi, dword [esp + 0x74]
mov ebx, dword [ebp + 8]
shr esi, 0x1b
mov eax, dword [esi + 0x4e9130]
mov dword [ebx], eax
mov edx, dword [esi + 0x4e9134]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 0x4e9138]
mov dword [ebx + 8], ecx
mov edx, dword [esi + 0x4e913c]
jmp 0x4b5d9e
test edx, edx
je 0x4b5d2a
mov ecx, 1
jmp 0x4b5d2c
cmp dword [esp + 0x78], 0x1ffff
jne 0x4b5bbd
cmp dword [esp + 0x64], 0xffffffff
jne 0x4b5bbd
cmp dword [esp + 0x68], 0xffffffff
jne 0x4b5bbd
cmp dword [esp + 0x6c], 0xffffffff
jne 0x4b5bbd
test ecx, ecx
jne 0x4b5d36
jmp 0x4b5bbd
test edx, edx
je 0x4b5d2a
mov ecx, 1
jmp 0x4b5d2c
cmp eax, dword [esp + 0x98]
jne 0x4b51e8
mov edi, dword [esp + 0x44]
cmp edi, dword [esp + 0x90]
jne 0x4b51e8
mov edi, dword [esp + 0x48]
cmp edi, dword [esp + 0x94]
jne 0x4b51e8
lea eax, [ebx + 0x3ffe]
cmp eax, 0x7ffd
jle 0x4b61e6
mov dword [esp + 0x60], esi
mov dword [esp + 0x5c], edx
fnstcw word [esp + 0x54]
mov edx, dword [esp + 0x54]
mov eax, dword [0x4eff04]
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
and edx, 0xc00
cmp edx, 0xc00
je 0x4b635d
cmp dword [esp + 0x74], 0
je 0x4b619d
cmp edx, 0x800
je 0x4b635d
jmp 0x4b61a9
cmp edx, 0x400
je 0x4b635d
mov esi, dword [esp + 0x74]
mov ebx, dword [ebp + 8]
shr esi, 0x1b
mov eax, dword [esi + 0x4e90f0]
mov dword [ebx], eax
mov edx, dword [esi + 0x4e90f4]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 0x4e90f8]
mov dword [ebx + 8], ecx
mov edx, dword [esi + 0x4e90fc]
mov eax, dword [ebp + 8]
mov dword [eax + 0xc], edx
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test eax, eax
js 0x4b6216
mov esi, dword [ebp + 8]
mov edx, dword [esp + 0x74]
xor eax, eax
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
add ebx, 0x3fff
shl ebx, 0x10
or edx, ebx
mov dword [esi + 0xc], edx
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp eax, 0xffffffef
jle 0x4b624d
mov esi, dword [ebp + 8]
mov edx, dword [esp + 0x74]
xor eax, eax
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
add ebx, 0x400e
mov ecx, ebx
mov ebx, 1
shl ebx, cl
or edx, ebx
mov dword [esi + 0xc], edx
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp eax, 0xffffffcf
jle 0x4b6282
mov esi, dword [ebp + 8]
mov edx, dword [esp + 0x74]
xor eax, eax
mov dword [esi], eax
mov dword [esi + 4], eax
add ebx, 0x400e
mov ecx, ebx
mov ebx, 1
shl ebx, cl
mov dword [esi + 0xc], edx
mov dword [esi + 8], ebx
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp eax, 0xffffffaf
jle 0x4b62b7
mov esi, dword [ebp + 8]
mov edx, dword [esp + 0x74]
xor eax, eax
mov dword [esi], eax
mov dword [esi + 8], eax
add ebx, 0x400e
mov ecx, ebx
mov ebx, 1
shl ebx, cl
mov dword [esi + 0xc], edx
mov dword [esi + 4], ebx
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp eax, 0xffffff8f
jle 0x4b62ec
mov esi, dword [ebp + 8]
mov edx, dword [esp + 0x74]
xor eax, eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
add ebx, 0x400e
mov ecx, ebx
mov ebx, 1
shl ebx, cl
mov dword [esi + 0xc], edx
mov dword [esi], ebx
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x60], esi
mov dword [esp + 0x5c], edx
fnstcw word [esp + 0x54]
mov edx, dword [esp + 0x54]
mov eax, dword [0x4eff08]
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
and edx, 0xc00
cmp dword [esp + 0x74], 0
je 0x4b632e
xor ecx, ecx
mov eax, 1
cmp edx, 0x400
cmovne eax, ecx
jmp 0x4b633e
xor ecx, ecx
mov eax, 1
cmp edx, 0x800
cmovne eax, ecx
mov edx, dword [ebp + 8]
mov dword [edx], eax
mov eax, dword [esp + 0x74]
mov dword [edx + 4], ecx
mov dword [edx + 8], ecx
mov dword [edx + 0xc], eax
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov esi, dword [esp + 0x74]
mov ebx, dword [ebp + 8]
shr esi, 0x1b
mov eax, dword [esi + 0x4e9130]
mov dword [ebx], eax
mov edx, dword [esi + 0x4e9134]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 0x4e9138]
mov dword [ebx + 8], ecx
mov edx, dword [esi + 0x4e913c]
jmp 0x4b61d3
mov edi, eax
or edi, dword [esp + 0x44]
xor ecx, ecx
or edi, dword [esp + 0x48]
mov edi, 1
cmovne ecx, edi
or ecx, dword [esp + 0x1c]
jne 0x4b63b1
mov edi, 1
mov dword [esp + 4], edi
jmp 0x4b63e6
cmp ecx, 0x10000
jae 0x4b63c3
mov dword [esp + 4], 2
jmp 0x4b63e6
cmp ecx, 0x7fff0000
jae 0x4b63d5
mov dword [esp + 4], 4
jmp 0x4b63e6
mov edi, 0x10
mov ecx, 8
cmova ecx, edi
mov dword [esp + 4], ecx
mov edi, dword [esp + 0x98]
or edi, dword [esp + 0x90]
xor ecx, ecx
or edi, dword [esp + 0x94]
mov edi, 1
cmovne ecx, edi
or ecx, dword [esp + 0x10]
jne 0x4b6415
mov edi, 1
mov dword [esp], edi
jmp 0x4b6447
cmp ecx, 0x10000
jae 0x4b6426
mov dword [esp], 2
jmp 0x4b6447
cmp ecx, 0x7fff0000
jae 0x4b6437
mov dword [esp], 4
jmp 0x4b6447
mov edi, 0x10
mov ecx, 8
cmova ecx, edi
mov dword [esp], ecx
mov ecx, dword [esp + 4]
or ecx, dword [esp]
test cl, 0x10
je 0x4b661b
mov edx, dword [esp + 4]
cmp edx, dword [esp]
je 0x4b64b8
cmp dword [esp + 4], 0x10
je 0x4b6a77
mov ebx, dword [ebp + 8]
mov eax, dword [esp + 0x94]
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 eax, dword [esi + 0xc]
mov edx, dword [ebp + 8]
test eax, 0x8000
mov dword [edx + 0xc], eax
jne 0x4b6603
mov eax, dword [0x4efef8]
mov edx, dword [ebp + 8]
movsd xmm0, qword [eax]
divsd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
mov eax, dword [edx + 0xc]
jmp 0x4b6603
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
not edx
and edx, 0x8000
shr edx, 0xf
mov dword [esp + 0x2c], edx
not ecx
and ecx, 0x8000
shr ecx, 0xf
mov dword [esp + 0x28], ecx
or edx, ecx
je 0x4b64f6
mov edx, dword [0x4efef8]
movsd xmm0, qword [edx]
divsd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
mov edx, dword [esp + 0x2c]
cmp edx, dword [esp + 0x28]
je 0x4b652c
cmp dword [esp + 0x2c], 0
je 0x4b65b9
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 0x4b6603
mov edx, dword [esp + 0x1c]
cmp edx, dword [esp + 0x10]
jb 0x4b6563
mov dword [esp + 0x58], eax
jne 0x4b6584
cmp eax, dword [esp + 0x98]
jb 0x4b6563
jne 0x4b6584
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x90]
jb 0x4b6563
jne 0x4b6584
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x94]
jae 0x4b6584
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 0x4b6603
mov eax, edx
cmp eax, dword [esp + 0x10]
ja 0x4b65b9
jne 0x4b65d7
mov eax, dword [esp + 0x98]
cmp eax, dword [esp + 0x58]
jb 0x4b65b9
jne 0x4b65d7
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x90]
ja 0x4b65b9
jne 0x4b65d7
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x94]
jbe 0x4b65d7
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 0x4b6603
mov eax, dword [ebp + 0xc]
test dword [eax + 0xc], 0x80000000
je 0x4b650b
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
mov edi, dword [esp + 4]
test dword [esp], edi
je 0x4b6669
test byte [esp + 4], 2
jne 0x4b6669
mov eax, dword [0x4efef8]
mov edx, dword [ebp + 8]
movsd xmm0, qword [eax]
divsd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov dword [edx + 0xc], 0xffff8000
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test byte [esp + 4], 8
je 0x4b66c9
test byte [esp], 2
je 0x4b668f
mov eax, dword [0x4efefc]
mov edx, dword [0x4eff00]
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp + 0x20], xmm0
mov ebx, dword [esp + 0x74]
mov edi, dword [ebp + 8]
shr ebx, 0x1b
mov eax, dword [ebx + 0x4e90f0]
mov dword [edi], eax
mov edx, dword [ebx + 0x4e90f4]
mov dword [edi + 4], edx
mov ecx, dword [ebx + 0x4e90f8]
mov dword [edi + 8], ecx
mov esi, dword [ebx + 0x4e90fc]
mov dword [edi + 0xc], esi
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test byte [esp], 1
jne 0x4b6b03
test byte [esp + 4], 1
jne 0x4b66e0
test byte [esp], 8
je 0x4b6738
test cl, 2
je 0x4b66fe
mov eax, dword [0x4efefc]
mov edx, dword [0x4eff00]
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp + 0x20], xmm0
mov ebx, dword [esp + 0x74]
mov edi, dword [ebp + 8]
shr ebx, 0x1b
mov eax, dword [ebx + 0x4e9110]
mov dword [edi], eax
mov edx, dword [ebx + 0x4e9114]
mov dword [edi + 4], edx
mov ecx, dword [ebx + 0x4e9118]
mov dword [edi + 8], ecx
mov esi, dword [ebx + 0x4e911c]
mov dword [edi + 0xc], esi
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp dword [esp + 8], 0
mov dword [esp + 0x60], esi
mov dword [esp + 0x5c], edx
mov edx, dword [0x4eff00]
mov dword [esp + 0x58], eax
mov eax, dword [0x4efefc]
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp + 0x20], xmm0
jne 0x4b6912
test esi, esi
je 0x4b677b
mov dword [esp + 8], 0
mov ecx, esi
shl ecx, 0xf
jmp 0x4b67ba
cmp dword [esp + 0x98], 0
je 0x4b6796
mov ecx, dword [esp + 0x98]
mov dword [esp + 8], 0x11
jmp 0x4b67ba
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
mov edx, 0x31
mov edi, 0x51
test eax, eax
cmovne ecx, eax
cmovne edi, edx
mov dword [esp + 8], edi
bsr eax, ecx
mov edi, dword [esp + 8]
sub edi, eax
add edi, 0x1f
mov edx, edi
mov dword [esp + 8], edi
neg edx
mov dword [esp + 4], edx
cmp edi, 0x20
jge 0x4b683c
mov eax, edi
mov edx, dword [esp + 0x98]
mov ecx, eax
shl esi, cl
mov edi, edx
mov ecx, dword [esp + 4]
shr edi, cl
mov ecx, eax
shl edx, cl
mov ecx, dword [esp + 4]
or esi, edi
mov dword [esp], esi
mov esi, dword [esp + 0x90]
mov edi, esi
shr edi, cl
mov ecx, eax
shl esi, cl
or edx, edi
mov ecx, dword [esp + 4]
mov edi, dword [esp + 0x94]
mov dword [esp + 0x98], edx
mov edx, edi
shr edx, cl
mov ecx, eax
shl edi, cl
mov dword [esp + 0x94], edi
or esi, edx
mov dword [esp + 0x90], esi
mov esi, dword [esp]
jmp 0x4b6905
je 0x4b6ab1
cmp dword [esp + 8], 0x40
jge 0x4b6899
mov edx, edi
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x90]
mov ecx, edx
shl dword [esp + 0x98], cl
mov ecx, edi
mov esi, eax
shr esi, cl
or esi, dword [esp + 0x98]
mov ecx, edx
shl eax, cl
mov dword [esp], esi
mov ecx, edi
mov edi, dword [esp + 0x94]
mov esi, edi
shr esi, cl
mov ecx, edx
shl edi, cl
mov dword [esp + 0x90], edi
or esi, eax
mov dword [esp + 0x98], esi
mov esi, dword [esp]
jmp 0x4b68fa
je 0x4b6a97
cmp dword [esp + 8], 0x60
jge 0x4b68d1
mov edx, edi
mov eax, dword [esp + 0x90]
mov edi, dword [esp + 0x94]
mov ecx, edx
shl eax, cl
mov ecx, dword [esp + 4]
mov esi, edi
shr esi, cl
mov ecx, edx
shl edi, cl
mov dword [esp + 0x98], edi
or esi, eax
jmp 0x4b68ef
mov ecx, edi
mov eax, dword [esp + 0x94]
mov dword [esp + 0x98], 0
mov esi, eax
shl esi, cl
cmp ecx, 0x60
cmove esi, eax
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
mov eax, dword [esp + 8]
neg eax
inc eax
mov dword [esp + 8], eax
jmp 0x4b6916
mov esi, dword [esp + 0x60]
test ebx, ebx
jne 0x4b6a6a
mov edx, dword [esp + 0x5c]
test edx, edx
je 0x4b692f
mov edi, edx
shl edi, 0xf
xor ebx, ebx
jmp 0x4b6958
mov edi, dword [esp + 0x58]
test edi, edi
je 0x4b693e
mov ebx, 0x11
jmp 0x4b6958
mov ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x48]
mov eax, 0x31
test ebx, ebx
cmovne edi, ebx
mov ebx, 0x51
cmovne ebx, eax
bsr eax, edi
sub ebx, eax
add ebx, 0x1f
mov edi, ebx
neg edi
mov dword [esp + 4], edi
cmp ebx, 0x20
jge 0x4b69c6
mov eax, dword [esp + 0x58]
mov ecx, ebx
shl edx, cl
mov edi, eax
mov ecx, dword [esp + 4]
shr edi, cl
mov ecx, ebx
shl eax, cl
mov ecx, dword [esp + 4]
or edx, edi
mov dword [esp], edx
mov edx, dword [esp + 0x44]
mov edi, edx
shr edi, cl
mov ecx, ebx
shl edx, cl
or eax, edi
mov ecx, dword [esp + 4]
mov edi, dword [esp + 0x48]
mov dword [esp + 0xc], eax
mov dword [esp + 0x58], eax
mov eax, edi
shr eax, cl
mov ecx, ebx
shl edi, cl
or edx, eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x44], edx
mov edx, dword [esp]
mov dword [esp + 0x48], edi
jmp 0x4b6a62
je 0x4b6aea
cmp ebx, 0x40
jge 0x4b6a0d
mov edi, dword [esp + 0x58]
mov edx, dword [esp + 0x44]
mov ecx, ebx
shl edi, cl
mov eax, edx
mov ecx, dword [esp + 4]
shr eax, cl
mov ecx, ebx
shl edx, cl
mov ecx, dword [esp + 4]
or edi, eax
mov dword [esp], edi
mov edi, dword [esp + 0x48]
mov eax, edi
shr eax, cl
mov ecx, ebx
shl edi, cl
or eax, edx
mov edx, dword [esp]
mov dword [esp + 0x58], eax
mov dword [esp + 0x44], edi
jmp 0x4b6a5a
je 0x4b6ad9
cmp ebx, 0x60
jge 0x4b6a38
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
mov ecx, ebx
shl edi, cl
mov edx, eax
mov ecx, dword [esp + 4]
shr edx, cl
mov ecx, ebx
shl eax, cl
mov dword [esp + 0x58], eax
or edx, edi
jmp 0x4b6a52
mov eax, dword [esp + 0x48]
mov dword [esp + 0x58], 0
mov ecx, ebx
mov edx, eax
shl edx, cl
cmp ebx, 0x60
cmove edx, eax
xor eax, eax
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
neg ebx
inc ebx
jmp 0x4b51c6
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
jmp 0x4b51c6
mov ebx, dword [ebp + 8]
mov eax, dword [esp + 0x48]
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 eax, dword [esi + 0xc]
jmp 0x4b6489
mov esi, dword [esp + 0x90]
mov eax, dword [esp + 0x94]
mov dword [esp + 0x98], eax
jmp 0x4b68ef
mov esi, dword [esp + 0x98]
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
mov dword [esp + 0x98], eax
mov dword [esp + 0x90], edx
jmp 0x4b68fa
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x58], eax
jmp 0x4b6a52
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x48]
mov dword [esp + 0x58], eax
mov dword [esp + 0x44], edi
jmp 0x4b6a5a
mov eax, dword [0x4eff00]
mov edx, dword [0x4efef8]
mov edi, dword [esp + 0x74]
movsd xmm0, qword [eax]
divsd xmm0, qword [edx]
mov eax, dword [ebp + 8]
movsd qword [esp + 0x20], xmm0
shr edi, 0x1b
mov ecx, dword [edi + 0x4e90f0]
mov dword [eax], ecx
mov ebx, dword [edi + 0x4e90f4]
mov dword [eax + 4], ebx
mov esi, dword [edi + 0x4e90f8]
mov dword [eax + 8], esi
mov ecx, dword [edi + 0x4e90fc]
mov dword [eax + 0xc], ecx
add esp, 0xa4
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, 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 + 0x64], eax
mov dword [esp + 0xc0], esi
mov dword [esp + 8], edx
mov esi, edx
and ebx, 0x80000000
and esi, 0x7fffffff
mov dword [esp + 0x68], 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 + 0x68]
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 0x4b7e6e
mov eax, ecx
lea ecx, [eax - 1]
cmp ecx, 0x7ffd
ja 0x4b7e6e
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 0x4b7c02
mov eax, dword [esp + 0xc0]
sub eax, esi
mov ecx, ebx
sbb ecx, edx
jb 0x4b6c8d
mov ecx, dword [esp + 0xc0]
sub ecx, esi
mov eax, ebx
sub eax, edx
or ecx, eax
jne 0x4b6cde
mov eax, dword [esp + 0xbc]
sub eax, dword [esp + 0x88]
mov ecx, dword [esp + 0xc]
sbb ecx, dword [esp + 0x10]
jae 0x4b6cde
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 0x4b6d1c
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 0x4b6d7a
or eax, edx
jne 0x4b6d92
mov eax, 0xffffffff
mov dword [esp + 0xd0], eax
mov dword [esp + 0xc4], eax
jmp 0x4b6ed5
mov eax, dword [esp + 0x90]
sub eax, dword [esp + 0xcc]
jb 0x4b6daf
mov dword [esp + 0xc4], 0xffffffff
jmp 0x4b6de4
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 ebx, eax
mov eax, dword [esp + 0xcc]
mov ecx, edx
mul edi
add ecx, eax
adc edx, 0
mov eax, dword [esp + 4]
mov edi, eax
sub edi, ebx
mov dword [esp], edi
sub eax, ebx
jae 0x4b6e1c
mov edi, 1
jmp 0x4b6e1e
xor edi, edi
mov ebx, dword [esp + 0x90]
mov eax, esi
sub eax, ecx
sbb ebx, edx
sub eax, edi
sbb ebx, 0
xor edx, edx
mov ecx, ebx
sub ecx, edx
jge 0x4b6e8a
mov edx, dword [esp + 0xc4]
mov ecx, dword [esp]
mov dword [esp + 0x8c], esi
mov esi, dword [esp + 0xc0]
dec edx
add ecx, esi
mov edi, ecx
sub edi, esi
jae 0x4b6e60
mov esi, 1
jmp 0x4b6e62
xor esi, esi
add eax, dword [esp + 0xcc]
adc ebx, 0
add eax, esi
adc ebx, 0
xor esi, esi
mov edi, ebx
sub edi, esi
jl 0x4b6e49
mov esi, dword [esp + 0x8c]
mov dword [esp + 0xc4], edx
mov dword [esp], ecx
mov edx, eax
sub edx, dword [esp + 0xcc]
jb 0x4b6ea2
mov dword [esp + 0xd0], 0xffffffff
jmp 0x4b6ed5
mov edx, dword [esp + 0xcc]
mov dword [esp + 0x24], eax
mov eax, dword [esp]
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
xor ebx, ebx
add ecx, dword [esp + 0x78]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x74]
adc ebx, 0
add ecx, dword [esp + 0x80]
adc ebx, 0
mov dword [esp + 0xc], edx
or eax, ecx
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x84]
je 0x4b6fa0
mov dword [esp + 0x78], 1
jmp 0x4b6fa6
xor edi, edi
mov dword [esp + 0x78], edi
mov dword [esp + 0x8c], esi
xor esi, esi
xor edi, edi
sub edi, dword [esp + 0x74]
mov dword [esp + 0xd4], edi
mov edi, esi
sbb edi, ecx
add eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0xa0], edi
mov edi, esi
adc edi, 0
add eax, dword [esp + 0x6c]
adc edi, 0
add ecx, ebx
mov ebx, esi
adc ebx, 0
add eax, ecx
adc edi, ebx
xor ecx, ecx
add edx, dword [esp + 0x64]
adc ecx, 0
add edx, dword [esp + 0x54]
adc ecx, 0
add edx, dword [esp + 0x60]
adc ecx, 0
add eax, dword [esp + 0x78]
mov esi, dword [esp + 0x88]
add edx, edi
adc ecx, 0
mov ebx, esi
sub ebx, eax
mov eax, dword [esp + 4]
mov edi, eax
sbb edi, edx
mov edx, ebx
sub edx, esi
mov esi, edi
sbb esi, eax
mov dword [esp + 0x7c], esi
mov esi, dword [esp + 0x8c]
jb 0x4b7034
or edx, dword [esp + 0x7c]
jne 0x4b704e
cmp dword [esp + 0x78], 0
je 0x4b7058
mov edx, dword [esp + 0x88]
neg edx
add edx, ebx
neg eax
add eax, edi
or edx, eax
jne 0x4b7058
mov dword [esp + 4], 1
jmp 0x4b705e
xor eax, eax
mov dword [esp + 4], eax
mov dword [esp + 0xa8], edi
mov edi, dword [esp + 0x10]
xor eax, eax
xor edx, edx
add edi, dword [esp]
adc edx, 0
add edi, dword [esp + 8]
adc edx, dword [esp + 0xc]
add edi, ecx
adc edx, 0
add edi, dword [esp + 4]
adc edx, 0
mov ecx, dword [esp + 0x90]
sub esi, edi
sbb ecx, edx
mov edi, dword [esp + 0xa8]
mov dword [esp + 0x90], ecx
sub ecx, eax
jge 0x4b7178
mov ecx, dword [esp + 0xa0]
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x8c], esi
mov esi, dword [esp + 0xbc]
mov edx, dword [esp + 0xc8]
add dword [esp + 0xd0], 0xffffffff
adc dword [esp + 0xc4], 0xffffffff
add eax, esi
adc ecx, edx
mov dword [esp + 0xd4], eax
sub eax, esi
mov esi, ecx
sbb esi, edx
mov eax, dword [esp + 0xd4]
jae 0x4b70fc
mov edx, 1
jmp 0x4b70fe
xor edx, edx
add ebx, dword [esp + 0xc0]
adc edi, dword [esp + 0xcc]
add ebx, edx
adc edi, 0
test edx, edx
je 0x4b712b
mov esi, ebx
sub esi, dword [esp + 0xc0]
mov edx, edi
sub edx, dword [esp + 0xcc]
or esi, edx
je 0x4b713f
mov edx, ebx
sub edx, dword [esp + 0xc0]
mov esi, edi
sbb esi, dword [esp + 0xcc]
jae 0x4b7146
mov edx, 1
jmp 0x4b7148
xor edx, edx
add dword [esp + 0x8c], edx
mov edx, dword [esp + 0x90]
adc edx, 0
mov dword [esp + 0x90], edx
xor esi, esi
sub edx, esi
jl 0x4b70bd
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xd4], eax
mov edx, dword [esp + 0xc0]
mov eax, dword [esp + 0xcc]
sub edx, ebx
sbb eax, edi
jb 0x4b7190
or edx, eax
jne 0x4b719c
mov esi, 0xffffffff
mov ecx, esi
jmp 0x4b72cc
mov eax, edi
sub eax, dword [esp + 0xcc]
jb 0x4b71ae
mov ecx, 0xffffffff
jmp 0x4b71d5
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x34], edi
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 ecx, dword [esp + 0x40]
mov eax, dword [esp + 0xc0]
mul ecx
mov esi, edx
mov dword [esp + 0xa8], edi
mov edi, eax
mov eax, dword [esp + 0xcc]
mul ecx
add esi, eax
adc edx, 0
mov dword [esp], edx
mov edx, dword [esp + 0xa0]
mov eax, edx
sub eax, edi
mov dword [esp + 4], eax
sub edx, edi
mov edi, dword [esp + 0xa8]
mov edx, dword [esp]
jae 0x4b7220
mov dword [esp], 1
jmp 0x4b7225
xor eax, eax
mov dword [esp], eax
mov eax, ebx
sub eax, esi
mov esi, edi
sbb esi, edx
sub eax, dword [esp]
sbb esi, 0
xor edx, edx
mov dword [esp + 8], esi
sub esi, edx
jge 0x4b728d
mov edx, dword [esp + 8]
mov dword [esp + 0xa8], edi
mov dword [esp], ebx
mov ebx, dword [esp + 4]
mov esi, dword [esp + 0xc0]
dec ecx
add ebx, esi
mov edi, ebx
sub edi, esi
jae 0x4b7266
mov esi, 1
jmp 0x4b7268
xor esi, esi
add eax, dword [esp + 0xcc]
adc edx, 0
add eax, esi
adc edx, 0
xor esi, esi
mov edi, edx
sub edi, esi
jl 0x4b724f
mov edi, dword [esp + 0xa8]
mov dword [esp + 4], ebx
mov ebx, dword [esp]
mov edx, eax
sub edx, dword [esp + 0xcc]
jb 0x4b729f
mov esi, 0xffffffff
jmp 0x4b72cc
mov edx, dword [esp + 0xcc]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 4]
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, 4
mov eax, esi
and eax, 0x3fff
sub eax, edx
mov edx, 0
sbb edx, edx
jb 0x4b72eb
or eax, edx
jne 0x4b7617
mov dword [esp], ebx
mov dword [esp + 0xa8], edi
mov edi, dword [esp + 0xbc]
mov eax, edi
mul esi
mov ebx, edx
mov dword [esp + 0x78], eax
mov eax, edi
mul ecx
mov edi, dword [esp + 0xc8]
mov dword [esp + 0x74], eax
mov dword [esp + 0x88], edx
mov eax, edi
mul esi
mov dword [esp + 0x8c], eax
mov eax, edi
mov edi, dword [esp + 0xc0]
mov dword [esp + 0x70], edx
mul ecx
mov dword [esp + 0x6c], eax
mov eax, edi
mov dword [esp + 0x7c], edx
mul esi
mov dword [esp + 0x68], eax
mov dword [esp + 0x64], edx
mov eax, edi
mul ecx
mov edi, dword [esp + 0xcc]
mov dword [esp + 0x54], eax
mov eax, edi
mov dword [esp + 0x10], edx
mul esi
mov dword [esp + 0x60], eax
mov eax, edi
mov edi, dword [esp + 0xa8]
mov dword [esp + 4], edx
mul ecx
add ebx, dword [esp + 0x74]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov eax, 0
adc eax, 0
add ebx, dword [esp + 0x8c]
adc eax, 0
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x78]
or eax, ebx
mov ebx, dword [esp]
je 0x4b73b8
mov dword [esp + 0x90], 1
jmp 0x4b73c1
xor eax, eax
mov dword [esp + 0x90], eax
mov dword [esp + 0xb4], esi
mov dword [esp], ebx
mov ebx, dword [esp + 0x88]
mov dword [esp + 0xa8], edi
xor eax, eax
xor edi, edi
xor esi, esi
sub edi, dword [esp + 0x78]
sbb esi, dword [esp + 0x80]
xor edx, edx
add ebx, dword [esp + 0x70]
adc edx, 0
add ebx, dword [esp + 0x6c]
adc edx, 0
mov dword [esp + 0xac], edi
mov edi, dword [esp + 0x68]
add edi, dword [esp + 0x84]
mov dword [esp + 0xb0], esi
mov esi, eax
adc esi, 0
add ebx, edi
adc edx, esi
mov edi, dword [esp + 0x7c]
add edi, dword [esp + 0x64]
adc eax, 0
add edi, dword [esp + 0x54]
adc eax, 0
add edi, dword [esp + 0x60]
adc eax, 0
add edi, edx
adc eax, 0
mov edx, dword [esp + 0xd4]
add ebx, dword [esp + 0x90]
mov dword [esp + 0x8c], eax
mov eax, edx
sub eax, ebx
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x74], eax
mov esi, ebx
sbb esi, edi
mov edi, dword [esp + 0xa8]
mov dword [esp + 0xb8], esi
sub eax, edx
sbb esi, ebx
mov ebx, dword [esp]
mov dword [esp + 0x94], esi
mov esi, dword [esp + 0xb4]
jb 0x4b7490
or eax, dword [esp + 0x94]
jne 0x4b74b4
cmp dword [esp + 0x90], 0
je 0x4b74bd
mov eax, dword [esp + 0xa0]
neg edx
neg eax
add edx, dword [esp + 0x74]
add eax, dword [esp + 0xb8]
or edx, eax
jne 0x4b74bd
mov dword [esp], 1
jmp 0x4b74c2
xor eax, eax
mov dword [esp], eax
mov edx, dword [esp + 0x10]
xor eax, eax
add edx, dword [esp + 4]
mov dword [esp + 0xb4], esi
mov esi, eax
adc esi, 0
add edx, dword [esp + 8]
adc esi, dword [esp + 0xc]
add edx, dword [esp + 0x8c]
adc esi, 0
add edx, dword [esp]
adc esi, 0
sub ebx, edx
sbb edi, esi
mov esi, dword [esp + 0xb4]
mov edx, edi
sub edx, eax
jge 0x4b75ef
mov edx, dword [esp + 0xb8]
mov eax, dword [esp + 0x74]
mov dword [esp + 0xb4], esi
mov dword [esp], ecx
mov esi, dword [esp + 0xbc]
mov ecx, dword [esp + 0xb0]
add dword [esp + 0xb4], 0xffffffff
adc dword [esp], 0xffffffff
mov dword [esp + 0xb8], edx
mov edx, dword [esp + 0xc8]
mov dword [esp + 0xa8], edi
mov edi, dword [esp + 0xac]
add edi, esi
adc ecx, edx
mov dword [esp + 0xac], edi
mov dword [esp + 0xb0], ecx
sub edi, esi
sbb ecx, edx
mov edi, dword [esp + 0xa8]
mov edx, dword [esp + 0xb8]
jae 0x4b757d
mov ecx, 1
jmp 0x4b757f
xor ecx, ecx
add eax, dword [esp + 0xc0]
adc edx, dword [esp + 0xcc]
add eax, ecx
adc edx, 0
test ecx, ecx
je 0x4b75ac
mov esi, eax
sub esi, dword [esp + 0xc0]
mov ecx, edx
sub ecx, dword [esp + 0xcc]
or esi, ecx
je 0x4b75c0
mov ecx, eax
sub ecx, dword [esp + 0xc0]
mov esi, edx
sbb esi, dword [esp + 0xcc]
jae 0x4b75c7
mov ecx, 1
jmp 0x4b75c9
xor ecx, ecx
add ebx, ecx
adc edi, 0
xor ecx, ecx
mov esi, edi
sub esi, ecx
jl 0x4b751a
mov esi, dword [esp + 0xb4]
mov ecx, dword [esp]
mov dword [esp + 0xb8], edx
mov dword [esp + 0x74], eax
or ebx, dword [esp + 0x74]
or edi, dword [esp + 0xb8]
or ebx, dword [esp + 0xac]
or edi, dword [esp + 0xb0]
or ebx, edi
je 0x4b7613
mov eax, 1
jmp 0x4b7615
xor eax, eax
or esi, eax
mov ebx, dword [esp + 0xd0]
mov dword [esp + 0x54], 0
mov eax, esi
shl eax, 0x11
mov dword [esp + 0x60], eax
mov edx, ebx
shl edx, 0x11
mov eax, ecx
shl eax, 0x11
shr ecx, 0xf
shr esi, 0xf
or eax, esi
or edx, ecx
mov ecx, dword [esp + 0xc4]
mov esi, ecx
shl esi, 0x11
shr ecx, 0xf
mov dword [esp + 0xc4], ecx
shr ebx, 0xf
or esi, ebx
cmp dword [esp + 0x9c], 0x7ffd
jae 0x4b774c
mov ecx, dword [esp + 0x54]
or ecx, dword [esp + 0x60]
je 0x4b7acf
fnstcw word [esp + 0x98]
mov ebx, dword [esp + 0x98]
mov ecx, dword [0x4eff00]
mov edi, dword [0x4eff08]
fld qword [ecx]
fadd qword [edi]
fstp qword [esp + 0x58]
and ebx, 0xc00
jne 0x4b76b3
mov edi, dword [esp + 0x60]
xor ecx, ecx
sub edi, ecx
jl 0x4b770d
jmp 0x4b76d8
cmp ebx, 0xc00
je 0x4b76d8
xor ecx, ecx
or ecx, dword [esp + 0xa4]
je 0x4b76d0
cmp ebx, 0x400
je 0x4b770d
jmp 0x4b76d8
cmp ebx, 0x800
je 0x4b770d
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], esi
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 0x4b7724
add esi, 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 0x4b773b
mov edi, 1
jmp 0x4b773d
xor edi, edi
xor ecx, ecx
test ebx, ebx
sete cl
and ecx, edi
not ecx
and eax, ecx
jmp 0x4b76d8
fnstcw word [esp + 0x98]
mov ebx, dword [esp + 0x98]
mov ecx, ebx
and ecx, 0xc00
mov dword [esp + 4], ecx
jne 0x4b7778
mov edi, dword [esp + 0x60]
xor ecx, ecx
sub edi, ecx
jl 0x4b7b9e
jmp 0x4b77ab
cmp dword [esp + 4], 0xc00
je 0x4b77ab
xor ecx, ecx
or ecx, dword [esp + 0xa4]
je 0x4b779d
cmp dword [esp + 4], 0x400
je 0x4b7b90
jmp 0x4b77ab
cmp dword [esp + 4], 0x800
je 0x4b7be8
xor ecx, ecx
mov dword [esp], ecx
cmp dword [esp + 0x9c], 0x7ffd
jle 0x4b7844
cmp dword [esp + 4], 0xc00
mov eax, dword [0x4eff04]
fld qword [eax]
fmul st(0)
fstp qword [esp + 0x58]
je 0x4b7b81
mov edx, dword [esp + 0xa4]
xor eax, eax
or edx, eax
je 0x4b77fe
cmp dword [esp + 4], 0x800
je 0x4b7b42
mov eax, 1
jmp 0x4b780e
cmp dword [esp + 4], 0x400
je 0x4b7b7d
xor eax, eax
mov esi, dword [ebp + 8]
shl eax, 4
mov edx, dword [eax + 0x4e90f0]
mov ecx, dword [eax + 0x4e90f4]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov ebx, dword [eax + 0x4e90f8]
mov eax, dword [eax + 0x4e90fc]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], eax
add esp, 0xdc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x9c], 0x7ffd
je 0x4b7baa
cmp dword [esp + 0x9c], 0
jge 0x4b766f
cmp dword [esp + 0x9c], 0xffffffff
jl 0x4b78b7
cmp dword [esp], 0
je 0x4b78b7
mov dword [esp], 0x1ffff
mov edi, esi
mov ecx, 0xffffffff
sub edi, ecx
mov ecx, dword [esp + 0xc4]
sbb ecx, dword [esp]
jb 0x4b78b7
mov ecx, esi
mov edi, 0xffffffff
sub ecx, edi
mov edi, dword [esp]
neg edi
add edi, dword [esp + 0xc4]
or ecx, edi
jne 0x4b78c1
mov edi, eax
mov ecx, 0xffffffff
sub edi, ecx
mov edi, edx
sbb edi, ecx
jae 0x4b78c1
mov dword [esp + 8], 1
jmp 0x4b78c9
mov dword [esp + 8], 0
mov ecx, dword [esp + 0x9c]
neg ecx
mov dword [esp + 0x9c], ecx
mov edi, ecx
and edi, 0x3f
mov dword [esp + 0xc], edi
mov edi, ecx
neg edi
and edi, 0x3f
cmp ecx, 0x40
mov dword [esp + 0x10], edi
jge 0x4b79d1
mov ecx, dword [esp + 0x54]
or ecx, dword [esp + 0x60]
je 0x4b7909
mov dword [esp], 1
jmp 0x4b7910
mov dword [esp], 0
cmp dword [esp + 0x10], 0x1f
ja 0x4b792c
mov ecx, edi
mov edi, edx
shld edi, eax, cl
mov dword [esp + 0x60], edi
mov edi, eax
shl edi, cl
mov dword [esp + 0x54], edi
jmp 0x4b793e
mov ecx, edi
mov dword [esp + 0x54], 0
mov edi, eax
shl edi, cl
mov dword [esp + 0x60], edi
mov ecx, dword [esp + 0x54]
or ecx, dword [esp]
cmp dword [esp + 0x10], 0x1f
mov dword [esp + 0x54], ecx
ja 0x4b796b
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0xc4]
shld edi, esi, cl
mov dword [esp + 4], edi
mov edi, esi
shl edi, cl
mov dword [esp], edi
jmp 0x4b797e
mov ecx, dword [esp + 0x10]
mov dword [esp], 0
mov edi, esi
shl edi, cl
mov dword [esp + 4], edi
cmp dword [esp + 0xc], 0x1f
ja 0x4b7992
mov ecx, dword [esp + 0xc]
shrd eax, edx, cl
mov edi, edx
shr edi, cl
jmp 0x4b799c
mov ecx, dword [esp + 0xc]
xor edi, edi
mov eax, edx
shr eax, cl
or eax, dword [esp]
mov edx, dword [esp + 4]
or edx, edi
cmp dword [esp + 0xc], 0x1f
ja 0x4b79ba
mov edi, dword [esp + 0xc4]
shrd esi, edi, cl
shr edi, cl
jmp 0x4b79c5
mov esi, dword [esp + 0xc4]
shr esi, cl
xor edi, edi
mov dword [esp + 0xc4], edi
jmp 0x4b7a71
je 0x4b7b12
cmp dword [esp + 0x9c], 0x80
jge 0x4b7a58
or edx, dword [esp + 0x60]
or eax, edx
je 0x4b79f3
mov eax, 1
jmp 0x4b79f5
xor eax, eax
cmp dword [esp + 0x10], 0x1f
ja 0x4b7a16
mov ecx, edi
mov edx, dword [esp + 0xc4]
shld edx, esi, cl
mov dword [esp + 0x60], edx
mov edi, esi
shl edi, cl
mov dword [esp + 0x54], edi
jmp 0x4b7a28
mov ecx, edi
mov dword [esp + 0x54], 0
mov edx, esi
shl edx, cl
mov dword [esp + 0x60], edx
or dword [esp + 0x54], eax
cmp dword [esp + 0xc], 0x1f
ja 0x4b7a47
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xc4]
mov eax, esi
shrd eax, edx, cl
shr edx, cl
jmp 0x4b7a68
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0xc4]
shr eax, cl
xor edx, edx
jmp 0x4b7a68
mov dword [esp + 0x54], 1
xor eax, eax
xor edx, edx
mov dword [esp + 0x60], eax
xor esi, esi
mov dword [esp + 0xc4], esi
cmp dword [esp + 8], 0
je 0x4b7b04
mov ecx, dword [esp + 0x54]
or ecx, dword [esp + 0x60]
je 0x4b7aa2
mov ecx, dword [0x4eff08]
fld qword [ecx]
fmul st(0)
fstp qword [esp + 0x58]
xor ebx, ebx
mov dword [esp + 0x9c], ebx
jmp 0x4b767d
test bl, 0x10
jne 0x4b7ac6
mov ecx, dword [0x4eff08]
fld qword [ecx]
mov ebx, dword [0x4eff0c]
fmul qword [ebx]
fstp qword [esp + 0x58]
xor edi, edi
mov dword [esp + 0x9c], edi
jmp 0x4b7acf
xor ecx, ecx
mov dword [esp + 0x9c], ecx
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], esi
mov dword [ecx + 0xc], edx
add esp, 0xdc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
xor ecx, ecx
mov dword [esp + 0x9c], ecx
jmp 0x4b766f
mov ecx, dword [esp + 0x54]
or ecx, dword [esp + 0x60]
je 0x4b7b26
mov dword [esp + 0x54], 1
jmp 0x4b7b2c
xor ecx, ecx
mov dword [esp + 0x54], ecx
or dword [esp + 0x54], eax
mov eax, esi
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0xc4]
jmp 0x4b7a68
mov ebx, 1
mov esi, dword [ebp + 8]
shl ebx, 4
mov eax, dword [ebx + 0x4e9130]
mov edx, dword [ebx + 0x4e9134]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ecx, dword [ebx + 0x4e9138]
mov ebx, dword [ebx + 0x4e913c]
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 0x4b7b47
mov edx, dword [esp + 0xa4]
xor eax, eax
or edx, eax
jne 0x4b7b42
jmp 0x4b7b7d
mov ecx, dword [esp + 0x54]
or ecx, dword [esp + 0x60]
je 0x4b77ab
mov dword [esp], 1
jmp 0x4b77b0
mov ebx, 0x1ffff
mov ecx, 0xffffffff
mov edi, esi
sub edi, ecx
neg ebx
add ebx, dword [esp + 0xc4]
or edi, ebx
jne 0x4b766f
mov ebx, eax
sub ebx, ecx
neg ecx
add ecx, edx
or ebx, ecx
jne 0x4b766f
cmp dword [esp], 0
jne 0x4b77c1
jmp 0x4b766f
mov ecx, dword [esp + 0x54]
or ecx, dword [esp + 0x60]
je 0x4b77ab
mov dword [esp], 1
jmp 0x4b77b0
mov ecx, dword [esp + 0x88]
sub ecx, dword [esp + 0xbc]
mov eax, dword [esp + 0x10]
sub eax, dword [esp + 0xc]
or ecx, eax
jne 0x4b6c55
mov eax, dword [esp + 0x54]
lea eax, [eax + 0x3ffe]
cmp eax, 0x7ffd
jle 0x4b7cc6
fnstcw word [esp + 0x98]
mov ecx, dword [esp + 0x98]
mov eax, dword [0x4eff04]
fld qword [eax]
fmul st(0)
fstp qword [esp + 0x58]
and ecx, 0xc00
cmp ecx, 0xc00
je 0x4b7e5f
mov edx, dword [esp + 0xa4]
xor eax, eax
or edx, eax
je 0x4b7c82
cmp ecx, 0x800
je 0x4b7e20
mov eax, 1
jmp 0x4b7c90
cmp ecx, 0x400
je 0x4b7e5b
xor eax, eax
mov esi, dword [ebp + 8]
shl eax, 4
mov edx, dword [eax + 0x4e90f0]
mov ecx, dword [eax + 0x4e90f4]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov ebx, dword [eax + 0x4e90f8]
mov eax, dword [eax + 0x4e90fc]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], eax
add esp, 0xdc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test eax, eax
js 0x4b7cfc
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 0x4b7d56
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x54]
xor eax, eax
mov dword [edx], eax
mov dword [edx + 4], eax
add ecx, 0x402e
mov dword [esp + 0x54], ecx
cmp ecx, 0x1f
ja 0x4b7d2c
xor eax, eax
mov edx, 1
shld eax, edx, cl
shl edx, cl
jmp 0x4b7d37
xor eax, eax
xor edx, edx
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0xa4]
mov ebx, dword [ebp + 8]
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, 0xffffff8f
jle 0x4b7db2
mov eax, dword [esp + 0x54]
add eax, 0x406e
mov dword [esp + 0x54], eax
cmp eax, 0x1f
ja 0x4b7d81
mov ecx, eax
xor eax, eax
xor ebx, ebx
mov edx, 1
shld ebx, edx, cl
mov eax, edx
shl eax, cl
jmp 0x4b7d8c
mov ecx, eax
xor eax, eax
mov ebx, 1
shl ebx, cl
mov edx, dword [ebp + 8]
mov dword [edx + 8], 0
mov dword [edx], eax
mov eax, dword [esp + 0xa4]
mov dword [edx + 4], ebx
mov dword [edx + 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 [0x4eff08]
fld qword [eax]
fmul st(0)
fstp qword [esp + 0x58]
and ecx, 0xc00
xor edx, edx
or edx, dword [esp + 0xa4]
je 0x4b7deb
xor eax, eax
cmp ecx, 0x400
sete al
jmp 0x4b7df6
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 + 0x4e9130]
mov edx, dword [ebx + 0x4e9134]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ecx, dword [ebx + 0x4e9138]
mov ebx, dword [ebx + 0x4e913c]
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 0x4b7e25
mov edx, dword [esp + 0xa4]
xor eax, eax
or edx, eax
jne 0x4b7e20
jmp 0x4b7e5b
mov eax, dword [esp + 0x88]
or eax, dword [esp + 0x10]
je 0x4b7e84
mov dword [esp], 1
jmp 0x4b7e89
xor eax, eax
mov dword [esp], eax
mov eax, dword [esp]
mov ecx, dword [esp + 0x64]
or eax, esi
mov dword [esp], eax
or ecx, eax
jne 0x4b7ea2
mov dword [esp], 1
jmp 0x4b7eed
mov ecx, dword [esp + 0x64]
mov eax, 0x10000
sub ecx, eax
jae 0x4b7eb8
mov dword [esp], 2
jmp 0x4b7eed
mov eax, dword [esp + 0x64]
mov ecx, 0x7fff0000
sub eax, ecx
jae 0x4b7ece
mov dword [esp], 4
jmp 0x4b7eed
mov eax, dword [esp + 0x64]
sub eax, ecx
jb 0x4b7ee6
mov ecx, dword [esp]
or ecx, eax
je 0x4b7ee6
mov dword [esp], 0x10
jmp 0x4b7eed
mov dword [esp], 8
mov eax, dword [esp + 0xbc]
or eax, dword [esp + 0xc]
je 0x4b7f04
mov dword [esp + 4], 1
jmp 0x4b7f0a
xor eax, eax
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
or eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0x68]
mov dword [esp + 4], eax
or ecx, eax
jne 0x4b7f28
mov eax, 1
jmp 0x4b7f6c
mov ecx, dword [esp + 0x68]
mov eax, 0x10000
sub ecx, eax
jae 0x4b7f3c
mov eax, 2
jmp 0x4b7f6c
mov eax, dword [esp + 0x68]
mov ecx, 0x7fff0000
sub eax, ecx
jae 0x4b7f50
mov eax, 4
jmp 0x4b7f6c
mov eax, dword [esp + 0x68]
sub eax, ecx
jb 0x4b7f67
mov ecx, dword [esp + 4]
or ecx, eax
je 0x4b7f67
mov eax, 0x10
jmp 0x4b7f6c
mov eax, 8
mov ecx, dword [esp]
or ecx, eax
test cl, 0x10
je 0x4b8156
cmp eax, dword [esp]
je 0x4b7ff0
cmp dword [esp], 0x10
je 0x4b7fa3
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 0x4b7fbd
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]
mov ecx, ebx
and ecx, 0x8000
xor edx, edx
or ecx, edx
jne 0x4b813a
mov edx, dword [ebp + 8]
mov dword [edx + 8], eax
mov eax, dword [0x4efef8]
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 0x4b813a
mov edx, dword [esp + 0x58]
and edx, 0x8000
xor eax, eax
or edx, eax
jne 0x4b8007
mov eax, 1
jmp 0x4b8009
xor eax, eax
mov ecx, dword [esp + 8]
and ecx, 0x8000
xor edx, edx
or ecx, edx
jne 0x4b8020
mov edx, 1
jmp 0x4b8022
xor edx, edx
mov ecx, eax
or ecx, edx
je 0x4b8036
mov ecx, dword [0x4efef8]
fld qword [ecx]
fdiv st(0)
fstp qword [esp + 0x58]
cmp edx, eax
je 0x4b805d
test eax, eax
je 0x4b80f6
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 0x4b813a
mov edx, dword [esp + 0x64]
mov eax, esi
sub eax, dword [esp + 0xc0]
sbb edx, dword [esp + 0x68]
jb 0x4b809b
mov eax, dword [esp + 0x64]
sub eax, dword [esp + 0x68]
mov edx, esi
sub edx, dword [esp + 0xc0]
or edx, eax
jne 0x4b80b6
mov eax, dword [esp + 0x88]
sub eax, dword [esp + 0xbc]
mov edx, edi
sbb edx, dword [esp + 0xc]
jae 0x4b80b6
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 0x4b813a
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0x68]
sub eax, esi
sbb edx, dword [esp + 0x64]
jb 0x4b80f6
mov eax, dword [esp + 0xc0]
sub eax, esi
mov esi, dword [esp + 0x68]
sub esi, dword [esp + 0x64]
or eax, esi
jne 0x4b810e
mov eax, dword [esp + 0xbc]
sub eax, dword [esp + 0x88]
mov edx, dword [esp + 0xc]
sbb edx, dword [esp + 0x10]
jae 0x4b810e
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 0x4b813a
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0xc]
and ecx, 0x80000000
xor edx, edx
or ecx, edx
je 0x4b8042
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 0x4b81a1
test byte [esp], 2
jne 0x4b81a1
mov eax, dword [0x4efef8]
fld qword [eax]
fdiv st(0)
mov edx, dword [0x4e9150]
mov ecx, dword [0x4e9154]
mov edi, dword [ebp + 8]
fstp qword [esp + 0x58]
mov dword [edi], edx
mov dword [edi + 4], ecx
mov ebx, dword [0x4e9158]
mov esi, dword [0x4e915c]
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
test byte [esp], 8
je 0x4b820a
test al, 2
je 0x4b81be
mov eax, dword [0x4efefc]
fld qword [eax]
mov edx, dword [0x4eff00]
fmul qword [edx]
fstp qword [esp + 0x58]
mov edx, dword [esp + 0xa4]
xor eax, eax
or edx, eax
je 0x4b81d2
mov eax, 1
jmp 0x4b81d4
xor eax, eax
mov esi, dword [ebp + 8]
shl eax, 4
mov edx, dword [eax + 0x4e90f0]
mov ecx, dword [eax + 0x4e90f4]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov ebx, dword [eax + 0x4e90f8]
mov eax, dword [eax + 0x4e90fc]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], eax
add esp, 0xdc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test al, 1
je 0x4b826d
mov eax, dword [0x4eff00]
fld qword [eax]
mov edx, dword [0x4efef8]
fdiv qword [edx]
mov ebx, dword [esp + 0xa4]
fstp qword [esp + 0x58]
xor ecx, ecx
or ebx, ecx
je 0x4b8235
mov eax, 1
jmp 0x4b8237
xor eax, eax
mov esi, dword [ebp + 8]
shl eax, 4
mov edx, dword [eax + 0x4e90f0]
mov ecx, dword [eax + 0x4e90f4]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov ebx, dword [eax + 0x4e90f8]
mov eax, dword [eax + 0x4e90fc]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], eax
add esp, 0xdc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test byte [esp], 1
jne 0x4b8277
test al, 8
je 0x4b82db
test cl, 2
je 0x4b828f
mov eax, dword [0x4efefc]
fld qword [eax]
mov edx, dword [0x4eff00]
fmul qword [edx]
fstp qword [esp + 0x58]
mov edx, dword [esp + 0xa4]
xor eax, eax
or edx, eax
je 0x4b82a3
mov eax, 1
jmp 0x4b82a5
xor eax, eax
mov esi, dword [ebp + 8]
shl eax, 4
mov edx, dword [eax + 0x4e9110]
mov ecx, dword [eax + 0x4e9114]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov ebx, dword [eax + 0x4e9118]
mov eax, dword [eax + 0x4e911c]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], eax
add esp, 0xdc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x60], 0
mov eax, dword [0x4efefc]
fld qword [eax]
mov ecx, dword [0x4eff00]
fmul qword [ecx]
fstp qword [esp + 0x58]
jne 0x4b84a3
mov eax, dword [esp + 0xc0]
mov dword [esp + 4], eax
or eax, ebx
mov dword [esp], ebx
jne 0x4b8327
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 0x4b832f
mov dword [esp + 0x60], 0xfffffff1
mov ecx, dword [esp]
mov eax, 1
sub ecx, eax
jae 0x4b8348
mov eax, dword [esp + 0x60]
add eax, 0x20
mov dword [esp + 0x60], eax
jmp 0x4b834f
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 0x4b8434
cmp dword [esp + 0x60], 0x1f
ja 0x4b8383
mov eax, dword [esp + 0xc0]
shld ebx, eax, cl
shl eax, cl
mov dword [esp + 8], eax
jmp 0x4b8392
mov ebx, dword [esp + 0xc0]
shl ebx, cl
xor eax, eax
mov dword [esp + 8], eax
neg ecx
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4b83c1
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 + 4], edi
jmp 0x4b83d6
mov eax, dword [esp + 0xc]
shr eax, cl
mov dword [esp + 0xc0], eax
mov dword [esp + 4], 0
or ebx, dword [esp + 4]
mov eax, dword [esp + 8]
or dword [esp + 0xc0], eax
cmp dword [esp + 0x60], 0x1f
ja 0x4b8410
mov ecx, dword [esp + 0x60]
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 0x4b8427
mov ecx, dword [esp + 0x60]
mov edi, dword [esp + 0xbc]
shl edi, cl
xor eax, eax
mov dword [esp + 4], eax
mov dword [esp + 0xc], edi
mov eax, dword [esp + 4]
mov dword [esp + 0xbc], eax
jmp 0x4b8498
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4b8455
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0xbc]
shld ebx, eax, cl
shl eax, cl
mov dword [esp + 0xc0], eax
jmp 0x4b8467
mov ebx, dword [esp + 0xbc]
shl ebx, cl
xor eax, eax
mov dword [esp + 0xc0], eax
mov ecx, eax
xor edi, edi
xor eax, eax
cmp dword [esp + 0x60], 0x40
sete al
test eax, eax
je 0x4b8480
mov ecx, dword [esp + 0xbc]
je 0x4b8486
mov ebx, dword [esp + 0xc]
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xbc], edi
mov dword [esp + 0xc], edi
mov eax, dword [esp + 0x60]
neg eax
inc eax
mov dword [esp + 0x60], eax
cmp dword [esp + 0x54], 0
jne 0x4b6c1b
mov dword [esp + 4], esi
mov eax, esi
mov dword [esp], edx
or eax, edx
jne 0x4b84d7
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 0x4b84df
mov dword [esp + 0x54], 0xfffffff1
mov ecx, dword [esp]
mov eax, 1
sub ecx, eax
jae 0x4b84f8
mov eax, dword [esp + 0x54]
add eax, 0x20
mov dword [esp + 0x54], eax
jmp 0x4b84ff
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 0x4b85b3
cmp dword [esp + 0x54], 0x1f
ja 0x4b852c
shld edx, esi, cl
shl esi, cl
mov dword [esp + 4], esi
jmp 0x4b8538
mov dword [esp + 4], 0
mov edx, esi
shl edx, cl
neg ecx
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4b8557
mov esi, dword [esp + 0x88]
mov eax, dword [esp + 0x10]
shrd esi, eax, cl
shr eax, cl
mov dword [esp], eax
jmp 0x4b8564
mov esi, dword [esp + 0x10]
shr esi, cl
mov dword [esp], 0
or esi, dword [esp + 4]
or edx, dword [esp]
cmp dword [esp + 0x54], 0x1f
ja 0x4b858f
mov ecx, dword [esp + 0x54]
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 0x4b85a7
mov ecx, dword [esp + 0x54]
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 0x4b8600
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4b85cd
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x88]
shld edx, esi, cl
shl esi, cl
jmp 0x4b85d8
mov edx, dword [esp + 0x88]
shl edx, cl
xor esi, esi
xor ecx, ecx
xor eax, eax
cmp dword [esp + 0x54], 0x40
sete al
test eax, eax
je 0x4b85ef
mov esi, dword [esp + 0x88]
je 0x4b85f5
mov edx, dword [esp + 0x10]
mov dword [esp + 0x88], ecx
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x54]
neg eax
inc eax
mov dword [esp + 0x54], eax
jmp 0x4b6c1b
test dword [0x4faa44], 0xfffffe00
jne 0x4b5110
test dword [0x4faa44], 0xffffffff
jne 0x4b6b60
call fcn.004afa10
jmp fcn.004b8610