Function at 0x4abb50
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 0x4a98cc
mov edi, dword [esp + 8]
lea edi, [edi - 1]
cmp edi, 0x7ffd
ja 0x4a98cc
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 0x4a9653
cmp esi, edx
jb 0x4a8760
jne 0x4a87ad
cmp eax, dword [esp + 0x98]
ja 0x4a8760
jne 0x4a87ad
mov edi, dword [esp + 0x44]
cmp edi, dword [esp + 0x90]
ja 0x4a8760
cmp edi, dword [esp + 0x90]
jne 0x4a87ad
mov edi, dword [esp + 0x48]
cmp edi, dword [esp + 0x94]
jbe 0x4a87ad
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 0x4a87e6
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 0x4a8844
jne 0x4a886d
cmp eax, dword [esp + 0x98]
jb 0x4a886d
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 0x4a8977
cmp esi, edx
ja 0x4a887b
mov dword [esp + 0x78], 0xffffffff
jmp 0x4a888b
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 0x4a88d7
test eax, eax
je 0x4a88de
cmp ecx, dword [esp + 4]
jne 0x4a88de
mov eax, 1
jmp 0x4a88e0
xor eax, eax
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x80], esi
neg edx
add edx, esi
sub edx, eax
js 0x4a88fd
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], ebx
jmp 0x4a8942
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 0x4a8924
test eax, eax
je 0x4a892b
cmp ecx, edi
jne 0x4a892b
mov eax, 1
jmp 0x4a892d
xor eax, eax
add edx, eax
js 0x4a8900
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 0x4a8950
mov dword [esp + 0x64], 0xffffffff
jmp 0x4a8977
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 0x4a8ac0
test eax, eax
je 0x4a8aca
cmp dword [esp + 0x9c], 0
jne 0x4a8aca
mov eax, 1
mov dword [esp], eax
jmp 0x4a8ad1
mov dword [esp], 0
mov eax, dword [esp + 0x48]
neg ebx
add ebx, eax
sub ebx, dword [esp]
cmp ebx, eax
ja 0x4a8aec
cmp dword [esp], 0
je 0x4a8af6
cmp ebx, dword [esp + 0x48]
jne 0x4a8af6
mov eax, 1
mov dword [esp], eax
jmp 0x4a8afd
mov dword [esp], 0
mov eax, dword [esp + 0x44]
neg esi
add esi, eax
sub esi, dword [esp]
cmp esi, eax
ja 0x4a8b18
cmp dword [esp], 0
je 0x4a8b22
cmp esi, dword [esp + 0x44]
jne 0x4a8b22
mov eax, 1
mov dword [esp], eax
jmp 0x4a8b29
mov dword [esp], 0
mov eax, dword [esp + 4]
neg edx
add edx, eax
sub edx, dword [esp]
cmp edx, eax
ja 0x4a8b44
cmp dword [esp], 0
je 0x4a8b4e
cmp edx, dword [esp + 4]
jne 0x4a8b4e
mov eax, 1
mov dword [esp], eax
jmp 0x4a8b55
mov dword [esp], 0
mov eax, dword [esp + 0x80]
sub eax, ecx
sub eax, dword [esp]
mov dword [esp + 0x80], eax
jns 0x4a8c71
mov dword [esp + 0x84], edi
mov ecx, dword [esp + 0x88]
dec ecx
mov dword [esp + 0x88], ecx
cmp ecx, 0xffffffff
jne 0x4a8b96
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 0x4a8bf8
cmp dword [esp], 0
je 0x4a8bff
mov ecx, dword [esp + 0x9c]
cmp ecx, dword [esp + 0x90]
jne 0x4a8bff
mov ecx, 1
jmp 0x4a8c01
xor ecx, ecx
mov edi, dword [esp + 0x98]
add ebx, edi
add ebx, ecx
cmp ebx, edi
jb 0x4a8c1d
test ecx, ecx
je 0x4a8c24
cmp ebx, dword [esp + 0x98]
jne 0x4a8c24
mov ecx, 1
jmp 0x4a8c26
xor ecx, ecx
mov edi, dword [esp + 0x84]
add esi, edi
add esi, ecx
cmp esi, edi
jb 0x4a8c42
test ecx, ecx
je 0x4a8c49
cmp esi, dword [esp + 0x84]
jne 0x4a8c49
mov ecx, 1
jmp 0x4a8c4b
xor ecx, ecx
add edx, ecx
test ecx, ecx
je 0x4a8c5c
test edx, edx
jne 0x4a8c5c
mov ecx, 1
jmp 0x4a8c5e
xor ecx, ecx
add eax, ecx
js 0x4a8b75
mov edx, dword [esp + 0x88]
mov dword [esp + 0x64], edx
mov dword [esp + 0x5c], esi
cmp edi, esi
mov dword [esp + 0x58], ebx
ja 0x4a8c87
mov dword [esp + 0x68], 0xffffffff
jmp 0x4a8c9b
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 0x4a8cf3
cmp dword [esp + 4], 0
je 0x4a8cfd
cmp esi, dword [esp]
jne 0x4a8cfd
mov ebx, 1
mov dword [esp], ebx
jmp 0x4a8d04
mov dword [esp], 0
mov ebx, dword [esp + 0x5c]
sub ebx, edx
sub ebx, dword [esp]
js 0x4a8d19
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], eax
jmp 0x4a8d56
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 0x4a8d3d
test edx, edx
je 0x4a8d44
cmp esi, edi
jne 0x4a8d44
mov edx, 1
jmp 0x4a8d46
xor edx, edx
add ebx, edx
js 0x4a8d19
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], eax
mov dword [esp + 0x68], ecx
cmp edi, esi
ja 0x4a8d64
mov dword [esp + 0x6c], 0xffffffff
jmp 0x4a8d74
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 0x4a90b1
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 0x4a8eda
test eax, eax
je 0x4a8ee5
cmp dword [esp + 0x80], 0
jne 0x4a8ee5
mov eax, 1
mov dword [esp + 4], eax
jmp 0x4a8eed
mov dword [esp + 4], 0
mov eax, dword [esp + 0xa0]
neg edi
add edi, eax
sub edi, dword [esp + 4]
cmp edi, eax
ja 0x4a8f10
cmp dword [esp + 4], 0
je 0x4a8f1b
cmp edi, dword [esp + 0xa0]
jne 0x4a8f1b
mov eax, 1
mov dword [esp + 4], eax
jmp 0x4a8f23
mov dword [esp + 4], 0
mov eax, dword [esp + 0x9c]
neg esi
add esi, eax
sub esi, dword [esp + 4]
cmp esi, eax
ja 0x4a8f46
cmp dword [esp + 4], 0
je 0x4a8f51
cmp esi, dword [esp + 0x9c]
jne 0x4a8f51
mov eax, 1
mov dword [esp + 8], eax
jmp 0x4a8f59
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 0x4a8f7a
cmp dword [esp + 8], 0
je 0x4a8f85
cmp edx, dword [esp + 4]
jne 0x4a8f85
mov eax, 1
mov dword [esp + 4], eax
jmp 0x4a8f8d
mov dword [esp + 4], 0
mov eax, dword [esp + 0x5c]
sub eax, dword [esp]
sub eax, dword [esp + 4]
jns 0x4a9094
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 0x4a9019
cmp dword [esp + 4], 0
je 0x4a9020
mov ecx, eax
cmp ecx, dword [esp + 0x90]
jne 0x4a9020
mov ecx, 1
jmp 0x4a9022
xor ecx, ecx
mov eax, dword [esp + 0x98]
add edi, eax
add edi, ecx
cmp edi, eax
jb 0x4a903e
test ecx, ecx
je 0x4a9045
cmp edi, dword [esp + 0x98]
jne 0x4a9045
mov ecx, 1
jmp 0x4a9047
xor ecx, ecx
mov eax, dword [esp + 0x88]
add esi, eax
add esi, ecx
cmp esi, eax
jb 0x4a9063
test ecx, ecx
je 0x4a906a
cmp esi, dword [esp + 0x88]
jne 0x4a906a
mov ecx, 1
jmp 0x4a906c
xor ecx, ecx
add edx, ecx
test ecx, ecx
je 0x4a907d
test edx, edx
jne 0x4a907d
mov ecx, 1
jmp 0x4a907f
xor ecx, ecx
mov eax, dword [esp]
add eax, ecx
mov dword [esp], eax
js 0x4a8fa8
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 0x4a922a
test edx, edx
je 0x4a91f0
fnstcw word [esp + 0x54]
mov edi, dword [esp + 0x54]
mov eax, dword [0x4ddbf0]
mov ecx, dword [0x4ddbf8]
movsd xmm0, qword [eax]
addsd xmm0, qword [ecx]
movsd qword [esp + 0x20], xmm0
and edi, 0xc00
jne 0x4a9134
test edx, edx
jl 0x4a918f
jmp 0x4a9155
cmp edi, 0xc00
je 0x4a9155
cmp dword [esp + 0x74], 0
je 0x4a914d
cmp edi, 0x400
je 0x4a918f
jmp 0x4a9155
cmp edi, 0x800
je 0x4a918f
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 0x4a91ba
mov eax, dword [esp + 0x68]
inc eax
jne 0x4a91b0
mov ebx, dword [esp + 0x64]
mov esi, dword [esp + 0x78]
inc ebx
inc esi
test ebx, ebx
cmovne esi, dword [esp + 0x78]
jmp 0x4a91c6
mov esi, dword [esp + 0x78]
mov ebx, dword [esp + 0x64]
jmp 0x4a91c6
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 0x4a9165
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 0x4a9244
mov ecx, edx
shr ecx, 0x1f
jmp 0x4a926c
cmp eax, 0xc00
je 0x4a926a
cmp dword [esp + 0x74], 0
je 0x4a925f
cmp eax, 0x400
je 0x4a95f3
jmp 0x4a926a
cmp eax, 0x800
je 0x4a9641
xor ecx, ecx
cmp dword [esp + 0x70], 0x7ffd
jle 0x4a92f1
mov edx, dword [0x4ddbf4]
movsd xmm0, qword [edx]
mulsd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
cmp eax, 0xc00
je 0x4a95c4
cmp dword [esp + 0x74], 0
je 0x4a92a9
cmp eax, 0x800
je 0x4a95c4
jmp 0x4a92b4
cmp eax, 0x400
je 0x4a95c4
mov esi, dword [esp + 0x74]
mov ebx, dword [ebp + 8]
shr esi, 0x1b
mov eax, dword [esi + 0x4d7330]
mov dword [ebx], eax
mov edx, dword [esi + 0x4d7334]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 0x4d7338]
mov dword [ebx + 8], ecx
mov edx, dword [esi + 0x4d733c]
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 0x4a9605
cmp dword [esp + 0x70], 0
jge 0x4a90fd
cmp dword [esp + 0x70], 0xffffffff
jge 0x4a9317
mov ebx, dword [esp + 0x6c]
jmp 0x4a9354
test ecx, ecx
jne 0x4a9321
mov ebx, dword [esp + 0x6c]
jmp 0x4a9354
cmp dword [esp + 0x78], 0x1ffff
jae 0x4a9331
mov ebx, dword [esp + 0x6c]
jmp 0x4a9354
jne 0x4a935f
cmp dword [esp + 0x64], 0xffffffff
jae 0x4a9340
mov ebx, dword [esp + 0x6c]
jmp 0x4a9354
jne 0x4a935f
cmp dword [esp + 0x68], 0xffffffff
mov ebx, dword [esp + 0x6c]
jb 0x4a9354
jne 0x4a9363
cmp ebx, 0xffffffff
jae 0x4a9363
mov eax, 1
mov dword [esp + 8], eax
jmp 0x4a936b
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 0x4a93df
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 0x4a94c0
je 0x4a95a7
cmp dword [esp + 0x70], 0x40
jge 0x4a9434
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 0x4a94be
je 0x4a9587
cmp dword [esp + 0x70], 0x60
jge 0x4a9476
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 0x4a94bc
je 0x4a9567
cmp dword [esp + 0x70], 0x80
jge 0x4a94b3
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 0x4a94ba
xor edi, edi
mov edx, 1
xor ebx, ebx
xor esi, esi
xor eax, eax
cmp dword [esp + 8], 0
je 0x4a954a
test edx, edx
je 0x4a94ff
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 [0x4ddbf8]
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
jmp 0x4a9105
test byte [esp + 0x10], 0x10
jne 0x4a953d
mov edx, dword [0x4ddbf8]
mov ecx, dword [0x4ddbfc]
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 0x4a9200
mov dword [esp + 0x70], 0
jmp 0x4a9200
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 0x4a90fd
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 0x4a94ba
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 0x4a94bc
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 0x4a94be
mov esi, dword [esp + 0x74]
mov ebx, dword [ebp + 8]
shr esi, 0x1b
mov eax, dword [esi + 0x4d7370]
mov dword [ebx], eax
mov edx, dword [esi + 0x4d7374]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 0x4d7378]
mov dword [ebx + 8], ecx
mov edx, dword [esi + 0x4d737c]
jmp 0x4a92de
test edx, edx
je 0x4a926a
mov ecx, 1
jmp 0x4a926c
cmp dword [esp + 0x78], 0x1ffff
jne 0x4a90fd
cmp dword [esp + 0x64], 0xffffffff
jne 0x4a90fd
cmp dword [esp + 0x68], 0xffffffff
jne 0x4a90fd
cmp dword [esp + 0x6c], 0xffffffff
jne 0x4a90fd
test ecx, ecx
jne 0x4a9276
jmp 0x4a90fd
test edx, edx
je 0x4a926a
mov ecx, 1
jmp 0x4a926c
cmp eax, dword [esp + 0x98]
jne 0x4a8728
mov edi, dword [esp + 0x44]
cmp edi, dword [esp + 0x90]
jne 0x4a8728
mov edi, dword [esp + 0x48]
cmp edi, dword [esp + 0x94]
jne 0x4a8728
lea eax, [ebx + 0x3ffe]
cmp eax, 0x7ffd
jle 0x4a9726
mov dword [esp + 0x60], esi
mov dword [esp + 0x5c], edx
fnstcw word [esp + 0x54]
mov edx, dword [esp + 0x54]
mov eax, dword [0x4ddbf4]
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
and edx, 0xc00
cmp edx, 0xc00
je 0x4a989d
cmp dword [esp + 0x74], 0
je 0x4a96dd
cmp edx, 0x800
je 0x4a989d
jmp 0x4a96e9
cmp edx, 0x400
je 0x4a989d
mov esi, dword [esp + 0x74]
mov ebx, dword [ebp + 8]
shr esi, 0x1b
mov eax, dword [esi + 0x4d7330]
mov dword [ebx], eax
mov edx, dword [esi + 0x4d7334]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 0x4d7338]
mov dword [ebx + 8], ecx
mov edx, dword [esi + 0x4d733c]
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 0x4a9756
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 0x4a978d
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 0x4a97c2
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 0x4a97f7
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 0x4a982c
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 [0x4ddbf8]
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
and edx, 0xc00
cmp dword [esp + 0x74], 0
je 0x4a986e
xor ecx, ecx
mov eax, 1
cmp edx, 0x400
cmovne eax, ecx
jmp 0x4a987e
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 + 0x4d7370]
mov dword [ebx], eax
mov edx, dword [esi + 0x4d7374]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 0x4d7378]
mov dword [ebx + 8], ecx
mov edx, dword [esi + 0x4d737c]
jmp 0x4a9713
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 0x4a98f1
mov edi, 1
mov dword [esp + 4], edi
jmp 0x4a9926
cmp ecx, 0x10000
jae 0x4a9903
mov dword [esp + 4], 2
jmp 0x4a9926
cmp ecx, 0x7fff0000
jae 0x4a9915
mov dword [esp + 4], 4
jmp 0x4a9926
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 0x4a9955
mov edi, 1
mov dword [esp], edi
jmp 0x4a9987
cmp ecx, 0x10000
jae 0x4a9966
mov dword [esp], 2
jmp 0x4a9987
cmp ecx, 0x7fff0000
jae 0x4a9977
mov dword [esp], 4
jmp 0x4a9987
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 0x4a9b5b
mov edx, dword [esp + 4]
cmp edx, dword [esp]
je 0x4a99f8
cmp dword [esp + 4], 0x10
je 0x4a9fb7
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 0x4a9b43
mov eax, dword [0x4ddbe8]
mov edx, dword [ebp + 8]
movsd xmm0, qword [eax]
divsd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
mov eax, dword [edx + 0xc]
jmp 0x4a9b43
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 0x4a9a36
mov edx, dword [0x4ddbe8]
movsd xmm0, qword [edx]
divsd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
mov edx, dword [esp + 0x2c]
cmp edx, dword [esp + 0x28]
je 0x4a9a6c
cmp dword [esp + 0x2c], 0
je 0x4a9af9
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 0x4a9b43
mov edx, dword [esp + 0x1c]
cmp edx, dword [esp + 0x10]
jb 0x4a9aa3
mov dword [esp + 0x58], eax
jne 0x4a9ac4
cmp eax, dword [esp + 0x98]
jb 0x4a9aa3
jne 0x4a9ac4
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x90]
jb 0x4a9aa3
jne 0x4a9ac4
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x94]
jae 0x4a9ac4
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 0x4a9b43
mov eax, edx
cmp eax, dword [esp + 0x10]
ja 0x4a9af9
jne 0x4a9b17
mov eax, dword [esp + 0x98]
cmp eax, dword [esp + 0x58]
jb 0x4a9af9
jne 0x4a9b17
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x90]
ja 0x4a9af9
jne 0x4a9b17
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x94]
jbe 0x4a9b17
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 0x4a9b43
mov eax, dword [ebp + 0xc]
test dword [eax + 0xc], 0x80000000
je 0x4a9a4b
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 0x4a9ba9
test byte [esp + 4], 2
jne 0x4a9ba9
mov eax, dword [0x4ddbe8]
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 0x4a9c09
test byte [esp], 2
je 0x4a9bcf
mov eax, dword [0x4ddbec]
mov edx, dword [0x4ddbf0]
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 + 0x4d7330]
mov dword [edi], eax
mov edx, dword [ebx + 0x4d7334]
mov dword [edi + 4], edx
mov ecx, dword [ebx + 0x4d7338]
mov dword [edi + 8], ecx
mov esi, dword [ebx + 0x4d733c]
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 0x4aa043
test byte [esp + 4], 1
jne 0x4a9c20
test byte [esp], 8
je 0x4a9c78
test cl, 2
je 0x4a9c3e
mov eax, dword [0x4ddbec]
mov edx, dword [0x4ddbf0]
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 + 0x4d7350]
mov dword [edi], eax
mov edx, dword [ebx + 0x4d7354]
mov dword [edi + 4], edx
mov ecx, dword [ebx + 0x4d7358]
mov dword [edi + 8], ecx
mov esi, dword [ebx + 0x4d735c]
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 [0x4ddbf0]
mov dword [esp + 0x58], eax
mov eax, dword [0x4ddbec]
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp + 0x20], xmm0
jne 0x4a9e52
test esi, esi
je 0x4a9cbb
mov dword [esp + 8], 0
mov ecx, esi
shl ecx, 0xf
jmp 0x4a9cfa
cmp dword [esp + 0x98], 0
je 0x4a9cd6
mov ecx, dword [esp + 0x98]
mov dword [esp + 8], 0x11
jmp 0x4a9cfa
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 0x4a9d7c
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 0x4a9e45
je 0x4a9ff1
cmp dword [esp + 8], 0x40
jge 0x4a9dd9
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 0x4a9e3a
je 0x4a9fd7
cmp dword [esp + 8], 0x60
jge 0x4a9e11
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 0x4a9e2f
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 0x4a9e56
mov esi, dword [esp + 0x60]
test ebx, ebx
jne 0x4a9faa
mov edx, dword [esp + 0x5c]
test edx, edx
je 0x4a9e6f
mov edi, edx
shl edi, 0xf
xor ebx, ebx
jmp 0x4a9e98
mov edi, dword [esp + 0x58]
test edi, edi
je 0x4a9e7e
mov ebx, 0x11
jmp 0x4a9e98
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 0x4a9f06
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 0x4a9fa2
je 0x4aa02a
cmp ebx, 0x40
jge 0x4a9f4d
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 0x4a9f9a
je 0x4aa019
cmp ebx, 0x60
jge 0x4a9f78
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 0x4a9f92
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 0x4a8706
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
jmp 0x4a8706
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 0x4a99c9
mov esi, dword [esp + 0x90]
mov eax, dword [esp + 0x94]
mov dword [esp + 0x98], eax
jmp 0x4a9e2f
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 0x4a9e3a
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x58], eax
jmp 0x4a9f92
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 0x4a9f9a
mov eax, dword [0x4ddbf0]
mov edx, dword [0x4ddbe8]
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 + 0x4d7330]
mov dword [eax], ecx
mov ebx, dword [edi + 0x4d7334]
mov dword [eax + 4], ebx
mov esi, dword [edi + 0x4d7338]
mov dword [eax + 8], esi
mov ecx, dword [edi + 0x4d733c]
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 0x4ab3ae
mov eax, ecx
lea ecx, [eax - 1]
cmp ecx, 0x7ffd
ja 0x4ab3ae
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 0x4ab142
mov eax, dword [esp + 0xc0]
sub eax, esi
mov ecx, ebx
sbb ecx, edx
jb 0x4aa1cd
mov ecx, dword [esp + 0xc0]
sub ecx, esi
mov eax, ebx
sub eax, edx
or ecx, eax
jne 0x4aa21e
mov eax, dword [esp + 0xbc]
sub eax, dword [esp + 0x88]
mov ecx, dword [esp + 0xc]
sbb ecx, dword [esp + 0x10]
jae 0x4aa21e
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 0x4aa25c
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 0x4aa2ba
or eax, edx
jne 0x4aa2d2
mov eax, 0xffffffff
mov dword [esp + 0xd0], eax
mov dword [esp + 0xc4], eax
jmp 0x4aa415
mov eax, dword [esp + 0x90]
sub eax, dword [esp + 0xcc]
jb 0x4aa2ef
mov dword [esp + 0xc4], 0xffffffff
jmp 0x4aa324
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 0x4aa35c
mov edi, 1
jmp 0x4aa35e
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 0x4aa3ca
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 0x4aa3a0
mov esi, 1
jmp 0x4aa3a2
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 0x4aa389
mov esi, dword [esp + 0x8c]
mov dword [esp + 0xc4], edx
mov dword [esp], ecx
mov edx, eax
sub edx, dword [esp + 0xcc]
jb 0x4aa3e2
mov dword [esp + 0xd0], 0xffffffff
jmp 0x4aa415
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 0x4aa4e0
mov dword [esp + 0x78], 1
jmp 0x4aa4e6
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 0x4aa574
or edx, dword [esp + 0x7c]
jne 0x4aa58e
cmp dword [esp + 0x78], 0
je 0x4aa598
mov edx, dword [esp + 0x88]
neg edx
add edx, ebx
neg eax
add eax, edi
or edx, eax
jne 0x4aa598
mov dword [esp + 4], 1
jmp 0x4aa59e
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 0x4aa6b8
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 0x4aa63c
mov edx, 1
jmp 0x4aa63e
xor edx, edx
add ebx, dword [esp + 0xc0]
adc edi, dword [esp + 0xcc]
add ebx, edx
adc edi, 0
test edx, edx
je 0x4aa66b
mov esi, ebx
sub esi, dword [esp + 0xc0]
mov edx, edi
sub edx, dword [esp + 0xcc]
or esi, edx
je 0x4aa67f
mov edx, ebx
sub edx, dword [esp + 0xc0]
mov esi, edi
sbb esi, dword [esp + 0xcc]
jae 0x4aa686
mov edx, 1
jmp 0x4aa688
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 0x4aa5fd
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 0x4aa6d0
or edx, eax
jne 0x4aa6dc
mov esi, 0xffffffff
mov ecx, esi
jmp 0x4aa80c
mov eax, edi
sub eax, dword [esp + 0xcc]
jb 0x4aa6ee
mov ecx, 0xffffffff
jmp 0x4aa715
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 0x4aa760
mov dword [esp], 1
jmp 0x4aa765
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 0x4aa7cd
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 0x4aa7a6
mov esi, 1
jmp 0x4aa7a8
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 0x4aa78f
mov edi, dword [esp + 0xa8]
mov dword [esp + 4], ebx
mov ebx, dword [esp]
mov edx, eax
sub edx, dword [esp + 0xcc]
jb 0x4aa7df
mov esi, 0xffffffff
jmp 0x4aa80c
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 0x4aa82b
or eax, edx
jne 0x4aab57
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 0x4aa8f8
mov dword [esp + 0x90], 1
jmp 0x4aa901
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 0x4aa9d0
or eax, dword [esp + 0x94]
jne 0x4aa9f4
cmp dword [esp + 0x90], 0
je 0x4aa9fd
mov eax, dword [esp + 0xa0]
neg edx
neg eax
add edx, dword [esp + 0x74]
add eax, dword [esp + 0xb8]
or edx, eax
jne 0x4aa9fd
mov dword [esp], 1
jmp 0x4aaa02
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 0x4aab2f
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 0x4aaabd
mov ecx, 1
jmp 0x4aaabf
xor ecx, ecx
add eax, dword [esp + 0xc0]
adc edx, dword [esp + 0xcc]
add eax, ecx
adc edx, 0
test ecx, ecx
je 0x4aaaec
mov esi, eax
sub esi, dword [esp + 0xc0]
mov ecx, edx
sub ecx, dword [esp + 0xcc]
or esi, ecx
je 0x4aab00
mov ecx, eax
sub ecx, dword [esp + 0xc0]
mov esi, edx
sbb esi, dword [esp + 0xcc]
jae 0x4aab07
mov ecx, 1
jmp 0x4aab09
xor ecx, ecx
add ebx, ecx
adc edi, 0
xor ecx, ecx
mov esi, edi
sub esi, ecx
jl 0x4aaa5a
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 0x4aab53
mov eax, 1
jmp 0x4aab55
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 0x4aac8c
mov ecx, dword [esp + 0x54]
or ecx, dword [esp + 0x60]
je 0x4ab00f
fnstcw word [esp + 0x98]
mov ebx, dword [esp + 0x98]
mov ecx, dword [0x4ddbf0]
mov edi, dword [0x4ddbf8]
fld qword [ecx]
fadd qword [edi]
fstp qword [esp + 0x58]
and ebx, 0xc00
jne 0x4aabf3
mov edi, dword [esp + 0x60]
xor ecx, ecx
sub edi, ecx
jl 0x4aac4d
jmp 0x4aac18
cmp ebx, 0xc00
je 0x4aac18
xor ecx, ecx
or ecx, dword [esp + 0xa4]
je 0x4aac10
cmp ebx, 0x400
je 0x4aac4d
jmp 0x4aac18
cmp ebx, 0x800
je 0x4aac4d
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 0x4aac64
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 0x4aac7b
mov edi, 1
jmp 0x4aac7d
xor edi, edi
xor ecx, ecx
test ebx, ebx
sete cl
and ecx, edi
not ecx
and eax, ecx
jmp 0x4aac18
fnstcw word [esp + 0x98]
mov ebx, dword [esp + 0x98]
mov ecx, ebx
and ecx, 0xc00
mov dword [esp + 4], ecx
jne 0x4aacb8
mov edi, dword [esp + 0x60]
xor ecx, ecx
sub edi, ecx
jl 0x4ab0de
jmp 0x4aaceb
cmp dword [esp + 4], 0xc00
je 0x4aaceb
xor ecx, ecx
or ecx, dword [esp + 0xa4]
je 0x4aacdd
cmp dword [esp + 4], 0x400
je 0x4ab0d0
jmp 0x4aaceb
cmp dword [esp + 4], 0x800
je 0x4ab128
xor ecx, ecx
mov dword [esp], ecx
cmp dword [esp + 0x9c], 0x7ffd
jle 0x4aad84
cmp dword [esp + 4], 0xc00
mov eax, dword [0x4ddbf4]
fld qword [eax]
fmul st(0)
fstp qword [esp + 0x58]
je 0x4ab0c1
mov edx, dword [esp + 0xa4]
xor eax, eax
or edx, eax
je 0x4aad3e
cmp dword [esp + 4], 0x800
je 0x4ab082
mov eax, 1
jmp 0x4aad4e
cmp dword [esp + 4], 0x400
je 0x4ab0bd
xor eax, eax
mov esi, dword [ebp + 8]
shl eax, 4
mov edx, dword [eax + 0x4d7330]
mov ecx, dword [eax + 0x4d7334]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov ebx, dword [eax + 0x4d7338]
mov eax, dword [eax + 0x4d733c]
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 0x4ab0ea
cmp dword [esp + 0x9c], 0
jge 0x4aabaf
cmp dword [esp + 0x9c], 0xffffffff
jl 0x4aadf7
cmp dword [esp], 0
je 0x4aadf7
mov dword [esp], 0x1ffff
mov edi, esi
mov ecx, 0xffffffff
sub edi, ecx
mov ecx, dword [esp + 0xc4]
sbb ecx, dword [esp]
jb 0x4aadf7
mov ecx, esi
mov edi, 0xffffffff
sub ecx, edi
mov edi, dword [esp]
neg edi
add edi, dword [esp + 0xc4]
or ecx, edi
jne 0x4aae01
mov edi, eax
mov ecx, 0xffffffff
sub edi, ecx
mov edi, edx
sbb edi, ecx
jae 0x4aae01
mov dword [esp + 8], 1
jmp 0x4aae09
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 0x4aaf11
mov ecx, dword [esp + 0x54]
or ecx, dword [esp + 0x60]
je 0x4aae49
mov dword [esp], 1
jmp 0x4aae50
mov dword [esp], 0
cmp dword [esp + 0x10], 0x1f
ja 0x4aae6c
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 0x4aae7e
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 0x4aaeab
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 0x4aaebe
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 0x4aaed2
mov ecx, dword [esp + 0xc]
shrd eax, edx, cl
mov edi, edx
shr edi, cl
jmp 0x4aaedc
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 0x4aaefa
mov edi, dword [esp + 0xc4]
shrd esi, edi, cl
shr edi, cl
jmp 0x4aaf05
mov esi, dword [esp + 0xc4]
shr esi, cl
xor edi, edi
mov dword [esp + 0xc4], edi
jmp 0x4aafb1
je 0x4ab052
cmp dword [esp + 0x9c], 0x80
jge 0x4aaf98
or edx, dword [esp + 0x60]
or eax, edx
je 0x4aaf33
mov eax, 1
jmp 0x4aaf35
xor eax, eax
cmp dword [esp + 0x10], 0x1f
ja 0x4aaf56
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 0x4aaf68
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 0x4aaf87
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xc4]
mov eax, esi
shrd eax, edx, cl
shr edx, cl
jmp 0x4aafa8
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0xc4]
shr eax, cl
xor edx, edx
jmp 0x4aafa8
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 0x4ab044
mov ecx, dword [esp + 0x54]
or ecx, dword [esp + 0x60]
je 0x4aafe2
mov ecx, dword [0x4ddbf8]
fld qword [ecx]
fmul st(0)
fstp qword [esp + 0x58]
xor ebx, ebx
mov dword [esp + 0x9c], ebx
jmp 0x4aabbd
test bl, 0x10
jne 0x4ab006
mov ecx, dword [0x4ddbf8]
fld qword [ecx]
mov ebx, dword [0x4ddbfc]
fmul qword [ebx]
fstp qword [esp + 0x58]
xor edi, edi
mov dword [esp + 0x9c], edi
jmp 0x4ab00f
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 0x4aabaf
mov ecx, dword [esp + 0x54]
or ecx, dword [esp + 0x60]
je 0x4ab066
mov dword [esp + 0x54], 1
jmp 0x4ab06c
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 0x4aafa8
mov ebx, 1
mov esi, dword [ebp + 8]
shl ebx, 4
mov eax, dword [ebx + 0x4d7370]
mov edx, dword [ebx + 0x4d7374]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ecx, dword [ebx + 0x4d7378]
mov ebx, dword [ebx + 0x4d737c]
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 0x4ab087
mov edx, dword [esp + 0xa4]
xor eax, eax
or edx, eax
jne 0x4ab082
jmp 0x4ab0bd
mov ecx, dword [esp + 0x54]
or ecx, dword [esp + 0x60]
je 0x4aaceb
mov dword [esp], 1
jmp 0x4aacf0
mov ebx, 0x1ffff
mov ecx, 0xffffffff
mov edi, esi
sub edi, ecx
neg ebx
add ebx, dword [esp + 0xc4]
or edi, ebx
jne 0x4aabaf
mov ebx, eax
sub ebx, ecx
neg ecx
add ecx, edx
or ebx, ecx
jne 0x4aabaf
cmp dword [esp], 0
jne 0x4aad01
jmp 0x4aabaf
mov ecx, dword [esp + 0x54]
or ecx, dword [esp + 0x60]
je 0x4aaceb
mov dword [esp], 1
jmp 0x4aacf0
mov ecx, dword [esp + 0x88]
sub ecx, dword [esp + 0xbc]
mov eax, dword [esp + 0x10]
sub eax, dword [esp + 0xc]
or ecx, eax
jne 0x4aa195
mov eax, dword [esp + 0x54]
lea eax, [eax + 0x3ffe]
cmp eax, 0x7ffd
jle 0x4ab206
fnstcw word [esp + 0x98]
mov ecx, dword [esp + 0x98]
mov eax, dword [0x4ddbf4]
fld qword [eax]
fmul st(0)
fstp qword [esp + 0x58]
and ecx, 0xc00
cmp ecx, 0xc00
je 0x4ab39f
mov edx, dword [esp + 0xa4]
xor eax, eax
or edx, eax
je 0x4ab1c2
cmp ecx, 0x800
je 0x4ab360
mov eax, 1
jmp 0x4ab1d0
cmp ecx, 0x400
je 0x4ab39b
xor eax, eax
mov esi, dword [ebp + 8]
shl eax, 4
mov edx, dword [eax + 0x4d7330]
mov ecx, dword [eax + 0x4d7334]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov ebx, dword [eax + 0x4d7338]
mov eax, dword [eax + 0x4d733c]
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 0x4ab23c
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 0x4ab296
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 0x4ab26c
xor eax, eax
mov edx, 1
shld eax, edx, cl
shl edx, cl
jmp 0x4ab277
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 0x4ab2f2
mov eax, dword [esp + 0x54]
add eax, 0x406e
mov dword [esp + 0x54], eax
cmp eax, 0x1f
ja 0x4ab2c1
mov ecx, eax
xor eax, eax
xor ebx, ebx
mov edx, 1
shld ebx, edx, cl
mov eax, edx
shl eax, cl
jmp 0x4ab2cc
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 [0x4ddbf8]
fld qword [eax]
fmul st(0)
fstp qword [esp + 0x58]
and ecx, 0xc00
xor edx, edx
or edx, dword [esp + 0xa4]
je 0x4ab32b
xor eax, eax
cmp ecx, 0x400
sete al
jmp 0x4ab336
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 + 0x4d7370]
mov edx, dword [ebx + 0x4d7374]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ecx, dword [ebx + 0x4d7378]
mov ebx, dword [ebx + 0x4d737c]
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 0x4ab365
mov edx, dword [esp + 0xa4]
xor eax, eax
or edx, eax
jne 0x4ab360
jmp 0x4ab39b
mov eax, dword [esp + 0x88]
or eax, dword [esp + 0x10]
je 0x4ab3c4
mov dword [esp], 1
jmp 0x4ab3c9
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 0x4ab3e2
mov dword [esp], 1
jmp 0x4ab42d
mov ecx, dword [esp + 0x64]
mov eax, 0x10000
sub ecx, eax
jae 0x4ab3f8
mov dword [esp], 2
jmp 0x4ab42d
mov eax, dword [esp + 0x64]
mov ecx, 0x7fff0000
sub eax, ecx
jae 0x4ab40e
mov dword [esp], 4
jmp 0x4ab42d
mov eax, dword [esp + 0x64]
sub eax, ecx
jb 0x4ab426
mov ecx, dword [esp]
or ecx, eax
je 0x4ab426
mov dword [esp], 0x10
jmp 0x4ab42d
mov dword [esp], 8
mov eax, dword [esp + 0xbc]
or eax, dword [esp + 0xc]
je 0x4ab444
mov dword [esp + 4], 1
jmp 0x4ab44a
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 0x4ab468
mov eax, 1
jmp 0x4ab4ac
mov ecx, dword [esp + 0x68]
mov eax, 0x10000
sub ecx, eax
jae 0x4ab47c
mov eax, 2
jmp 0x4ab4ac
mov eax, dword [esp + 0x68]
mov ecx, 0x7fff0000
sub eax, ecx
jae 0x4ab490
mov eax, 4
jmp 0x4ab4ac
mov eax, dword [esp + 0x68]
sub eax, ecx
jb 0x4ab4a7
mov ecx, dword [esp + 4]
or ecx, eax
je 0x4ab4a7
mov eax, 0x10
jmp 0x4ab4ac
mov eax, 8
mov ecx, dword [esp]
or ecx, eax
test cl, 0x10
je 0x4ab696
cmp eax, dword [esp]
je 0x4ab530
cmp dword [esp], 0x10
je 0x4ab4e3
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 0x4ab4fd
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 0x4ab67a
mov edx, dword [ebp + 8]
mov dword [edx + 8], eax
mov eax, dword [0x4ddbe8]
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 0x4ab67a
mov edx, dword [esp + 0x58]
and edx, 0x8000
xor eax, eax
or edx, eax
jne 0x4ab547
mov eax, 1
jmp 0x4ab549
xor eax, eax
mov ecx, dword [esp + 8]
and ecx, 0x8000
xor edx, edx
or ecx, edx
jne 0x4ab560
mov edx, 1
jmp 0x4ab562
xor edx, edx
mov ecx, eax
or ecx, edx
je 0x4ab576
mov ecx, dword [0x4ddbe8]
fld qword [ecx]
fdiv st(0)
fstp qword [esp + 0x58]
cmp edx, eax
je 0x4ab59d
test eax, eax
je 0x4ab636
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 0x4ab67a
mov edx, dword [esp + 0x64]
mov eax, esi
sub eax, dword [esp + 0xc0]
sbb edx, dword [esp + 0x68]
jb 0x4ab5db
mov eax, dword [esp + 0x64]
sub eax, dword [esp + 0x68]
mov edx, esi
sub edx, dword [esp + 0xc0]
or edx, eax
jne 0x4ab5f6
mov eax, dword [esp + 0x88]
sub eax, dword [esp + 0xbc]
mov edx, edi
sbb edx, dword [esp + 0xc]
jae 0x4ab5f6
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 0x4ab67a
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0x68]
sub eax, esi
sbb edx, dword [esp + 0x64]
jb 0x4ab636
mov eax, dword [esp + 0xc0]
sub eax, esi
mov esi, dword [esp + 0x68]
sub esi, dword [esp + 0x64]
or eax, esi
jne 0x4ab64e
mov eax, dword [esp + 0xbc]
sub eax, dword [esp + 0x88]
mov edx, dword [esp + 0xc]
sbb edx, dword [esp + 0x10]
jae 0x4ab64e
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 0x4ab67a
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0xc]
and ecx, 0x80000000
xor edx, edx
or ecx, edx
je 0x4ab582
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 0x4ab6e1
test byte [esp], 2
jne 0x4ab6e1
mov eax, dword [0x4ddbe8]
fld qword [eax]
fdiv st(0)
mov edx, dword [0x4d7390]
mov ecx, dword [0x4d7394]
mov edi, dword [ebp + 8]
fstp qword [esp + 0x58]
mov dword [edi], edx
mov dword [edi + 4], ecx
mov ebx, dword [0x4d7398]
mov esi, dword [0x4d739c]
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 0x4ab74a
test al, 2
je 0x4ab6fe
mov eax, dword [0x4ddbec]
fld qword [eax]
mov edx, dword [0x4ddbf0]
fmul qword [edx]
fstp qword [esp + 0x58]
mov edx, dword [esp + 0xa4]
xor eax, eax
or edx, eax
je 0x4ab712
mov eax, 1
jmp 0x4ab714
xor eax, eax
mov esi, dword [ebp + 8]
shl eax, 4
mov edx, dword [eax + 0x4d7330]
mov ecx, dword [eax + 0x4d7334]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov ebx, dword [eax + 0x4d7338]
mov eax, dword [eax + 0x4d733c]
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 0x4ab7ad
mov eax, dword [0x4ddbf0]
fld qword [eax]
mov edx, dword [0x4ddbe8]
fdiv qword [edx]
mov ebx, dword [esp + 0xa4]
fstp qword [esp + 0x58]
xor ecx, ecx
or ebx, ecx
je 0x4ab775
mov eax, 1
jmp 0x4ab777
xor eax, eax
mov esi, dword [ebp + 8]
shl eax, 4
mov edx, dword [eax + 0x4d7330]
mov ecx, dword [eax + 0x4d7334]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov ebx, dword [eax + 0x4d7338]
mov eax, dword [eax + 0x4d733c]
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 0x4ab7b7
test al, 8
je 0x4ab81b
test cl, 2
je 0x4ab7cf
mov eax, dword [0x4ddbec]
fld qword [eax]
mov edx, dword [0x4ddbf0]
fmul qword [edx]
fstp qword [esp + 0x58]
mov edx, dword [esp + 0xa4]
xor eax, eax
or edx, eax
je 0x4ab7e3
mov eax, 1
jmp 0x4ab7e5
xor eax, eax
mov esi, dword [ebp + 8]
shl eax, 4
mov edx, dword [eax + 0x4d7350]
mov ecx, dword [eax + 0x4d7354]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov ebx, dword [eax + 0x4d7358]
mov eax, dword [eax + 0x4d735c]
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 [0x4ddbec]
fld qword [eax]
mov ecx, dword [0x4ddbf0]
fmul qword [ecx]
fstp qword [esp + 0x58]
jne 0x4ab9e3
mov eax, dword [esp + 0xc0]
mov dword [esp + 4], eax
or eax, ebx
mov dword [esp], ebx
jne 0x4ab867
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 0x4ab86f
mov dword [esp + 0x60], 0xfffffff1
mov ecx, dword [esp]
mov eax, 1
sub ecx, eax
jae 0x4ab888
mov eax, dword [esp + 0x60]
add eax, 0x20
mov dword [esp + 0x60], eax
jmp 0x4ab88f
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 0x4ab974
cmp dword [esp + 0x60], 0x1f
ja 0x4ab8c3
mov eax, dword [esp + 0xc0]
shld ebx, eax, cl
shl eax, cl
mov dword [esp + 8], eax
jmp 0x4ab8d2
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 0x4ab901
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 0x4ab916
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 0x4ab950
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 0x4ab967
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 0x4ab9d8
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4ab995
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0xbc]
shld ebx, eax, cl
shl eax, cl
mov dword [esp + 0xc0], eax
jmp 0x4ab9a7
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 0x4ab9c0
mov ecx, dword [esp + 0xbc]
je 0x4ab9c6
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 0x4aa15b
mov dword [esp + 4], esi
mov eax, esi
mov dword [esp], edx
or eax, edx
jne 0x4aba17
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 0x4aba1f
mov dword [esp + 0x54], 0xfffffff1
mov ecx, dword [esp]
mov eax, 1
sub ecx, eax
jae 0x4aba38
mov eax, dword [esp + 0x54]
add eax, 0x20
mov dword [esp + 0x54], eax
jmp 0x4aba3f
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 0x4abaf3
cmp dword [esp + 0x54], 0x1f
ja 0x4aba6c
shld edx, esi, cl
shl esi, cl
mov dword [esp + 4], esi
jmp 0x4aba78
mov dword [esp + 4], 0
mov edx, esi
shl edx, cl
neg ecx
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4aba97
mov esi, dword [esp + 0x88]
mov eax, dword [esp + 0x10]
shrd esi, eax, cl
shr eax, cl
mov dword [esp], eax
jmp 0x4abaa4
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 0x4abacf
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 0x4abae7
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 0x4abb40
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4abb0d
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x88]
shld edx, esi, cl
shl esi, cl
jmp 0x4abb18
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 0x4abb2f
mov esi, dword [esp + 0x88]
je 0x4abb35
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 0x4aa15b
test dword [0x4e86c4], 0xfffffe00
jne 0x4a8650
test dword [0x4e86c4], 0xffffffff
jne 0x4aa0a0
call fcn.004a2f50
jmp fcn.004abb50