Function at 0x4aff20
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 0x4adc9c
mov edi, dword [esp + 8]
lea edi, [edi - 1]
cmp edi, 0x7ffd
ja 0x4adc9c
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 0x4ada23
cmp esi, edx
jb 0x4acb30
jne 0x4acb7d
cmp eax, dword [esp + 0x98]
ja 0x4acb30
jne 0x4acb7d
mov edi, dword [esp + 0x44]
cmp edi, dword [esp + 0x90]
ja 0x4acb30
cmp edi, dword [esp + 0x90]
jne 0x4acb7d
mov edi, dword [esp + 0x48]
cmp edi, dword [esp + 0x94]
jbe 0x4acb7d
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 0x4acbb6
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 0x4acc14
jne 0x4acc3d
cmp eax, dword [esp + 0x98]
jb 0x4acc3d
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 0x4acd47
cmp esi, edx
ja 0x4acc4b
mov dword [esp + 0x78], 0xffffffff
jmp 0x4acc5b
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 0x4acca7
test eax, eax
je 0x4accae
cmp ecx, dword [esp + 4]
jne 0x4accae
mov eax, 1
jmp 0x4accb0
xor eax, eax
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x80], esi
neg edx
add edx, esi
sub edx, eax
js 0x4acccd
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], ebx
jmp 0x4acd12
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 0x4accf4
test eax, eax
je 0x4accfb
cmp ecx, edi
jne 0x4accfb
mov eax, 1
jmp 0x4accfd
xor eax, eax
add edx, eax
js 0x4accd0
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 0x4acd20
mov dword [esp + 0x64], 0xffffffff
jmp 0x4acd47
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 0x4ace90
test eax, eax
je 0x4ace9a
cmp dword [esp + 0x9c], 0
jne 0x4ace9a
mov eax, 1
mov dword [esp], eax
jmp 0x4acea1
mov dword [esp], 0
mov eax, dword [esp + 0x48]
neg ebx
add ebx, eax
sub ebx, dword [esp]
cmp ebx, eax
ja 0x4acebc
cmp dword [esp], 0
je 0x4acec6
cmp ebx, dword [esp + 0x48]
jne 0x4acec6
mov eax, 1
mov dword [esp], eax
jmp 0x4acecd
mov dword [esp], 0
mov eax, dword [esp + 0x44]
neg esi
add esi, eax
sub esi, dword [esp]
cmp esi, eax
ja 0x4acee8
cmp dword [esp], 0
je 0x4acef2
cmp esi, dword [esp + 0x44]
jne 0x4acef2
mov eax, 1
mov dword [esp], eax
jmp 0x4acef9
mov dword [esp], 0
mov eax, dword [esp + 4]
neg edx
add edx, eax
sub edx, dword [esp]
cmp edx, eax
ja 0x4acf14
cmp dword [esp], 0
je 0x4acf1e
cmp edx, dword [esp + 4]
jne 0x4acf1e
mov eax, 1
mov dword [esp], eax
jmp 0x4acf25
mov dword [esp], 0
mov eax, dword [esp + 0x80]
sub eax, ecx
sub eax, dword [esp]
mov dword [esp + 0x80], eax
jns 0x4ad041
mov dword [esp + 0x84], edi
mov ecx, dword [esp + 0x88]
dec ecx
mov dword [esp + 0x88], ecx
cmp ecx, 0xffffffff
jne 0x4acf66
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 0x4acfc8
cmp dword [esp], 0
je 0x4acfcf
mov ecx, dword [esp + 0x9c]
cmp ecx, dword [esp + 0x90]
jne 0x4acfcf
mov ecx, 1
jmp 0x4acfd1
xor ecx, ecx
mov edi, dword [esp + 0x98]
add ebx, edi
add ebx, ecx
cmp ebx, edi
jb 0x4acfed
test ecx, ecx
je 0x4acff4
cmp ebx, dword [esp + 0x98]
jne 0x4acff4
mov ecx, 1
jmp 0x4acff6
xor ecx, ecx
mov edi, dword [esp + 0x84]
add esi, edi
add esi, ecx
cmp esi, edi
jb 0x4ad012
test ecx, ecx
je 0x4ad019
cmp esi, dword [esp + 0x84]
jne 0x4ad019
mov ecx, 1
jmp 0x4ad01b
xor ecx, ecx
add edx, ecx
test ecx, ecx
je 0x4ad02c
test edx, edx
jne 0x4ad02c
mov ecx, 1
jmp 0x4ad02e
xor ecx, ecx
add eax, ecx
js 0x4acf45
mov edx, dword [esp + 0x88]
mov dword [esp + 0x64], edx
mov dword [esp + 0x5c], esi
cmp edi, esi
mov dword [esp + 0x58], ebx
ja 0x4ad057
mov dword [esp + 0x68], 0xffffffff
jmp 0x4ad06b
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 0x4ad0c3
cmp dword [esp + 4], 0
je 0x4ad0cd
cmp esi, dword [esp]
jne 0x4ad0cd
mov ebx, 1
mov dword [esp], ebx
jmp 0x4ad0d4
mov dword [esp], 0
mov ebx, dword [esp + 0x5c]
sub ebx, edx
sub ebx, dword [esp]
js 0x4ad0e9
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], eax
jmp 0x4ad126
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 0x4ad10d
test edx, edx
je 0x4ad114
cmp esi, edi
jne 0x4ad114
mov edx, 1
jmp 0x4ad116
xor edx, edx
add ebx, edx
js 0x4ad0e9
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], eax
mov dword [esp + 0x68], ecx
cmp edi, esi
ja 0x4ad134
mov dword [esp + 0x6c], 0xffffffff
jmp 0x4ad144
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 0x4ad481
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 0x4ad2aa
test eax, eax
je 0x4ad2b5
cmp dword [esp + 0x80], 0
jne 0x4ad2b5
mov eax, 1
mov dword [esp + 4], eax
jmp 0x4ad2bd
mov dword [esp + 4], 0
mov eax, dword [esp + 0xa0]
neg edi
add edi, eax
sub edi, dword [esp + 4]
cmp edi, eax
ja 0x4ad2e0
cmp dword [esp + 4], 0
je 0x4ad2eb
cmp edi, dword [esp + 0xa0]
jne 0x4ad2eb
mov eax, 1
mov dword [esp + 4], eax
jmp 0x4ad2f3
mov dword [esp + 4], 0
mov eax, dword [esp + 0x9c]
neg esi
add esi, eax
sub esi, dword [esp + 4]
cmp esi, eax
ja 0x4ad316
cmp dword [esp + 4], 0
je 0x4ad321
cmp esi, dword [esp + 0x9c]
jne 0x4ad321
mov eax, 1
mov dword [esp + 8], eax
jmp 0x4ad329
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 0x4ad34a
cmp dword [esp + 8], 0
je 0x4ad355
cmp edx, dword [esp + 4]
jne 0x4ad355
mov eax, 1
mov dword [esp + 4], eax
jmp 0x4ad35d
mov dword [esp + 4], 0
mov eax, dword [esp + 0x5c]
sub eax, dword [esp]
sub eax, dword [esp + 4]
jns 0x4ad464
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 0x4ad3e9
cmp dword [esp + 4], 0
je 0x4ad3f0
mov ecx, eax
cmp ecx, dword [esp + 0x90]
jne 0x4ad3f0
mov ecx, 1
jmp 0x4ad3f2
xor ecx, ecx
mov eax, dword [esp + 0x98]
add edi, eax
add edi, ecx
cmp edi, eax
jb 0x4ad40e
test ecx, ecx
je 0x4ad415
cmp edi, dword [esp + 0x98]
jne 0x4ad415
mov ecx, 1
jmp 0x4ad417
xor ecx, ecx
mov eax, dword [esp + 0x88]
add esi, eax
add esi, ecx
cmp esi, eax
jb 0x4ad433
test ecx, ecx
je 0x4ad43a
cmp esi, dword [esp + 0x88]
jne 0x4ad43a
mov ecx, 1
jmp 0x4ad43c
xor ecx, ecx
add edx, ecx
test ecx, ecx
je 0x4ad44d
test edx, edx
jne 0x4ad44d
mov ecx, 1
jmp 0x4ad44f
xor ecx, ecx
mov eax, dword [esp]
add eax, ecx
mov dword [esp], eax
js 0x4ad378
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 0x4ad5fa
test edx, edx
je 0x4ad5c0
fnstcw word [esp + 0x54]
mov edi, dword [esp + 0x54]
mov eax, dword [0x4e2c90]
mov ecx, dword [0x4e2c98]
movsd xmm0, qword [eax]
addsd xmm0, qword [ecx]
movsd qword [esp + 0x20], xmm0
and edi, 0xc00
jne 0x4ad504
test edx, edx
jl 0x4ad55f
jmp 0x4ad525
cmp edi, 0xc00
je 0x4ad525
cmp dword [esp + 0x74], 0
je 0x4ad51d
cmp edi, 0x400
je 0x4ad55f
jmp 0x4ad525
cmp edi, 0x800
je 0x4ad55f
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 0x4ad58a
mov eax, dword [esp + 0x68]
inc eax
jne 0x4ad580
mov ebx, dword [esp + 0x64]
mov esi, dword [esp + 0x78]
inc ebx
inc esi
test ebx, ebx
cmovne esi, dword [esp + 0x78]
jmp 0x4ad596
mov esi, dword [esp + 0x78]
mov ebx, dword [esp + 0x64]
jmp 0x4ad596
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 0x4ad535
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 0x4ad614
mov ecx, edx
shr ecx, 0x1f
jmp 0x4ad63c
cmp eax, 0xc00
je 0x4ad63a
cmp dword [esp + 0x74], 0
je 0x4ad62f
cmp eax, 0x400
je 0x4ad9c3
jmp 0x4ad63a
cmp eax, 0x800
je 0x4ada11
xor ecx, ecx
cmp dword [esp + 0x70], 0x7ffd
jle 0x4ad6c1
mov edx, dword [0x4e2c94]
movsd xmm0, qword [edx]
mulsd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
cmp eax, 0xc00
je 0x4ad994
cmp dword [esp + 0x74], 0
je 0x4ad679
cmp eax, 0x800
je 0x4ad994
jmp 0x4ad684
cmp eax, 0x400
je 0x4ad994
mov esi, dword [esp + 0x74]
mov ebx, dword [ebp + 8]
shr esi, 0x1b
mov eax, dword [esi + 0x4dc5f0]
mov dword [ebx], eax
mov edx, dword [esi + 0x4dc5f4]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 0x4dc5f8]
mov dword [ebx + 8], ecx
mov edx, dword [esi + 0x4dc5fc]
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 0x4ad9d5
cmp dword [esp + 0x70], 0
jge 0x4ad4cd
cmp dword [esp + 0x70], 0xffffffff
jge 0x4ad6e7
mov ebx, dword [esp + 0x6c]
jmp 0x4ad724
test ecx, ecx
jne 0x4ad6f1
mov ebx, dword [esp + 0x6c]
jmp 0x4ad724
cmp dword [esp + 0x78], 0x1ffff
jae 0x4ad701
mov ebx, dword [esp + 0x6c]
jmp 0x4ad724
jne 0x4ad72f
cmp dword [esp + 0x64], 0xffffffff
jae 0x4ad710
mov ebx, dword [esp + 0x6c]
jmp 0x4ad724
jne 0x4ad72f
cmp dword [esp + 0x68], 0xffffffff
mov ebx, dword [esp + 0x6c]
jb 0x4ad724
jne 0x4ad733
cmp ebx, 0xffffffff
jae 0x4ad733
mov eax, 1
mov dword [esp + 8], eax
jmp 0x4ad73b
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 0x4ad7af
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 0x4ad890
je 0x4ad977
cmp dword [esp + 0x70], 0x40
jge 0x4ad804
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 0x4ad88e
je 0x4ad957
cmp dword [esp + 0x70], 0x60
jge 0x4ad846
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 0x4ad88c
je 0x4ad937
cmp dword [esp + 0x70], 0x80
jge 0x4ad883
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 0x4ad88a
xor edi, edi
mov edx, 1
xor ebx, ebx
xor esi, esi
xor eax, eax
cmp dword [esp + 8], 0
je 0x4ad91a
test edx, edx
je 0x4ad8cf
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 [0x4e2c98]
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
jmp 0x4ad4d5
test byte [esp + 0x10], 0x10
jne 0x4ad90d
mov edx, dword [0x4e2c98]
mov ecx, dword [0x4e2c9c]
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 0x4ad5d0
mov dword [esp + 0x70], 0
jmp 0x4ad5d0
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 0x4ad4cd
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 0x4ad88a
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 0x4ad88c
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 0x4ad88e
mov esi, dword [esp + 0x74]
mov ebx, dword [ebp + 8]
shr esi, 0x1b
mov eax, dword [esi + 0x4dc630]
mov dword [ebx], eax
mov edx, dword [esi + 0x4dc634]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 0x4dc638]
mov dword [ebx + 8], ecx
mov edx, dword [esi + 0x4dc63c]
jmp 0x4ad6ae
test edx, edx
je 0x4ad63a
mov ecx, 1
jmp 0x4ad63c
cmp dword [esp + 0x78], 0x1ffff
jne 0x4ad4cd
cmp dword [esp + 0x64], 0xffffffff
jne 0x4ad4cd
cmp dword [esp + 0x68], 0xffffffff
jne 0x4ad4cd
cmp dword [esp + 0x6c], 0xffffffff
jne 0x4ad4cd
test ecx, ecx
jne 0x4ad646
jmp 0x4ad4cd
test edx, edx
je 0x4ad63a
mov ecx, 1
jmp 0x4ad63c
cmp eax, dword [esp + 0x98]
jne 0x4acaf8
mov edi, dword [esp + 0x44]
cmp edi, dword [esp + 0x90]
jne 0x4acaf8
mov edi, dword [esp + 0x48]
cmp edi, dword [esp + 0x94]
jne 0x4acaf8
lea eax, [ebx + 0x3ffe]
cmp eax, 0x7ffd
jle 0x4adaf6
mov dword [esp + 0x60], esi
mov dword [esp + 0x5c], edx
fnstcw word [esp + 0x54]
mov edx, dword [esp + 0x54]
mov eax, dword [0x4e2c94]
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
and edx, 0xc00
cmp edx, 0xc00
je 0x4adc6d
cmp dword [esp + 0x74], 0
je 0x4adaad
cmp edx, 0x800
je 0x4adc6d
jmp 0x4adab9
cmp edx, 0x400
je 0x4adc6d
mov esi, dword [esp + 0x74]
mov ebx, dword [ebp + 8]
shr esi, 0x1b
mov eax, dword [esi + 0x4dc5f0]
mov dword [ebx], eax
mov edx, dword [esi + 0x4dc5f4]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 0x4dc5f8]
mov dword [ebx + 8], ecx
mov edx, dword [esi + 0x4dc5fc]
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 0x4adb26
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 0x4adb5d
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 0x4adb92
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 0x4adbc7
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 0x4adbfc
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 [0x4e2c98]
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
and edx, 0xc00
cmp dword [esp + 0x74], 0
je 0x4adc3e
xor ecx, ecx
mov eax, 1
cmp edx, 0x400
cmovne eax, ecx
jmp 0x4adc4e
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 + 0x4dc630]
mov dword [ebx], eax
mov edx, dword [esi + 0x4dc634]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 0x4dc638]
mov dword [ebx + 8], ecx
mov edx, dword [esi + 0x4dc63c]
jmp 0x4adae3
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 0x4adcc1
mov edi, 1
mov dword [esp + 4], edi
jmp 0x4adcf6
cmp ecx, 0x10000
jae 0x4adcd3
mov dword [esp + 4], 2
jmp 0x4adcf6
cmp ecx, 0x7fff0000
jae 0x4adce5
mov dword [esp + 4], 4
jmp 0x4adcf6
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 0x4add25
mov edi, 1
mov dword [esp], edi
jmp 0x4add57
cmp ecx, 0x10000
jae 0x4add36
mov dword [esp], 2
jmp 0x4add57
cmp ecx, 0x7fff0000
jae 0x4add47
mov dword [esp], 4
jmp 0x4add57
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 0x4adf2b
mov edx, dword [esp + 4]
cmp edx, dword [esp]
je 0x4addc8
cmp dword [esp + 4], 0x10
je 0x4ae387
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 0x4adf13
mov eax, dword [0x4e2c88]
mov edx, dword [ebp + 8]
movsd xmm0, qword [eax]
divsd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
mov eax, dword [edx + 0xc]
jmp 0x4adf13
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 0x4ade06
mov edx, dword [0x4e2c88]
movsd xmm0, qword [edx]
divsd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
mov edx, dword [esp + 0x2c]
cmp edx, dword [esp + 0x28]
je 0x4ade3c
cmp dword [esp + 0x2c], 0
je 0x4adec9
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 0x4adf13
mov edx, dword [esp + 0x1c]
cmp edx, dword [esp + 0x10]
jb 0x4ade73
mov dword [esp + 0x58], eax
jne 0x4ade94
cmp eax, dword [esp + 0x98]
jb 0x4ade73
jne 0x4ade94
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x90]
jb 0x4ade73
jne 0x4ade94
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x94]
jae 0x4ade94
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 0x4adf13
mov eax, edx
cmp eax, dword [esp + 0x10]
ja 0x4adec9
jne 0x4adee7
mov eax, dword [esp + 0x98]
cmp eax, dword [esp + 0x58]
jb 0x4adec9
jne 0x4adee7
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x90]
ja 0x4adec9
jne 0x4adee7
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x94]
jbe 0x4adee7
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 0x4adf13
mov eax, dword [ebp + 0xc]
test dword [eax + 0xc], 0x80000000
je 0x4ade1b
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 0x4adf79
test byte [esp + 4], 2
jne 0x4adf79
mov eax, dword [0x4e2c88]
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 0x4adfd9
test byte [esp], 2
je 0x4adf9f
mov eax, dword [0x4e2c8c]
mov edx, dword [0x4e2c90]
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 + 0x4dc5f0]
mov dword [edi], eax
mov edx, dword [ebx + 0x4dc5f4]
mov dword [edi + 4], edx
mov ecx, dword [ebx + 0x4dc5f8]
mov dword [edi + 8], ecx
mov esi, dword [ebx + 0x4dc5fc]
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 0x4ae413
test byte [esp + 4], 1
jne 0x4adff0
test byte [esp], 8
je 0x4ae048
test cl, 2
je 0x4ae00e
mov eax, dword [0x4e2c8c]
mov edx, dword [0x4e2c90]
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 + 0x4dc610]
mov dword [edi], eax
mov edx, dword [ebx + 0x4dc614]
mov dword [edi + 4], edx
mov ecx, dword [ebx + 0x4dc618]
mov dword [edi + 8], ecx
mov esi, dword [ebx + 0x4dc61c]
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 [0x4e2c90]
mov dword [esp + 0x58], eax
mov eax, dword [0x4e2c8c]
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp + 0x20], xmm0
jne 0x4ae222
test esi, esi
je 0x4ae08b
mov dword [esp + 8], 0
mov ecx, esi
shl ecx, 0xf
jmp 0x4ae0ca
cmp dword [esp + 0x98], 0
je 0x4ae0a6
mov ecx, dword [esp + 0x98]
mov dword [esp + 8], 0x11
jmp 0x4ae0ca
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 0x4ae14c
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 0x4ae215
je 0x4ae3c1
cmp dword [esp + 8], 0x40
jge 0x4ae1a9
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 0x4ae20a
je 0x4ae3a7
cmp dword [esp + 8], 0x60
jge 0x4ae1e1
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 0x4ae1ff
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 0x4ae226
mov esi, dword [esp + 0x60]
test ebx, ebx
jne 0x4ae37a
mov edx, dword [esp + 0x5c]
test edx, edx
je 0x4ae23f
mov edi, edx
shl edi, 0xf
xor ebx, ebx
jmp 0x4ae268
mov edi, dword [esp + 0x58]
test edi, edi
je 0x4ae24e
mov ebx, 0x11
jmp 0x4ae268
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 0x4ae2d6
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 0x4ae372
je 0x4ae3fa
cmp ebx, 0x40
jge 0x4ae31d
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 0x4ae36a
je 0x4ae3e9
cmp ebx, 0x60
jge 0x4ae348
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 0x4ae362
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 0x4acad6
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
jmp 0x4acad6
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 0x4add99
mov esi, dword [esp + 0x90]
mov eax, dword [esp + 0x94]
mov dword [esp + 0x98], eax
jmp 0x4ae1ff
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 0x4ae20a
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x58], eax
jmp 0x4ae362
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 0x4ae36a
mov eax, dword [0x4e2c90]
mov edx, dword [0x4e2c88]
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 + 0x4dc5f0]
mov dword [eax], ecx
mov ebx, dword [edi + 0x4dc5f4]
mov dword [eax + 4], ebx
mov esi, dword [edi + 0x4dc5f8]
mov dword [eax + 8], esi
mov ecx, dword [edi + 0x4dc5fc]
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 0x4af77e
mov eax, ecx
lea ecx, [eax - 1]
cmp ecx, 0x7ffd
ja 0x4af77e
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 0x4af512
mov eax, dword [esp + 0xc0]
sub eax, esi
mov ecx, ebx
sbb ecx, edx
jb 0x4ae59d
mov ecx, dword [esp + 0xc0]
sub ecx, esi
mov eax, ebx
sub eax, edx
or ecx, eax
jne 0x4ae5ee
mov eax, dword [esp + 0xbc]
sub eax, dword [esp + 0x88]
mov ecx, dword [esp + 0xc]
sbb ecx, dword [esp + 0x10]
jae 0x4ae5ee
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 0x4ae62c
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 0x4ae68a
or eax, edx
jne 0x4ae6a2
mov eax, 0xffffffff
mov dword [esp + 0xd0], eax
mov dword [esp + 0xc4], eax
jmp 0x4ae7e5
mov eax, dword [esp + 0x90]
sub eax, dword [esp + 0xcc]
jb 0x4ae6bf
mov dword [esp + 0xc4], 0xffffffff
jmp 0x4ae6f4
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 0x4ae72c
mov edi, 1
jmp 0x4ae72e
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 0x4ae79a
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 0x4ae770
mov esi, 1
jmp 0x4ae772
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 0x4ae759
mov esi, dword [esp + 0x8c]
mov dword [esp + 0xc4], edx
mov dword [esp], ecx
mov edx, eax
sub edx, dword [esp + 0xcc]
jb 0x4ae7b2
mov dword [esp + 0xd0], 0xffffffff
jmp 0x4ae7e5
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 0x4ae8b0
mov dword [esp + 0x78], 1
jmp 0x4ae8b6
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 0x4ae944
or edx, dword [esp + 0x7c]
jne 0x4ae95e
cmp dword [esp + 0x78], 0
je 0x4ae968
mov edx, dword [esp + 0x88]
neg edx
add edx, ebx
neg eax
add eax, edi
or edx, eax
jne 0x4ae968
mov dword [esp + 4], 1
jmp 0x4ae96e
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 0x4aea88
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 0x4aea0c
mov edx, 1
jmp 0x4aea0e
xor edx, edx
add ebx, dword [esp + 0xc0]
adc edi, dword [esp + 0xcc]
add ebx, edx
adc edi, 0
test edx, edx
je 0x4aea3b
mov esi, ebx
sub esi, dword [esp + 0xc0]
mov edx, edi
sub edx, dword [esp + 0xcc]
or esi, edx
je 0x4aea4f
mov edx, ebx
sub edx, dword [esp + 0xc0]
mov esi, edi
sbb esi, dword [esp + 0xcc]
jae 0x4aea56
mov edx, 1
jmp 0x4aea58
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 0x4ae9cd
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 0x4aeaa0
or edx, eax
jne 0x4aeaac
mov esi, 0xffffffff
mov ecx, esi
jmp 0x4aebdc
mov eax, edi
sub eax, dword [esp + 0xcc]
jb 0x4aeabe
mov ecx, 0xffffffff
jmp 0x4aeae5
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 0x4aeb30
mov dword [esp], 1
jmp 0x4aeb35
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 0x4aeb9d
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 0x4aeb76
mov esi, 1
jmp 0x4aeb78
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 0x4aeb5f
mov edi, dword [esp + 0xa8]
mov dword [esp + 4], ebx
mov ebx, dword [esp]
mov edx, eax
sub edx, dword [esp + 0xcc]
jb 0x4aebaf
mov esi, 0xffffffff
jmp 0x4aebdc
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 0x4aebfb
or eax, edx
jne 0x4aef27
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 0x4aecc8
mov dword [esp + 0x90], 1
jmp 0x4aecd1
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 0x4aeda0
or eax, dword [esp + 0x94]
jne 0x4aedc4
cmp dword [esp + 0x90], 0
je 0x4aedcd
mov eax, dword [esp + 0xa0]
neg edx
neg eax
add edx, dword [esp + 0x74]
add eax, dword [esp + 0xb8]
or edx, eax
jne 0x4aedcd
mov dword [esp], 1
jmp 0x4aedd2
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 0x4aeeff
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 0x4aee8d
mov ecx, 1
jmp 0x4aee8f
xor ecx, ecx
add eax, dword [esp + 0xc0]
adc edx, dword [esp + 0xcc]
add eax, ecx
adc edx, 0
test ecx, ecx
je 0x4aeebc
mov esi, eax
sub esi, dword [esp + 0xc0]
mov ecx, edx
sub ecx, dword [esp + 0xcc]
or esi, ecx
je 0x4aeed0
mov ecx, eax
sub ecx, dword [esp + 0xc0]
mov esi, edx
sbb esi, dword [esp + 0xcc]
jae 0x4aeed7
mov ecx, 1
jmp 0x4aeed9
xor ecx, ecx
add ebx, ecx
adc edi, 0
xor ecx, ecx
mov esi, edi
sub esi, ecx
jl 0x4aee2a
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 0x4aef23
mov eax, 1
jmp 0x4aef25
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 0x4af05c
mov ecx, dword [esp + 0x54]
or ecx, dword [esp + 0x60]
je 0x4af3df
fnstcw word [esp + 0x98]
mov ebx, dword [esp + 0x98]
mov ecx, dword [0x4e2c90]
mov edi, dword [0x4e2c98]
fld qword [ecx]
fadd qword [edi]
fstp qword [esp + 0x58]
and ebx, 0xc00
jne 0x4aefc3
mov edi, dword [esp + 0x60]
xor ecx, ecx
sub edi, ecx
jl 0x4af01d
jmp 0x4aefe8
cmp ebx, 0xc00
je 0x4aefe8
xor ecx, ecx
or ecx, dword [esp + 0xa4]
je 0x4aefe0
cmp ebx, 0x400
je 0x4af01d
jmp 0x4aefe8
cmp ebx, 0x800
je 0x4af01d
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 0x4af034
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 0x4af04b
mov edi, 1
jmp 0x4af04d
xor edi, edi
xor ecx, ecx
test ebx, ebx
sete cl
and ecx, edi
not ecx
and eax, ecx
jmp 0x4aefe8
fnstcw word [esp + 0x98]
mov ebx, dword [esp + 0x98]
mov ecx, ebx
and ecx, 0xc00
mov dword [esp + 4], ecx
jne 0x4af088
mov edi, dword [esp + 0x60]
xor ecx, ecx
sub edi, ecx
jl 0x4af4ae
jmp 0x4af0bb
cmp dword [esp + 4], 0xc00
je 0x4af0bb
xor ecx, ecx
or ecx, dword [esp + 0xa4]
je 0x4af0ad
cmp dword [esp + 4], 0x400
je 0x4af4a0
jmp 0x4af0bb
cmp dword [esp + 4], 0x800
je 0x4af4f8
xor ecx, ecx
mov dword [esp], ecx
cmp dword [esp + 0x9c], 0x7ffd
jle 0x4af154
cmp dword [esp + 4], 0xc00
mov eax, dword [0x4e2c94]
fld qword [eax]
fmul st(0)
fstp qword [esp + 0x58]
je 0x4af491
mov edx, dword [esp + 0xa4]
xor eax, eax
or edx, eax
je 0x4af10e
cmp dword [esp + 4], 0x800
je 0x4af452
mov eax, 1
jmp 0x4af11e
cmp dword [esp + 4], 0x400
je 0x4af48d
xor eax, eax
mov esi, dword [ebp + 8]
shl eax, 4
mov edx, dword [eax + 0x4dc5f0]
mov ecx, dword [eax + 0x4dc5f4]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov ebx, dword [eax + 0x4dc5f8]
mov eax, dword [eax + 0x4dc5fc]
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 0x4af4ba
cmp dword [esp + 0x9c], 0
jge 0x4aef7f
cmp dword [esp + 0x9c], 0xffffffff
jl 0x4af1c7
cmp dword [esp], 0
je 0x4af1c7
mov dword [esp], 0x1ffff
mov edi, esi
mov ecx, 0xffffffff
sub edi, ecx
mov ecx, dword [esp + 0xc4]
sbb ecx, dword [esp]
jb 0x4af1c7
mov ecx, esi
mov edi, 0xffffffff
sub ecx, edi
mov edi, dword [esp]
neg edi
add edi, dword [esp + 0xc4]
or ecx, edi
jne 0x4af1d1
mov edi, eax
mov ecx, 0xffffffff
sub edi, ecx
mov edi, edx
sbb edi, ecx
jae 0x4af1d1
mov dword [esp + 8], 1
jmp 0x4af1d9
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 0x4af2e1
mov ecx, dword [esp + 0x54]
or ecx, dword [esp + 0x60]
je 0x4af219
mov dword [esp], 1
jmp 0x4af220
mov dword [esp], 0
cmp dword [esp + 0x10], 0x1f
ja 0x4af23c
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 0x4af24e
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 0x4af27b
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 0x4af28e
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 0x4af2a2
mov ecx, dword [esp + 0xc]
shrd eax, edx, cl
mov edi, edx
shr edi, cl
jmp 0x4af2ac
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 0x4af2ca
mov edi, dword [esp + 0xc4]
shrd esi, edi, cl
shr edi, cl
jmp 0x4af2d5
mov esi, dword [esp + 0xc4]
shr esi, cl
xor edi, edi
mov dword [esp + 0xc4], edi
jmp 0x4af381
je 0x4af422
cmp dword [esp + 0x9c], 0x80
jge 0x4af368
or edx, dword [esp + 0x60]
or eax, edx
je 0x4af303
mov eax, 1
jmp 0x4af305
xor eax, eax
cmp dword [esp + 0x10], 0x1f
ja 0x4af326
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 0x4af338
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 0x4af357
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xc4]
mov eax, esi
shrd eax, edx, cl
shr edx, cl
jmp 0x4af378
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0xc4]
shr eax, cl
xor edx, edx
jmp 0x4af378
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 0x4af414
mov ecx, dword [esp + 0x54]
or ecx, dword [esp + 0x60]
je 0x4af3b2
mov ecx, dword [0x4e2c98]
fld qword [ecx]
fmul st(0)
fstp qword [esp + 0x58]
xor ebx, ebx
mov dword [esp + 0x9c], ebx
jmp 0x4aef8d
test bl, 0x10
jne 0x4af3d6
mov ecx, dword [0x4e2c98]
fld qword [ecx]
mov ebx, dword [0x4e2c9c]
fmul qword [ebx]
fstp qword [esp + 0x58]
xor edi, edi
mov dword [esp + 0x9c], edi
jmp 0x4af3df
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 0x4aef7f
mov ecx, dword [esp + 0x54]
or ecx, dword [esp + 0x60]
je 0x4af436
mov dword [esp + 0x54], 1
jmp 0x4af43c
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 0x4af378
mov ebx, 1
mov esi, dword [ebp + 8]
shl ebx, 4
mov eax, dword [ebx + 0x4dc630]
mov edx, dword [ebx + 0x4dc634]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ecx, dword [ebx + 0x4dc638]
mov ebx, dword [ebx + 0x4dc63c]
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 0x4af457
mov edx, dword [esp + 0xa4]
xor eax, eax
or edx, eax
jne 0x4af452
jmp 0x4af48d
mov ecx, dword [esp + 0x54]
or ecx, dword [esp + 0x60]
je 0x4af0bb
mov dword [esp], 1
jmp 0x4af0c0
mov ebx, 0x1ffff
mov ecx, 0xffffffff
mov edi, esi
sub edi, ecx
neg ebx
add ebx, dword [esp + 0xc4]
or edi, ebx
jne 0x4aef7f
mov ebx, eax
sub ebx, ecx
neg ecx
add ecx, edx
or ebx, ecx
jne 0x4aef7f
cmp dword [esp], 0
jne 0x4af0d1
jmp 0x4aef7f
mov ecx, dword [esp + 0x54]
or ecx, dword [esp + 0x60]
je 0x4af0bb
mov dword [esp], 1
jmp 0x4af0c0
mov ecx, dword [esp + 0x88]
sub ecx, dword [esp + 0xbc]
mov eax, dword [esp + 0x10]
sub eax, dword [esp + 0xc]
or ecx, eax
jne 0x4ae565
mov eax, dword [esp + 0x54]
lea eax, [eax + 0x3ffe]
cmp eax, 0x7ffd
jle 0x4af5d6
fnstcw word [esp + 0x98]
mov ecx, dword [esp + 0x98]
mov eax, dword [0x4e2c94]
fld qword [eax]
fmul st(0)
fstp qword [esp + 0x58]
and ecx, 0xc00
cmp ecx, 0xc00
je 0x4af76f
mov edx, dword [esp + 0xa4]
xor eax, eax
or edx, eax
je 0x4af592
cmp ecx, 0x800
je 0x4af730
mov eax, 1
jmp 0x4af5a0
cmp ecx, 0x400
je 0x4af76b
xor eax, eax
mov esi, dword [ebp + 8]
shl eax, 4
mov edx, dword [eax + 0x4dc5f0]
mov ecx, dword [eax + 0x4dc5f4]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov ebx, dword [eax + 0x4dc5f8]
mov eax, dword [eax + 0x4dc5fc]
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 0x4af60c
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 0x4af666
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 0x4af63c
xor eax, eax
mov edx, 1
shld eax, edx, cl
shl edx, cl
jmp 0x4af647
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 0x4af6c2
mov eax, dword [esp + 0x54]
add eax, 0x406e
mov dword [esp + 0x54], eax
cmp eax, 0x1f
ja 0x4af691
mov ecx, eax
xor eax, eax
xor ebx, ebx
mov edx, 1
shld ebx, edx, cl
mov eax, edx
shl eax, cl
jmp 0x4af69c
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 [0x4e2c98]
fld qword [eax]
fmul st(0)
fstp qword [esp + 0x58]
and ecx, 0xc00
xor edx, edx
or edx, dword [esp + 0xa4]
je 0x4af6fb
xor eax, eax
cmp ecx, 0x400
sete al
jmp 0x4af706
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 + 0x4dc630]
mov edx, dword [ebx + 0x4dc634]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ecx, dword [ebx + 0x4dc638]
mov ebx, dword [ebx + 0x4dc63c]
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 0x4af735
mov edx, dword [esp + 0xa4]
xor eax, eax
or edx, eax
jne 0x4af730
jmp 0x4af76b
mov eax, dword [esp + 0x88]
or eax, dword [esp + 0x10]
je 0x4af794
mov dword [esp], 1
jmp 0x4af799
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 0x4af7b2
mov dword [esp], 1
jmp 0x4af7fd
mov ecx, dword [esp + 0x64]
mov eax, 0x10000
sub ecx, eax
jae 0x4af7c8
mov dword [esp], 2
jmp 0x4af7fd
mov eax, dword [esp + 0x64]
mov ecx, 0x7fff0000
sub eax, ecx
jae 0x4af7de
mov dword [esp], 4
jmp 0x4af7fd
mov eax, dword [esp + 0x64]
sub eax, ecx
jb 0x4af7f6
mov ecx, dword [esp]
or ecx, eax
je 0x4af7f6
mov dword [esp], 0x10
jmp 0x4af7fd
mov dword [esp], 8
mov eax, dword [esp + 0xbc]
or eax, dword [esp + 0xc]
je 0x4af814
mov dword [esp + 4], 1
jmp 0x4af81a
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 0x4af838
mov eax, 1
jmp 0x4af87c
mov ecx, dword [esp + 0x68]
mov eax, 0x10000
sub ecx, eax
jae 0x4af84c
mov eax, 2
jmp 0x4af87c
mov eax, dword [esp + 0x68]
mov ecx, 0x7fff0000
sub eax, ecx
jae 0x4af860
mov eax, 4
jmp 0x4af87c
mov eax, dword [esp + 0x68]
sub eax, ecx
jb 0x4af877
mov ecx, dword [esp + 4]
or ecx, eax
je 0x4af877
mov eax, 0x10
jmp 0x4af87c
mov eax, 8
mov ecx, dword [esp]
or ecx, eax
test cl, 0x10
je 0x4afa66
cmp eax, dword [esp]
je 0x4af900
cmp dword [esp], 0x10
je 0x4af8b3
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 0x4af8cd
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 0x4afa4a
mov edx, dword [ebp + 8]
mov dword [edx + 8], eax
mov eax, dword [0x4e2c88]
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 0x4afa4a
mov edx, dword [esp + 0x58]
and edx, 0x8000
xor eax, eax
or edx, eax
jne 0x4af917
mov eax, 1
jmp 0x4af919
xor eax, eax
mov ecx, dword [esp + 8]
and ecx, 0x8000
xor edx, edx
or ecx, edx
jne 0x4af930
mov edx, 1
jmp 0x4af932
xor edx, edx
mov ecx, eax
or ecx, edx
je 0x4af946
mov ecx, dword [0x4e2c88]
fld qword [ecx]
fdiv st(0)
fstp qword [esp + 0x58]
cmp edx, eax
je 0x4af96d
test eax, eax
je 0x4afa06
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 0x4afa4a
mov edx, dword [esp + 0x64]
mov eax, esi
sub eax, dword [esp + 0xc0]
sbb edx, dword [esp + 0x68]
jb 0x4af9ab
mov eax, dword [esp + 0x64]
sub eax, dword [esp + 0x68]
mov edx, esi
sub edx, dword [esp + 0xc0]
or edx, eax
jne 0x4af9c6
mov eax, dword [esp + 0x88]
sub eax, dword [esp + 0xbc]
mov edx, edi
sbb edx, dword [esp + 0xc]
jae 0x4af9c6
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 0x4afa4a
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0x68]
sub eax, esi
sbb edx, dword [esp + 0x64]
jb 0x4afa06
mov eax, dword [esp + 0xc0]
sub eax, esi
mov esi, dword [esp + 0x68]
sub esi, dword [esp + 0x64]
or eax, esi
jne 0x4afa1e
mov eax, dword [esp + 0xbc]
sub eax, dword [esp + 0x88]
mov edx, dword [esp + 0xc]
sbb edx, dword [esp + 0x10]
jae 0x4afa1e
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 0x4afa4a
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0xc]
and ecx, 0x80000000
xor edx, edx
or ecx, edx
je 0x4af952
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 0x4afab1
test byte [esp], 2
jne 0x4afab1
mov eax, dword [0x4e2c88]
fld qword [eax]
fdiv st(0)
mov edx, dword [0x4dc650]
mov ecx, dword [0x4dc654]
mov edi, dword [ebp + 8]
fstp qword [esp + 0x58]
mov dword [edi], edx
mov dword [edi + 4], ecx
mov ebx, dword [0x4dc658]
mov esi, dword [0x4dc65c]
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 0x4afb1a
test al, 2
je 0x4aface
mov eax, dword [0x4e2c8c]
fld qword [eax]
mov edx, dword [0x4e2c90]
fmul qword [edx]
fstp qword [esp + 0x58]
mov edx, dword [esp + 0xa4]
xor eax, eax
or edx, eax
je 0x4afae2
mov eax, 1
jmp 0x4afae4
xor eax, eax
mov esi, dword [ebp + 8]
shl eax, 4
mov edx, dword [eax + 0x4dc5f0]
mov ecx, dword [eax + 0x4dc5f4]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov ebx, dword [eax + 0x4dc5f8]
mov eax, dword [eax + 0x4dc5fc]
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 0x4afb7d
mov eax, dword [0x4e2c90]
fld qword [eax]
mov edx, dword [0x4e2c88]
fdiv qword [edx]
mov ebx, dword [esp + 0xa4]
fstp qword [esp + 0x58]
xor ecx, ecx
or ebx, ecx
je 0x4afb45
mov eax, 1
jmp 0x4afb47
xor eax, eax
mov esi, dword [ebp + 8]
shl eax, 4
mov edx, dword [eax + 0x4dc5f0]
mov ecx, dword [eax + 0x4dc5f4]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov ebx, dword [eax + 0x4dc5f8]
mov eax, dword [eax + 0x4dc5fc]
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 0x4afb87
test al, 8
je 0x4afbeb
test cl, 2
je 0x4afb9f
mov eax, dword [0x4e2c8c]
fld qword [eax]
mov edx, dword [0x4e2c90]
fmul qword [edx]
fstp qword [esp + 0x58]
mov edx, dword [esp + 0xa4]
xor eax, eax
or edx, eax
je 0x4afbb3
mov eax, 1
jmp 0x4afbb5
xor eax, eax
mov esi, dword [ebp + 8]
shl eax, 4
mov edx, dword [eax + 0x4dc610]
mov ecx, dword [eax + 0x4dc614]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov ebx, dword [eax + 0x4dc618]
mov eax, dword [eax + 0x4dc61c]
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 [0x4e2c8c]
fld qword [eax]
mov ecx, dword [0x4e2c90]
fmul qword [ecx]
fstp qword [esp + 0x58]
jne 0x4afdb3
mov eax, dword [esp + 0xc0]
mov dword [esp + 4], eax
or eax, ebx
mov dword [esp], ebx
jne 0x4afc37
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 0x4afc3f
mov dword [esp + 0x60], 0xfffffff1
mov ecx, dword [esp]
mov eax, 1
sub ecx, eax
jae 0x4afc58
mov eax, dword [esp + 0x60]
add eax, 0x20
mov dword [esp + 0x60], eax
jmp 0x4afc5f
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 0x4afd44
cmp dword [esp + 0x60], 0x1f
ja 0x4afc93
mov eax, dword [esp + 0xc0]
shld ebx, eax, cl
shl eax, cl
mov dword [esp + 8], eax
jmp 0x4afca2
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 0x4afcd1
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 0x4afce6
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 0x4afd20
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 0x4afd37
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 0x4afda8
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4afd65
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0xbc]
shld ebx, eax, cl
shl eax, cl
mov dword [esp + 0xc0], eax
jmp 0x4afd77
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 0x4afd90
mov ecx, dword [esp + 0xbc]
je 0x4afd96
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 0x4ae52b
mov dword [esp + 4], esi
mov eax, esi
mov dword [esp], edx
or eax, edx
jne 0x4afde7
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 0x4afdef
mov dword [esp + 0x54], 0xfffffff1
mov ecx, dword [esp]
mov eax, 1
sub ecx, eax
jae 0x4afe08
mov eax, dword [esp + 0x54]
add eax, 0x20
mov dword [esp + 0x54], eax
jmp 0x4afe0f
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 0x4afec3
cmp dword [esp + 0x54], 0x1f
ja 0x4afe3c
shld edx, esi, cl
shl esi, cl
mov dword [esp + 4], esi
jmp 0x4afe48
mov dword [esp + 4], 0
mov edx, esi
shl edx, cl
neg ecx
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4afe67
mov esi, dword [esp + 0x88]
mov eax, dword [esp + 0x10]
shrd esi, eax, cl
shr eax, cl
mov dword [esp], eax
jmp 0x4afe74
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 0x4afe9f
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 0x4afeb7
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 0x4aff10
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4afedd
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x88]
shld edx, esi, cl
shl esi, cl
jmp 0x4afee8
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 0x4afeff
mov esi, dword [esp + 0x88]
je 0x4aff05
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 0x4ae52b
test dword [0x4ed7bc], 0xfffffe00
jne 0x4aca20
test dword [0x4ed7bc], 0xffffffff
jne 0x4ae470
call fcn.004a7320
jmp fcn.004aff20