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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push edi
push esi
push ebx
sub esp, 0xb4
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov esi, dword [edx + 0xc]
mov eax, dword [edx + 8]
mov edi, dword [edx]
mov dword [esp + 0xa4], eax
mov eax, dword [edx + 4]
mov edx, dword [ecx + 0xc]
mov dword [esp + 0xa8], eax
mov ebx, esi
and ebx, 0x7fffffff
mov dword [esp + 0x9c], edi
mov edi, dword [ecx + 8]
mov dword [esp + 0xc], edx
mov eax, edx
and eax, 0x7fffffff
mov dword [esp + 0x94], edi
mov edi, dword [ecx + 4]
mov ecx, dword [ecx]
mov dword [esp + 0x98], edi
mov edi, esi
mov dword [esp + 0x90], ecx
xor edi, edx
and edi, 0x80000000
movzx edx, bx
mov dword [esp + 0x8c], edi
mov edi, ebx
mov dword [esp + 0xb0], edx
shr edi, 0x10
mov dword [esp + 0xa0], edi
movzx ecx, ax
mov dword [esp + 0xac], ecx
mov edx, eax
shr edx, 0x10
lea edi, [edi - 1]
cmp edi, 0x7ffd
ja 0x4a6a70
lea edi, [edx - 1]
cmp edi, 0x7ffd
ja 0x4a6a70
mov esi, dword [esp + 0xa0]
mov eax, dword [esp + 0xb0]
mov edi, dword [esp + 0xac]
mov ecx, dword [esp + 0x98]
lea ebx, [esi + edx - 0x4000]
mov esi, dword [esp + 0x90]
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x9c]
or eax, 0x10000
mov dword [esp + 0xb0], eax
mov eax, ebx
mul esi
or edi, 0x10000
mov dword [esp], eax
mov eax, ebx
mov dword [esp + 4], edx
mul ecx
mov dword [esp + 8], eax
mov eax, ebx
mov dword [esp + 0xc], edx
mul dword [esp + 0x94]
mov dword [esp + 0x2c], eax
mov eax, ebx
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0x24], edx
mul edi
mov dword [esp + 0x30], eax
mov eax, esi
mov dword [esp + 0x28], edx
mul ebx
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edx
mov eax, ecx
mul ebx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x40], edx
mul ebx
mov dword [esp + 0x44], eax
mov eax, edi
mov dword [esp + 0x48], edx
mul ebx
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], edx
mov eax, esi
mul ebx
mov dword [esp + 0x54], eax
mov eax, ecx
mov dword [esp + 0x58], edx
mul ebx
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x60], edx
mul ebx
mov dword [esp + 0x64], eax
mov eax, edi
mov dword [esp + 0x68], edx
mul ebx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x20], edx
mov eax, esi
mov esi, dword [esp + 0xb0]
mul esi
mov dword [esp + 0x70], edx
mov ebx, eax
mov eax, ecx
mul esi
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x78], edx
mul esi
mov dword [esp + 0x7c], eax
mov eax, edi
mov dword [esp + 0x80], edx
mul esi
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], edx
mov edx, dword [esp + 4]
xor edi, edi
add edx, dword [esp + 8]
adc edi, 0
add edx, dword [esp + 0x34]
adc edi, 0
xor esi, esi
add ecx, dword [esp + 0x2c]
adc esi, 0
mov dword [esp + 4], edx
xor eax, eax
mov edx, dword [esp + 0x38]
add edx, dword [esp + 0x3c]
adc eax, 0
add ecx, edx
adc esi, eax
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x24]
add edx, edi
mov edi, 0
adc edi, 0
add ecx, edx
mov edx, dword [esp + 0x40]
adc esi, edi
add eax, dword [esp + 0x30]
mov dword [esp + 0xc], ecx
mov ecx, 0
adc ecx, 0
xor edi, edi
add edx, dword [esp + 0x44]
adc edi, 0
add eax, edx
adc ecx, edi
mov edx, dword [esp + 0x58]
xor edi, edi
add edx, dword [esp + 0x5c]
adc edi, 0
add ebx, esi
mov esi, 0
adc esi, 0
add edx, ebx
adc edi, esi
mov esi, dword [esp + 0x28]
add eax, edx
mov ebx, dword [esp + 0x4c]
adc ecx, edi
xor edi, edi
add esi, dword [esp + 0x48]
mov dword [esp + 0x24], eax
adc edi, 0
xor eax, eax
add ebx, dword [esp + 0x60]
adc eax, 0
add esi, ebx
adc edi, eax
mov eax, dword [esp + 0x64]
xor edx, edx
add eax, dword [esp + 0x70]
adc edx, 0
mov ebx, dword [esp + 0x74]
add ebx, ecx
mov ecx, 0
adc ecx, 0
add eax, ebx
adc edx, ecx
add esi, eax
adc edi, edx
mov ebx, dword [esp + 0x50]
xor ecx, ecx
xor eax, eax
add ebx, dword [esp + 0x68]
adc ecx, 0
mov edx, dword [esp + 0x6c]
add edx, dword [esp + 0x78]
adc eax, 0
add ebx, edx
adc ecx, eax
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x84]
add edx, edi
mov edi, 0
adc edi, 0
add ebx, edx
adc ecx, edi
xor edx, edx
mov edi, dword [esp + 0x20]
add edi, dword [esp + 0x80]
adc edx, 0
add eax, ecx
mov ecx, dword [esp + 0x88]
adc ecx, 0
add edi, eax
mov eax, dword [esp + 0x24]
adc edx, ecx
mov ecx, dword [esp + 0xc]
or ecx, dword [esp + 4]
or ecx, dword [esp]
mov dword [esp + 0x20], edi
test dl, 2
je 0x4a654d
inc dword [esp + 0x1c]
mov dword [esp + 0xc], ecx
shl edx, 0xf
mov ecx, edi
mov edi, ecx
shr edi, 0x11
or edx, edi
shl ecx, 0xf
mov edi, ebx
shr edi, 0x11
or ecx, edi
mov dword [esp + 0x20], ecx
shl ebx, 0xf
mov ecx, esi
shr ecx, 0x11
or ebx, ecx
shl esi, 0xf
mov edi, eax
shr edi, 0x11
or esi, edi
shl eax, 0xf
mov edi, dword [esp + 0xc]
mov ecx, 1
test edi, edi
cmovne edi, ecx
or eax, edi
jmp 0x4a6592
mov dword [esp + 0xc], ecx
mov ecx, edi
shl edx, 0x10
mov edi, ecx
shr edi, 0x10
or edx, edi
shl ecx, 0x10
mov edi, ebx
shr edi, 0x10
or ecx, edi
shl ebx, 0x10
mov dword [esp + 0x20], ecx
mov ecx, esi
shr ecx, 0x10
or ebx, ecx
shl esi, 0x10
mov edi, eax
shr edi, 0x10
or esi, edi
mov edi, dword [esp + 0xc]
shl eax, 0x10
mov ecx, 1
test edi, edi
cmovne edi, ecx
or eax, edi
cmp dword [esp + 0x1c], 0x7ffd
jae 0x4a6668
test eax, eax
je 0x4a6953
fnstcw word [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov edi, dword [0x4ddbd8]
movsd xmm0, qword [edi]
mov edi, dword [0x4ddbdc]
addsd xmm0, qword [edi]
movsd qword [esp + 0x10], xmm0
and ecx, 0xc00
jne 0x4a65d8
test eax, eax
jl 0x4a662d
jmp 0x4a65fc
cmp ecx, 0xc00
je 0x4a65fc
cmp dword [esp + 0x8c], 0
je 0x4a65f4
cmp ecx, 0x400
je 0x4a662d
jmp 0x4a65fc
cmp ecx, 0x800
je 0x4a662d
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x20]
mov dword [eax], esi
mov dword [eax + 4], ebx
mov ebx, dword [esp + 0x1c]
mov dword [eax + 8], ecx
shl ebx, 0x10
add ebx, edx
mov edx, dword [esp + 0x8c]
or edx, ebx
mov dword [eax + 0xc], edx
add esp, 0xb4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
inc esi
jne 0x4a664a
inc ebx
jne 0x4a664a
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x20]
lea edi, [edx + 1]
inc esi
cmove edx, edi
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x28]
xor edi, edi
test ecx, ecx
mov ecx, 1
cmove edi, ecx
add eax, eax
mov eax, 0
cmove eax, ecx
and edi, eax
not edi
and esi, edi
jmp 0x4a65fc
fnstcw word [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xc], ecx
and ecx, 0xc00
jne 0x4a6683
mov edi, eax
shr edi, 0x1f
jmp 0x4a66b1
cmp ecx, 0xc00
je 0x4a66af
cmp dword [esp + 0x8c], 0
je 0x4a66a3
cmp ecx, 0x400
je 0x4a6a16
jmp 0x4a66af
cmp ecx, 0x800
je 0x4a6a5e
xor edi, edi
cmp dword [esp + 0x1c], 0x7ffd
jle 0x4a6742
mov eax, dword [0x4ddbe0]
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
cmp ecx, 0xc00
je 0x4a69e4
cmp dword [esp + 0x8c], 0
je 0x4a66f6
cmp ecx, 0x800
je 0x4a69e4
jmp 0x4a6702
cmp ecx, 0x400
je 0x4a69e4
mov esi, dword [esp + 0x8c]
mov ebx, dword [ebp + 8]
shr esi, 0x1b
mov eax, dword [esi + 0x4d7290]
mov dword [ebx], eax
mov edx, dword [esi + 0x4d7294]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 0x4d7298]
mov dword [ebx + 8], ecx
mov edx, dword [esi + 0x4d729c]
mov eax, dword [ebp + 8]
mov dword [eax + 0xc], edx
add esp, 0xb4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x1c], 0x7ffd
je 0x4a6a28
cmp dword [esp + 0x1c], 0
jge 0x4a65a0
cmp dword [esp + 0x1c], 0xffffffff
jl 0x4a678a
test edi, edi
je 0x4a678a
cmp edx, 0x1ffff
jb 0x4a678a
jne 0x4a6794
cmp dword [esp + 0x20], 0xffffffff
jb 0x4a678a
cmp dword [esp + 0x20], 0xffffffff
jne 0x4a6794
cmp ebx, 0xffffffff
jb 0x4a678a
jne 0x4a6794
cmp esi, 0xffffffff
jae 0x4a6794
mov dword [esp + 4], 1
jmp 0x4a679c
mov dword [esp + 4], 0
mov edi, dword [esp + 0x1c]
neg edi
mov dword [esp + 0x1c], edi
mov ecx, edi
neg ecx
cmp edi, 0x20
mov dword [esp + 8], ecx
jge 0x4a6814
mov dword [esp], edx
mov edx, ecx
mov ecx, edx
mov edi, esi
shl edi, cl
mov ecx, 1
test eax, eax
cmovne eax, ecx
mov ecx, edx
or eax, edi
mov edi, ebx
shl edi, cl
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
mov ecx, eax
shr esi, cl
mov ecx, edx
or esi, edi
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x20]
mov edi, esi
shl edi, cl
mov ecx, eax
shr ebx, cl
mov ecx, edx
mov edx, dword [esp]
or ebx, edi
mov edi, edx
shl edi, cl
mov ecx, eax
shr esi, cl
shr edx, cl
mov eax, dword [esp + 0x24]
or esi, edi
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x28]
jmp 0x4a68f1
je 0x4a69c9
cmp dword [esp + 0x1c], 0x40
jge 0x4a686d
mov edi, ebx
shl edi, cl
mov dword [esp], edi
mov edi, dword [esp + 0x20]
or esi, eax
mov eax, 0
mov esi, 1
cmovne eax, esi
mov esi, edi
shl esi, cl
or eax, dword [esp]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
mov ecx, eax
shr ebx, cl
or esi, ebx
mov ebx, edx
mov ecx, dword [esp + 8]
shl ebx, cl
mov ecx, eax
shr edi, cl
shr edx, cl
mov eax, dword [esp + 0x24]
mov dword [esp + 0x20], edx
or ebx, edi
jmp 0x4a68ef
je 0x4a69ad
cmp dword [esp + 0x1c], 0x60
jge 0x4a68a9
mov edi, dword [esp + 0x20]
shl edi, cl
or esi, ebx
or esi, eax
mov ebx, dword [esp + 0x20]
mov eax, 0
mov esi, 1
cmovne eax, esi
mov esi, edx
shl esi, cl
mov ecx, dword [esp + 0x1c]
shr ebx, cl
or eax, edi
or esi, ebx
mov ebx, edx
shr ebx, cl
jmp 0x4a68e7
je 0x4a6991
cmp dword [esp + 0x1c], 0x80
jge 0x4a68de
or ebx, dword [esp + 0x20]
mov edi, edx
shl edi, cl
mov ecx, dword [esp + 0x1c]
or ebx, esi
or ebx, eax
mov eax, 0
mov ebx, 1
cmovne eax, ebx
mov esi, edx
shr esi, cl
or eax, edi
jmp 0x4a68e5
mov eax, 1
xor esi, esi
xor ebx, ebx
mov dword [esp + 0x20], 0
xor edx, edx
cmp dword [esp + 4], 0
je 0x4a6984
test eax, eax
je 0x4a6921
mov ecx, dword [0x4ddbdc]
movsd xmm0, qword [ecx]
mulsd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
mov dword [esp + 0x1c], 0
jmp 0x4a65a8
test byte [esp + 0xc], 0x10
jne 0x4a694b
mov eax, dword [0x4ddbdc]
mov ecx, dword [0x4ddbe4]
movsd xmm0, qword [eax]
mulsd xmm0, qword [ecx]
movsd qword [esp + 0x10], xmm0
mov dword [esp + 0x1c], 0
jmp 0x4a6953
mov dword [esp + 0x1c], 0
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x20]
mov dword [eax], esi
mov dword [eax + 4], ebx
mov ebx, dword [esp + 0x1c]
mov dword [eax + 8], ecx
shl ebx, 0x10
add ebx, edx
mov edx, dword [esp + 0x8c]
or edx, ebx
mov dword [eax + 0xc], edx
add esp, 0xb4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x1c], 0
jmp 0x4a65a0
or esi, ebx
mov ecx, 1
or esi, eax
mov eax, 0
cmovne eax, ecx
or eax, dword [esp + 0x20]
mov esi, edx
jmp 0x4a68e5
mov ecx, 1
or esi, eax
mov eax, 0
cmovne eax, ecx
or eax, ebx
mov ebx, edx
mov esi, dword [esp + 0x20]
jmp 0x4a68e7
mov ecx, 1
test eax, eax
cmovne eax, ecx
or eax, esi
mov esi, ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x20], edx
jmp 0x4a68ef
mov esi, dword [esp + 0x8c]
mov ebx, dword [ebp + 8]
shr esi, 0x1b
mov eax, dword [esi + 0x4d72d0]
mov dword [ebx], eax
mov edx, dword [esi + 0x4d72d4]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 0x4d72d8]
mov dword [ebx + 8], ecx
mov edx, dword [esi + 0x4d72dc]
jmp 0x4a672f
test eax, eax
je 0x4a66af
mov edi, 1
jmp 0x4a66b1
cmp edx, 0x1ffff
jne 0x4a65a0
cmp dword [esp + 0x20], 0xffffffff
jne 0x4a65a0
cmp ebx, 0xffffffff
jne 0x4a65a0
cmp esi, 0xffffffff
jne 0x4a65a0
test edi, edi
jne 0x4a66bf
jmp 0x4a65a0
test eax, eax
je 0x4a66af
mov edi, 1
jmp 0x4a66b1
mov edi, dword [esp + 0xa4]
or edi, dword [esp + 0xa8]
xor ecx, ecx
or edi, dword [esp + 0x9c]
mov edi, 1
cmovne ecx, edi
or ecx, ebx
jne 0x4a6aa5
mov dword [esp + 8], 0
mov dword [esp + 4], 1
jmp 0x4a6aef
cmp ecx, 0x10000
jae 0x4a6abc
mov edi, 2
mov dword [esp + 8], edi
mov dword [esp + 4], edi
jmp 0x4a6aef
cmp ecx, 0x7fff0000
jae 0x4a6ad6
mov dword [esp + 8], 0
mov dword [esp + 4], 4
jmp 0x4a6aef
mov dword [esp + 8], 0
mov edi, 0x10
mov ecx, 8
cmova ecx, edi
mov dword [esp + 4], ecx
mov edi, dword [esp + 0x94]
or edi, dword [esp + 0x98]
xor ecx, ecx
or edi, dword [esp + 0x90]
mov edi, 1
cmovne ecx, edi
or ecx, eax
jne 0x4a6b1c
mov edi, 1
mov dword [esp], edi
jmp 0x4a6b59
cmp ecx, 0x10000
jae 0x4a6b38
mov edi, dword [esp + 8]
mov dword [esp], 2
or edi, 2
mov dword [esp + 8], edi
jmp 0x4a6b59
cmp ecx, 0x7fff0000
jae 0x4a6b49
mov dword [esp], 4
jmp 0x4a6b59
mov edi, 0x10
mov ecx, 8
cmova ecx, edi
mov dword [esp], ecx
mov edi, dword [esp + 4]
or edi, dword [esp]
cmp dword [esp + 0xa0], 0x7fff
je 0x4a70a6
cmp edx, 0x7fff
je 0x4a70a6
test edi, 1
je 0x4a6be2
cmp dword [esp + 8], 0
je 0x4a6ba5
mov eax, dword [0x4ddbd4]
mov edx, dword [0x4ddbd8]
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp + 0x10], xmm0
mov ebx, dword [esp + 0x8c]
mov edi, dword [ebp + 8]
shr ebx, 0x1b
mov eax, dword [ebx + 0x4d72b0]
mov dword [edi], eax
mov edx, dword [ebx + 0x4d72b4]
mov dword [edi + 4], edx
mov ecx, dword [ebx + 0x4d72b8]
mov dword [edi + 8], ecx
mov esi, dword [ebx + 0x4d72bc]
mov dword [edi + 0xc], esi
add esp, 0xb4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 4]
cmp eax, dword [esp]
je 0x4a6da8
cmp dword [esp + 4], 2
mov eax, dword [0x4ddbd4]
movsd xmm0, qword [eax]
mov ebx, dword [0x4ddbd8]
mulsd xmm0, qword [ebx]
movsd qword [esp + 0x10], xmm0
je 0x4a6e75
cmp dword [esp + 0xac], 0
je 0x4a6c2b
mov ebx, dword [esp + 0xac]
shl ebx, 0xf
xor edx, edx
jmp 0x4a6c63
cmp dword [esp + 0x94], 0
je 0x4a6c43
mov ebx, dword [esp + 0x94]
mov edx, 0x11
jmp 0x4a6c63
mov edx, dword [esp + 0x98]
mov ebx, dword [esp + 0x90]
mov eax, 0x31
test edx, edx
cmovne ebx, edx
mov edx, 0x51
cmovne edx, eax
bsr eax, ebx
sub edx, eax
add edx, 0x1f
mov esi, edx
neg esi
cmp edx, 0x20
jge 0x4a6cd9
mov eax, dword [esp + 0xac]
mov ebx, dword [esp + 0x94]
mov ecx, edx
shl eax, cl
mov ecx, esi
mov edi, ebx
shr edi, cl
mov ecx, edx
shl ebx, cl
or eax, edi
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x98]
mov ecx, esi
mov edi, eax
shr edi, cl
mov ecx, edx
shl eax, cl
or ebx, edi
mov dword [esp + 0x94], ebx
mov ebx, dword [esp + 0x90]
mov ecx, esi
mov esi, ebx
shr esi, cl
mov ecx, edx
shl ebx, cl
mov dword [esp + 0x90], ebx
or eax, esi
mov dword [esp + 0x98], eax
jmp 0x4a6da0
je 0x4a6e46
cmp edx, 0x40
jge 0x4a6d2c
mov ebx, dword [esp + 0x94]
mov eax, dword [esp + 0x98]
mov ecx, edx
shl ebx, cl
mov ecx, esi
mov edi, eax
shr edi, cl
mov ecx, edx
shl eax, cl
or edi, ebx
mov ebx, dword [esp + 0x90]
mov dword [esp + 0xac], edi
mov ecx, esi
mov esi, ebx
shr esi, cl
mov ecx, edx
shl ebx, cl
or esi, eax
mov dword [esp + 0x94], esi
mov dword [esp + 0x98], ebx
jmp 0x4a6d95
je 0x4a6e25
cmp edx, 0x60
jge 0x4a6d65
mov eax, dword [esp + 0x98]
mov ecx, edx
shl eax, cl
mov ecx, esi
mov esi, dword [esp + 0x90]
mov ebx, esi
shr ebx, cl
mov ecx, edx
shl esi, cl
mov dword [esp + 0x94], esi
or ebx, eax
mov dword [esp + 0xac], ebx
jmp 0x4a6d8a
mov eax, dword [esp + 0x90]
mov dword [esp + 0x94], 0
mov ecx, edx
mov ebx, eax
shl ebx, cl
cmp edx, 0x60
cmove ebx, eax
mov dword [esp + 0xac], ebx
mov dword [esp + 0x98], 0
mov dword [esp + 0x90], 0
neg edx
inc edx
jmp 0x4a628c
fnstcw word [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov eax, dword [0x4ddbdc]
mov edx, dword [0x4ddbd4]
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp + 0x10], xmm0
and ecx, 0xc00
cmp dword [esp + 0x8c], 0
je 0x4a6deb
mov eax, 1
xor edx, edx
cmp ecx, 0x400
cmovne eax, edx
jmp 0x4a6dfb
mov eax, 1
xor edx, edx
cmp ecx, 0x800
cmovne eax, edx
mov edx, dword [ebp + 8]
mov dword [edx + 4], 0
mov dword [edx], eax
mov eax, dword [esp + 0x8c]
mov dword [edx + 8], 0
mov dword [edx + 0xc], eax
add esp, 0xb4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x98]
mov ebx, dword [esp + 0x90]
mov dword [esp + 0xac], eax
mov dword [esp + 0x94], ebx
jmp 0x4a6d8a
mov eax, dword [esp + 0x94]
mov ebx, dword [esp + 0x98]
mov esi, dword [esp + 0x90]
mov dword [esp + 0xac], eax
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], esi
jmp 0x4a6d95
cmp dword [esp + 0xb0], 0
je 0x4a6e96
mov edi, dword [esp + 0xb0]
mov dword [esp + 0xa0], 0
shl edi, 0xf
jmp 0x4a6edb
cmp dword [esp + 0xa4], 0
je 0x4a6eb4
mov edi, dword [esp + 0xa4]
mov dword [esp + 0xa0], 0x11
jmp 0x4a6edb
mov eax, dword [esp + 0xa8]
mov edi, dword [esp + 0x9c]
mov ebx, 0x31
mov esi, 0x51
test eax, eax
cmovne edi, eax
cmovne esi, ebx
mov dword [esp + 0xa0], esi
bsr eax, edi
mov ebx, dword [esp + 0xa0]
sub ebx, eax
add ebx, 0x1f
mov eax, ebx
mov dword [esp + 0xa0], ebx
neg eax
cmp ebx, 0x20
jge 0x4a6f6e
mov ecx, ebx
mov ebx, dword [esp + 0xb0]
shl ebx, cl
mov ecx, eax
mov esi, dword [esp + 0xa4]
mov edi, esi
shr edi, cl
or ebx, edi
mov ecx, dword [esp + 0xa0]
shl esi, cl
mov dword [esp + 0xb0], ebx
mov ecx, eax
mov ebx, dword [esp + 0xa8]
mov edi, ebx
shr edi, cl
or esi, edi
mov ecx, dword [esp + 0xa0]
shl ebx, cl
mov dword [esp + 0xa4], esi
mov ecx, eax
mov esi, dword [esp + 0x9c]
mov eax, esi
shr eax, cl
or ebx, eax
mov ecx, dword [esp + 0xa0]
shl esi, cl
mov dword [esp + 0xa8], ebx
mov dword [esp + 0x9c], esi
jmp 0x4a7046
je 0x4a707a
cmp dword [esp + 0xa0], 0x40
jge 0x4a6fcb
mov esi, ebx
mov ebx, dword [esp + 0xa8]
mov ecx, esi
shl dword [esp + 0xa4], cl
mov ecx, eax
mov edi, ebx
shr edi, cl
or edi, dword [esp + 0xa4]
mov ecx, esi
shl ebx, cl
mov dword [esp + 0xb0], edi
mov edi, dword [esp + 0x9c]
mov ecx, eax
mov eax, edi
shr eax, cl
mov ecx, esi
shl edi, cl
or eax, ebx
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], edi
jmp 0x4a703b
je 0x4a705c
cmp dword [esp + 0xa0], 0x60
jge 0x4a700b
mov esi, ebx
mov ebx, dword [esp + 0xa8]
mov edi, dword [esp + 0x9c]
mov ecx, esi
shl ebx, cl
mov ecx, eax
mov eax, edi
shr eax, cl
mov ecx, esi
shl edi, cl
mov dword [esp + 0xa4], edi
or eax, ebx
mov dword [esp + 0xb0], eax
jmp 0x4a7030
mov ecx, ebx
mov eax, dword [esp + 0x9c]
mov dword [esp + 0xa4], 0
mov ebx, eax
shl ebx, cl
cmp ecx, 0x60
cmove ebx, eax
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xa8], 0
mov dword [esp + 0x9c], 0
mov eax, dword [esp + 0xa0]
neg eax
inc eax
mov dword [esp + 0xa0], eax
jmp 0x4a628c
mov eax, dword [esp + 0xa8]
mov ebx, dword [esp + 0x9c]
mov dword [esp + 0xb0], eax
mov dword [esp + 0xa4], ebx
jmp 0x4a7030
mov eax, dword [esp + 0xa4]
mov ebx, dword [esp + 0xa8]
mov esi, dword [esp + 0x9c]
mov dword [esp + 0xb0], eax
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xa8], esi
jmp 0x4a703b
test edi, 0x10
je 0x4a7288
mov edx, dword [esp + 4]
cmp edx, dword [esp]
je 0x4a7111
cmp dword [esp + 4], 0x10
je 0x4a732b
mov ebx, dword [ebp + 8]
mov eax, dword [esp + 0x90]
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 ecx, dword [esi + 0xc]
test ecx, 0x8000
jne 0x4a726f
mov edx, dword [ebp + 8]
mov eax, dword [0x4ddbd0]
movsd xmm0, qword [eax]
divsd xmm0, xmm0
mov dword [edx + 0xc], ecx
movsd qword [esp + 0x10], xmm0
mov ecx, dword [edx + 0xc]
jmp 0x4a726f
mov edx, dword [esp + 0xc]
not esi
and esi, 0x8000
shr esi, 0xf
not edx
and edx, 0x8000
shr edx, 0xf
mov dword [esp + 0xc], edx
mov ecx, esi
or ecx, edx
je 0x4a7149
mov edx, dword [0x4ddbd0]
movsd xmm0, qword [edx]
divsd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
cmp esi, dword [esp + 0xc]
je 0x4a7175
test esi, esi
je 0x4a722b
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp + 8]
mov eax, dword [esi]
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 ecx, dword [esi + 0xc]
jmp 0x4a726f
cmp ebx, eax
jb 0x4a71c1
je 0x4a718d
mov edx, dword [esp + 0xa4]
cmp edx, dword [esp + 0x94]
je 0x4a719f
jmp 0x4a71df
mov edx, dword [esp + 0xa4]
cmp edx, dword [esp + 0x94]
jb 0x4a71c1
jne 0x4a71df
mov edx, dword [esp + 0xa8]
cmp edx, dword [esp + 0x98]
jb 0x4a71c1
jne 0x4a71df
mov edx, dword [esp + 0x9c]
cmp edx, dword [esp + 0x90]
jae 0x4a71df
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp + 8]
mov eax, dword [esi]
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 ecx, dword [esi + 0xc]
jmp 0x4a726f
cmp eax, ebx
jb 0x4a722b
je 0x4a71f7
mov eax, dword [esp + 0x94]
cmp eax, dword [esp + 0xa4]
je 0x4a7209
jmp 0x4a7246
mov eax, dword [esp + 0x94]
cmp eax, dword [esp + 0xa4]
jb 0x4a722b
jne 0x4a7246
mov eax, dword [esp + 0xa8]
cmp eax, dword [esp + 0x98]
ja 0x4a722b
jne 0x4a7246
mov eax, dword [esp + 0x9c]
cmp eax, dword [esp + 0x90]
jbe 0x4a7246
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov eax, dword [esi]
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 ecx, dword [esi + 0xc]
jmp 0x4a726f
mov eax, dword [ebp + 0xc]
test dword [eax + 0xc], 0x80000000
je 0x4a7157
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov eax, dword [esi]
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 ecx, dword [esi + 0xc]
mov eax, dword [ebp + 8]
or ecx, 0x8000
mov dword [eax + 0xc], ecx
add esp, 0xb4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test edi, 1
je 0x4a72ce
mov eax, dword [0x4ddbd0]
mov edx, dword [ebp + 8]
movsd xmm0, qword [eax]
divsd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov dword [edx + 0xc], 0xffff8000
add esp, 0xb4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp dword [esp + 8], 0
je 0x4a72ee
mov eax, dword [0x4ddbd4]
mov edx, dword [0x4ddbd8]
movsd xmm0, qword [eax]
mulsd xmm0, qword [edx]
movsd qword [esp + 0x10], xmm0
mov ebx, dword [esp + 0x8c]
mov edi, dword [ebp + 8]
shr ebx, 0x1b
mov eax, dword [ebx + 0x4d7290]
mov dword [edi], eax
mov edx, dword [ebx + 0x4d7294]
mov dword [edi + 4], edx
mov ecx, dword [ebx + 0x4d7298]
mov dword [edi + 8], ecx
mov esi, dword [ebx + 0x4d729c]
mov dword [edi + 0xc], esi
add esp, 0xb4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp + 8]
mov eax, dword [esp + 0x9c]
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 ecx, dword [esi + 0xc]
jmp 0x4a70e4
push ebp
mov ebp, esp
and esp, 0xfffffff8
push edi
push esi
push ebx
sub esp, 0x5c
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
mov edi, dword [ecx]
mov dword [esp + 0x14], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x2c], edx
mov esi, edx
and esi, 0x7fffffff
mov dword [esp + 0x30], esi
mov dword [esp + 0x10], edi
mov edi, dword [ebx + 8]
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 0xc]
mov ecx, eax
mov dword [esp + 0x20], edi
mov edi, dword [ebx]
mov ebx, dword [ebx + 4]
mov dword [esp + 0x28], eax
and ecx, 0x7fffffff
xor edx, eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], ebx
and edx, 0x80000000
movzx eax, si
mov dword [esp + 0x50], edx
shr esi, 0x10
mov dword [esp + 0x54], esi
movzx edx, cx
mov edi, ecx
shr edi, 0x10
lea ebx, [esi - 1]
cmp ebx, 0x7ffd
ja 0x4a7b79
lea ebx, [edi - 1]
cmp ebx, 0x7ffd
ja 0x4a7b79
mov ebx, dword [esp + 0x54]
or eax, 0x10000
or edx, 0x10000
lea ebx, [ebx + edi - 0x4000]
add esp, 0xffffffd0
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x40]
mov ecx, dword [esp + 0x50]
mov dword [esp], esi
mov esi, dword [esp + 0x48]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], esi
lea edi, [esp + 0x78]
mov dword [esp + 0x2c], edi
lea eax, [esp + 0x60]
lea edx, [esp + 0x68]
lea ecx, [esp + 0x70]
call fcn.004a82f0
add esp, 0x30
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
xor edi, edi
mov dword [esp], edx
and edx, 2
or edx, edi
je 0x4a74e4
mov edi, dword [esp]
mov edx, ecx
shr edx, 0x11
shl ecx, 0xf
shl edi, 0xf
or edx, edi
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x40]
mov edi, eax
shr edi, 0x11
or ecx, edi
mov edi, esi
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x44]
shr edi, 0x11
shl esi, 0xf
shl eax, 0xf
or edi, eax
mov dword [esp + 0x3c], edi
mov eax, ecx
shr eax, 0x11
or esi, eax
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x48]
or esi, dword [esp + 0x4c]
je 0x4a74c8
mov esi, 1
jmp 0x4a74ca
xor esi, esi
mov eax, edx
shr eax, 0x11
shl edx, 0xf
shl ecx, 0xf
or eax, ecx
or edx, esi
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], eax
inc ebx
jmp 0x4a7551
mov edi, dword [esp]
mov edx, ecx
shr edx, 0x10
shl ecx, 0x10
shl edi, 0x10
or edx, edi
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x40]
mov edi, eax
shr edi, 0x10
or ecx, edi
mov edi, esi
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x44]
shr edi, 0x10
shl esi, 0x10
shl eax, 0x10
or edi, eax
mov dword [esp + 0x3c], edi
mov eax, ecx
shr eax, 0x10
or esi, eax
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x48]
or esi, dword [esp + 0x4c]
je 0x4a7538
mov esi, 1
jmp 0x4a753a
xor esi, esi
mov eax, edx
shr eax, 0x10
shl edx, 0x10
shl ecx, 0x10
or eax, ecx
or edx, esi
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], eax
cmp ebx, 0x7ffd
jae 0x4a7693
or edx, eax
je 0x4a7aa6
fnstcw word [esp + 0x24]
mov eax, dword [esp + 0x24]
mov edx, dword [0x4ddbd8]
mov ecx, dword [0x4ddbdc]
fld qword [edx]
fadd qword [ecx]
fstp qword [esp + 0x28]
and eax, 0xc00
mov dword [esp + 8], eax
jne 0x4a75a3
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov dword [esp + 4], eax
mov dword [esp], edx
xor ecx, ecx
sub edx, ecx
jl 0x4a760e
jmp 0x4a75d3
cmp dword [esp + 8], 0xc00
je 0x4a75d3
xor eax, eax
or eax, dword [esp + 0x50]
je 0x4a75c5
cmp dword [esp + 8], 0x400
je 0x4a767f
jmp 0x4a75d3
cmp dword [esp + 8], 0x800
je 0x4a767f
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x34]
mov esi, dword [ebp + 8]
mov dword [esi], edx
mov edx, dword [esp + 0x50]
mov dword [esi + 4], ecx
shl ebx, 0x10
add eax, ebx
or edx, eax
mov eax, dword [esp + 0xc]
mov dword [esi + 8], eax
mov dword [esi + 0xc], edx
add esp, 0x5c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
add edx, 1
adc ecx, 0
mov eax, edx
or eax, ecx
jne 0x4a7636
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
add esi, 1
adc eax, 0
mov dword [esp + 0xc], esi
jmp 0x4a7642
mov eax, dword [esp + 0x30]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 4]
mov esi, dword [esp]
add edi, edi
adc esi, esi
or edi, esi
jne 0x4a765a
mov dword [esp], 1
jmp 0x4a7661
mov dword [esp], 0
mov dword [esp + 4], ebx
xor ebx, ebx
cmp dword [esp + 8], 0
sete bl
and ebx, dword [esp]
not ebx
and edx, ebx
mov ebx, dword [esp + 4]
jmp 0x4a75e7
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov dword [esp + 4], eax
mov dword [esp], edx
jmp 0x4a760e
fnstcw word [esp + 0x24]
mov esi, dword [esp + 0x24]
mov edi, esi
and edi, 0xc00
jne 0x4a76b5
mov edx, dword [esp + 0x44]
xor eax, eax
sub edx, eax
jl 0x4a7781
jmp 0x4a76df
cmp edi, 0xc00
je 0x4a76df
xor eax, eax
or eax, dword [esp + 0x50]
je 0x4a76d3
cmp edi, 0x400
je 0x4a7773
jmp 0x4a76df
cmp edi, 0x800
je 0x4a7b61
xor ecx, ecx
cmp ebx, 0x7ffd
jle 0x4a775c
mov eax, dword [0x4ddbe0]
fld qword [eax]
fmul st(0)
fstp qword [esp + 0x28]
cmp edi, 0xc00
je 0x4a77c7
mov edx, dword [esp + 0x50]
xor eax, eax
or edx, eax
je 0x4a771b
cmp edi, 0x800
je 0x4a778b
mov eax, 1
jmp 0x4a7729
cmp edi, 0x400
je 0x4a77c3
xor eax, eax
mov esi, dword [ebp + 8]
shl eax, 4
mov edx, dword [eax + 0x4d7290]
mov ecx, dword [eax + 0x4d7294]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov ebx, dword [eax + 0x4d7298]
mov eax, dword [eax + 0x4d729c]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], eax
add esp, 0x5c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
je 0x4a7b15
test ebx, ebx
jl 0x4a77d3
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
jmp 0x4a755d
mov eax, dword [esp + 0x40]
or eax, dword [esp + 0x44]
je 0x4a76df
mov ecx, 1
jmp 0x4a76e1
mov ebx, 1
mov esi, dword [ebp + 8]
shl ebx, 4
mov eax, dword [ebx + 0x4d72d0]
mov edx, dword [ebx + 0x4d72d4]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ecx, dword [ebx + 0x4d72d8]
mov ebx, dword [ebx + 0x4d72dc]
mov dword [esi + 8], ecx
mov dword [esi + 0xc], ebx
add esp, 0x5c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
xor ebx, ebx
jmp 0x4a7790
mov edx, dword [esp + 0x50]
xor eax, eax
or edx, eax
jne 0x4a778b
jmp 0x4a77c3
cmp ebx, 0xffffffff
jge 0x4a77e9
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov dword [esp + 8], eax
mov dword [esp], edx
jmp 0x4a785e
test ecx, ecx
jne 0x4a77fe
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov dword [esp + 8], eax
mov dword [esp], edx
jmp 0x4a785e
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov ecx, 0xffffffff
mov edi, edx
sub edi, ecx
mov edi, eax
mov ecx, 0x1ffff
sbb edi, ecx
jae 0x4a782b
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov dword [esp + 8], eax
mov dword [esp], edx
jmp 0x4a785e
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
mov dword [esp + 8], ecx
mov dword [esp], edi
mov edi, 0x1ffff
mov ecx, 0xffffffff
sub edx, ecx
sub eax, edi
or edx, eax
jne 0x4a7868
mov eax, dword [esp + 8]
mov ecx, dword [esp]
mov edx, 0xffffffff
sub eax, edx
sbb ecx, edx
jae 0x4a7868
mov dword [esp + 0x1c], 1
jmp 0x4a786e
xor eax, eax
mov dword [esp + 0x1c], eax
neg ebx
mov eax, ebx
and eax, 0x3f
mov dword [esp + 0x20], eax
mov edx, ebx
neg edx
and edx, 0x3f
mov dword [esp + 0x18], edx
cmp ebx, 0x40
jge 0x4a799a
mov eax, dword [esp + 0x40]
or eax, dword [esp + 0x44]
je 0x4a789e
mov ebx, 1
jmp 0x4a78a0
xor ebx, ebx
cmp dword [esp + 0x18], 0x1f
ja 0x4a78b7
mov ecx, edx
mov eax, dword [esp]
mov edx, dword [esp + 8]
shld eax, edx, cl
shl edx, cl
jmp 0x4a78c1
mov ecx, edx
mov eax, dword [esp + 8]
shl eax, cl
xor edx, edx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x44], eax
or edx, ebx
mov ebx, dword [esp + 0x34]
cmp dword [esp + 0x18], 0x1f
mov dword [esp + 0x40], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 4], ebx
ja 0x4a78fb
mov ecx, dword [esp + 0x18]
mov edi, ebx
mov ebx, dword [esp + 0x10]
shld edi, ebx, cl
shl ebx, cl
mov dword [esp + 0xc], ebx
mov dword [esp + 0x14], edi
jmp 0x4a7911
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
shl ebx, cl
mov dword [esp + 0x14], ebx
mov dword [esp + 0xc], 0
cmp dword [esp + 0x20], 0x1f
ja 0x4a7932
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp]
mov edi, dword [esp + 8]
shrd edi, ebx, cl
shr ebx, cl
mov dword [esp + 0x18], ebx
mov dword [esp + 8], edi
jmp 0x4a7945
mov ecx, dword [esp + 0x20]
mov edi, dword [esp]
shr edi, cl
xor ebx, ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 8], edi
mov ecx, dword [esp + 0xc]
or ecx, dword [esp + 8]
mov ebx, dword [esp + 0x14]
or ebx, dword [esp + 0x18]
cmp dword [esp + 0x20], 0x1f
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ebx
ja 0x4a797b
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 4]
mov edi, dword [esp + 0x10]
shrd edi, ebx, cl
shr ebx, cl
mov dword [esp + 0x10], edi
jmp 0x4a798b
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 4]
shr edi, cl
xor ebx, ebx
mov dword [esp + 0x10], edi
mov ecx, edi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], ebx
jmp 0x4a7a53
je 0x4a7ade
cmp ebx, 0x80
jge 0x4a7a2e
mov edx, dword [esp + 8]
or edx, dword [esp + 0x40]
mov eax, dword [esp]
or eax, dword [esp + 0x44]
or edx, eax
je 0x4a79c8
mov dword [esp], 1
jmp 0x4a79cd
xor eax, eax
mov dword [esp], eax
cmp dword [esp + 0x18], 0x1f
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
ja 0x4a79ed
mov ecx, dword [esp + 0x18]
shld eax, edi, cl
mov edx, edi
shl edx, cl
jmp 0x4a79f7
mov ecx, dword [esp + 0x18]
xor edx, edx
mov eax, edi
shl eax, cl
or edx, dword [esp]
cmp dword [esp + 0x20], 0x1f
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], eax
ja 0x4a7a18
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 4]
shrd edi, ebx, cl
shr ebx, cl
jmp 0x4a7a24
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 4]
shr edi, cl
xor ebx, ebx
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], ebx
jmp 0x4a7a49
mov dword [esp + 0x40], 1
mov edx, 1
xor eax, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
xor ecx, ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], ecx
cmp dword [esp + 0x1c], 0
je 0x4a7ad7
or edx, eax
je 0x4a7a7a
mov eax, dword [0x4ddbdc]
fld qword [eax]
fmul st(0)
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
fstp qword [esp + 0x28]
xor ebx, ebx
jmp 0x4a755d
test esi, 0x10
jne 0x4a7aa4
mov eax, dword [0x4ddbdc]
fld qword [eax]
mov edx, dword [0x4ddbe4]
fmul qword [edx]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
fstp qword [esp + 0x28]
xor ebx, ebx
jmp 0x4a755d
xor ebx, ebx
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov edi, dword [ebp + 8]
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x50]
mov dword [edi], eax
mov dword [edi + 4], edx
shl ebx, 0x10
add ebx, dword [esp + 0x34]
or esi, ebx
mov dword [edi + 8], ecx
mov dword [edi + 0xc], esi
add esp, 0x5c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
xor ebx, ebx
jmp 0x4a755d
mov eax, dword [esp + 0x40]
or eax, dword [esp + 0x44]
je 0x4a7aef
mov edx, 1
jmp 0x4a7af1
xor edx, edx
or edx, dword [esp + 8]
mov eax, dword [esp]
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ebx
jmp 0x4a7a49
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov esi, 0xffffffff
sub edx, esi
mov esi, 0x1ffff
sub eax, esi
or edx, eax
jne 0x4a7766
mov esi, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov eax, 0xffffffff
sub esi, eax
sub edx, eax
or esi, edx
jne 0x4a7766
test ecx, ecx
jne 0x4a76e9
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
jmp 0x4a755d
mov eax, dword [esp + 0x40]
or eax, dword [esp + 0x44]
je 0x4a76df
mov ecx, 1
jmp 0x4a76e1
mov ebx, dword [esp + 0x10]
or ebx, dword [esp + 0xc]
je 0x4a7b8d
mov dword [esp + 4], 1
jmp 0x4a7b93
xor ebx, ebx
mov dword [esp + 4], ebx
mov ebx, dword [esp + 4]
or ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x30]
mov dword [esp + 4], ebx
or esi, ebx
jne 0x4a7bb8
mov dword [esp], 0
mov dword [esp + 8], 1
jmp 0x4a7c1f
mov esi, dword [esp + 0x30]
mov ebx, 0x10000
sub esi, ebx
jae 0x4a7bd3
mov ebx, 2
mov dword [esp], ebx
mov dword [esp + 8], ebx
jmp 0x4a7c1f
mov esi, dword [esp + 0x30]
mov ebx, 0x7fff0000
sub esi, ebx
jae 0x4a7bf1
mov dword [esp], 0
mov dword [esp + 8], 4
jmp 0x4a7c1f
mov esi, dword [esp + 0x30]
mov dword [esp], 0
mov ebx, 0x7fff0000
sub esi, ebx
jb 0x4a7c17
mov ebx, dword [esp + 4]
or ebx, esi
je 0x4a7c17
mov dword [esp + 8], 0x10
jmp 0x4a7c1f
mov dword [esp + 8], 8
mov ebx, dword [esp + 0x1c]
or ebx, dword [esp + 0x18]
je 0x4a7c33
mov dword [esp + 4], 1
jmp 0x4a7c39
xor ebx, ebx
mov dword [esp + 4], ebx
mov ebx, dword [esp + 4]
or ebx, dword [esp + 0x20]
mov esi, ecx
mov dword [esp + 4], ebx
or esi, ebx
jne 0x4a7c52
mov ebx, 1
jmp 0x4a7c99
mov esi, ecx
mov ebx, 0x10000
sub esi, ebx
jae 0x4a7c6d
mov ebx, dword [esp]
or ebx, 2
mov dword [esp], ebx
mov ebx, 2
jmp 0x4a7c99
mov ebx, ecx
mov esi, 0x7fff0000
sub ebx, esi
jae 0x4a7c7f
mov ebx, 4
jmp 0x4a7c99
mov ebx, ecx
sub ebx, esi
jb 0x4a7c94
mov esi, dword [esp + 4]
or esi, ebx
je 0x4a7c94
mov ebx, 0x10
jmp 0x4a7c99
mov ebx, 8
mov esi, dword [esp + 8]
or esi, ebx
cmp dword [esp + 0x54], 0x7fff
je 0x4a8073
cmp edi, 0x7fff
je 0x4a8073
test esi, 1
je 0x4a7d20
cmp dword [esp], 0
je 0x4a7cda
mov eax, dword [0x4ddbd4]
fld qword [eax]
mov edx, dword [0x4ddbd8]
fmul qword [edx]
fstp qword [esp + 0x28]
mov edx, dword [esp + 0x50]
xor eax, eax
or edx, eax
je 0x4a7ceb
mov eax, 1
jmp 0x4a7ced
xor eax, eax
mov esi, dword [ebp + 8]
shl eax, 4
mov edx, dword [eax + 0x4d72b0]
mov ecx, dword [eax + 0x4d72b4]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov ebx, dword [eax + 0x4d72b8]
mov eax, dword [eax + 0x4d72bc]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], eax
add esp, 0x5c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp ebx, dword [esp + 8]
je 0x4a7e93
cmp dword [esp + 8], 2
mov ebx, dword [0x4ddbd4]
fld qword [ebx]
mov esi, dword [0x4ddbd8]
fmul qword [esi]
fstp qword [esp + 0x28]
je 0x4a7ef8
mov ecx, dword [esp + 0x20]
mov dword [esp + 4], ecx
or ecx, edx
mov dword [esp], edx
jne 0x4a7d6e
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [esp + 4], ecx
mov dword [esp], ebx
mov edi, 0x31
jmp 0x4a7d73
mov edi, 0xfffffff1
mov esi, dword [esp]
mov ebx, 1
sub esi, ebx
jae 0x4a7d84
add edi, 0x20
jmp 0x4a7d8b
mov ebx, dword [esp]
mov dword [esp + 4], ebx
bsr ebx, dword [esp + 4]
sub edi, ebx
add edi, 0x1f
cmp edi, 0x40
jge 0x4a7e3a
cmp edi, 0x1f
ja 0x4a7db3
mov ebx, dword [esp + 0x20]
mov ecx, edi
shld edx, ebx, cl
shl ebx, cl
mov dword [esp], ebx
jmp 0x4a7dc2
mov edx, dword [esp + 0x20]
mov dword [esp], 0
mov ecx, edi
shl edx, cl
mov ecx, edi
neg ecx
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4a7def
mov ebx, dword [esp + 0x1c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x18]
shrd ebx, eax, cl
mov esi, eax
mov eax, dword [esp + 8]
shr esi, cl
mov dword [esp + 0x20], ebx
mov dword [esp + 4], esi
jmp 0x4a7e01
mov ebx, dword [esp + 0x18]
shr ebx, cl
mov dword [esp + 0x20], ebx
mov dword [esp + 4], 0
or edx, dword [esp + 4]
or ebx, dword [esp]
mov dword [esp + 0x20], ebx
cmp edi, 0x1f
ja 0x4a7e26
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov ecx, edi
shld esi, ebx, cl
shl ebx, cl
mov dword [esp + 0x18], esi
jmp 0x4a7e34
mov esi, dword [esp + 0x1c]
xor ebx, ebx
mov ecx, edi
shl esi, cl
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], ebx
jmp 0x4a7e8b
mov ecx, edi
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4a7e57
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
shld edx, ebx, cl
shl ebx, cl
mov dword [esp + 0x20], ebx
jmp 0x4a7e63
xor edx, edx
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x1c]
shl edx, cl
mov esi, dword [esp + 0x20]
xor ebx, ebx
cmp edi, 0x40
sete bl
test ebx, ebx
je 0x4a7e77
mov esi, dword [esp + 0x1c]
je 0x4a7e7d
mov edx, dword [esp + 0x18]
mov dword [esp + 0x20], esi
xor ebx, ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], ebx
neg edi
inc edi
jmp 0x4a73ec
fnstcw word [esp + 0x24]
mov ebx, dword [esp + 0x24]
mov eax, dword [0x4ddbdc]
fld qword [eax]
and ebx, 0xc00
xor ecx, ecx
or ecx, dword [esp + 0x50]
mov edx, dword [0x4ddbd4]
fmul qword [edx]
fstp qword [esp + 0x28]
je 0x4a7ec9
xor eax, eax
cmp ebx, 0x400
sete al
jmp 0x4a7ed4
xor eax, eax
cmp ebx, 0x800
sete al
mov edx, dword [ebp + 8]
mov dword [edx + 4], 0
mov dword [edx], eax
mov eax, dword [esp + 0x50]
mov dword [edx + 8], 0
mov dword [edx + 0xc], eax
add esp, 0x5c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 0x14]
mov dword [esp + 4], ebx
or ebx, eax
mov dword [esp], eax
jne 0x4a7f20
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
mov dword [esp + 0x54], 0x31
mov dword [esp + 4], ebx
mov dword [esp], esi
jmp 0x4a7f28
mov dword [esp + 0x54], 0xfffffff1
mov esi, dword [esp]
mov ebx, 1
sub esi, ebx
jae 0x4a7f41
mov ebx, dword [esp + 0x54]
add ebx, 0x20
mov dword [esp + 0x54], ebx
jmp 0x4a7f48
mov ebx, dword [esp]
mov dword [esp + 4], ebx
bsr ebx, dword [esp + 4]
mov esi, dword [esp + 0x54]
sub esi, ebx
add esi, 0x1f
cmp esi, 0x40
mov dword [esp + 0x54], esi
jge 0x4a8010
cmp dword [esp + 0x54], 0x1f
ja 0x4a7f7a
mov ecx, esi
mov ebx, dword [esp + 0x14]
shld eax, ebx, cl
shl ebx, cl
mov dword [esp], ebx
jmp 0x4a7f89
mov ecx, esi
mov eax, dword [esp + 0x14]
shl eax, cl
mov dword [esp], 0
neg ecx
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4a7fb4
mov ebx, dword [esp + 0x10]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc]
shrd ebx, eax, cl
mov esi, eax
mov eax, dword [esp + 8]
shr esi, cl
mov dword [esp + 0x14], ebx
mov dword [esp + 4], esi
jmp 0x4a7fc6
mov ebx, dword [esp + 0xc]
shr ebx, cl
mov dword [esp + 0x14], ebx
mov dword [esp + 4], 0
or eax, dword [esp + 4]
or ebx, dword [esp]
cmp dword [esp + 0x54], 0x1f
mov dword [esp + 0x14], ebx
ja 0x4a7ff2
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
shld esi, ebx, cl
shl ebx, cl
mov dword [esp], ebx
mov dword [esp + 0xc], esi
jmp 0x4a8007
mov ecx, dword [esp + 0x54]
mov ebx, dword [esp + 0x10]
shl ebx, cl
mov dword [esp + 0xc], ebx
mov dword [esp], 0
mov ebx, dword [esp]
mov dword [esp + 0x10], ebx
jmp 0x4a8063
mov ecx, esi
and ecx, 0x3f
cmp ecx, 0x1f
ja 0x4a802d
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
shld eax, ebx, cl
shl ebx, cl
mov dword [esp + 0x14], ebx
jmp 0x4a8039
xor eax, eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
shl eax, cl
mov esi, dword [esp + 0x14]
xor ebx, ebx
cmp dword [esp + 0x54], 0x40
sete bl
test ebx, ebx
je 0x4a804f
mov esi, dword [esp + 0x10]
je 0x4a8055
mov eax, dword [esp + 0xc]
mov dword [esp + 0x14], esi
xor ebx, ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x54]
neg ebx
inc ebx
mov dword [esp + 0x54], ebx
jmp 0x4a73ec
test esi, 0x10
je 0x4a8245
cmp ebx, dword [esp + 8]
je 0x4a80f3
cmp dword [esp + 8], 0x10
je 0x4a80a7
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
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 0x4a80c0
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
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 0x4a822c
mov edx, dword [ebp + 8]
mov dword [edx + 8], eax
mov eax, dword [0x4ddbd0]
fld qword [eax]
fdiv st(0)
mov dword [edx + 0xc], ebx
fstp qword [esp + 0x28]
mov eax, dword [edx + 8]
mov ebx, dword [edx + 0xc]
jmp 0x4a822c
mov edx, dword [esp + 0x2c]
and edx, 0x8000
xor eax, eax
or edx, eax
jne 0x4a810a
mov eax, 1
jmp 0x4a810c
xor eax, eax
mov ecx, dword [esp + 0x28]
and ecx, 0x8000
xor edx, edx
or ecx, edx
jne 0x4a8123
mov edx, 1
jmp 0x4a8125
xor edx, edx
mov ecx, eax
or ecx, edx
je 0x4a8139
mov ecx, dword [0x4ddbd0]
fld qword [ecx]
fdiv st(0)
fstp qword [esp + 0x28]
cmp edx, eax
je 0x4a8160
test eax, eax
je 0x4a81e8
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 0x4a822c
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x20]
mov edx, dword [esp + 0x30]
sbb edx, dword [esp + 0x34]
jb 0x4a8198
mov edx, dword [esp + 0x14]
sub edx, dword [esp + 0x20]
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x34]
or edx, eax
jne 0x4a81b0
mov eax, dword [esp + 0x10]
sub eax, dword [esp + 0x1c]
mov edx, dword [esp + 0xc]
sbb edx, dword [esp + 0x18]
jae 0x4a81b0
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 0x4a822c
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x14]
mov edx, dword [esp + 0x34]
sbb edx, dword [esp + 0x30]
jb 0x4a81e8
mov edx, dword [esp + 0x20]
sub edx, dword [esp + 0x14]
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x30]
or edx, eax
jne 0x4a8200
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
sbb edx, dword [esp + 0xc]
jae 0x4a8200
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 0x4a822c
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0xc]
and ecx, 0x80000000
xor edx, edx
or ecx, edx
je 0x4a8145
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, 0x5c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test esi, 1
je 0x4a828a
mov eax, dword [0x4ddbd0]
fld qword [eax]
fdiv st(0)
mov edx, dword [0x4d72f0]
mov ecx, dword [0x4d72f4]
mov edi, dword [ebp + 8]
fstp qword [esp + 0x28]
mov dword [edi], edx
mov dword [edi + 4], ecx
mov ebx, dword [0x4d72f8]
mov esi, dword [0x4d72fc]
mov dword [edi + 8], ebx
mov dword [edi + 0xc], esi
add esp, 0x5c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp dword [esp], 0
je 0x4a82a3
mov eax, dword [0x4ddbd4]
fld qword [eax]
mov edx, dword [0x4ddbd8]
fmul qword [edx]
fstp qword [esp + 0x28]
mov edx, dword [esp + 0x50]
xor eax, eax
or edx, eax
je 0x4a82b4
mov eax, 1
jmp 0x4a82b6
xor eax, eax
mov esi, dword [ebp + 8]
shl eax, 4
mov edx, dword [eax + 0x4d7290]
mov ecx, dword [eax + 0x4d7294]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov ebx, dword [eax + 0x4d7298]
mov eax, dword [eax + 0x4d729c]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], eax
add esp, 0x5c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test dword [0x4e86c4], 0xfffffe00
jne 0x4a61d0
test dword [0x4e86c4], 0xffffffff
jne 0x4a7350
call fcn.004a2f50
jmp fcn.004a8620