Function at 0x4b9e90
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 0x4b7c4c
mov edi, dword [esp + 8]
lea edi, [edi - 1]
cmp edi, 0x7ffd
ja 0x4b7c4c
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 0x4b79d3
cmp esi, edx
jb 0x4b6ae0
jne 0x4b6b2d
cmp eax, dword [esp + 0x98]
ja 0x4b6ae0
jne 0x4b6b2d
mov edi, dword [esp + 0x44]
cmp edi, dword [esp + 0x90]
ja 0x4b6ae0
cmp edi, dword [esp + 0x90]
jne 0x4b6b2d
mov edi, dword [esp + 0x48]
cmp edi, dword [esp + 0x94]
jbe 0x4b6b2d
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 0x4b6b66
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 0x4b6bc4
jne 0x4b6bed
cmp eax, dword [esp + 0x98]
jb 0x4b6bed
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 0x4b6cf7
cmp esi, edx
ja 0x4b6bfb
mov dword [esp + 0x78], 0xffffffff
jmp 0x4b6c0b
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 0x4b6c57
test eax, eax
je 0x4b6c5e
cmp ecx, dword [esp + 4]
jne 0x4b6c5e
mov eax, 1
jmp 0x4b6c60
xor eax, eax
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x80], esi
neg edx
add edx, esi
sub edx, eax
js 0x4b6c7d
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], ebx
jmp 0x4b6cc2
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 0x4b6ca4
test eax, eax
je 0x4b6cab
cmp ecx, edi
jne 0x4b6cab
mov eax, 1
jmp 0x4b6cad
xor eax, eax
add edx, eax
js 0x4b6c80
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 0x4b6cd0
mov dword [esp + 0x64], 0xffffffff
jmp 0x4b6cf7
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 0x4b6e40
test eax, eax
je 0x4b6e4a
cmp dword [esp + 0x9c], 0
jne 0x4b6e4a
mov eax, 1
mov dword [esp], eax
jmp 0x4b6e51
mov dword [esp], 0
mov eax, dword [esp + 0x48]
neg ebx
add ebx, eax
sub ebx, dword [esp]
cmp ebx, eax
ja 0x4b6e6c
cmp dword [esp], 0
je 0x4b6e76
cmp ebx, dword [esp + 0x48]
jne 0x4b6e76
mov eax, 1
mov dword [esp], eax
jmp 0x4b6e7d
mov dword [esp], 0
mov eax, dword [esp + 0x44]
neg esi
add esi, eax
sub esi, dword [esp]
cmp esi, eax
ja 0x4b6e98
cmp dword [esp], 0
je 0x4b6ea2
cmp esi, dword [esp + 0x44]
jne 0x4b6ea2
mov eax, 1
mov dword [esp], eax
jmp 0x4b6ea9
mov dword [esp], 0
mov eax, dword [esp + 4]
neg edx
add edx, eax
sub edx, dword [esp]
cmp edx, eax
ja 0x4b6ec4
cmp dword [esp], 0
je 0x4b6ece
cmp edx, dword [esp + 4]
jne 0x4b6ece
mov eax, 1
mov dword [esp], eax
jmp 0x4b6ed5
mov dword [esp], 0
mov eax, dword [esp + 0x80]
sub eax, ecx
sub eax, dword [esp]
mov dword [esp + 0x80], eax
jns 0x4b6ff1
mov dword [esp + 0x84], edi
mov ecx, dword [esp + 0x88]
dec ecx
mov dword [esp + 0x88], ecx
cmp ecx, 0xffffffff
jne 0x4b6f16
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 0x4b6f78
cmp dword [esp], 0
je 0x4b6f7f
mov ecx, dword [esp + 0x9c]
cmp ecx, dword [esp + 0x90]
jne 0x4b6f7f
mov ecx, 1
jmp 0x4b6f81
xor ecx, ecx
mov edi, dword [esp + 0x98]
add ebx, edi
add ebx, ecx
cmp ebx, edi
jb 0x4b6f9d
test ecx, ecx
je 0x4b6fa4
cmp ebx, dword [esp + 0x98]
jne 0x4b6fa4
mov ecx, 1
jmp 0x4b6fa6
xor ecx, ecx
mov edi, dword [esp + 0x84]
add esi, edi
add esi, ecx
cmp esi, edi
jb 0x4b6fc2
test ecx, ecx
je 0x4b6fc9
cmp esi, dword [esp + 0x84]
jne 0x4b6fc9
mov ecx, 1
jmp 0x4b6fcb
xor ecx, ecx
add edx, ecx
test ecx, ecx
je 0x4b6fdc
test edx, edx
jne 0x4b6fdc
mov ecx, 1
jmp 0x4b6fde
xor ecx, ecx
add eax, ecx
js 0x4b6ef5
mov edx, dword [esp + 0x88]
mov dword [esp + 0x64], edx
mov dword [esp + 0x5c], esi
cmp edi, esi
mov dword [esp + 0x58], ebx
ja 0x4b7007
mov dword [esp + 0x68], 0xffffffff
jmp 0x4b701b
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 0x4b7073
cmp dword [esp + 4], 0
je 0x4b707d
cmp esi, dword [esp]
jne 0x4b707d
mov ebx, 1
mov dword [esp], ebx
jmp 0x4b7084
mov dword [esp], 0
mov ebx, dword [esp + 0x5c]
sub ebx, edx
sub ebx, dword [esp]
js 0x4b7099
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], eax
jmp 0x4b70d6
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 0x4b70bd
test edx, edx
je 0x4b70c4
cmp esi, edi
jne 0x4b70c4
mov edx, 1
jmp 0x4b70c6
xor edx, edx
add ebx, edx
js 0x4b7099
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], eax
mov dword [esp + 0x68], ecx
cmp edi, esi
ja 0x4b70e4
mov dword [esp + 0x6c], 0xffffffff
jmp 0x4b70f4
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 0x4b7431
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 0x4b725a
test eax, eax
je 0x4b7265
cmp dword [esp + 0x80], 0
jne 0x4b7265
mov eax, 1
mov dword [esp + 4], eax
jmp 0x4b726d
mov dword [esp + 4], 0
mov eax, dword [esp + 0xa0]
neg edi
add edi, eax
sub edi, dword [esp + 4]
cmp edi, eax
ja 0x4b7290
cmp dword [esp + 4], 0
je 0x4b729b
cmp edi, dword [esp + 0xa0]
jne 0x4b729b
mov eax, 1
mov dword [esp + 4], eax
jmp 0x4b72a3
mov dword [esp + 4], 0
mov eax, dword [esp + 0x9c]
neg esi
add esi, eax
sub esi, dword [esp + 4]
cmp esi, eax
ja 0x4b72c6
cmp dword [esp + 4], 0
je 0x4b72d1
cmp esi, dword [esp + 0x9c]
jne 0x4b72d1
mov eax, 1
mov dword [esp + 8], eax
jmp 0x4b72d9
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 0x4b72fa
cmp dword [esp + 8], 0
je 0x4b7305
cmp edx, dword [esp + 4]
jne 0x4b7305
mov eax, 1
mov dword [esp + 4], eax
jmp 0x4b730d
mov dword [esp + 4], 0
mov eax, dword [esp + 0x5c]
sub eax, dword [esp]
sub eax, dword [esp + 4]
jns 0x4b7414
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 0x4b7399
cmp dword [esp + 4], 0
je 0x4b73a0
mov ecx, eax
cmp ecx, dword [esp + 0x90]
jne 0x4b73a0
mov ecx, 1
jmp 0x4b73a2
xor ecx, ecx
mov eax, dword [esp + 0x98]
add edi, eax
add edi, ecx
cmp edi, eax
jb 0x4b73be
test ecx, ecx
je 0x4b73c5
cmp edi, dword [esp + 0x98]
jne 0x4b73c5
mov ecx, 1
jmp 0x4b73c7
xor ecx, ecx
mov eax, dword [esp + 0x88]
add esi, eax
add esi, ecx
cmp esi, eax
jb 0x4b73e3
test ecx, ecx
je 0x4b73ea
cmp esi, dword [esp + 0x88]
jne 0x4b73ea
mov ecx, 1
jmp 0x4b73ec
xor ecx, ecx
add edx, ecx
test ecx, ecx
je 0x4b73fd
test edx, edx
jne 0x4b73fd
mov ecx, 1
jmp 0x4b73ff
xor ecx, ecx
mov eax, dword [esp]
add eax, ecx
mov dword [esp], eax
js 0x4b7328
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 0x4b75aa
test edx, edx
je 0x4b7570
fnstcw word [esp + 0x54]
mov edi, dword [esp + 0x54]
mov eax, dword [0x526d40]
mov ecx, dword [0x526d48]
movsd xmm0, qword [eax]
addsd xmm0, qword [ecx]
movsd qword [esp + 0x20], xmm0
and edi, 0xc00
jne 0x4b74b4
test edx, edx
jl 0x4b750f
jmp 0x4b74d5
cmp edi, 0xc00
je 0x4b74d5
cmp dword [esp + 0x74], 0
je 0x4b74cd
cmp edi, 0x400
je 0x4b750f
jmp 0x4b74d5
cmp edi, 0x800
je 0x4b750f
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 0x4b753a
mov eax, dword [esp + 0x68]
inc eax
jne 0x4b7530
mov ebx, dword [esp + 0x64]
mov esi, dword [esp + 0x78]
inc ebx
inc esi
test ebx, ebx
cmovne esi, dword [esp + 0x78]
jmp 0x4b7546
mov esi, dword [esp + 0x78]
mov ebx, dword [esp + 0x64]
jmp 0x4b7546
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 0x4b74e5
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 0x4b75c4
mov ecx, edx
shr ecx, 0x1f
jmp 0x4b75ec
cmp eax, 0xc00
je 0x4b75ea
cmp dword [esp + 0x74], 0
je 0x4b75df
cmp eax, 0x400
je 0x4b7973
jmp 0x4b75ea
cmp eax, 0x800
je 0x4b79c1
xor ecx, ecx
cmp dword [esp + 0x70], 0x7ffd
jle 0x4b7671
mov edx, dword [0x526d44]
movsd xmm0, qword [edx]
mulsd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
cmp eax, 0xc00
je 0x4b7944
cmp dword [esp + 0x74], 0
je 0x4b7629
cmp eax, 0x800
je 0x4b7944
jmp 0x4b7634
cmp eax, 0x400
je 0x4b7944
mov esi, dword [esp + 0x74]
mov ebx, dword [ebp + 8]
shr esi, 0x1b
mov eax, dword [esi + 0x51a490]
mov dword [ebx], eax
mov edx, dword [esi + 0x51a494]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 0x51a498]
mov dword [ebx + 8], ecx
mov edx, dword [esi + 0x51a49c]
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 0x4b7985
cmp dword [esp + 0x70], 0
jge 0x4b747d
cmp dword [esp + 0x70], 0xffffffff
jge 0x4b7697
mov ebx, dword [esp + 0x6c]
jmp 0x4b76d4
test ecx, ecx
jne 0x4b76a1
mov ebx, dword [esp + 0x6c]
jmp 0x4b76d4
cmp dword [esp + 0x78], 0x1ffff
jae 0x4b76b1
mov ebx, dword [esp + 0x6c]
jmp 0x4b76d4
jne 0x4b76df
cmp dword [esp + 0x64], 0xffffffff
jae 0x4b76c0
mov ebx, dword [esp + 0x6c]
jmp 0x4b76d4
jne 0x4b76df
cmp dword [esp + 0x68], 0xffffffff
mov ebx, dword [esp + 0x6c]
jb 0x4b76d4
jne 0x4b76e3
cmp ebx, 0xffffffff
jae 0x4b76e3
mov eax, 1
mov dword [esp + 8], eax
jmp 0x4b76eb
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 0x4b775f
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 0x4b7840
je 0x4b7927
cmp dword [esp + 0x70], 0x40
jge 0x4b77b4
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 0x4b783e
je 0x4b7907
cmp dword [esp + 0x70], 0x60
jge 0x4b77f6
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 0x4b783c
je 0x4b78e7
cmp dword [esp + 0x70], 0x80
jge 0x4b7833
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 0x4b783a
xor edi, edi
mov edx, 1
xor ebx, ebx
xor esi, esi
xor eax, eax
cmp dword [esp + 8], 0
je 0x4b78ca
test edx, edx
je 0x4b787f
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 [0x526d48]
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
jmp 0x4b7485
test byte [esp + 0x10], 0x10
jne 0x4b78bd
mov edx, dword [0x526d48]
mov ecx, dword [0x526d4c]
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 0x4b7580
mov dword [esp + 0x70], 0
jmp 0x4b7580
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 0x4b747d
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 0x4b783a
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 0x4b783c
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 0x4b783e
mov esi, dword [esp + 0x74]
mov ebx, dword [ebp + 8]
shr esi, 0x1b
mov eax, dword [esi + 0x51a4d0]
mov dword [ebx], eax
mov edx, dword [esi + 0x51a4d4]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 0x51a4d8]
mov dword [ebx + 8], ecx
mov edx, dword [esi + 0x51a4dc]
jmp 0x4b765e
test edx, edx
je 0x4b75ea
mov ecx, 1
jmp 0x4b75ec
cmp dword [esp + 0x78], 0x1ffff
jne 0x4b747d
cmp dword [esp + 0x64], 0xffffffff
jne 0x4b747d
cmp dword [esp + 0x68], 0xffffffff
jne 0x4b747d
cmp dword [esp + 0x6c], 0xffffffff
jne 0x4b747d
test ecx, ecx
jne 0x4b75f6
jmp 0x4b747d
test edx, edx
je 0x4b75ea
mov ecx, 1
jmp 0x4b75ec
cmp eax, dword [esp + 0x98]
jne 0x4b6aa8
mov edi, dword [esp + 0x44]
cmp edi, dword [esp + 0x90]
jne 0x4b6aa8
mov edi, dword [esp + 0x48]
cmp edi, dword [esp + 0x94]
jne 0x4b6aa8
lea eax, [ebx + 0x3ffe]
cmp eax, 0x7ffd
jle 0x4b7aa6
mov dword [esp + 0x60], esi
mov dword [esp + 0x5c], edx
fnstcw word [esp + 0x54]
mov edx, dword [esp + 0x54]
mov eax, dword [0x526d44]
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
and edx, 0xc00
cmp edx, 0xc00
je 0x4b7c1d
cmp dword [esp + 0x74], 0
je 0x4b7a5d
cmp edx, 0x800
je 0x4b7c1d
jmp 0x4b7a69
cmp edx, 0x400
je 0x4b7c1d
mov esi, dword [esp + 0x74]
mov ebx, dword [ebp + 8]
shr esi, 0x1b
mov eax, dword [esi + 0x51a490]
mov dword [ebx], eax
mov edx, dword [esi + 0x51a494]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 0x51a498]
mov dword [ebx + 8], ecx
mov edx, dword [esi + 0x51a49c]
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 0x4b7ad6
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 0x4b7b0d
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 0x4b7b42
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 0x4b7b77
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 0x4b7bac
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 [0x526d48]
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
and edx, 0xc00
cmp dword [esp + 0x74], 0
je 0x4b7bee
xor ecx, ecx
mov eax, 1
cmp edx, 0x400
cmovne eax, ecx
jmp 0x4b7bfe
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 + 0x51a4d0]
mov dword [ebx], eax
mov edx, dword [esi + 0x51a4d4]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 0x51a4d8]
mov dword [ebx + 8], ecx
mov edx, dword [esi + 0x51a4dc]
jmp 0x4b7a93
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 0x4b7c71
mov edi, 1
mov dword [esp + 4], edi
jmp 0x4b7ca6
cmp ecx, 0x10000
jae 0x4b7c83
mov dword [esp + 4], 2
jmp 0x4b7ca6
cmp ecx, 0x7fff0000
jae 0x4b7c95
mov dword [esp + 4], 4
jmp 0x4b7ca6
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 0x4b7cd5
mov edi, 1
mov dword [esp], edi
jmp 0x4b7d07
cmp ecx, 0x10000
jae 0x4b7ce6
mov dword [esp], 2
jmp 0x4b7d07
cmp ecx, 0x7fff0000
jae 0x4b7cf7
mov dword [esp], 4
jmp 0x4b7d07
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 0x4b7edb
mov edx, dword [esp + 4]
cmp edx, dword [esp]
je 0x4b7d78
cmp dword [esp + 4], 0x10
je 0x4b833b
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 0x4b7ec3
mov eax, dword [0x526d38]
mov edx, dword [ebp + 8]
movsd xmm0, qword [eax]
divsd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
mov eax, dword [edx + 0xc]
jmp 0x4b7ec3
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 0x4b7db6
mov edx, dword [0x526d38]
movsd xmm0, qword [edx]
divsd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
mov edx, dword [esp + 0x2c]
cmp edx, dword [esp + 0x28]
je 0x4b7dec
cmp dword [esp + 0x2c], 0
je 0x4b7e79
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 0x4b7ec3
mov edx, dword [esp + 0x1c]
cmp edx, dword [esp + 0x10]
jb 0x4b7e23
mov dword [esp + 0x58], eax
jne 0x4b7e44
cmp eax, dword [esp + 0x98]
jb 0x4b7e23
jne 0x4b7e44
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x90]
jb 0x4b7e23
jne 0x4b7e44
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x94]
jae 0x4b7e44
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 0x4b7ec3
mov eax, edx
cmp eax, dword [esp + 0x10]
ja 0x4b7e79
jne 0x4b7e97
mov eax, dword [esp + 0x98]
cmp eax, dword [esp + 0x58]
jb 0x4b7e79
jne 0x4b7e97
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x90]
ja 0x4b7e79
jne 0x4b7e97
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x94]
jbe 0x4b7e97
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 0x4b7ec3
mov eax, dword [ebp + 0xc]
test dword [eax + 0xc], 0x80000000
je 0x4b7dcb
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 0x4b7f29
test byte [esp + 4], 2
jne 0x4b7f29
mov eax, dword [0x526d38]
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
mov dword [esp + 0x60], esi
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], eax
test byte [esp + 4], 8
je 0x4b7f95
test byte [esp], 2
je 0x4b7f5b
mov eax, dword [0x526d3c]
mov edx, dword [0x526d40]
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 + 0x51a490]
mov dword [edi], eax
mov edx, dword [ebx + 0x51a494]
mov dword [edi + 4], edx
mov ecx, dword [ebx + 0x51a498]
mov dword [edi + 8], ecx
mov esi, dword [ebx + 0x51a49c]
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 0x4b83c7
test byte [esp + 4], 1
jne 0x4b7fac
test byte [esp], 8
je 0x4b8004
test cl, 2
je 0x4b7fca
mov eax, dword [0x526d3c]
mov edx, dword [0x526d40]
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 + 0x51a4b0]
mov dword [edi], eax
mov edx, dword [ebx + 0x51a4b4]
mov dword [edi + 4], edx
mov ecx, dword [ebx + 0x51a4b8]
mov dword [edi + 8], ecx
mov esi, dword [ebx + 0x51a4bc]
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 eax, dword [0x526d3c]
movsd xmm0, qword [eax]
mov edx, dword [0x526d40]
mulsd xmm0, qword [edx]
movsd qword [esp + 0x20], xmm0
jne 0x4b81d6
mov esi, dword [esp + 0x60]
test esi, esi
je 0x4b803f
mov dword [esp + 8], 0
mov ecx, esi
shl ecx, 0xf
jmp 0x4b807e
cmp dword [esp + 0x98], 0
je 0x4b805a
mov ecx, dword [esp + 0x98]
mov dword [esp + 8], 0x11
jmp 0x4b807e
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 0x4b8100
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 0x4b81c9
je 0x4b8375
cmp dword [esp + 8], 0x40
jge 0x4b815d
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 0x4b81be
je 0x4b835b
cmp dword [esp + 8], 0x60
jge 0x4b8195
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 0x4b81b3
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 0x4b81da
mov esi, dword [esp + 0x60]
test ebx, ebx
jne 0x4b832e
mov edx, dword [esp + 0x5c]
test edx, edx
je 0x4b81f3
mov edi, edx
shl edi, 0xf
xor ebx, ebx
jmp 0x4b821c
mov edi, dword [esp + 0x58]
test edi, edi
je 0x4b8202
mov ebx, 0x11
jmp 0x4b821c
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 0x4b828a
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 0x4b8326
je 0x4b83ae
cmp ebx, 0x40
jge 0x4b82d1
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 0x4b831e
je 0x4b839d
cmp ebx, 0x60
jge 0x4b82fc
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 0x4b8316
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 0x4b6a86
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
jmp 0x4b6a86
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 0x4b7d49
mov esi, dword [esp + 0x90]
mov eax, dword [esp + 0x94]
mov dword [esp + 0x98], eax
jmp 0x4b81b3
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 0x4b81be
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x58], eax
jmp 0x4b8316
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 0x4b831e
mov eax, dword [0x526d40]
mov edx, dword [0x526d38]
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 + 0x51a490]
mov dword [eax], ecx
mov ebx, dword [edi + 0x51a494]
mov dword [eax + 4], ebx
mov esi, dword [edi + 0x51a498]
mov dword [eax + 8], esi
mov ecx, dword [edi + 0x51a49c]
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 ebx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebx + 8]
mov esi, dword [ebx + 0xc]
mov edi, dword [ecx + 8]
mov dword [esp + 0x8c], edx
mov edx, dword [ecx + 0xc]
mov dword [esp + 0x58], esi
mov eax, esi
xor esi, edx
and eax, 0x7fffffff
mov dword [esp + 0x68], eax
mov dword [esp + 0xc0], edi
mov dword [esp + 8], edx
mov edi, edx
and esi, 0x80000000
and edi, 0x7fffffff
mov dword [esp + 0x64], edi
mov edi, dword [ebx]
mov ebx, dword [ebx + 4]
mov dword [esp + 0x88], edi
mov dword [esp + 0x10], ebx
mov ebx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0xbc], ebx
mov ebx, dword [esp + 0x8c]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0xa4], esi
movzx edx, ax
movzx esi, cx
shr eax, 0x10
mov dword [esp + 0x54], eax
shr ecx, 0x10
mov dword [esp + 0x60], ecx
lea eax, [eax - 1]
cmp eax, 0x7ffd
ja 0x4b96fd
mov eax, ecx
lea ecx, [eax - 1]
cmp ecx, 0x7ffd
ja 0x4b96fd
mov eax, dword [esp + 0x54]
sub eax, dword [esp + 0x60]
mov dword [esp + 0x54], eax
or edx, 0x10000
mov edi, edx
or esi, 0x10000
lea ecx, [eax + 0x3ffd]
mov eax, ebx
sub eax, dword [esp + 0xc0]
sub edi, esi
mov dword [esp + 0x9c], ecx
or eax, edi
je 0x4b9483
mov eax, dword [esp + 0xc0]
sub eax, ebx
mov ecx, esi
sbb ecx, edx
jb 0x4b854d
mov ecx, dword [esp + 0xc0]
sub ecx, ebx
mov eax, esi
sub eax, edx
or ecx, eax
jne 0x4b859e
mov eax, dword [esp + 0xbc]
sub eax, dword [esp + 0x88]
mov ecx, dword [esp + 0xc]
sbb ecx, dword [esp + 0x10]
jae 0x4b859e
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
mov eax, ebx
shr eax, 0x12
shl ebx, 0xe
shl edx, 0xe
or eax, edx
mov dword [esp + 0x90], eax
mov edx, edi
shr edx, 0x12
or ebx, 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 0x4b85dc
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
mov eax, ebx
shr eax, 0x11
shl ebx, 0xf
shl edx, 0xf
or eax, edx
mov dword [esp + 0x90], eax
mov edx, edi
shr edx, 0x11
or ebx, 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 esi, 0xf
or edx, esi
mov esi, dword [esp + 0xc]
mov dword [esp + 0xcc], edx
mov ecx, esi
shr ecx, 0x11
or eax, ecx
mov dword [esp + 0xc0], eax
mov ecx, edi
shr ecx, 0x11
shl edi, 0xf
shl esi, 0xf
or ecx, esi
mov dword [esp + 0xbc], edi
mov dword [esp + 0xc8], ecx
sub eax, ebx
sbb edx, dword [esp + 0x90]
jb 0x4b863a
or eax, edx
jne 0x4b8652
mov eax, 0xffffffff
mov dword [esp + 0xd0], eax
mov dword [esp + 0xc4], eax
jmp 0x4b8793
mov eax, dword [esp + 0x90]
sub eax, dword [esp + 0xcc]
jb 0x4b866f
mov dword [esp + 0xc4], 0xffffffff
jmp 0x4b86a4
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0xcc]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
div dword [esp + 0x1c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc4], eax
mov edi, dword [esp + 0xc4]
mov eax, edi
mul dword [esp + 0xc0]
mov ecx, eax
mov eax, dword [esp + 0xcc]
mov esi, edx
mul edi
add esi, eax
adc edx, 0
mov eax, dword [esp + 4]
mov edi, eax
sub edi, ecx
mov dword [esp], edi
sub eax, ecx
jae 0x4b86dc
mov edi, 1
jmp 0x4b86de
xor edi, edi
mov eax, dword [esp + 0x90]
mov ecx, ebx
sub ecx, esi
sbb eax, edx
sub ecx, edi
sbb eax, 0
mov edx, eax
sub edx, 0
jge 0x4b8748
mov edx, dword [esp + 0xc4]
mov esi, dword [esp]
mov dword [esp + 0x8c], ebx
mov ebx, dword [esp + 0xc0]
dec edx
add esi, ebx
mov edi, esi
sub edi, ebx
jae 0x4b871f
mov edi, 1
jmp 0x4b8721
xor edi, edi
add ecx, dword [esp + 0xcc]
adc eax, 0
add ecx, edi
adc eax, 0
mov edi, eax
sub edi, 0
jl 0x4b870f
mov ebx, dword [esp + 0x8c]
mov dword [esp + 0xc4], edx
mov dword [esp], esi
mov eax, ecx
sub eax, dword [esp + 0xcc]
jb 0x4b8760
mov dword [esp + 0xd0], 0xffffffff
jmp 0x4b8793
mov eax, dword [esp]
mov edx, dword [esp + 0xcc]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
div dword [esp + 0x2c]
mov dword [esp + 0x30], eax
xor eax, eax
or eax, dword [esp + 0x30]
mov dword [esp + 0xd0], eax
mov edi, dword [esp + 0xbc]
mov esi, dword [esp + 0xc4]
mov dword [esp + 0x8c], ebx
mov ebx, dword [esp + 0xd0]
mov eax, edi
mul ebx
mov ecx, edx
mov dword [esp + 0x74], eax
mov eax, edi
mul esi
mov edi, dword [esp + 0xc8]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
mov eax, ebx
mul edi
mov dword [esp + 0x80], eax
mov eax, esi
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 ebx
mov dword [esp + 0x68], eax
mov eax, edi
mov edi, dword [esp + 0xcc]
mov dword [esp + 0x64], edx
mul esi
mov dword [esp + 0x54], eax
mov eax, edi
mov dword [esp + 0x10], edx
mul ebx
mov ebx, dword [esp + 0x8c]
mov dword [esp + 0x60], eax
mov dword [esp], edx
mov eax, edi
mul esi
xor esi, esi
add ecx, dword [esp + 0x78]
mov edi, dword [esp + 0x84]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0xc], edx
adc esi, 0
add ecx, dword [esp + 0x80]
adc esi, 0
or eax, ecx
mov eax, dword [esp + 0x7c]
je 0x4b885e
mov dword [esp + 0x78], 1
jmp 0x4b8866
mov dword [esp + 0x78], 0
xor edx, edx
sub edx, dword [esp + 0x74]
mov dword [esp + 0xd4], edx
mov edx, 0
sbb edx, ecx
add eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0xa0], edx
mov edx, 0
adc edx, 0
add eax, dword [esp + 0x6c]
adc edx, 0
add ecx, esi
mov esi, 0
adc esi, 0
add eax, ecx
adc edx, esi
xor ecx, ecx
add edi, dword [esp + 0x64]
adc ecx, 0
add edi, dword [esp + 0x54]
adc ecx, 0
add edi, dword [esp + 0x60]
adc ecx, 0
add eax, dword [esp + 0x78]
add edi, edx
adc ecx, 0
mov edx, dword [esp + 0x88]
mov dword [esp + 0x7c], ecx
mov esi, edx
sub esi, eax
mov eax, dword [esp + 4]
mov ecx, eax
sbb ecx, edi
mov edi, esi
sub edi, edx
mov edx, ecx
sbb edx, eax
mov eax, dword [esp + 0x7c]
jb 0x4b88ef
or edi, edx
jne 0x4b890d
cmp dword [esp + 0x78], 0
je 0x4b8917
mov edi, dword [esp + 0x88]
mov edx, dword [esp + 4]
neg edi
add edi, esi
neg edx
add edx, ecx
or edi, edx
jne 0x4b8917
mov dword [esp + 4], 1
jmp 0x4b891f
mov dword [esp + 4], 0
mov edi, dword [esp + 0x10]
xor edx, edx
add edi, dword [esp]
adc edx, 0
add edi, dword [esp + 8]
adc edx, dword [esp + 0xc]
add edi, eax
adc edx, 0
add edi, dword [esp + 4]
adc edx, 0
mov eax, dword [esp + 0x90]
sub ebx, edi
sbb eax, edx
mov dword [esp + 0x90], eax
sub eax, 0
jge 0x4b8a29
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x8c], ebx
mov ebx, dword [esp + 0xa0]
mov edi, dword [esp + 0xbc]
mov edx, dword [esp + 0xc8]
add dword [esp + 0xd0], 0xffffffff
adc dword [esp + 0xc4], 0xffffffff
add eax, edi
adc ebx, edx
mov dword [esp + 0xd4], eax
sub eax, edi
mov edi, ebx
sbb edi, edx
mov eax, dword [esp + 0xd4]
jae 0x4b89ae
mov edx, 1
jmp 0x4b89b0
xor edx, edx
add esi, dword [esp + 0xc0]
adc ecx, dword [esp + 0xcc]
add esi, edx
adc ecx, 0
test edx, edx
je 0x4b89dd
mov edi, esi
sub edi, dword [esp + 0xc0]
mov edx, ecx
sub edx, dword [esp + 0xcc]
or edi, edx
je 0x4b89f1
mov edx, esi
sub edx, dword [esp + 0xc0]
mov edi, ecx
sbb edi, dword [esp + 0xcc]
jae 0x4b89f8
mov edx, 1
jmp 0x4b89fa
xor edx, edx
add dword [esp + 0x8c], edx
mov edx, dword [esp + 0x90]
adc edx, 0
mov dword [esp + 0x90], edx
sub edx, 0
jl 0x4b896f
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xd4], eax
mov edx, dword [esp + 0xc0]
mov eax, dword [esp + 0xcc]
sub edx, esi
sbb eax, ecx
jb 0x4b8a41
or edx, eax
jne 0x4b8a4d
mov ebx, 0xffffffff
mov edi, ebx
jmp 0x4b8b80
mov eax, ecx
sub eax, dword [esp + 0xcc]
jb 0x4b8a5f
mov edi, 0xffffffff
jmp 0x4b8a86
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], eax
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
div dword [esp + 0x3c]
mov dword [esp + 0x40], eax
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0xc0]
mul edi
mov ebx, edx
mov dword [esp + 0xa8], ecx
mov ecx, eax
mov eax, dword [esp + 0xcc]
mul edi
add ebx, eax
adc edx, 0
mov dword [esp + 4], edx
mov edx, dword [esp + 0xa0]
mov eax, edx
sub eax, ecx
mov dword [esp], eax
sub edx, ecx
mov ecx, dword [esp + 0xa8]
mov eax, dword [esp + 4]
jae 0x4b8ad3
mov dword [esp + 4], 1
jmp 0x4b8adb
mov dword [esp + 4], 0
mov edx, esi
sub edx, ebx
mov ebx, ecx
sbb ebx, eax
sub edx, dword [esp + 4]
sbb ebx, 0
mov eax, ebx
sub eax, 0
jge 0x4b8b42
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xa8], ecx
mov ecx, dword [esp]
mov dword [esp + 0xac], esi
dec edi
add ecx, eax
mov esi, ecx
sub esi, eax
jae 0x4b8b19
mov esi, 1
jmp 0x4b8b1b
xor esi, esi
add edx, dword [esp + 0xcc]
adc ebx, 0
add edx, esi
adc ebx, 0
mov esi, ebx
sub esi, 0
jl 0x4b8b09
mov esi, dword [esp + 0xac]
mov dword [esp], ecx
mov ecx, dword [esp + 0xa8]
mov eax, edx
sub eax, dword [esp + 0xcc]
jb 0x4b8b54
mov ebx, 0xffffffff
jmp 0x4b8b80
mov eax, dword [esp]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0xcc]
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 ebx, ebx
or ebx, dword [esp + 0x50]
mov edx, ebx
and edx, 0x3fff
xor eax, eax
sub edx, 4
sbb eax, 0
jb 0x4b8b9a
or edx, eax
jne 0x4b8ebd
mov dword [esp + 0xac], esi
mov esi, dword [esp + 0xbc]
mov dword [esp + 0xa8], ecx
mov eax, esi
mul ebx
mov dword [esp + 0x78], eax
mov eax, esi
mov esi, dword [esp + 0xc8]
mov ecx, edx
mul edi
mov dword [esp + 0x70], eax
mov eax, esi
mov dword [esp + 0x88], edx
mul ebx
mov dword [esp + 0x74], eax
mov dword [esp + 0x6c], edx
mov eax, esi
mul edi
mov esi, dword [esp + 0xc0]
mov dword [esp + 0x68], eax
mov eax, esi
mov dword [esp + 0x7c], edx
mul ebx
mov dword [esp + 0x64], eax
mov eax, esi
mov esi, dword [esp + 0xcc]
mov dword [esp + 0x60], edx
mul edi
mov dword [esp + 0x10], eax
mov eax, esi
mov dword [esp + 0xc], edx
mul ebx
mov dword [esp + 0x54], eax
mov dword [esp], edx
mov eax, esi
mul edi
add ecx, dword [esp + 0x70]
mov esi, dword [esp + 0xac]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov eax, 0
adc eax, 0
add ecx, dword [esp + 0x74]
adc eax, 0
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x78]
or eax, ecx
mov ecx, dword [esp + 0xa8]
je 0x4b8c68
mov dword [esp + 0x90], 1
jmp 0x4b8c73
mov dword [esp + 0x90], 0
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xac], esi
mov esi, dword [esp + 0x64]
mov dword [esp + 0xa8], ecx
mov ecx, dword [esp + 0x88]
xor edx, edx
xor ebx, ebx
xor eax, eax
sub edx, dword [esp + 0x78]
sbb ebx, dword [esp + 0x80]
add ecx, dword [esp + 0x6c]
adc eax, 0
add ecx, dword [esp + 0x68]
adc eax, 0
add esi, dword [esp + 0x84]
mov dword [esp + 0xb0], edx
mov dword [esp + 0xb4], ebx
mov edx, 0
adc edx, 0
add ecx, esi
adc eax, edx
mov esi, dword [esp + 0x7c]
xor ebx, ebx
add ecx, dword [esp + 0x90]
add esi, dword [esp + 0x60]
adc ebx, 0
add esi, dword [esp + 0x10]
adc ebx, 0
add esi, dword [esp + 0x54]
adc ebx, 0
mov edx, dword [esp + 0xd4]
add esi, eax
adc ebx, 0
mov dword [esp + 0x8c], ebx
mov eax, edx
sub eax, ecx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x74], eax
mov ebx, ecx
sbb ebx, esi
mov esi, dword [esp + 0xac]
mov dword [esp + 0x70], ebx
sub eax, edx
sbb ebx, ecx
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x94], ebx
mov ebx, dword [esp + 0xb8]
jb 0x4b8d4a
or eax, dword [esp + 0x94]
jne 0x4b8d6b
cmp dword [esp + 0x90], 0
je 0x4b8d75
mov eax, dword [esp + 0xa0]
neg edx
neg eax
add edx, dword [esp + 0x74]
add eax, dword [esp + 0x70]
or edx, eax
jne 0x4b8d75
mov dword [esp + 0x10], 1
jmp 0x4b8d7d
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0xc]
xor edx, edx
add eax, dword [esp]
adc edx, 0
add eax, dword [esp + 4]
adc edx, dword [esp + 8]
add eax, dword [esp + 0x8c]
adc edx, 0
add eax, dword [esp + 0x10]
adc edx, 0
sub esi, eax
sbb ecx, edx
mov eax, ecx
sub eax, 0
jge 0x4b8e98
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
mov dword [esp + 0xac], esi
mov dword [esp + 0xb8], ebx
mov esi, dword [esp + 0xbc]
mov ebx, dword [esp + 0xb4]
add dword [esp + 0xb8], 0xffffffff
adc edi, 0xffffffff
mov dword [esp + 0xa8], ecx
mov ecx, dword [esp + 0xc8]
mov dword [esp], edi
mov edi, dword [esp + 0xb0]
add edi, esi
adc ebx, ecx
mov dword [esp + 0xb0], edi
mov dword [esp + 0xb4], ebx
sub edi, esi
sbb ebx, ecx
mov edi, dword [esp]
mov ecx, dword [esp + 0xa8]
jae 0x4b8e21
mov ebx, 1
jmp 0x4b8e23
xor ebx, ebx
add eax, dword [esp + 0xc0]
adc edx, dword [esp + 0xcc]
add eax, ebx
adc edx, 0
test ebx, ebx
je 0x4b8e50
mov esi, eax
sub esi, dword [esp + 0xc0]
mov ebx, edx
sub ebx, dword [esp + 0xcc]
or esi, ebx
je 0x4b8e64
mov ebx, eax
sub ebx, dword [esp + 0xc0]
mov esi, edx
sbb esi, dword [esp + 0xcc]
jae 0x4b8e6b
mov ebx, 1
jmp 0x4b8e6d
xor ebx, ebx
add dword [esp + 0xac], ebx
adc ecx, 0
mov ebx, ecx
sub ebx, 0
jl 0x4b8dc7
mov esi, dword [esp + 0xac]
mov ebx, dword [esp + 0xb8]
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], eax
or esi, dword [esp + 0x74]
or ecx, dword [esp + 0x70]
or esi, dword [esp + 0xb0]
or ecx, dword [esp + 0xb4]
or esi, ecx
je 0x4b8eb9
mov eax, 1
jmp 0x4b8ebb
xor eax, eax
or ebx, eax
mov ecx, dword [esp + 0xd0]
mov esi, dword [esp + 0xc4]
mov dword [esp + 0x54], 0
mov eax, ebx
shl eax, 0x11
mov dword [esp + 0x60], eax
mov edx, ecx
shl edx, 0x11
mov eax, edi
shl eax, 0x11
shr edi, 0xf
shr ebx, 0xf
or eax, ebx
or edx, edi
mov ebx, esi
shl ebx, 0x11
shr esi, 0xf
mov dword [esp + 0xc4], esi
shr ecx, 0xf
or ebx, ecx
cmp dword [esp + 0x9c], 0x7ffd
jae 0x4b8ff1
mov ecx, dword [esp + 0x54]
or ecx, dword [esp + 0x60]
je 0x4b9355
fnstcw word [esp + 0x98]
mov esi, dword [esp + 0x98]
mov ecx, dword [0x526d40]
mov edi, dword [0x526d48]
fld qword [ecx]
fadd qword [edi]
fstp qword [esp + 0x58]
and esi, 0xc00
jne 0x4b8f58
mov ecx, dword [esp + 0x60]
sub ecx, 0
jl 0x4b8fb2
jmp 0x4b8f7d
cmp esi, 0xc00
je 0x4b8f7d
xor ecx, ecx
or ecx, dword [esp + 0xa4]
je 0x4b8f75
cmp esi, 0x400
je 0x4b8fb2
jmp 0x4b8f7d
cmp esi, 0x800
je 0x4b8fb2
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
mov eax, dword [esp + 0x9c]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0xa4]
shl eax, 0x10
add eax, dword [esp + 0xc4]
or edx, eax
mov dword [ecx + 8], ebx
mov dword [ecx + 0xc], edx
add esp, 0xdc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
add eax, 1
adc edx, 0
mov ecx, eax
or ecx, edx
jne 0x4b8fc9
add ebx, 1
adc dword [esp + 0xc4], 0
mov edi, dword [esp + 0x54]
mov ecx, dword [esp + 0x60]
add edi, edi
adc ecx, ecx
or edi, ecx
jne 0x4b8fe0
mov edi, 1
jmp 0x4b8fe2
xor edi, edi
xor ecx, ecx
test esi, esi
sete cl
and ecx, edi
not ecx
and eax, ecx
jmp 0x4b8f7d
fnstcw word [esp + 0x98]
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x10], ecx
and ecx, 0xc00
mov dword [esp + 4], ecx
jne 0x4b901e
mov ecx, dword [esp + 0x60]
sub ecx, 0
jl 0x4b9428
jmp 0x4b9051
cmp dword [esp + 4], 0xc00
je 0x4b9051
xor ecx, ecx
or ecx, dword [esp + 0xa4]
je 0x4b9043
cmp dword [esp + 4], 0x400
je 0x4b941a
jmp 0x4b9051
cmp dword [esp + 4], 0x800
je 0x4b9469
mov dword [esp], 0
cmp dword [esp + 0x9c], 0x7ffd
jle 0x4b90ec
cmp dword [esp + 4], 0xc00
mov eax, dword [0x526d44]
fld qword [eax]
fmul st(0)
fstp qword [esp + 0x58]
je 0x4b940b
mov edx, dword [esp + 0xa4]
xor eax, eax
or edx, eax
je 0x4b90a6
cmp dword [esp + 4], 0x800
je 0x4b93cc
mov ecx, 1
jmp 0x4b90b6
cmp dword [esp + 4], 0x400
je 0x4b9407
xor ecx, ecx
mov esi, dword [ebp + 8]
shl ecx, 4
mov eax, dword [ecx + 0x51a490]
mov edx, dword [ecx + 0x51a494]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ebx, dword [ecx + 0x51a498]
mov ecx, dword [ecx + 0x51a49c]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ecx
add esp, 0xdc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x9c], 0x7ffd
je 0x4b9434
cmp dword [esp + 0x9c], 0
jge 0x4b8f15
cmp dword [esp + 0x9c], 0xffffffff
jl 0x4b914f
cmp dword [esp], 0
je 0x4b914f
mov esi, dword [esp + 0xc4]
mov ecx, ebx
sub ecx, 0xffffffff
sbb esi, 0x1ffff
jb 0x4b914f
mov ecx, dword [esp + 0xc4]
lea edi, [ebx + 1]
lea esi, [ecx - 0x1ffff]
or edi, esi
jne 0x4b9159
mov ecx, eax
sub ecx, 0xffffffff
mov esi, edx
sbb esi, 0xffffffff
jae 0x4b9159
mov dword [esp + 8], 1
jmp 0x4b9161
mov dword [esp + 8], 0
mov esi, dword [esp + 0x9c]
neg esi
mov dword [esp + 0x9c], esi
mov ecx, esi
and ecx, 0x3f
mov dword [esp + 0xc], ecx
mov ecx, esi
neg ecx
and ecx, 0x3f
cmp esi, 0x40
jge 0x4b9255
mov esi, dword [esp + 0x54]
or esi, dword [esp + 0x60]
je 0x4b919d
mov dword [esp], 1
jmp 0x4b91a4
mov dword [esp], 0
cmp ecx, 0x1f
ja 0x4b91bc
mov esi, edx
shld esi, eax, cl
mov dword [esp + 0x60], esi
mov edi, eax
shl edi, cl
mov dword [esp + 0x54], edi
jmp 0x4b91cc
mov dword [esp + 0x54], 0
mov esi, eax
shl esi, cl
mov dword [esp + 0x60], esi
mov esi, dword [esp + 0x54]
or esi, dword [esp]
mov dword [esp + 0x54], esi
cmp ecx, 0x1f
ja 0x4b91f3
mov esi, dword [esp + 0xc4]
shld esi, ebx, cl
mov dword [esp + 4], esi
mov edi, ebx
shl edi, cl
mov dword [esp], edi
jmp 0x4b9202
mov dword [esp], 0
mov esi, ebx
shl esi, cl
mov dword [esp + 4], esi
cmp dword [esp + 0xc], 0x1f
ja 0x4b9216
mov ecx, dword [esp + 0xc]
shrd eax, edx, cl
mov esi, edx
shr esi, cl
jmp 0x4b9220
mov ecx, dword [esp + 0xc]
xor esi, esi
mov eax, edx
shr eax, cl
or eax, dword [esp]
mov edx, dword [esp + 4]
or edx, esi
cmp dword [esp + 0xc], 0x1f
ja 0x4b923e
mov esi, dword [esp + 0xc4]
shrd ebx, esi, cl
shr esi, cl
jmp 0x4b9249
mov ebx, dword [esp + 0xc4]
shr ebx, cl
xor esi, esi
mov dword [esp + 0xc4], esi
jmp 0x4b92ef
je 0x4b939a
cmp dword [esp + 0x9c], 0x80
jge 0x4b92d6
or edx, dword [esp + 0x60]
or eax, edx
je 0x4b9277
mov eax, 1
jmp 0x4b9279
xor eax, eax
cmp ecx, 0x1f
ja 0x4b9296
mov edx, dword [esp + 0xc4]
shld edx, ebx, cl
mov dword [esp + 0x60], edx
mov esi, ebx
shl esi, cl
mov dword [esp + 0x54], esi
jmp 0x4b92a6
mov dword [esp + 0x54], 0
mov edx, ebx
shl edx, cl
mov dword [esp + 0x60], edx
or dword [esp + 0x54], eax
cmp dword [esp + 0xc], 0x1f
ja 0x4b92c5
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xc4]
mov eax, ebx
shrd eax, edx, cl
shr edx, cl
jmp 0x4b92e6
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0xc4]
shr eax, cl
xor edx, edx
jmp 0x4b92e6
mov dword [esp + 0x54], 1
xor eax, eax
xor edx, edx
mov dword [esp + 0x60], eax
xor ebx, ebx
mov dword [esp + 0xc4], ebx
cmp dword [esp + 8], 0
je 0x4b938a
mov ecx, dword [esp + 0x54]
or ecx, dword [esp + 0x60]
je 0x4b9322
mov ecx, dword [0x526d48]
fld qword [ecx]
fmul st(0)
fstp qword [esp + 0x58]
mov dword [esp + 0x9c], 0
jmp 0x4b8f23
test byte [esp + 0x10], 0x10
jne 0x4b934a
mov ecx, dword [0x526d48]
fld qword [ecx]
mov esi, dword [0x526d4c]
fmul qword [esi]
fstp qword [esp + 0x58]
mov dword [esp + 0x9c], 0
jmp 0x4b9355
mov dword [esp + 0x9c], 0
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
mov eax, dword [esp + 0x9c]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0xa4]
shl eax, 0x10
add eax, dword [esp + 0xc4]
or edx, eax
mov dword [ecx + 8], ebx
mov dword [ecx + 0xc], edx
add esp, 0xdc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x9c], 0
jmp 0x4b8f15
mov ecx, dword [esp + 0x54]
or ecx, dword [esp + 0x60]
je 0x4b93ae
mov dword [esp + 0x54], 1
jmp 0x4b93b6
mov dword [esp + 0x54], 0
or dword [esp + 0x54], eax
mov eax, ebx
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0xc4]
jmp 0x4b92e6
mov ebx, 1
mov esi, dword [ebp + 8]
shl ebx, 4
mov eax, dword [ebx + 0x51a4d0]
mov edx, dword [ebx + 0x51a4d4]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ecx, dword [ebx + 0x51a4d8]
mov ebx, dword [ebx + 0x51a4dc]
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 0x4b93d1
mov edx, dword [esp + 0xa4]
xor eax, eax
or edx, eax
jne 0x4b93cc
jmp 0x4b9407
mov ecx, dword [esp + 0x54]
or ecx, dword [esp + 0x60]
je 0x4b9051
mov dword [esp], 1
jmp 0x4b9058
mov ecx, dword [esp + 0xc4]
lea edi, [ebx + 1]
lea esi, [ecx - 0x1ffff]
or edi, esi
jne 0x4b8f15
lea esi, [eax + 1]
lea ecx, [edx + 1]
or esi, ecx
jne 0x4b8f15
cmp dword [esp], 0
jne 0x4b9069
jmp 0x4b8f15
mov ecx, dword [esp + 0x54]
or ecx, dword [esp + 0x60]
je 0x4b9051
mov dword [esp], 1
jmp 0x4b9058
mov ecx, dword [esp + 0x88]
sub ecx, dword [esp + 0xbc]
mov eax, dword [esp + 0x10]
sub eax, dword [esp + 0xc]
or ecx, eax
jne 0x4b8515
mov eax, dword [esp + 0x54]
lea eax, [eax + 0x3ffe]
cmp eax, 0x7ffd
jle 0x4b9547
fnstcw word [esp + 0x98]
mov ecx, dword [esp + 0x98]
mov eax, dword [0x526d44]
fld qword [eax]
fmul st(0)
fstp qword [esp + 0x58]
and ecx, 0xc00
cmp ecx, 0xc00
je 0x4b96ee
mov edx, dword [esp + 0xa4]
xor eax, eax
or edx, eax
je 0x4b9503
cmp ecx, 0x800
je 0x4b96af
mov ecx, 1
jmp 0x4b9511
cmp ecx, 0x400
je 0x4b96ea
xor ecx, ecx
mov esi, dword [ebp + 8]
shl ecx, 4
mov eax, dword [ecx + 0x51a490]
mov edx, dword [ecx + 0x51a494]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ebx, dword [ecx + 0x51a498]
mov ecx, dword [ecx + 0x51a49c]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ecx
add esp, 0xdc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test eax, eax
js 0x4b9587
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0xa4]
add eax, 0x3fff
shl eax, 0x10
or edx, eax
mov dword [ecx], 0
mov dword [ecx + 0xc], edx
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
add esp, 0xdc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp eax, 0xffffffcf
jle 0x4b95e9
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x54]
mov dword [eax], 0
add edx, 0x402e
mov dword [eax + 4], 0
mov dword [esp + 0x54], edx
cmp edx, 0x1f
ja 0x4b95bf
mov ecx, edx
xor edx, edx
mov eax, 1
shld edx, eax, cl
shl eax, cl
jmp 0x4b95ca
mov ecx, edx
xor eax, eax
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0xa4]
or ecx, edx
mov edx, dword [ebp + 8]
mov dword [edx + 8], eax
mov dword [edx + 0xc], ecx
add esp, 0xdc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp eax, 0xffffff8f
jle 0x4b9641
mov eax, dword [esp + 0x54]
add eax, 0x406e
mov dword [esp + 0x54], eax
cmp eax, 0x1f
ja 0x4b9610
mov ecx, eax
xor edx, edx
mov eax, 1
shld edx, eax, cl
shl eax, cl
jmp 0x4b961b
mov ecx, eax
xor eax, eax
mov edx, 1
shl edx, cl
mov ecx, dword [ebp + 8]
mov dword [ecx + 8], 0
mov dword [ecx], eax
mov eax, dword [esp + 0xa4]
mov dword [ecx + 4], edx
mov dword [ecx + 0xc], eax
add esp, 0xdc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
fnstcw word [esp + 0x98]
mov ecx, dword [esp + 0x98]
mov eax, dword [0x526d48]
fld qword [eax]
fmul st(0)
fstp qword [esp + 0x58]
and ecx, 0xc00
xor edx, edx
or edx, dword [esp + 0xa4]
je 0x4b967a
xor eax, eax
cmp ecx, 0x400
sete al
jmp 0x4b9685
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 + 0x51a4d0]
mov edx, dword [ebx + 0x51a4d4]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ecx, dword [ebx + 0x51a4d8]
mov ebx, dword [ebx + 0x51a4dc]
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 0x4b96b4
mov edx, dword [esp + 0xa4]
xor eax, eax
or edx, eax
jne 0x4b96af
jmp 0x4b96ea
mov eax, edi
or eax, dword [esp + 0x10]
je 0x4b970e
mov dword [esp], 1
jmp 0x4b9715
mov dword [esp], 0
mov eax, dword [esp]
mov ecx, dword [esp + 0x68]
or eax, ebx
mov dword [esp], eax
or ecx, eax
jne 0x4b972e
mov dword [esp], 1
jmp 0x4b976f
mov eax, dword [esp + 0x68]
sub eax, 0x10000
jae 0x4b9742
mov dword [esp], 2
jmp 0x4b976f
mov eax, dword [esp + 0x68]
sub eax, 0x7fff0000
jae 0x4b9756
mov dword [esp], 4
jmp 0x4b976f
jb 0x4b9768
mov ecx, dword [esp]
or ecx, eax
je 0x4b9768
mov dword [esp], 0x10
jmp 0x4b976f
mov dword [esp], 8
mov eax, dword [esp + 0xbc]
or eax, dword [esp + 0xc]
je 0x4b9786
mov dword [esp + 4], 1
jmp 0x4b978e
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
or eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0x64]
mov dword [esp + 4], eax
or ecx, eax
jne 0x4b97ac
mov ecx, 1
jmp 0x4b97e6
mov eax, dword [esp + 0x64]
sub eax, 0x10000
jae 0x4b97be
mov ecx, 2
jmp 0x4b97e6
mov eax, dword [esp + 0x64]
sub eax, 0x7fff0000
jae 0x4b97d0
mov ecx, 4
jmp 0x4b97e6
jb 0x4b97e1
mov ecx, dword [esp + 4]
or ecx, eax
je 0x4b97e1
mov ecx, 0x10
jmp 0x4b97e6
mov ecx, 8
mov eax, dword [esp]
or eax, ecx
mov dword [esp + 4], eax
test al, 0x10
je 0x4b99cd
cmp ecx, dword [esp]
je 0x4b986a
cmp dword [esp], 0x10
je 0x4b9820
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 0x4b9837
mov ecx, dword [ebp + 8]
mov eax, edi
mov edx, dword [esp + 0x10]
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 0x4b99b1
mov edx, dword [ebp + 8]
mov dword [edx + 8], eax
mov eax, dword [0x526d38]
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 0x4b99b1
mov edx, dword [esp + 0x58]
and edx, 0x8000
xor eax, eax
or edx, eax
jne 0x4b9881
mov eax, 1
jmp 0x4b9883
xor eax, eax
mov ecx, dword [esp + 8]
and ecx, 0x8000
xor edx, edx
or ecx, edx
jne 0x4b989a
mov ecx, 1
jmp 0x4b989c
xor ecx, ecx
mov edx, eax
or edx, ecx
je 0x4b98b0
mov edx, dword [0x526d38]
fld qword [edx]
fdiv st(0)
fstp qword [esp + 0x58]
cmp ecx, eax
je 0x4b98d7
test eax, eax
je 0x4b996d
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 0x4b99b1
mov edx, dword [esp + 0x68]
mov eax, ebx
sub eax, dword [esp + 0xc0]
sbb edx, dword [esp + 0x64]
jb 0x4b9912
mov eax, dword [esp + 0x68]
sub eax, dword [esp + 0x64]
mov edx, ebx
sub edx, dword [esp + 0xc0]
or edx, eax
jne 0x4b992d
mov eax, edi
sub eax, dword [esp + 0xbc]
mov edx, dword [esp + 0x10]
sbb edx, dword [esp + 0xc]
jae 0x4b992d
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 0x4b99b1
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0x64]
sub eax, ebx
sbb edx, dword [esp + 0x68]
jb 0x4b996d
mov eax, dword [esp + 0xc0]
sub eax, ebx
mov ebx, dword [esp + 0x64]
sub ebx, dword [esp + 0x68]
or eax, ebx
jne 0x4b9985
mov eax, dword [esp + 0xbc]
sub eax, dword [esp + 0x88]
mov edx, dword [esp + 0xc]
sbb edx, dword [esp + 0x10]
jae 0x4b9985
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 0x4b99b1
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0xc]
and ecx, 0x80000000
xor edx, edx
or ecx, edx
je 0x4b98bc
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], ecx
je 0x4b9a18
test byte [esp], 2
jne 0x4b9a18
mov eax, dword [0x526d38]
fld qword [eax]
fdiv st(0)
mov edx, dword [0x51a4f0]
mov ecx, dword [0x51a4f4]
mov edi, dword [ebp + 8]
fstp qword [esp + 0x58]
mov dword [edi], edx
mov dword [edi + 4], ecx
mov ebx, dword [0x51a4f8]
mov esi, dword [0x51a4fc]
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 0x4b9a82
test cl, 2
je 0x4b9a36
mov eax, dword [0x526d3c]
fld qword [eax]
mov edx, dword [0x526d40]
fmul qword [edx]
fstp qword [esp + 0x58]
mov edx, dword [esp + 0xa4]
xor eax, eax
or edx, eax
je 0x4b9a4a
mov ecx, 1
jmp 0x4b9a4c
xor ecx, ecx
mov esi, dword [ebp + 8]
shl ecx, 4
mov eax, dword [ecx + 0x51a490]
mov edx, dword [ecx + 0x51a494]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ebx, dword [ecx + 0x51a498]
mov ecx, dword [ecx + 0x51a49c]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ecx
add esp, 0xdc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test cl, 1
je 0x4b9ae6
mov eax, dword [0x526d40]
fld qword [eax]
mov edx, dword [0x526d38]
fdiv qword [edx]
mov ebx, dword [esp + 0xa4]
fstp qword [esp + 0x58]
xor ecx, ecx
or ebx, ecx
je 0x4b9aae
mov ecx, 1
jmp 0x4b9ab0
xor ecx, ecx
mov esi, dword [ebp + 8]
shl ecx, 4
mov eax, dword [ecx + 0x51a490]
mov edx, dword [ecx + 0x51a494]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ebx, dword [ecx + 0x51a498]
mov ecx, dword [ecx + 0x51a49c]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ecx
add esp, 0xdc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test byte [esp], 1
jne 0x4b9af1
test cl, 8
je 0x4b9b57
test byte [esp + 4], 2
je 0x4b9b0b
mov eax, dword [0x526d3c]
fld qword [eax]
mov edx, dword [0x526d40]
fmul qword [edx]
fstp qword [esp + 0x58]
mov edx, dword [esp + 0xa4]
xor eax, eax
or edx, eax
je 0x4b9b1f
mov ecx, 1
jmp 0x4b9b21
xor ecx, ecx
mov esi, dword [ebp + 8]
shl ecx, 4
mov eax, dword [ecx + 0x51a4b0]
mov edx, dword [ecx + 0x51a4b4]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ebx, dword [ecx + 0x51a4b8]
mov ecx, dword [ecx + 0x51a4bc]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ecx
add esp, 0xdc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x60], 0
mov eax, dword [0x526d3c]
fld qword [eax]
mov ecx, dword [0x526d40]
fmul qword [ecx]
fstp qword [esp + 0x58]
jne 0x4b9d26
mov eax, dword [esp + 0xc0]
mov dword [esp + 4], eax
or eax, esi
mov dword [esp], esi
jne 0x4b9ba3
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 0x4b9bab
mov dword [esp + 0x60], 0xfffffff1
mov eax, dword [esp]
sub eax, 1
jae 0x4b9bc0
mov eax, dword [esp + 0x60]
add eax, 0x20
mov dword [esp + 0x60], eax
jmp 0x4b9bc7
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 0x4b9cb0
cmp dword [esp + 0x60], 0x1f
ja 0x4b9bfb
mov eax, dword [esp + 0xc0]
shld esi, eax, cl
shl eax, cl
mov dword [esp + 8], eax
jmp 0x4b9c0c
mov esi, dword [esp + 0xc0]
shl esi, cl
mov dword [esp + 8], 0
neg ecx
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4b9c3b
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 0x4b9c50
mov eax, dword [esp + 0xc]
shr eax, cl
mov dword [esp + 0xc0], eax
mov dword [esp + 4], 0
or esi, dword [esp + 4]
mov eax, dword [esp + 8]
or dword [esp + 0xc0], eax
cmp dword [esp + 0x60], 0x1f
ja 0x4b9c8a
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 0x4b9ca3
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0xbc]
shl eax, cl
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
mov dword [esp + 0xbc], eax
jmp 0x4b9d1b
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4b9cd1
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0xbc]
shld esi, eax, cl
shl eax, cl
mov dword [esp + 0xc0], eax
jmp 0x4b9ce5
mov esi, dword [esp + 0xbc]
shl esi, cl
mov dword [esp + 0xc0], 0
mov ecx, dword [esp + 0xc0]
xor edi, edi
xor eax, eax
cmp dword [esp + 0x60], 0x40
sete al
test eax, eax
je 0x4b9d03
mov ecx, dword [esp + 0xbc]
je 0x4b9d09
mov esi, 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 0x4b84db
mov dword [esp + 4], ebx
mov eax, ebx
mov dword [esp], edx
or eax, edx
jne 0x4b9d5a
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 0x4b9d62
mov dword [esp + 0x54], 0xfffffff1
mov eax, dword [esp]
sub eax, 1
jae 0x4b9d77
mov eax, dword [esp + 0x54]
add eax, 0x20
mov dword [esp + 0x54], eax
jmp 0x4b9d7e
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 0x4b9e32
cmp dword [esp + 0x54], 0x1f
ja 0x4b9dab
shld edx, ebx, cl
shl ebx, cl
mov dword [esp + 4], ebx
jmp 0x4b9db7
mov dword [esp + 4], 0
mov edx, ebx
shl edx, cl
neg ecx
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4b9dd6
mov ebx, dword [esp + 0x88]
mov eax, dword [esp + 0x10]
shrd ebx, eax, cl
shr eax, cl
mov dword [esp], eax
jmp 0x4b9de3
mov ebx, dword [esp + 0x10]
shr ebx, cl
mov dword [esp], 0
or ebx, dword [esp + 4]
or edx, dword [esp]
cmp dword [esp + 0x54], 0x1f
ja 0x4b9e0e
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 0x4b9e26
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 0x4b9e7f
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4b9e4c
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x88]
shld edx, ebx, cl
shl ebx, cl
jmp 0x4b9e57
mov edx, dword [esp + 0x88]
shl edx, cl
xor ebx, ebx
xor ecx, ecx
xor eax, eax
cmp dword [esp + 0x54], 0x40
sete al
test eax, eax
je 0x4b9e6e
mov ebx, dword [esp + 0x88]
je 0x4b9e74
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 0x4b84db
test dword [0x53a0b4], 0xfffffe00
jne 0x4b69d0
test dword [0x53a0b4], 0xffffffff
jne 0x4b8420
call fcn.004b12f0
jmp fcn.004b9e90