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

Disassembly:
test dword [0x4410bb4], 0xfffffe00
jne 0x4ab82c
test dword [0x4410bb4], 0xffffffff
jne 0x4a9a44
call fcn.004a42d8
jmp fcn.004a9a1c
push ebp
mov ebp, esp
and esp, 0xfffffff8
push edi
push esi
push ebx
sub esp, 0xcc
mov edi, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov eax, dword [edi + 8]
mov ebx, dword [edi + 0xc]
mov edx, dword [ecx + 8]
mov dword [esp + 0xa8], eax
mov eax, ebx
mov dword [esp + 0x8c], ebx
and eax, 0x7fffffff
mov dword [esp + 0x80], eax
mov dword [esp + 0xbc], edx
mov edx, dword [ecx + 0xc]
mov dword [esp + 0xa4], edx
mov esi, edx
xor ebx, edx
and esi, 0x7fffffff
mov dword [esp + 0x7c], esi
mov esi, dword [edi]
mov dword [esp + 0x98], esi
mov esi, dword [edi + 4]
and ebx, 0x80000000
mov dword [esp + 0x84], esi
mov esi, dword [ecx]
mov ecx, dword [ecx + 4]
movzx edx, ax
mov dword [esp + 0xb8], esi
mov esi, dword [esp + 0xa8]
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0x7c]
shr eax, 0x10
mov dword [esp + 0x78], ebx
mov dword [esp + 0x90], eax
movzx ebx, cx
shr ecx, 0x10
mov dword [esp + 0x94], ecx
lea eax, [eax - 1]
cmp eax, 0x7ffd
ja 0x4aaef3
mov eax, ecx
lea ecx, [eax - 1]
cmp ecx, 0x7ffd
ja 0x4aaef3
mov eax, dword [esp + 0x90]
sub eax, dword [esp + 0x94]
mov dword [esp + 0x90], eax
or edx, 0x10000
mov edi, edx
or ebx, 0x10000
lea ecx, [eax + 0x3ffd]
mov eax, esi
sub eax, dword [esp + 0xbc]
sub edi, ebx
mov dword [esp + 0x74], ecx
or eax, edi
je 0x4aac98
mov eax, dword [esp + 0xbc]
sub eax, esi
mov ecx, ebx
sbb ecx, edx
jb 0x4a9b93
mov eax, dword [esp + 0xbc]
sub eax, esi
mov ecx, ebx
sub ecx, edx
or eax, ecx
jne 0x4a9bea
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0x98]
mov edi, dword [esp + 0x88]
sub eax, ecx
mov eax, dword [esp + 0x84]
sbb edi, eax
jae 0x4a9bea
mov edi, dword [esp + 0x84]
mov ecx, dword [esp + 0x98]
mov eax, esi
shr eax, 0x12
shl esi, 0xe
shl edx, 0xe
or eax, edx
mov dword [esp + 0xac], eax
mov edx, edi
shr edx, 0x12
or esi, edx
mov eax, ecx
shr eax, 0x12
shl ecx, 0xe
mov dword [esp + 0x98], ecx
shl edi, 0xe
or eax, edi
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x90]
lea eax, [eax + 0x3ffe]
mov dword [esp + 0x74], eax
jmp 0x4a9c2e
mov edi, dword [esp + 0x84]
mov ecx, dword [esp + 0x98]
mov eax, esi
shr eax, 0x11
shl esi, 0xf
shl edx, 0xf
or eax, edx
mov dword [esp + 0xac], eax
mov edx, edi
shr edx, 0x11
or esi, edx
mov eax, ecx
shr eax, 0x11
shl ecx, 0xf
mov dword [esp + 0x98], ecx
shl edi, 0xf
or eax, edi
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0xbc]
mov edi, dword [esp + 0xb8]
mov edx, eax
shr edx, 0x11
shl eax, 0xf
shl ebx, 0xf
or edx, ebx
mov ebx, dword [esp + 0x88]
mov dword [esp + 0xb0], edx
mov ecx, ebx
shr ecx, 0x11
or eax, ecx
mov dword [esp + 0xbc], eax
mov ecx, edi
shr ecx, 0x11
shl edi, 0xf
mov dword [esp + 0xb8], edi
shl ebx, 0xf
or ecx, ebx
mov dword [esp + 0xb4], ecx
sub eax, esi
mov ecx, dword [esp + 0xac]
sbb edx, ecx
jb 0x4a9c91
or eax, edx
jne 0x4a9cb7
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0xb0], ecx
mov eax, 0xffffffff
mov dword [esp + 0xc8], eax
mov dword [esp + 0xc0], eax
jmp 0x4a9e06
mov eax, ecx
mov edx, dword [esp + 0xb0]
sub eax, edx
jb 0x4a9cd2
mov eax, 0xffffffff
mov dword [esp + 0xc0], eax
jmp 0x4a9cf9
mov eax, ecx
mov dword [esp], eax
mov dword [esp + 4], esi
mov dword [esp + 8], edx
mov edx, dword [esp]
mov eax, dword [esp + 4]
div dword [esp + 8]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0xc0], eax
mov edi, eax
mov ecx, dword [esp + 0xbc]
mov eax, edi
mul ecx
mov ebx, eax
mov ecx, edx
mov eax, dword [esp + 0xb0]
mov dword [esp + 0xb0], eax
mul edi
add ecx, eax
mov eax, dword [esp + 0x9c]
adc edx, 0
mov edi, eax
sub edi, ebx
mov dword [esp + 0xa4], edi
sub eax, ebx
jae 0x4a9d3c
mov edi, 1
jmp 0x4a9d3e
xor edi, edi
mov eax, dword [esp + 0xac]
mov ebx, esi
sub ebx, ecx
sbb eax, edx
sub ebx, edi
sbb eax, 0
mov edx, eax
sub edx, 0
jge 0x4a9db4
mov edx, dword [esp + 0xc0]
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0xa8], esi
mov esi, dword [esp + 0xbc]
add edx, 0xffffffff
add ecx, esi
mov edi, ecx
sub edi, esi
jae 0x4a9d85
mov edi, 1
jmp 0x4a9d87
xor edi, edi
mov esi, dword [esp + 0xb0]
add ebx, esi
adc eax, 0
add ebx, edi
adc eax, 0
mov edi, eax
sub edi, 0
jl 0x4a9d6c
mov esi, dword [esp + 0xa8]
mov dword [esp + 0xc0], edx
mov dword [esp + 0xa4], ecx
mov eax, dword [esp + 0xb0]
mov edx, ebx
sub edx, eax
jb 0x4a9dcf
mov eax, 0xffffffff
mov dword [esp + 0xc8], eax
jmp 0x4a9e06
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
div dword [esp + 0x18]
mov dword [esp + 0x1c], eax
xor eax, eax
or eax, dword [esp + 0x1c]
mov dword [esp + 0xc8], eax
mov edi, dword [esp + 0xb8]
mov ebx, dword [esp + 0xc8]
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0xa8], esi
mov eax, edi
mul ebx
mov dword [esp + 0x94], eax
mov eax, edi
mov edi, dword [esp + 0xb4]
mov esi, edx
mul ecx
mov dword [esp + 0x64], eax
mov eax, ebx
mov dword [esp + 0x58], edx
mul edi
mov dword [esp + 0xc4], eax
mov dword [esp + 0x5c], edx
mov eax, ecx
mul edi
mov edi, dword [esp + 0xbc]
mov dword [esp + 0x60], eax
mov eax, edi
mov dword [esp + 0x70], edx
mul ebx
mov dword [esp + 0x68], eax
mov eax, edi
mov edi, dword [esp + 0xb0]
mov dword [esp + 0x7c], edx
mul ecx
mov dword [esp + 0x84], eax
mov eax, edi
mov dword [esp + 0x90], edx
mul ebx
mov dword [esp + 0x80], eax
mov dword [esp + 0x8c], edx
mov eax, edi
mul ecx
mov ecx, dword [esp + 0xc4]
mov edi, dword [esp + 0x70]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x58]
add esi, eax
mov eax, 0
adc eax, 0
add esi, ecx
mov ecx, dword [esp + 0x94]
adc eax, 0
mov dword [esp + 0x6c], esi
or ecx, esi
mov esi, dword [esp + 0xa8]
je 0x4a9ef0
mov ecx, 1
mov dword [esp + 0x64], ecx
jmp 0x4a9ef6
xor ecx, ecx
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x94]
xor ebx, ebx
sub ebx, ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0xc4], ebx
mov ebx, 0
sbb ebx, ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x54], ebx
mov ebx, dword [esp + 0x60]
add edx, ecx
mov ecx, 0
adc ecx, 0
add edx, ebx
adc ecx, 0
mov ebx, dword [esp + 0x68]
add ebx, eax
mov eax, 0
adc eax, 0
add edx, ebx
adc ecx, eax
mov eax, dword [esp + 0x7c]
xor ebx, ebx
add edi, eax
adc ebx, 0
mov eax, dword [esp + 0x84]
add edi, eax
adc ebx, 0
mov eax, dword [esp + 0x80]
add edi, eax
adc ebx, 0
add edx, dword [esp + 0x64]
mov eax, dword [esp + 0x98]
add edi, ecx
adc ebx, 0
mov dword [esp + 0x94], ebx
mov ebx, eax
sub ebx, edx
mov edx, dword [esp + 0x9c]
mov ecx, edx
sbb ecx, edi
mov edi, ebx
sub edi, eax
mov eax, ecx
sbb eax, edx
mov edx, dword [esp + 0x94]
jb 0x4a9f9e
or edi, eax
jne 0x4a9fc0
mov eax, dword [esp + 0x64]
test eax, eax
je 0x4a9fcb
mov edi, dword [esp + 0x98]
mov eax, dword [esp + 0x9c]
neg edi
add edi, ebx
neg eax
add eax, ecx
or edi, eax
jne 0x4a9fcb
mov eax, 1
mov dword [esp + 0x6c], eax
jmp 0x4a9fd1
xor eax, eax
mov dword [esp + 0x6c], eax
mov edi, dword [esp + 0x8c]
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0x90]
xor eax, eax
add ecx, edi
adc eax, 0
mov edi, dword [esp + 0xa4]
add ecx, edi
mov edi, dword [esp + 0x88]
adc eax, edi
add ecx, edx
adc eax, 0
mov edx, dword [esp + 0x6c]
add ecx, edx
adc eax, 0
mov edx, dword [esp + 0xac]
sub esi, ecx
sbb edx, eax
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0xac], edx
sub edx, 0
jge 0x4aa11b
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0xc4]
mov dword [esp + 0xa8], esi
mov esi, dword [esp + 0xc8]
mov edi, dword [esp + 0xb4]
add esi, 0xffffffff
mov dword [esp + 0xc8], esi
mov esi, dword [esp + 0xc0]
adc esi, 0xffffffff
mov dword [esp + 0xc0], esi
mov esi, dword [esp + 0xb8]
add eax, esi
adc edx, edi
mov dword [esp + 0xc4], eax
sub eax, esi
mov eax, edx
sbb eax, edi
mov eax, dword [esp + 0xc4]
jae 0x4aa092
mov esi, 1
jmp 0x4aa094
xor esi, esi
mov edi, dword [esp + 0xbc]
add ebx, edi
mov edi, dword [esp + 0xb0]
adc ecx, edi
add ebx, esi
adc ecx, 0
test esi, esi
je 0x4aa0c5
mov edi, ebx
sub edi, dword [esp + 0xbc]
mov esi, ecx
sub esi, dword [esp + 0xb0]
or edi, esi
je 0x4aa0dd
mov esi, dword [esp + 0xbc]
mov edi, ebx
sub edi, esi
mov esi, dword [esp + 0xb0]
mov edi, ecx
sbb edi, esi
jae 0x4aa0e4
mov esi, 1
jmp 0x4aa0e6
xor esi, esi
mov edi, dword [esp + 0xa8]
add edi, esi
mov esi, dword [esp + 0xac]
adc esi, 0
mov dword [esp + 0xa8], edi
mov dword [esp + 0xac], esi
sub esi, 0
jl 0x4aa041
mov dword [esp + 0x54], edx
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0xbc]
mov edx, dword [esp + 0xb0]
sub eax, ebx
sbb edx, ecx
jb 0x4aa133
or eax, edx
jne 0x4aa149
mov eax, 0xffffffff
mov dword [esp + 0x9c], eax
mov esi, 0xffffffff
jmp 0x4aa28c
mov eax, dword [esp + 0xb0]
mov edx, ecx
sub edx, eax
jb 0x4aa15d
mov esi, 0xffffffff
jmp 0x4aa17d
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
div dword [esp + 0x28]
mov dword [esp + 0x2c], eax
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0xbc]
mov dword [esp + 0xa0], ecx
mul esi
mov ecx, eax
mov edi, edx
mov eax, dword [esp + 0xb0]
mul esi
add edi, eax
adc edx, 0
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x54]
mov eax, edx
sub eax, ecx
mov dword [esp + 0xa4], eax
sub edx, ecx
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x70]
jae 0x4aa1cc
mov eax, 1
mov dword [esp + 0x68], eax
jmp 0x4aa1d2
xor eax, eax
mov dword [esp + 0x68], eax
mov eax, ebx
sub eax, edi
mov edi, ecx
sbb edi, edx
mov edx, dword [esp + 0x68]
sub eax, edx
sbb edi, 0
mov edx, edi
sub edx, 0
jge 0x4aa241
mov edx, dword [esp + 0xa4]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x48], ebx
mov ecx, dword [esp + 0xbc]
add esi, 0xffffffff
add edx, ecx
mov ebx, edx
sub ebx, ecx
jae 0x4aa215
mov ebx, 1
jmp 0x4aa217
xor ebx, ebx
mov ecx, dword [esp + 0xb0]
add eax, ecx
adc edi, 0
add eax, ebx
adc edi, 0
mov ebx, edi
sub ebx, 0
jl 0x4aa1fc
mov ecx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x48]
mov dword [esp + 0xa4], edx
mov edx, dword [esp + 0xb0]
mov edi, eax
sub edi, edx
jb 0x4aa25c
mov eax, 0xffffffff
mov dword [esp + 0x9c], eax
jmp 0x4aa28c
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
div dword [esp + 0x38]
mov dword [esp + 0x3c], eax
xor eax, eax
or eax, dword [esp + 0x3c]
mov dword [esp + 0x9c], eax
and eax, 0x3fff
xor edx, edx
sub eax, 4
sbb edx, 0
jb 0x4aa2a3
or eax, edx
jne 0x4aa639
mov edi, dword [esp + 0xb8]
mov dword [esp + 0x48], ebx
mov eax, edi
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0x9c]
mul ecx
mov dword [esp + 0xac], eax
mov eax, edi
mov edi, dword [esp + 0xb4]
mov ebx, edx
mul esi
mov dword [esp + 0x70], eax
mov eax, edi
mov dword [esp + 0x4c], edx
mul ecx
mov dword [esp + 0x84], eax
mov dword [esp + 0xa4], edx
mov eax, edi
mul esi
mov edi, dword [esp + 0xbc]
mov dword [esp + 0x8c], eax
mov eax, edi
mov dword [esp + 0x90], edx
mul ecx
mov dword [esp + 0x88], eax
mov eax, edi
mov edi, dword [esp + 0xb0]
mov dword [esp + 0x80], edx
mul esi
mov dword [esp + 0x64], eax
mov eax, edi
mov dword [esp + 0x68], edx
mul ecx
mov dword [esp + 0x7c], eax
mov dword [esp + 0x58], edx
mov eax, edi
mul esi
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x60], edx
xor ecx, ecx
add ebx, eax
adc ecx, 0
mov eax, dword [esp + 0x84]
add ebx, eax
mov eax, dword [esp + 0xac]
adc ecx, 0
mov dword [esp + 0x94], ebx
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0xa0]
or eax, ebx
mov ebx, dword [esp + 0x48]
je 0x4aa38e
mov eax, 1
mov dword [esp + 0x84], eax
jmp 0x4aa397
xor eax, eax
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x64]
xor edx, edx
sub edx, eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x98], edx
mov edx, 0
sbb edx, eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0xac], edx
mov edx, dword [esp + 0x88]
xor ecx, ecx
add edi, eax
mov eax, dword [esp + 0x8c]
adc ecx, 0
add edi, eax
adc ecx, 0
mov eax, dword [esp + 0x6c]
add edx, eax
mov eax, 0
adc eax, 0
add edi, edx
adc ecx, eax
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x90]
add edi, dword [esp + 0x84]
add eax, edx
mov edx, 0
adc edx, 0
add eax, ebx
adc edx, 0
mov ebx, dword [esp + 0x7c]
add eax, ebx
adc edx, 0
mov ebx, dword [esp + 0x54]
add eax, ecx
adc edx, 0
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0xc4]
mov ecx, edx
sub ecx, edi
mov dword [esp + 0x8c], ecx
mov edi, ebx
sbb edi, eax
mov dword [esp + 0xa4], edi
mov edi, ecx
sub edi, edx
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0xa0]
sbb eax, ebx
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x70]
jb 0x4aa47f
or edi, dword [esp + 0x6c]
jne 0x4aa4ab
mov edx, dword [esp + 0x84]
test edx, edx
je 0x4aa4b6
mov edi, dword [esp + 0xc4]
mov edx, dword [esp + 0x54]
neg edi
neg edx
add edi, dword [esp + 0x8c]
add edx, dword [esp + 0xa4]
or edi, edx
jne 0x4aa4b6
mov edx, 1
mov dword [esp + 0x6c], edx
jmp 0x4aa4bc
xor edx, edx
mov dword [esp + 0x6c], edx
mov edi, dword [esp + 0x58]
mov dword [esp + 0xa8], esi
mov esi, dword [esp + 0x68]
xor edx, edx
add esi, edi
adc edx, 0
mov edi, dword [esp + 0x5c]
add esi, edi
mov edi, dword [esp + 0x60]
adc edx, edi
add esi, eax
adc edx, 0
mov eax, dword [esp + 0x6c]
add esi, eax
adc edx, 0
sub ebx, esi
sbb ecx, edx
mov esi, dword [esp + 0xa8]
mov eax, ecx
sub eax, 0
jge 0x4aa609
mov edx, dword [esp + 0xa4]
mov eax, dword [esp + 0x8c]
mov dword [esp + 0xa8], esi
mov edi, dword [esp + 0x9c]
mov esi, dword [esp + 0xb4]
mov dword [esp + 0xa4], edx
mov edx, dword [esp + 0xa8]
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0xac]
add edi, 0xffffffff
adc edx, 0xffffffff
mov dword [esp + 0x9c], edi
mov edi, dword [esp + 0x98]
mov dword [esp + 0xa8], edx
mov edx, dword [esp + 0xb8]
add edi, edx
adc ecx, esi
mov dword [esp + 0x98], edi
mov dword [esp + 0xac], ecx
sub edi, edx
mov edx, dword [esp + 0xa4]
sbb ecx, esi
mov ecx, dword [esp + 0xa0]
jae 0x4aa590
mov esi, 1
jmp 0x4aa592
xor esi, esi
mov edi, dword [esp + 0xbc]
add eax, edi
mov edi, dword [esp + 0xb0]
adc edx, edi
add eax, esi
adc edx, 0
test esi, esi
je 0x4aa5c3
mov edi, eax
sub edi, dword [esp + 0xbc]
mov esi, edx
sub esi, dword [esp + 0xb0]
or edi, esi
je 0x4aa5db
mov esi, dword [esp + 0xbc]
mov edi, eax
sub edi, esi
mov esi, dword [esp + 0xb0]
mov edi, edx
sbb edi, esi
jae 0x4aa5e2
mov esi, 1
jmp 0x4aa5e4
xor esi, esi
add ebx, esi
adc ecx, 0
mov esi, ecx
sub esi, 0
jl 0x4aa517
mov esi, dword [esp + 0xa8]
mov dword [esp + 0xa4], edx
mov dword [esp + 0x8c], eax
or ebx, dword [esp + 0x8c]
or ecx, dword [esp + 0xa4]
or ebx, dword [esp + 0x98]
or ecx, dword [esp + 0xac]
or ebx, ecx
je 0x4aa630
mov eax, 1
jmp 0x4aa632
xor eax, eax
or dword [esp + 0x9c], eax
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xc0]
mov ebx, edx
shl ebx, 0x11
xor edi, edi
mov dword [esp + 0x94], ebx
mov ebx, esi
mov dword [esp + 0xa4], edi
mov edi, eax
shl edi, 0x11
shl ebx, 0x11
shr esi, 0xf
shr edx, 0xf
or ebx, edx
or edi, esi
mov esi, ecx
shl esi, 0x11
shr ecx, 0xf
mov dword [esp + 0xc0], ecx
shr eax, 0xf
or esi, eax
mov eax, dword [esp + 0x74]
cmp eax, 0x7ffd
jae 0x4aa7b3
mov eax, dword [esp + 0xa4]
or eax, dword [esp + 0x94]
je 0x4aab4c
fnstcw word [esp + 0x50]
mov eax, dword [esp + 0x50]
mov edx, dword [0x4cd4a0]
mov ecx, dword [0x4cd4a8]
fld qword [edx]
fadd qword [ecx]
fstp qword [esp + 0x40]
and eax, 0xc00
mov dword [esp + 0x6c], eax
jne 0x4aa6e6
mov eax, dword [esp + 0x94]
sub eax, 0
jl 0x4aa725
jmp 0x4aa784
cmp eax, 0xc00
je 0x4aa784
xor eax, eax
or eax, dword [esp + 0x78]
je 0x4aa70e
mov edx, dword [esp + 0x6c]
xor eax, eax
cmp edx, 0x400
sete al
mov dword [esp + 0x68], eax
jmp 0x4aa721
mov edx, dword [esp + 0x6c]
xor eax, eax
cmp edx, 0x800
sete al
mov dword [esp + 0x68], eax
test eax, eax
je 0x4aa784
add ebx, 1
adc edi, 0
mov eax, ebx
or eax, edi
jne 0x4aa745
mov eax, dword [esp + 0xc0]
add esi, 1
adc eax, 0
mov dword [esp + 0xc0], eax
mov edx, dword [esp + 0xa4]
mov eax, dword [esp + 0x94]
add edx, edx
adc eax, eax
or edx, eax
jne 0x4aa762
mov edx, 1
jmp 0x4aa764
xor edx, edx
mov eax, dword [esp + 0x6c]
xor ecx, ecx
mov dword [esp + 0x4c], ecx
test eax, eax
mov eax, ecx
sete al
and eax, edx
not eax
mov dword [esp + 0x4c], eax
cdq
and edi, edx
and ebx, dword [esp + 0x4c]
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
mov dword [ecx], ebx
mov dword [ecx + 4], edi
shl eax, 0x10
add eax, dword [esp + 0xc0]
or edx, eax
mov dword [ecx + 8], esi
mov dword [ecx + 0xc], edx
add esp, 0xcc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
fnstcw word [esp + 0x50]
mov eax, dword [esp + 0x50]
mov dword [esp + 0x48], eax
and eax, 0xc00
mov dword [esp + 0xc4], eax
jne 0x4aa7df
mov eax, dword [esp + 0x94]
sub eax, 0
jl 0x4aac28
jmp 0x4aa814
cmp eax, 0xc00
je 0x4aa814
xor eax, eax
or eax, dword [esp + 0x78]
je 0x4aa802
mov eax, dword [esp + 0xc4]
cmp eax, 0x400
je 0x4aac14
jmp 0x4aa814
mov eax, dword [esp + 0xc4]
cmp eax, 0x800
je 0x4aac73
xor eax, eax
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x74]
cmp eax, 0x7ffd
jle 0x4aa8b9
mov eax, dword [0x4cd4a4]
fld qword [eax]
fmul st(0)
mov edx, dword [esp + 0xc4]
fstp qword [esp + 0x40]
cmp edx, 0xc00
je 0x4aac08
mov edx, dword [esp + 0x78]
xor eax, eax
or edx, eax
je 0x4aa86f
mov eax, dword [esp + 0xc4]
cmp eax, 0x800
je 0x4aabc9
mov ecx, 1
jmp 0x4aa883
mov eax, dword [esp + 0xc4]
cmp eax, 0x400
je 0x4aac04
xor ecx, ecx
mov esi, dword [ebp + 8]
shl ecx, 4
mov eax, dword [ecx + 0x4c5320]
mov edx, dword [ecx + 0x4c5324]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ebx, dword [ecx + 0x4c5328]
mov ecx, dword [ecx + 0x4c532c]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ecx
add esp, 0xcc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp eax, 0x7ffd
je 0x4aac39
test eax, eax
jge 0x4aa69a
cmp eax, 0xffffffff
jl 0x4aa910
mov eax, dword [esp + 0xc8]
test eax, eax
je 0x4aa910
mov edx, dword [esp + 0xc0]
mov eax, esi
sub eax, 0xffffffff
sbb edx, 0x1ffff
jb 0x4aa910
mov eax, dword [esp + 0xc0]
lea ecx, [esi + 1]
lea edx, [eax - 0x1ffff]
or ecx, edx
jne 0x4aa91e
mov eax, ebx
sub eax, 0xffffffff
mov edx, edi
sbb edx, 0xffffffff
jae 0x4aa91e
mov eax, 1
mov dword [esp + 0xc8], eax
jmp 0x4aa927
xor eax, eax
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x74]
neg eax
mov dword [esp + 0x74], eax
mov ecx, eax
and ecx, 0x3f
mov dword [esp + 0x6c], ecx
mov ecx, eax
neg ecx
and ecx, 0x3f
cmp eax, 0x40
jge 0x4aaa3e
mov eax, dword [esp + 0xa4]
or eax, dword [esp + 0x94]
je 0x4aa968
mov eax, 1
mov dword [esp + 0xc4], eax
jmp 0x4aa971
xor eax, eax
mov dword [esp + 0xc4], eax
cmp ecx, 0x1f
ja 0x4aa98f
mov eax, edi
shld eax, ebx, cl
mov dword [esp + 0x94], eax
mov edx, ebx
shl edx, cl
mov dword [esp + 0xa4], edx
jmp 0x4aa9a3
xor eax, eax
mov dword [esp + 0xa4], eax
mov edx, ebx
shl edx, cl
mov dword [esp + 0x94], edx
mov eax, dword [esp + 0xa4]
or eax, dword [esp + 0xc4]
mov dword [esp + 0xa4], eax
cmp ecx, 0x1f
ja 0x4aa9d8
mov eax, dword [esp + 0xc0]
shld eax, esi, cl
mov edx, esi
shl edx, cl
mov dword [esp + 0x54], eax
mov dword [esp + 0xc4], edx
jmp 0x4aa9e9
xor eax, eax
mov dword [esp + 0xc4], eax
mov edx, esi
shl edx, cl
mov dword [esp + 0x54], edx
mov eax, dword [esp + 0x6c]
cmp eax, 0x1f
ja 0x4aa9fd
mov ecx, eax
shrd ebx, edi, cl
mov eax, edi
shr eax, cl
jmp 0x4aaa05
mov ecx, eax
xor eax, eax
mov ebx, edi
shr ebx, cl
or ebx, dword [esp + 0xc4]
mov edi, dword [esp + 0x54]
or edi, eax
mov eax, ecx
cmp eax, 0x1f
ja 0x4aaa27
mov eax, dword [esp + 0xc0]
shrd esi, eax, cl
shr eax, cl
jmp 0x4aaa32
mov esi, dword [esp + 0xc0]
xor eax, eax
shr esi, cl
mov dword [esp + 0xc0], eax
jmp 0x4aaaec
cmp eax, 0x40
je 0x4aab86
cmp eax, 0x80
jge 0x4aaaca
or edi, dword [esp + 0x94]
or ebx, edi
je 0x4aaa60
mov eax, 1
jmp 0x4aaa62
xor eax, eax
cmp ecx, 0x1f
ja 0x4aaa85
mov edx, dword [esp + 0xc0]
shld edx, esi, cl
mov ebx, esi
shl ebx, cl
mov dword [esp + 0x94], edx
mov dword [esp + 0xa4], ebx
jmp 0x4aaa99
xor edx, edx
mov dword [esp + 0xa4], edx
mov ebx, esi
shl ebx, cl
mov dword [esp + 0x94], ebx
or dword [esp + 0xa4], eax
mov eax, dword [esp + 0x6c]
cmp eax, 0x1f
ja 0x4aaabb
mov ecx, eax
mov edi, dword [esp + 0xc0]
mov ebx, esi
shrd ebx, edi, cl
shr edi, cl
jmp 0x4aaae3
mov ecx, eax
mov ebx, dword [esp + 0xc0]
xor edi, edi
shr ebx, cl
jmp 0x4aaae3
mov eax, 1
mov dword [esp + 0xa4], eax
xor edx, edx
xor ebx, ebx
xor edi, edi
mov dword [esp + 0x94], edx
xor esi, esi
mov dword [esp + 0xc0], esi
mov eax, dword [esp + 0xc8]
test eax, eax
je 0x4aab7b
mov eax, dword [esp + 0xa4]
or eax, dword [esp + 0x94]
je 0x4aab23
mov eax, dword [0x4cd4a8]
fld qword [eax]
fmul st(0)
fstp qword [esp + 0x40]
xor edx, edx
mov dword [esp + 0x74], edx
jmp 0x4aa6ae
mov eax, dword [esp + 0x48]
test al, 0x10
jne 0x4aab46
mov eax, dword [0x4cd4a8]
fld qword [eax]
mov edx, dword [0x4cd4ac]
fmul qword [edx]
fstp qword [esp + 0x40]
xor ecx, ecx
mov dword [esp + 0x74], ecx
jmp 0x4aab4c
xor eax, eax
mov dword [esp + 0x74], eax
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
mov dword [ecx], ebx
mov dword [ecx + 4], edi
shl eax, 0x10
add eax, dword [esp + 0xc0]
or edx, eax
mov dword [ecx + 8], esi
mov dword [ecx + 0xc], edx
add esp, 0xcc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [esp + 0x74], eax
jmp 0x4aa69a
mov eax, dword [esp + 0xa4]
or eax, dword [esp + 0x94]
je 0x4aaba4
mov eax, 1
mov dword [esp + 0xa4], eax
jmp 0x4aabad
xor eax, eax
mov dword [esp + 0xa4], eax
or dword [esp + 0xa4], ebx
mov ebx, esi
mov dword [esp + 0x94], edi
mov edi, dword [esp + 0xc0]
jmp 0x4aaae3
mov ebx, 1
mov esi, dword [ebp + 8]
shl ebx, 4
mov eax, dword [ebx + 0x4c5360]
mov edx, dword [ebx + 0x4c5364]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ecx, dword [ebx + 0x4c5368]
mov ebx, dword [ebx + 0x4c536c]
mov dword [esi + 8], ecx
mov dword [esi + 0xc], ebx
add esp, 0xcc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
xor ebx, ebx
jmp 0x4aabce
mov edx, dword [esp + 0x78]
xor eax, eax
or edx, eax
jne 0x4aabc9
jmp 0x4aac04
mov eax, dword [esp + 0xa4]
or eax, dword [esp + 0x94]
je 0x4aa814
mov eax, 1
mov dword [esp + 0xc8], eax
jmp 0x4aa81d
mov eax, dword [esp + 0xc0]
lea ecx, [esi + 1]
lea edx, [eax - 0x1ffff]
or ecx, edx
jne 0x4aa69a
lea edx, [ebx + 1]
lea eax, [edi + 1]
or edx, eax
jne 0x4aa69a
mov eax, dword [esp + 0xc8]
test eax, eax
jne 0x4aa82c
jmp 0x4aa69a
mov eax, dword [esp + 0xa4]
or eax, dword [esp + 0x94]
je 0x4aa814
mov eax, 1
mov dword [esp + 0xc8], eax
jmp 0x4aa81d
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x84]
sub eax, dword [esp + 0xb8]
sub ecx, dword [esp + 0x88]
or eax, ecx
jne 0x4a9b51
mov eax, dword [esp + 0x90]
lea eax, [eax + 0x3ffe]
cmp eax, 0x7ffd
jle 0x4aad5c
fnstcw word [esp + 0x50]
mov ecx, dword [esp + 0x50]
mov eax, dword [0x4cd4a4]
fld qword [eax]
fmul st(0)
fstp qword [esp + 0x40]
and ecx, 0xc00
cmp ecx, 0xc00
je 0x4aaee7
mov edx, dword [esp + 0x78]
xor eax, eax
or edx, eax
je 0x4aad18
cmp ecx, 0x800
je 0x4aaea8
mov ecx, 1
jmp 0x4aad26
cmp ecx, 0x400
je 0x4aaee3
xor ecx, ecx
mov esi, dword [ebp + 8]
shl ecx, 4
mov eax, dword [ecx + 0x4c5320]
mov edx, dword [ecx + 0x4c5324]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ebx, dword [ecx + 0x4c5328]
mov ecx, dword [ecx + 0x4c532c]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ecx
add esp, 0xcc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test eax, eax
jl 0x4aad92
mov ebx, dword [ebp + 8]
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x78]
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, 0xcc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp eax, 0xffffffcf
jle 0x4aadef
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x90]
xor ebx, ebx
mov dword [eax], ebx
mov dword [eax + 4], ebx
add edx, 0x402e
mov dword [esp + 0x90], edx
cmp edx, 0x1f
ja 0x4aadc8
mov ecx, edx
mov eax, 1
shld ebx, eax, cl
shl eax, cl
jmp 0x4aadd3
mov ecx, edx
xor eax, eax
mov ebx, 1
shl ebx, cl
mov edx, dword [esp + 0x78]
mov ecx, dword [ebp + 8]
or edx, ebx
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
add esp, 0xcc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp eax, 0xffffff8f
jle 0x4aae48
mov eax, dword [esp + 0x90]
add eax, 0x406e
mov dword [esp + 0x90], eax
cmp eax, 0x1f
ja 0x4aae1c
mov ecx, eax
xor edx, edx
mov eax, 1
shld edx, eax, cl
shl eax, cl
jmp 0x4aae27
mov ecx, eax
xor eax, eax
mov edx, 1
shl edx, cl
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x78]
xor eax, eax
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
add esp, 0xcc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
fnstcw word [esp + 0x50]
mov ecx, dword [esp + 0x50]
mov eax, dword [0x4cd4a8]
fld qword [eax]
fmul st(0)
fstp qword [esp + 0x40]
and ecx, 0xc00
xor edx, edx
or edx, dword [esp + 0x78]
je 0x4aae78
xor eax, eax
cmp ecx, 0x400
sete al
jmp 0x4aae83
xor eax, eax
cmp ecx, 0x800
sete al
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x78]
mov dword [ecx + 4], 0
mov dword [ecx], eax
xor eax, eax
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
add esp, 0xcc
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 + 0x4c5360]
mov edx, dword [ebx + 0x4c5364]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ecx, dword [ebx + 0x4c5368]
mov ebx, dword [ebx + 0x4c536c]
mov dword [esi + 8], ecx
mov dword [esi + 0xc], ebx
add esp, 0xcc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
xor ebx, ebx
jmp 0x4aaead
mov edx, dword [esp + 0x78]
xor eax, eax
or edx, eax
jne 0x4aaea8
jmp 0x4aaee3
mov eax, dword [esp + 0x98]
or eax, dword [esp + 0x84]
je 0x4aaf11
mov eax, 1
mov dword [esp + 0xc8], eax
jmp 0x4aaf1a
xor eax, eax
mov dword [esp + 0xc8], eax
mov ecx, eax
mov eax, dword [esp + 0x80]
or ecx, esi
mov dword [esp + 0xc8], ecx
or eax, ecx
jne 0x4aaf3e
mov eax, 1
mov dword [esp + 0xc4], eax
jmp 0x4aafa2
mov eax, dword [esp + 0x80]
sub eax, 0x10000
jae 0x4aaf5a
mov eax, 2
mov dword [esp + 0xc4], eax
jmp 0x4aafa2
mov eax, dword [esp + 0x80]
sub eax, 0x7fff0000
jae 0x4aaf76
mov eax, 4
mov dword [esp + 0xc4], eax
jmp 0x4aafa2
mov eax, dword [esp + 0x80]
sub eax, 0x7fff0000
jb 0x4aaf96
or ecx, eax
je 0x4aaf96
mov eax, 0x10
mov dword [esp + 0xc4], eax
jmp 0x4aafa2
mov eax, 8
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0xb8]
or eax, dword [esp + 0x88]
je 0x4aafc0
mov eax, 1
mov dword [esp + 0xc8], eax
jmp 0x4aafc9
xor eax, eax
mov dword [esp + 0xc8], eax
mov ecx, eax
or ecx, dword [esp + 0xbc]
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xc8], ecx
or eax, ecx
jne 0x4aafec
mov eax, 1
mov dword [esp + 0x6c], eax
jmp 0x4ab03b
mov eax, dword [esp + 0x7c]
sub eax, 0x10000
jae 0x4ab002
mov eax, 2
mov dword [esp + 0x6c], eax
jmp 0x4ab03b
mov eax, dword [esp + 0x7c]
sub eax, 0x7fff0000
jae 0x4ab018
mov eax, 4
mov dword [esp + 0x6c], eax
jmp 0x4ab03b
mov eax, dword [esp + 0x7c]
sub eax, 0x7fff0000
jb 0x4ab032
or ecx, eax
je 0x4ab032
mov eax, 0x10
mov dword [esp + 0x6c], eax
jmp 0x4ab03b
mov eax, 8
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0xc4]
or eax, dword [esp + 0x6c]
test al, 0x10
mov dword [esp + 0xc8], eax
je 0x4ab295
mov edx, dword [esp + 0xc4]
mov eax, dword [esp + 0x6c]
cmp eax, edx
je 0x4ab0de
mov eax, edx
cmp eax, 0x10
je 0x4ab08c
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0x88]
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 0x4ab0ab
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x84]
mov ebx, dword [ebp + 0xc]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
xor edx, edx
mov ecx, ebx
and ecx, 0x8000
or ecx, edx
jne 0x4ab279
mov edx, dword [ebp + 8]
mov dword [edx + 8], eax
mov eax, dword [0x4cd498]
mov dword [edx + 0xc], ebx
fld qword [eax]
fdiv st(0)
fstp qword [esp + 0x40]
mov eax, dword [edx + 8]
mov ebx, dword [edx + 0xc]
jmp 0x4ab279
mov edx, dword [esp + 0x8c]
and edx, 0x8000
xor eax, eax
or edx, eax
je 0x4ab0f8
mov eax, 1
jmp 0x4ab0fa
xor eax, eax
mov ecx, dword [esp + 0xa4]
and ecx, 0x8000
xor edx, edx
test eax, eax
sete dl
mov dword [esp + 0xc8], edx
xor eax, eax
or ecx, eax
je 0x4ab122
mov edx, 1
jmp 0x4ab124
xor edx, edx
xor eax, eax
test edx, edx
sete al
mov edx, dword [esp + 0xc8]
or edx, eax
je 0x4ab144
mov edx, dword [0x4cd498]
fld qword [edx]
fdiv st(0)
fstp qword [esp + 0x40]
mov edx, dword [esp + 0xc8]
cmp eax, edx
je 0x4ab174
mov eax, edx
test eax, eax
je 0x4ab235
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 0x4ab279
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0x80]
mov ebx, dword [esp + 0x7c]
mov edx, esi
sub edx, eax
sbb ecx, ebx
jb 0x4ab1c8
mov eax, dword [esp + 0x80]
mov edx, esi
sub edx, dword [esp + 0xbc]
sub eax, dword [esp + 0x7c]
or edx, eax
jne 0x4ab1e3
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0xb8]
mov ecx, dword [esp + 0x84]
mov ebx, dword [esp + 0x88]
sub eax, edx
sbb ecx, ebx
jae 0x4ab1e3
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 0x4ab279
mov eax, dword [esp + 0xbc]
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x80]
sub eax, esi
sbb edx, ecx
jb 0x4ab235
mov eax, dword [esp + 0xbc]
sub eax, esi
mov esi, dword [esp + 0x7c]
sub esi, dword [esp + 0x80]
or eax, esi
jne 0x4ab24d
mov edx, dword [esp + 0xb8]
mov eax, dword [esp + 0x98]
mov ebx, dword [esp + 0x88]
mov ecx, dword [esp + 0x84]
sub edx, eax
sbb ebx, ecx
jae 0x4ab24d
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 0x4ab279
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0xc]
xor edx, edx
and ecx, 0x80000000
or ecx, edx
je 0x4ab159
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, 0xcc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0x6c]
test ecx, eax
je 0x4ab2e8
test al, 2
jne 0x4ab2e8
mov eax, dword [0x4cd498]
fld qword [eax]
fdiv st(0)
mov edi, dword [ebp + 8]
fstp qword [esp + 0x40]
mov edx, dword [0x4c5310]
mov ecx, dword [0x4c5314]
mov dword [edi], edx
mov dword [edi + 4], ecx
mov ebx, dword [0x4c5318]
mov esi, dword [0x4c531c]
mov dword [edi + 8], ebx
mov dword [edi + 0xc], esi
add esp, 0xcc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test al, 8
je 0x4ab34e
mov eax, ecx
test al, 2
je 0x4ab305
mov eax, dword [0x4cd49c]
fld qword [eax]
mov edx, dword [0x4cd4a0]
fmul qword [edx]
fstp qword [esp + 0x40]
mov edx, dword [esp + 0x78]
xor eax, eax
or edx, eax
je 0x4ab316
mov ecx, 1
jmp 0x4ab318
xor ecx, ecx
mov esi, dword [ebp + 8]
shl ecx, 4
mov eax, dword [ecx + 0x4c5320]
mov edx, dword [ecx + 0x4c5324]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ebx, dword [ecx + 0x4c5328]
mov ecx, dword [ecx + 0x4c532c]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ecx
add esp, 0xcc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov eax, ecx
test al, 1
je 0x4ab3b0
mov eax, dword [0x4cd4a0]
fld qword [eax]
mov edx, dword [0x4cd498]
fdiv qword [edx]
mov ebx, dword [esp + 0x78]
fstp qword [esp + 0x40]
xor ecx, ecx
or ebx, ecx
je 0x4ab378
mov ecx, 1
jmp 0x4ab37a
xor ecx, ecx
mov esi, dword [ebp + 8]
shl ecx, 4
mov eax, dword [ecx + 0x4c5320]
mov edx, dword [ecx + 0x4c5324]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ebx, dword [ecx + 0x4c5328]
mov ecx, dword [ecx + 0x4c532c]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ecx
add esp, 0xcc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0xc4]
test al, 1
jne 0x4ab3c1
mov eax, ecx
test al, 8
je 0x4ab428
mov eax, dword [esp + 0xc8]
test al, 2
je 0x4ab3df
mov eax, dword [0x4cd49c]
fld qword [eax]
mov edx, dword [0x4cd4a0]
fmul qword [edx]
fstp qword [esp + 0x40]
mov edx, dword [esp + 0x78]
xor eax, eax
or edx, eax
je 0x4ab3f0
mov ecx, 1
jmp 0x4ab3f2
xor ecx, ecx
mov esi, dword [ebp + 8]
shl ecx, 4
mov eax, dword [ecx + 0x4c5340]
mov edx, dword [ecx + 0x4c5344]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ebx, dword [ecx + 0x4c5348]
mov ecx, dword [ecx + 0x4c534c]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ecx
add esp, 0xcc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov eax, dword [0x4cd49c]
fld qword [eax]
mov ecx, dword [0x4cd4a0]
fmul qword [ecx]
mov edi, dword [esp + 0x94]
fstp qword [esp + 0x40]
test edi, edi
jne 0x4ab662
mov eax, dword [esp + 0xbc]
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], ebx
or eax, ebx
je 0x4ab471
mov eax, 0xfffffff1
mov dword [esp + 0x94], eax
jmp 0x4ab499
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0x88]
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], ecx
mov edi, 0x31
mov dword [esp + 0x94], edi
mov eax, dword [esp + 0xc8]
sub eax, 1
jae 0x4ab4af
add dword [esp + 0x94], 0x20
jmp 0x4ab4bd
mov eax, dword [esp + 0xc8]
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0xc4]
bsr ecx, eax
mov edi, dword [esp + 0x94]
sub edi, ecx
add edi, 0x1f
mov dword [esp + 0x94], edi
cmp edi, 0x40
jge 0x4ab5e9
mov eax, edi
cmp eax, 0x1f
ja 0x4ab501
mov ecx, eax
mov eax, dword [esp + 0xbc]
shld ebx, eax, cl
shl eax, cl
mov dword [esp + 0xc4], eax
jmp 0x4ab515
mov ecx, eax
mov ebx, dword [esp + 0xbc]
xor eax, eax
mov dword [esp + 0xc4], eax
shl ebx, cl
mov eax, ecx
neg eax
and eax, 0x3f
cmp eax, 0x1f
mov dword [esp + 0x6c], eax
ja 0x4ab552
mov ecx, eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x88]
shrd eax, edx, cl
mov dword [esp + 0xbc], eax
shr edx, cl
mov dword [esp + 0xc8], edx
mov edx, dword [esp + 0x4c]
jmp 0x4ab56d
mov ecx, eax
mov edi, dword [esp + 0x88]
xor eax, eax
mov dword [esp + 0xc8], eax
shr edi, cl
mov dword [esp + 0xbc], edi
or ebx, dword [esp + 0xc8]
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0x94]
or eax, dword [esp + 0xc4]
mov dword [esp + 0xbc], eax
cmp ecx, 0x1f
ja 0x4ab5c0
mov eax, dword [esp + 0x88]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0xb8]
shld eax, edx, cl
mov dword [esp + 0x88], eax
shl edx, cl
mov dword [esp + 0xc8], edx
mov edx, dword [esp + 0x4c]
jmp 0x4ab5d9
mov edi, dword [esp + 0xb8]
xor eax, eax
mov dword [esp + 0xc8], eax
shl edi, cl
mov dword [esp + 0x88], edi
mov eax, dword [esp + 0xc8]
mov dword [esp + 0xb8], eax
jmp 0x4ab64f
mov eax, edi
cmp eax, 0x40
je 0x4ab62a
mov ecx, eax
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4ab616
mov ebx, dword [esp + 0x88]
mov eax, dword [esp + 0xb8]
shld ebx, eax, cl
shl eax, cl
mov dword [esp + 0xbc], eax
jmp 0x4ab63f
mov ebx, dword [esp + 0xb8]
xor eax, eax
mov dword [esp + 0xbc], eax
shl ebx, cl
jmp 0x4ab63f
mov eax, dword [esp + 0xb8]
mov ebx, dword [esp + 0x88]
mov dword [esp + 0xbc], eax
xor eax, eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x94]
neg eax
add eax, 1
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x90]
test eax, eax
jne 0x4a9b11
mov dword [esp + 0xc4], esi
mov eax, esi
mov dword [esp + 0xc8], edx
or eax, edx
je 0x4ab693
mov eax, 0xfffffff1
mov dword [esp + 0x90], eax
jmp 0x4ab6bb
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x84]
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], ecx
mov edi, 0x31
mov dword [esp + 0x90], edi
mov eax, dword [esp + 0xc8]
sub eax, 1
jae 0x4ab6d1
add dword [esp + 0x90], 0x20
jmp 0x4ab6df
mov eax, dword [esp + 0xc8]
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0xc4]
bsr ecx, eax
mov edi, dword [esp + 0x90]
sub edi, ecx
add edi, 0x1f
mov dword [esp + 0x90], edi
cmp edi, 0x40
jge 0x4ab7c1
mov eax, edi
cmp eax, 0x1f
ja 0x4ab71c
mov ecx, eax
shld edx, esi, cl
shl esi, cl
mov dword [esp + 0xc8], esi
jmp 0x4ab72b
mov ecx, eax
xor eax, eax
mov dword [esp + 0xc8], eax
mov edx, esi
shl edx, cl
neg ecx
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4ab751
mov esi, dword [esp + 0x98]
mov eax, dword [esp + 0x84]
shrd esi, eax, cl
shr eax, cl
mov dword [esp + 0xc4], eax
jmp 0x4ab763
mov esi, dword [esp + 0x84]
xor eax, eax
mov dword [esp + 0xc4], eax
shr esi, cl
or esi, dword [esp + 0xc8]
or edx, dword [esp + 0xc4]
mov eax, edi
cmp eax, 0x1f
ja 0x4ab79d
mov ecx, eax
mov edi, dword [esp + 0x84]
mov eax, dword [esp + 0x98]
shld edi, eax, cl
mov dword [esp + 0x84], edi
shl eax, cl
mov dword [esp + 0xc8], eax
jmp 0x4ab7b8
mov ecx, eax
mov edi, dword [esp + 0x98]
xor eax, eax
mov dword [esp + 0xc8], eax
shl edi, cl
mov dword [esp + 0x84], edi
mov dword [esp + 0x98], eax
jmp 0x4ab812
mov eax, edi
cmp eax, 0x40
je 0x4ab7f4
mov ecx, eax
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4ab7e7
mov edx, dword [esp + 0x84]
mov esi, dword [esp + 0x98]
shld edx, esi, cl
shl esi, cl
jmp 0x4ab802
mov edx, dword [esp + 0x98]
xor esi, esi
shl edx, cl
jmp 0x4ab802
mov esi, dword [esp + 0x98]
mov edx, dword [esp + 0x84]
xor eax, eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x90]
neg eax
add eax, 1
mov dword [esp + 0x90], eax
jmp 0x4a9b11
push ebp
mov ebp, esp
and esp, 0xfffffff8
push edi
push esi
push ebx
sub esp, 0xa4
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 0x10]
mov edx, dword [ebx + 0xc]
mov eax, dword [esi + 0xc]
mov edi, edx
mov dword [esp + 0x98], edx
and edi, 0x7fffffff
mov dword [esp + 0x6c], edi
mov dword [esp + 0x9c], eax
mov ecx, eax
and ecx, 0x7fffffff
mov dword [esp + 0x60], ecx
mov ecx, dword [ebx + 8]
mov dword [esp + 0x78], ecx
mov ecx, dword [ebx + 4]
xor edx, eax
mov dword [esp + 0x80], ecx
mov ecx, dword [ebx]
mov dword [esp + 0x64], ecx
mov ecx, dword [esi + 8]
and edx, 0x80000000
mov dword [esp + 0x94], ecx
mov ecx, dword [esi + 4]
mov dword [esp + 0x7c], ecx
mov ecx, dword [esi]
mov dword [esp + 0x90], ecx
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x60]
movzx esi, di
movzx ebx, dx
shr edi, 0x10
shr edx, 0x10
lea eax, [edi - 1]
cmp eax, 0x7ffd
ja 0x4accba
lea eax, [edx - 1]
cmp eax, 0x7ffd
ja 0x4accba
mov eax, dword [esp + 0x78]
mov dword [esp + 0x1c], eax
or esi, 0x10000
sub edi, edx
or ebx, 0x10000
lea edx, [edi + 0x3ffd]
mov dword [esp + 0x60], edx
cmp esi, ebx
je 0x4aca5b
cmp ebx, esi
jb 0x4ab93d
jne 0x4ab988
mov edx, dword [esp + 0x94]
mov eax, dword [esp + 0x78]
cmp edx, eax
jb 0x4ab93d
cmp edx, eax
jne 0x4ab988
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x80]
cmp edx, eax
jb 0x4ab93d
cmp edx, eax
jne 0x4ab988
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x64]
cmp edx, eax
jae 0x4ab988
mov eax, dword [esp + 0x78]
shl esi, 0xe
mov edx, eax
shr edx, 0x12
or esi, edx
shl eax, 0xe
mov edx, dword [esp + 0x80]
mov ecx, edx
shr ecx, 0x12
or eax, ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x78], eax
shl edx, 0xe
mov eax, ecx
shr eax, 0x12
or edx, eax
mov dword [esp + 0x80], edx
shl ecx, 0xe
mov dword [esp + 0x64], ecx
lea edi, [edi + 0x3ffe]
mov dword [esp + 0x60], edi
jmp 0x4ab9c7
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x80]
shl esi, 0xf
mov ecx, eax
shr ecx, 0x11
or esi, ecx
shl eax, 0xf
mov edi, edx
shr edi, 0x11
or eax, edi
mov edi, dword [esp + 0x64]
mov dword [esp + 0x78], eax
shl edx, 0xf
mov ecx, edi
shr ecx, 0x11
or edx, ecx
mov dword [esp + 0x80], edx
shl edi, 0xf
mov dword [esp + 0x64], edi
mov eax, dword [esp + 0x94]
mov edx, dword [esp + 0x7c]
shl ebx, 0xf
mov ecx, eax
shr ecx, 0x11
or ebx, ecx
mov dword [esp + 0x20], ebx
shl eax, 0xf
mov edi, edx
shr edi, 0x11
or eax, edi
mov edi, dword [esp + 0x90]
mov dword [esp + 0x94], eax
shl edx, 0xf
mov ecx, edi
shr ecx, 0x11
or edx, ecx
mov dword [esp + 0x7c], edx
shl edi, 0xf
mov dword [esp + 0x90], edi
cmp ebx, esi
jb 0x4aba20
jne 0x4aba4c
mov edx, eax
mov ecx, dword [esp + 0x78]
cmp edx, ecx
ja 0x4aba40
mov edx, 0xffffffff
mov dword [esp + 0x24], edx
mov dword [esp + 0x70], edx
mov dword [esp + 0x9c], edx
mov dword [esp + 0x88], edx
jmp 0x4abbb4
mov edx, ecx
mov dword [esp + 0x28], esi
mov dword [esp + 0x1c], edx
jmp 0x4aba58
mov edx, dword [esp + 0x78]
mov dword [esp + 0x28], esi
mov dword [esp + 0x1c], edx
cmp ebx, esi
ja 0x4aba72
mov dword [esp + 0x70], 0xffffffff
mov edx, 0xffffffff
mov dword [esp + 0x88], edx
jmp 0x4aba9d
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
div dword [esp + 0x20]
mov dword [esp + 0x70], eax
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x70]
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x88], edx
mov eax, dword [esp + 0x94]
mov ecx, edx
mul ecx
mov edi, eax
neg edi
mov eax, ecx
mov ecx, edx
mul ebx
add ecx, eax
mov eax, dword [esp + 0x80]
adc edx, 0
add edi, eax
mov dword [esp + 0x6c], edi
cmp eax, edi
mov edi, dword [esp + 0x78]
mov eax, 0
adc eax, 0
neg ecx
add ecx, edi
sub ecx, eax
cmp ecx, edi
ja 0x4abae4
test eax, eax
je 0x4abaeb
cmp ecx, edi
jne 0x4abaeb
mov edi, 1
jmp 0x4abaed
xor edi, edi
neg edx
add edx, esi
sub edx, edi
js 0x4abb02
mov edi, dword [esp + 0x6c]
mov dword [esp], ecx
mov dword [esp + 4], edi
jmp 0x4abb65
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x74], esi
mov esi, dword [esp + 0x88]
mov eax, dword [esp + 0x94]
add esi, 0xffffffff
add edi, eax
cmp edi, eax
mov eax, 0
adc eax, 0
add ecx, ebx
add ecx, eax
cmp ecx, ebx
jb 0x4abb37
test eax, eax
je 0x4abb3e
cmp ecx, ebx
jne 0x4abb3e
mov eax, 1
jmp 0x4abb40
xor eax, eax
add edx, eax
js 0x4abb11
mov dword [esp + 0x88], esi
mov esi, dword [esp + 0x74]
mov dword [esp + 0x6c], edi
mov dword [esp], ecx
mov dword [esp + 4], edi
mov edi, dword [esp + 0x88]
mov dword [esp + 0x70], edi
cmp ebx, ecx
ja 0x4abb7f
mov dword [esp + 0x24], 0xffffffff
mov edx, 0xffffffff
mov dword [esp + 0x9c], edx
jmp 0x4abbb4
mov edx, dword [esp]
mov eax, dword [esp + 4]
div dword [esp + 0x20]
mov dword [esp + 0x24], eax
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x88], edx
mov dword [esp + 0x9c], ecx
mov edi, dword [esp + 0x90]
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x8c], ebx
mov eax, edi
mov dword [esp + 0x74], esi
mov esi, dword [esp + 0x9c]
mul esi
mov dword [esp + 0x98], eax
mov dword [esp + 0x84], edx
mov eax, ecx
mul edi
mov edi, dword [esp + 0x7c]
mov dword [esp + 0x6c], eax
mov eax, esi
mov dword [esp + 0x38], edx
mul edi
mov dword [esp + 0x3c], eax
mov eax, ecx
mov dword [esp + 0x40], edx
mul edi
mov edi, dword [esp + 0x94]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], edx
mov eax, edi
mul esi
mov dword [esp + 0x4c], eax
mov eax, edi
mov dword [esp + 0x50], edx
mul ecx
mov dword [esp + 0x34], edx
mov edi, eax
mov eax, ebx
mul esi
mov dword [esp + 0x54], edx
mov esi, eax
mov eax, ecx
mul ebx
mov ebx, dword [esp + 0x84]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x6c]
xor ecx, ecx
add ebx, edx
adc ecx, 0
mov edx, dword [esp + 0x3c]
add ebx, edx
mov edx, dword [esp + 0x38]
adc ecx, 0
mov dword [esp + 0x84], ebx
mov ebx, dword [esp + 0x4c]
xor eax, eax
add ecx, edx
mov edx, dword [esp + 0x40]
adc eax, 0
add ecx, edx
adc eax, 0
mov edx, dword [esp + 0x44]
add edx, ebx
mov ebx, 0
adc ebx, 0
add ecx, edx
adc eax, ebx
mov edx, dword [esp + 0x48]
xor ebx, ebx
add eax, edx
adc ebx, 0
mov edx, dword [esp + 0x50]
add eax, edx
adc ebx, 0
xor edx, edx
add edi, esi
adc edx, 0
add eax, edi
adc ebx, edx
mov edi, dword [esp + 0x34]
xor esi, esi
mov edx, dword [esp + 0x54]
add edi, edx
adc esi, 0
mov edx, dword [esp + 0x58]
add edx, ebx
mov ebx, dword [esp + 0x5c]
adc ebx, 0
add edi, edx
adc esi, ebx
mov ebx, 1
xor edx, edx
mov dword [esp + 0x34], edi
mov dword [esp + 0x6c], esi
mov esi, dword [esp + 0x98]
cmp esi, 0
cmovne edx, ebx
neg esi
mov ebx, dword [esp + 0x84]
mov dword [esp + 0x98], esi
mov esi, dword [esp + 0x74]
add ebx, edx
neg ebx
mov dword [esp + 0x84], ebx
mov ebx, dword [esp + 0x8c]
jne 0x4abd1f
test edx, edx
je 0x4abd26
mov edx, dword [esp + 0x84]
test edx, edx
jne 0x4abd26
mov edi, 1
jmp 0x4abd28
xor edi, edi
mov edx, dword [esp + 0x64]
neg ecx
add ecx, edx
sub ecx, edi
cmp ecx, edx
ja 0x4abd3e
test edi, edi
je 0x4abd45
cmp ecx, edx
jne 0x4abd45
mov edi, 1
jmp 0x4abd47
xor edi, edi
mov edx, dword [esp + 0x80]
neg eax
add eax, edx
sub eax, edi
cmp eax, edx
ja 0x4abd60
test edi, edi
je 0x4abd6e
cmp eax, edx
jne 0x4abd6e
mov edx, 1
mov dword [esp + 0x80], edx
jmp 0x4abd77
xor edx, edx
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x78]
neg edx
add edx, edi
sub edx, dword [esp + 0x80]
cmp edx, edi
mov dword [esp + 0x34], edx
ja 0x4abda5
mov edx, dword [esp + 0x80]
test edx, edx
je 0x4abdac
mov edx, dword [esp + 0x34]
cmp edx, edi
jne 0x4abdac
mov edx, 1
jmp 0x4abdae
xor edx, edx
sub esi, dword [esp + 0x6c]
sub esi, edx
jns 0x4abec6
mov dword [esp + 0x8c], ebx
mov ebx, dword [esp + 0x34]
mov edx, dword [esp + 0x9c]
add edx, 0xffffffff
mov dword [esp + 0x9c], edx
cmp edx, 0xffffffff
jne 0x4abdf0
mov edx, dword [esp + 0x88]
add edx, 0xffffffff
mov dword [esp + 0x88], edx
mov dword [esp + 0x70], edx
mov edi, dword [esp + 0x90]
mov edx, dword [esp + 0x98]
add edx, edi
mov dword [esp + 0x98], edx
cmp edx, edi
jae 0x4abe34
mov edx, dword [esp + 0x7c]
mov edi, dword [esp + 0x84]
lea edi, [edx + edi + 1]
mov dword [esp + 0x84], edi
cmp edi, edx
jb 0x4abe4c
mov edi, edx
mov edx, dword [esp + 0x84]
cmp edx, edi
je 0x4abe4c
jmp 0x4abe61
mov edi, dword [esp + 0x7c]
mov edx, dword [esp + 0x84]
add edx, edi
mov dword [esp + 0x84], edx
cmp edx, edi
jae 0x4abe61
mov edx, dword [esp + 0x94]
lea ecx, [edx + ecx + 1]
cmp ecx, edx
jb 0x4abe6e
cmp ecx, edx
je 0x4abe6e
jmp 0x4abe83
mov edx, dword [esp + 0x94]
add ecx, edx
cmp ecx, edx
jae 0x4abe83
mov edx, dword [esp + 0x8c]
lea eax, [edx + eax + 1]
cmp eax, edx
jb 0x4abe90
cmp eax, edx
je 0x4abe90
jmp 0x4abe97
mov edx, dword [esp + 0x8c]
add eax, edx
cmp eax, edx
jae 0x4abe97
mov edx, 1
jmp 0x4abe99
xor edx, edx
add ebx, edx
test edx, edx
je 0x4abeaa
test ebx, ebx
jne 0x4abeaa
mov edx, 1
jmp 0x4abeac
xor edx, edx
add esi, edx
js 0x4abdc5
mov ebx, dword [esp + 0x8c]
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], eax
cmp ebx, eax
mov dword [esp + 0x1c], ecx
ja 0x4abee1
mov dword [esp + 0x2c], 0xffffffff
mov esi, 0xffffffff
jmp 0x4abf01
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
div dword [esp + 0x20]
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x5c], esi
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x94]
mul esi
mov edi, edx
mov dword [esp + 0x88], eax
mov eax, ebx
mul esi
mov esi, dword [esp + 0x84]
add edi, eax
adc edx, 0
mov eax, dword [esp + 0x88]
neg eax
add eax, esi
mov dword [esp + 0x88], eax
cmp esi, eax
mov eax, dword [esp + 0x3c]
mov esi, 0
adc esi, 0
mov dword [esp + 0x34], esi
neg edi
add edi, ecx
sub edi, esi
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x6c], edi
cmp edi, ecx
ja 0x4abf71
mov edi, dword [esp + 0x34]
test edi, edi
je 0x4abf78
mov edi, dword [esp + 0x6c]
cmp edi, ecx
jne 0x4abf78
mov ecx, 1
jmp 0x4abf7a
xor ecx, ecx
sub eax, edx
sub eax, ecx
js 0x4abf95
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
jmp 0x4abff3
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x88]
mov edi, dword [esp + 0x94]
add esi, 0xffffffff
add edx, edi
cmp edx, edi
mov edi, 0
adc edi, 0
add ecx, ebx
add ecx, edi
cmp ecx, ebx
jb 0x4abfc6
test edi, edi
je 0x4abfcd
cmp ecx, ebx
jne 0x4abfcd
mov edi, 1
jmp 0x4abfcf
xor edi, edi
add eax, edi
js 0x4abfa0
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x88], edx
mov edx, ecx
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x2c], esi
cmp ebx, edx
ja 0x4abffe
mov ecx, 0xffffffff
jmp 0x4ac016
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
div dword [esp + 0x20]
mov dword [esp + 0x30], eax
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov edx, ecx
and edx, 0x3fff
cmp edx, 4
ja 0x4ac368
mov edi, dword [esp + 0x90]
mov dword [esp + 0x5c], esi
mov eax, edi
mul ecx
mov dword [esp + 0x74], ecx
mov ebx, edx
mov dword [esp + 0x80], eax
mov eax, edi
mul esi
mov edi, dword [esp + 0x7c]
mov dword [esp + 0x58], eax
mov eax, edi
mov dword [esp + 0x54], edx
mul ecx
mov dword [esp + 0x50], eax
mov eax, edi
mov edi, dword [esp + 0x94]
mov dword [esp + 0x4c], edx
mul esi
mov dword [esp + 0x48], eax
mov eax, edi
mov dword [esp + 0x44], edx
mul ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], edx
mov eax, edi
mul esi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x9c], edi
mov dword [esp + 0x38], eax
mov eax, ecx
xor ecx, ecx
mov dword [esp + 0x88], edx
mul edi
mov dword [esp + 0x34], eax
mov eax, esi
mov dword [esp + 0x6c], edx
mul edi
xor edi, edi
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0x8c]
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x48]
add ebx, eax
adc edi, 0
mov eax, dword [esp + 0x50]
add ebx, eax
mov eax, dword [esp + 0x54]
adc edi, 0
mov dword [esp + 0x64], ebx
xor ebx, ebx
add edi, eax
adc ebx, 0
mov eax, dword [esp + 0x4c]
add edi, eax
adc ebx, 0
mov eax, dword [esp + 0x40]
add edx, eax
mov eax, 0
adc eax, 0
add edi, edx
adc ebx, eax
mov eax, dword [esp + 0x44]
add ebx, eax
adc ecx, 0
mov eax, dword [esp + 0x3c]
add ebx, eax
adc ecx, 0
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
add edx, eax
mov eax, 0
adc eax, 0
add ebx, edx
adc ecx, eax
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x6c]
add edx, eax
mov eax, 0
adc eax, 0
add esi, ecx
mov ecx, dword [esp + 0x78]
adc ecx, 0
add edx, esi
adc eax, ecx
mov esi, dword [esp + 0x80]
xor ecx, ecx
cmp esi, 0
mov dword [esp + 0x6c], eax
mov eax, 1
cmovne ecx, eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x8c], ecx
neg esi
mov dword [esp + 0x80], esi
add eax, ecx
neg eax
mov ecx, dword [esp + 0x74]
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x64], eax
jne 0x4ac199
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x4ac1a4
mov eax, dword [esp + 0x64]
test eax, eax
jne 0x4ac1a4
mov eax, 1
mov dword [esp + 0x34], eax
jmp 0x4ac1aa
xor eax, eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x98]
neg edi
add edi, eax
sub edi, dword [esp + 0x34]
cmp edi, eax
ja 0x4ac1d0
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4ac1db
mov eax, dword [esp + 0x98]
cmp edi, eax
jne 0x4ac1db
mov eax, 1
mov dword [esp + 0x34], eax
jmp 0x4ac1e1
xor eax, eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x84]
neg ebx
add ebx, eax
sub ebx, dword [esp + 0x34]
cmp ebx, eax
ja 0x4ac207
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4ac212
mov eax, dword [esp + 0x84]
cmp ebx, eax
jne 0x4ac212
mov eax, 1
mov dword [esp + 0x34], eax
jmp 0x4ac218
xor eax, eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x84], eax
neg edx
add edx, eax
sub edx, dword [esp + 0x34]
cmp edx, eax
ja 0x4ac242
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4ac250
mov eax, dword [esp + 0x84]
cmp edx, eax
jne 0x4ac250
mov eax, 1
mov dword [esp + 0x84], eax
jmp 0x4ac259
xor eax, eax
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x6c]
sub eax, dword [esp + 0x84]
jns 0x4ac34b
mov dword [esp + 0x78], eax
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x74]
add ecx, 0xffffffff
mov dword [esp + 0x74], ecx
lea eax, [esi - 1]
cmp ecx, 0xffffffff
cmove esi, eax
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x80]
add ecx, eax
mov dword [esp + 0x80], ecx
cmp ecx, eax
jae 0x4ac2c5
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x64]
lea eax, [ecx + eax + 1]
mov dword [esp + 0x64], eax
cmp eax, ecx
jb 0x4ac2d7
mov eax, ecx
mov ecx, dword [esp + 0x64]
cmp ecx, eax
je 0x4ac2d7
jmp 0x4ac2ec
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x64]
add ecx, eax
mov dword [esp + 0x64], ecx
cmp ecx, eax
jae 0x4ac2ec
mov ecx, dword [esp + 0x94]
lea edi, [ecx + edi + 1]
cmp edi, ecx
jb 0x4ac2f9
cmp edi, ecx
je 0x4ac2f9
jmp 0x4ac30e
mov ecx, dword [esp + 0x94]
add edi, ecx
cmp edi, ecx
jae 0x4ac30e
mov ecx, dword [esp + 0x9c]
lea ebx, [ecx + ebx + 1]
cmp ebx, ecx
jb 0x4ac31b
cmp ebx, ecx
je 0x4ac31b
jmp 0x4ac322
mov ecx, dword [esp + 0x9c]
add ebx, ecx
cmp ebx, ecx
jae 0x4ac322
mov ecx, 1
jmp 0x4ac324
xor ecx, ecx
add edx, ecx
test ecx, ecx
je 0x4ac335
test edx, edx
jne 0x4ac335
mov ecx, 1
jmp 0x4ac337
xor ecx, ecx
mov eax, dword [esp + 0x78]
add eax, ecx
mov dword [esp + 0x78], eax
js 0x4ac276
mov ecx, dword [esp + 0x74]
or eax, edx
or eax, ebx
or eax, edi
mov edx, 1
xor ebx, ebx
or eax, dword [esp + 0x64]
or eax, dword [esp + 0x80]
cmovne ebx, edx
or ecx, ebx
mov edi, dword [esp + 0x24]
mov edx, ecx
shl edx, 0x11
mov ebx, esi
shl ebx, 0x11
shr ecx, 0xf
or ebx, ecx
mov dword [esp + 0x30], ebx
mov ecx, edi
shl ecx, 0x11
shr esi, 0xf
or ecx, esi
mov esi, dword [esp + 0x70]
mov dword [esp + 0x2c], ecx
mov eax, esi
shl eax, 0x11
shr edi, 0xf
or eax, edi
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x60]
shr esi, 0xf
mov dword [esp + 0x70], esi
cmp eax, 0x7ffd
jae 0x4ac534
test edx, edx
je 0x4ac4c8
fnstcw word [esp + 0x18]
mov eax, dword [esp + 0x18]
mov ecx, dword [0x4cd4a0]
mov ebx, dword [0x4cd4a8]
movsd xmm0, qword [ecx]
and eax, 0xc00
addsd xmm0, qword [ebx]
movsd qword [esp + 8], xmm0
jne 0x4ac3ed
mov ebx, edx
shr ebx, 0x1f
jmp 0x4ac420
cmp eax, 0xc00
je 0x4ac48e
mov ecx, dword [esp + 0x68]
test ecx, ecx
je 0x4ac411
mov ecx, 1
xor ebx, ebx
cmp eax, 0x400
cmove ebx, ecx
jmp 0x4ac420
mov ecx, 1
xor ebx, ebx
cmp eax, 0x800
cmove ebx, ecx
test ebx, ebx
je 0x4ac48e
mov esi, dword [esp + 0x30]
add esi, 1
jne 0x4ac458
mov edi, dword [esp + 0x2c]
add edi, 1
jne 0x4ac44e
mov ecx, dword [esp + 0x24]
add ecx, 1
jne 0x4ac448
mov ebx, dword [esp + 0x70]
add ebx, 1
jmp 0x4ac464
mov ebx, dword [esp + 0x70]
jmp 0x4ac464
mov ebx, dword [esp + 0x70]
mov ecx, dword [esp + 0x24]
jmp 0x4ac464
mov ebx, dword [esp + 0x70]
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x5c], edi
mov edi, 1
cmp eax, 0
mov eax, 0
cmove eax, edi
add edx, edx
mov edx, 0
cmove edx, edi
mov edi, dword [esp + 0x5c]
and eax, edx
not eax
and esi, eax
jmp 0x4ac49e
mov ebx, dword [esp + 0x70]
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x30]
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x60]
mov dword [eax], esi
mov dword [eax + 4], edi
mov dword [eax + 8], ecx
shl edx, 0x10
mov ecx, dword [esp + 0x68]
add edx, ebx
or ecx, edx
mov dword [eax + 0xc], ecx
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x94], edx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x34], ebx
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x80]
mov ebx, dword [esp + 0x94]
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x8c]
mov dword [eax], edx
mov edx, dword [esp + 0x68]
mov dword [eax + 4], ecx
mov dword [eax + 8], ebx
shl esi, 0x10
add edi, esi
or edx, edi
mov dword [eax + 0xc], edx
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
fnstcw word [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x98], ecx
and ecx, 0xc00
jne 0x4ac552
mov eax, edx
shr eax, 0x1f
jmp 0x4ac57e
cmp ecx, 0xc00
je 0x4ac57c
mov eax, dword [esp + 0x68]
test eax, eax
je 0x4ac570
cmp ecx, 0x400
je 0x4ac9f3
jmp 0x4ac57c
cmp ecx, 0x800
je 0x4aca49
xor eax, eax
mov ebx, dword [esp + 0x60]
cmp ebx, 0x7ffd
jle 0x4ac612
mov eax, dword [0x4cd4a4]
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
movsd qword [esp + 8], xmm0
cmp ecx, 0xc00
je 0x4ac9ac
mov eax, dword [esp + 0x68]
test eax, eax
je 0x4ac5c3
cmp ecx, 0x800
je 0x4ac9ac
jmp 0x4ac5cf
cmp ecx, 0x400
je 0x4ac9ac
mov edx, 1
xor edi, edi
cmp eax, 0
cmovne edi, edx
mov edx, dword [ebp + 8]
shl edi, 4
mov ecx, dword [edi + 0x4c5320]
mov dword [edx], ecx
mov ebx, dword [edi + 0x4c5324]
mov dword [edx + 4], ebx
mov esi, dword [edi + 0x4c5328]
mov dword [edx + 8], esi
mov eax, dword [edi + 0x4c532c]
mov dword [edx + 0xc], eax
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp ebx, 0x7ffd
je 0x4aca05
mov ecx, ebx
test ecx, ecx
jge 0x4ac3b5
cmp ecx, 0xffffffff
jge 0x4ac633
mov ebx, dword [esp + 0x30]
jmp 0x4ac67b
test eax, eax
jne 0x4ac63d
mov ebx, dword [esp + 0x30]
jmp 0x4ac67b
mov eax, dword [esp + 0x70]
cmp eax, 0x1ffff
jae 0x4ac64e
mov ebx, dword [esp + 0x30]
jmp 0x4ac67b
jne 0x4ac689
mov eax, dword [esp + 0x24]
cmp eax, 0xffffffff
jae 0x4ac65f
mov ebx, dword [esp + 0x30]
jmp 0x4ac67b
jne 0x4ac689
mov eax, dword [esp + 0x2c]
cmp eax, 0xffffffff
jae 0x4ac670
mov ebx, dword [esp + 0x30]
jmp 0x4ac67b
jne 0x4ac689
mov ebx, dword [esp + 0x30]
cmp ebx, 0xffffffff
jae 0x4ac68d
mov eax, 1
mov dword [esp + 0x84], eax
jmp 0x4ac696
mov ebx, dword [esp + 0x30]
xor eax, eax
mov dword [esp + 0x84], eax
neg ecx
mov dword [esp + 0x60], ecx
mov eax, ecx
neg eax
cmp ecx, 0x20
mov dword [esp + 0x9c], eax
jge 0x4ac72e
mov ecx, eax
mov esi, ebx
shl esi, cl
mov edi, 1
cmp edx, 0
mov edx, 0
cmovne edx, edi
mov ecx, eax
or edx, esi
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x60]
mov edi, esi
shl edi, cl
mov ecx, edx
shr ebx, cl
mov ecx, eax
or edi, ebx
mov dword [esp + 0x34], edi
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0x24]
mov ebx, edi
shl ebx, cl
mov ecx, edx
shr esi, cl
mov ecx, eax
or ebx, esi
mov esi, dword [esp + 0x70]
mov dword [esp + 0x80], ebx
mov eax, esi
shl eax, cl
mov ecx, edx
shr edi, cl
mov ecx, edx
shr esi, cl
mov edx, dword [esp + 0x58]
mov dword [esp + 0x8c], esi
or eax, edi
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x94], eax
jmp 0x4ac868
mov eax, ecx
cmp eax, 0x20
je 0x4ac977
cmp eax, 0x40
jge 0x4ac7a5
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x9c]
mov ecx, esi
mov edi, eax
shl edi, cl
or edx, ebx
mov ebx, 1
mov ecx, esi
mov edx, 0
cmovne edx, ebx
or edx, edi
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x24]
mov edi, edx
shl edi, cl
mov ecx, dword [esp + 0x60]
shr eax, cl
mov ecx, esi
or edi, eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x34], edi
mov ebx, eax
shl ebx, cl
mov ecx, dword [esp + 0x60]
shr edx, cl
or ebx, edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x80], ebx
shr eax, cl
mov dword [esp + 0x94], eax
jmp 0x4ac85d
cmp eax, 0x40
je 0x4ac94c
cmp eax, 0x60
jge 0x4ac7f6
or ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
mov edi, eax
or ebx, edx
mov ecx, dword [esp + 0x9c]
mov esi, 1
mov edx, 0
cmovne edx, esi
shl edi, cl
mov ebx, dword [esp + 0x70]
or edx, edi
mov edi, ebx
shl edi, cl
mov ecx, dword [esp + 0x60]
shr eax, cl
shr ebx, cl
mov dword [esp + 0x80], ebx
or edi, eax
mov dword [esp + 0x34], edi
jmp 0x4ac854
cmp eax, 0x60
je 0x4ac928
cmp eax, 0x80
jge 0x4ac83c
mov edi, dword [esp + 0x70]
mov ecx, dword [esp + 0x9c]
mov esi, dword [esp + 0x24]
or esi, dword [esp + 0x2c]
mov eax, edi
shl eax, cl
or esi, ebx
or esi, edx
mov ecx, dword [esp + 0x60]
mov ebx, 1
mov edx, 0
cmovne edx, ebx
shr edi, cl
mov dword [esp + 0x34], edi
or edx, eax
jmp 0x4ac849
xor eax, eax
mov dword [esp + 0x34], eax
xor edi, edi
mov edx, 1
xor eax, eax
mov dword [esp + 0x80], eax
xor ebx, ebx
xor eax, eax
mov dword [esp + 0x94], eax
xor ecx, ecx
mov dword [esp + 0x8c], ecx
xor esi, esi
mov ecx, dword [esp + 0x84]
test ecx, ecx
je 0x4ac90d
test edx, edx
je 0x4ac8a9
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x24], eax
mov eax, dword [0x4cd4a8]
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
movsd qword [esp + 8], xmm0
mov dword [esp + 0x70], esi
xor ecx, ecx
mov dword [esp + 0x60], ecx
jmp 0x4ac3bd
mov edx, dword [esp + 0x98]
test dl, 0x10
jne 0x4ac902
mov edx, dword [0x4cd4ac]
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
xor ecx, ecx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x24], eax
mov dword [esp + 0x94], eax
mov eax, dword [0x4cd4a8]
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp + 8], xmm0
mov dword [esp + 0x70], esi
mov dword [esp + 0x8c], esi
mov dword [esp + 0x60], ecx
jmp 0x4ac4f1
xor eax, eax
mov dword [esp + 0x60], eax
jmp 0x4ac4f1
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x24], eax
mov dword [esp + 0x70], esi
xor eax, eax
mov dword [esp + 0x60], eax
jmp 0x4ac3b5
or ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x70]
mov dword [esp + 0x34], edi
or ebx, edx
mov eax, 1
mov edx, 0
cmovne edx, eax
or edx, dword [esp + 0x24]
jmp 0x4ac849
or edx, ebx
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x80], ebx
mov edi, 1
mov edx, 0
cmovne edx, edi
mov edi, dword [esp + 0x24]
or edx, dword [esp + 0x2c]
mov dword [esp + 0x34], edi
jmp 0x4ac854
mov eax, dword [esp + 0x70]
mov dword [esp + 0x94], eax
mov edi, 1
cmp edx, 0
mov edx, 0
cmovne edx, edi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x34], edi
or edx, ebx
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x80], ebx
jmp 0x4ac85d
mov eax, dword [esp + 0x68]
mov edx, 1
xor edi, edi
cmp eax, 0
cmovne edi, edx
mov edx, dword [ebp + 8]
shl edi, 4
mov ecx, dword [edi + 0x4c5360]
mov dword [edx], ecx
mov ebx, dword [edi + 0x4c5364]
mov dword [edx + 4], ebx
mov esi, dword [edi + 0x4c5368]
mov dword [edx + 8], esi
mov eax, dword [edi + 0x4c536c]
mov dword [edx + 0xc], eax
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test edx, edx
je 0x4ac57c
mov eax, 1
jmp 0x4ac57e
mov ebx, dword [esp + 0x70]
cmp ebx, 0x1ffff
jne 0x4ac3b5
mov ebx, dword [esp + 0x24]
cmp ebx, 0xffffffff
jne 0x4ac3b5
mov ebx, dword [esp + 0x2c]
cmp ebx, 0xffffffff
jne 0x4ac3b5
mov ebx, dword [esp + 0x30]
cmp ebx, 0xffffffff
jne 0x4ac3b5
test eax, eax
jne 0x4ac58e
jmp 0x4ac3b5
test edx, edx
je 0x4ac57c
mov eax, 1
jmp 0x4ac57e
mov eax, dword [esp + 0x94]
mov edx, dword [esp + 0x78]
cmp edx, eax
jne 0x4ab8fe
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x80]
cmp edx, eax
jne 0x4ab8fe
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0x64]
cmp edx, eax
jne 0x4ab8fe
lea edx, [edi + 0x3ffe]
cmp edx, 0x7ffd
jle 0x4acb40
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], esi
fnstcw word [esp + 0x18]
mov edx, dword [esp + 0x18]
mov eax, dword [0x4cd4a4]
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
movsd qword [esp + 8], xmm0
and edx, 0xc00
cmp edx, 0xc00
je 0x4ac9ac
mov eax, dword [esp + 0x68]
test eax, eax
je 0x4acaf1
cmp edx, 0x800
je 0x4ac9ac
jmp 0x4acafd
cmp edx, 0x400
je 0x4ac9ac
mov edx, 1
xor edi, edi
cmp eax, 0
cmovne edi, edx
mov edx, dword [ebp + 8]
shl edi, 4
mov ecx, dword [edi + 0x4c5320]
mov dword [edx], ecx
mov ebx, dword [edi + 0x4c5324]
mov dword [edx + 4], ebx
mov esi, dword [edi + 0x4c5328]
mov dword [edx + 8], esi
mov eax, dword [edi + 0x4c532c]
mov dword [edx + 0xc], eax
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test edx, edx
jl 0x4acb70
mov ebx, dword [ebp + 8]
mov edx, dword [esp + 0x68]
xor eax, eax
mov dword [ebx], eax
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
add edi, 0x3fff
shl edi, 0x10
or edx, edi
mov dword [ebx + 0xc], edx
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp edx, 0xffffffef
jle 0x4acba7
mov ebx, dword [ebp + 8]
mov edx, dword [esp + 0x68]
xor eax, eax
mov dword [ebx], eax
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
add edi, 0x400e
mov ecx, edi
mov edi, 1
shl edi, cl
or edx, edi
mov dword [ebx + 0xc], edx
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp edx, 0xffffffcf
jle 0x4acbdc
mov ebx, dword [ebp + 8]
mov edx, dword [esp + 0x68]
xor eax, eax
mov dword [ebx], eax
mov dword [ebx + 4], eax
add edi, 0x400e
mov ecx, edi
mov edi, 1
shl edi, cl
mov dword [ebx + 0xc], edx
mov dword [ebx + 8], edi
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp edx, 0xffffffaf
jle 0x4acc11
mov ebx, dword [ebp + 8]
mov edx, dword [esp + 0x68]
xor eax, eax
mov dword [ebx], eax
mov dword [ebx + 8], eax
add edi, 0x400e
mov ecx, edi
mov edi, 1
shl edi, cl
mov dword [ebx + 0xc], edx
mov dword [ebx + 4], edi
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp edx, 0xffffff8f
jle 0x4acc46
mov ebx, dword [ebp + 8]
mov edx, dword [esp + 0x68]
xor eax, eax
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
add edi, 0x400e
mov ecx, edi
mov edi, 1
shl edi, cl
mov dword [ebx + 0xc], edx
mov dword [ebx], edi
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], esi
fnstcw word [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov eax, dword [0x4cd4a8]
mov edx, dword [esp + 0x68]
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
movsd qword [esp + 8], xmm0
and ecx, 0xc00
test edx, edx
je 0x4acc89
mov eax, 1
xor edx, edx
cmp ecx, 0x400
cmove edx, eax
jmp 0x4acc99
mov eax, 1
xor edx, edx
cmp ecx, 0x800
cmove edx, eax
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x68]
mov dword [ecx], edx
xor edx, edx
mov dword [ecx + 4], edx
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x78]
or eax, dword [esp + 0x80]
xor ecx, ecx
or eax, dword [esp + 0x64]
mov eax, 1
cmovne ecx, eax
or ecx, dword [esp + 0x6c]
jne 0x4acce7
mov eax, 1
mov dword [esp + 0x84], eax
jmp 0x4acd27
cmp ecx, 0x10000
jae 0x4accfd
mov eax, 2
mov dword [esp + 0x84], eax
jmp 0x4acd27
cmp ecx, 0x7fff0000
jae 0x4acd13
mov eax, 4
mov dword [esp + 0x84], eax
jmp 0x4acd27
mov eax, 0x10
mov ecx, 8
cmova ecx, eax
mov dword [esp + 0x84], ecx
mov eax, dword [esp + 0x94]
or eax, dword [esp + 0x7c]
xor ecx, ecx
or eax, dword [esp + 0x90]
mov eax, 1
cmovne ecx, eax
or ecx, dword [esp + 0x60]
jne 0x4acd50
mov ecx, 1
jmp 0x4acd7b
cmp ecx, 0x10000
jae 0x4acd5f
mov ecx, 2
jmp 0x4acd7b
cmp ecx, 0x7fff0000
jae 0x4acd6e
mov ecx, 4
jmp 0x4acd7b
mov eax, 0x10
mov ecx, 8
cmova ecx, eax
mov eax, dword [esp + 0x84]
or eax, ecx
mov dword [esp + 0x34], eax
test al, 0x10
je 0x4acf77
mov eax, dword [esp + 0x84]
cmp ecx, eax
je 0x4acdef
cmp eax, 0x10
je 0x4ad43b
mov ebx, dword [ebp + 0x10]
mov edi, dword [ebp + 8]
mov eax, dword [ebx]
mov dword [edi], eax
mov edx, dword [ebx + 4]
mov dword [edi + 4], edx
mov ecx, dword [ebx + 8]
mov dword [edi + 8], ecx
mov esi, dword [ebx + 0xc]
mov dword [edi + 0xc], esi
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
test eax, 0x8000
jne 0x4acf5f
mov eax, dword [0x4cd498]
mov edx, dword [ebp + 8]
movsd xmm0, qword [eax]
divsd xmm0, xmm0
movsd qword [esp + 8], xmm0
mov eax, dword [edx + 0xc]
jmp 0x4acf5f
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x9c]
xor esi, esi
and eax, 0x8000
mov ecx, 1
cmove esi, ecx
and edx, 0x8000
mov ebx, esi
mov edx, 0
cmove edx, ecx
or ebx, edx
je 0x4ace33
mov eax, dword [0x4cd498]
movsd xmm0, qword [eax]
divsd xmm0, xmm0
movsd qword [esp + 8], xmm0
cmp edx, esi
je 0x4ace60
test esi, esi
je 0x4acf13
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 0x4acf5f
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x6c]
cmp eax, edx
jb 0x4aceaf
mov eax, dword [esp + 0x78]
mov ecx, edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x1c], eax
cmp edx, ecx
jne 0x4aced0
mov edx, dword [esp + 0x94]
cmp eax, edx
jb 0x4aceaf
cmp eax, edx
jne 0x4aced0
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x80]
cmp eax, edx
jb 0x4aceaf
cmp eax, edx
jne 0x4aced0
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x64]
cmp eax, edx
jae 0x4aced0
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 0x4acf5f
mov eax, ecx
mov edx, dword [esp + 0x6c]
cmp eax, edx
jb 0x4acf13
cmp eax, edx
jne 0x4acf31
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x94]
cmp eax, edx
jb 0x4acf13
cmp eax, edx
jne 0x4acf31
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x80]
cmp eax, edx
jb 0x4acf13
cmp eax, edx
jne 0x4acf31
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0x64]
cmp eax, edx
jae 0x4acf31
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 0x4acf5f
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0xc]
test edx, 0x80000000
je 0x4ace3f
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 eax, dword [esp + 0x84]
test ecx, eax
je 0x4acfcc
test al, 2
jne 0x4acfcc
mov eax, dword [0x4cd498]
mov edi, dword [ebp + 8]
movsd xmm0, qword [eax]
divsd xmm0, xmm0
movsd qword [esp + 8], xmm0
mov edx, dword [0x4c5310]
mov dword [edi], edx
mov ecx, dword [0x4c5314]
mov dword [edi + 4], ecx
mov ebx, dword [0x4c5318]
mov dword [edi + 8], ebx
mov esi, dword [0x4c531c]
mov dword [edi + 0xc], esi
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test al, 8
je 0x4ad035
test cl, 2
je 0x4acfee
mov eax, dword [0x4cd49c]
mov edx, dword [0x4cd4a0]
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp + 8], xmm0
mov eax, dword [esp + 0x68]
mov edx, 1
xor edi, edi
cmp eax, 0
cmovne edi, edx
mov edx, dword [ebp + 8]
shl edi, 4
mov ecx, dword [edi + 0x4c5320]
mov dword [edx], ecx
mov ebx, dword [edi + 0x4c5324]
mov dword [edx + 4], ebx
mov esi, dword [edi + 0x4c5328]
mov dword [edx + 8], esi
mov eax, dword [edi + 0x4c532c]
mov dword [edx + 0xc], eax
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test cl, 1
jne 0x4ad4d0
test al, 1
jne 0x4ad047
test cl, 8
je 0x4ad0af
mov eax, dword [esp + 0x34]
test al, 2
je 0x4ad068
mov eax, dword [0x4cd49c]
mov edx, dword [0x4cd4a0]
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp + 8], xmm0
mov eax, dword [esp + 0x68]
mov edx, 1
xor edi, edi
cmp eax, 0
cmovne edi, edx
mov edx, dword [ebp + 8]
shl edi, 4
mov ecx, dword [edi + 0x4c5340]
mov dword [edx], ecx
mov ebx, dword [edi + 0x4c5344]
mov dword [edx + 4], ebx
mov esi, dword [edi + 0x4c5348]
mov dword [edx + 8], esi
mov eax, dword [edi + 0x4c534c]
mov dword [edx + 0xc], eax
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x20], ebx
test edx, edx
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x78]
mov dword [esp + 0x1c], esi
mov esi, dword [0x4cd49c]
movsd xmm0, qword [esi]
mov esi, dword [0x4cd4a0]
mulsd xmm0, qword [esi]
movsd qword [esp + 8], xmm0
jne 0x4ad273
test ebx, ebx
je 0x4ad0ee
mov esi, ebx
shl esi, 0xf
xor edx, edx
jmp 0x4ad120
mov edx, dword [esp + 0x94]
test edx, edx
je 0x4ad102
mov esi, edx
mov edx, 0x11
jmp 0x4ad120
mov edx, dword [esp + 0x7c]
mov esi, dword [esp + 0x90]
cmp edx, 0
cmovne esi, edx
mov eax, 0x31
mov edx, 0x51
cmovne edx, eax
bsr esi, esi
sub edx, esi
add edx, 0x1f
mov esi, edx
neg esi
mov dword [esp + 0x84], esi
cmp edx, 0x20
jge 0x4ad1a6
mov esi, dword [esp + 0x94]
mov ecx, edx
shl ebx, cl
mov eax, esi
mov ecx, dword [esp + 0x84]
shr eax, cl
mov ecx, edx
shl esi, cl
mov ecx, dword [esp + 0x84]
or ebx, eax
mov dword [esp + 0x8c], ebx
mov ebx, dword [esp + 0x7c]
mov eax, ebx
shr eax, cl
mov ecx, edx
shl ebx, cl
mov ecx, dword [esp + 0x84]
or esi, eax
mov dword [esp + 0x94], esi
mov esi, dword [esp + 0x90]
mov eax, esi
shr eax, cl
mov ecx, edx
shl esi, cl
mov dword [esp + 0x90], esi
or ebx, eax
mov dword [esp + 0x7c], ebx
mov ebx, dword [esp + 0x8c]
jmp 0x4ad26c
je 0x4ad473
cmp edx, 0x40
jge 0x4ad20d
mov ebx, dword [esp + 0x94]
mov eax, dword [esp + 0x7c]
mov ecx, edx
shl ebx, cl
mov esi, eax
mov dword [esp + 0x94], ebx
mov ebx, dword [esp + 0x84]
mov ecx, ebx
shr esi, cl
mov ecx, edx
shl eax, cl
or esi, dword [esp + 0x94]
mov ecx, ebx
mov dword [esp + 0x8c], esi
mov esi, dword [esp + 0x90]
mov ebx, esi
shr ebx, cl
mov ecx, edx
shl esi, cl
mov dword [esp + 0x7c], esi
or ebx, eax
mov dword [esp + 0x94], ebx
mov ebx, dword [esp + 0x8c]
jmp 0x4ad263
je 0x4ad45c
cmp edx, 0x60
jge 0x4ad241
mov esi, dword [esp + 0x7c]
mov eax, dword [esp + 0x90]
mov ecx, edx
shl esi, cl
mov ebx, eax
mov ecx, dword [esp + 0x84]
shr ebx, cl
mov ecx, edx
shl eax, cl
mov dword [esp + 0x94], eax
or ebx, esi
jmp 0x4ad25d
mov esi, dword [esp + 0x90]
mov ecx, edx
mov ebx, esi
shl ebx, cl
cmp edx, 0x60
cmove ebx, esi
xor esi, esi
mov dword [esp + 0x94], esi
xor esi, esi
mov dword [esp + 0x7c], esi
xor esi, esi
mov dword [esp + 0x90], esi
neg edx
add edx, 1
jmp 0x4ad277
mov ebx, dword [esp + 0x20]
test edi, edi
jne 0x4ad42a
mov esi, dword [esp + 0x28]
test esi, esi
je 0x4ad290
mov eax, esi
shl eax, 0xf
xor edi, edi
jmp 0x4ad2bd
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4ad29f
mov edi, 0x11
jmp 0x4ad2bd
mov edi, dword [esp + 0x80]
mov eax, dword [esp + 0x64]
cmp edi, 0
cmovne eax, edi
mov ecx, 0x31
mov edi, 0x51
cmovne edi, ecx
bsr eax, eax
sub edi, eax
add edi, 0x1f
mov eax, edi
neg eax
mov dword [esp + 0x84], eax
cmp edi, 0x20
jge 0x4ad349
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x8c], ebx
mov ecx, edi
shl esi, cl
mov ebx, eax
mov ecx, dword [esp + 0x84]
shr ebx, cl
mov ecx, edi
shl eax, cl
mov ecx, dword [esp + 0x84]
or esi, ebx
mov dword [esp + 0x74], esi
mov esi, dword [esp + 0x80]
mov ebx, esi
shr ebx, cl
mov ecx, edi
shl esi, cl
mov ecx, dword [esp + 0x84]
or eax, ebx
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x78], eax
mov dword [esp + 0x1c], eax
mov eax, ebx
shr eax, cl
mov ecx, edi
shl ebx, cl
or esi, eax
mov dword [esp + 0x80], esi
mov esi, dword [esp + 0x74]
mov dword [esp + 0x64], ebx
mov ebx, dword [esp + 0x8c]
jmp 0x4ad420
je 0x4ad4ad
cmp edi, 0x40
jge 0x4ad3b0
mov eax, dword [esp + 0x80]
mov dword [esp + 0x8c], ebx
mov ebx, dword [esp + 0x1c]
mov ecx, edi
shl ebx, cl
mov ecx, dword [esp + 0x84]
mov esi, eax
shr esi, cl
mov ecx, edi
shl eax, cl
or ebx, esi
mov ecx, dword [esp + 0x84]
mov esi, dword [esp + 0x64]
mov dword [esp + 0x74], ebx
mov ebx, esi
shr ebx, cl
mov ecx, edi
shl esi, cl
mov dword [esp + 0x80], esi
mov esi, dword [esp + 0x74]
or ebx, eax
mov dword [esp + 0x78], ebx
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x8c]
jmp 0x4ad41a
je 0x4ad495
cmp edi, 0x60
jge 0x4ad3f3
mov eax, dword [esp + 0x80]
mov dword [esp + 0x8c], ebx
mov ebx, dword [esp + 0x64]
mov ecx, edi
shl eax, cl
mov ecx, dword [esp + 0x84]
mov esi, ebx
shr esi, cl
mov ecx, edi
shl ebx, cl
mov dword [esp + 0x78], ebx
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x8c]
or esi, eax
jmp 0x4ad411
mov eax, dword [esp + 0x64]
mov dword [esp + 0x1c], 0
mov ecx, edi
mov esi, eax
shl esi, cl
cmp edi, 0x60
cmove esi, eax
xor eax, eax
mov dword [esp + 0x78], eax
xor eax, eax
mov dword [esp + 0x80], eax
xor eax, eax
mov dword [esp + 0x64], eax
neg edi
add edi, 1
jmp 0x4ab8de
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x78], esi
mov esi, dword [esp + 0x28]
jmp 0x4ab8de
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov eax, dword [ebx]
mov dword [edi], eax
mov edx, dword [ebx + 4]
mov dword [edi + 4], edx
mov ecx, dword [ebx + 8]
mov dword [edi + 8], ecx
mov esi, dword [ebx + 0xc]
mov dword [edi + 0xc], esi
jmp 0x4acdc0
mov ebx, dword [esp + 0x7c]
mov esi, dword [esp + 0x90]
mov dword [esp + 0x94], esi
jmp 0x4ad25d
mov ebx, dword [esp + 0x94]
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x94], esi
mov esi, dword [esp + 0x90]
mov dword [esp + 0x7c], esi
jmp 0x4ad263
mov esi, dword [esp + 0x80]
mov eax, dword [esp + 0x64]
mov dword [esp + 0x78], eax
mov dword [esp + 0x1c], eax
jmp 0x4ad411
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x80]
mov dword [esp + 0x78], eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x80], eax
jmp 0x4ad41a
mov eax, dword [0x4cd4a0]
mov edx, dword [0x4cd498]
mov ecx, dword [esp + 0x68]
movsd xmm0, qword [eax]
divsd xmm0, qword [edx]
movsd qword [esp + 8], xmm0
mov ebx, 1
xor edx, edx
cmp ecx, 0
cmovne edx, ebx
mov ecx, dword [ebp + 8]
shl edx, 4
mov esi, dword [edx + 0x4c5320]
mov dword [ecx], esi
mov edi, dword [edx + 0x4c5324]
mov dword [ecx + 4], edi
mov eax, dword [edx + 0x4c5328]
mov dword [ecx + 8], eax
mov eax, dword [edx + 0x4c532c]
mov dword [ecx + 0xc], eax
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret