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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x118
push esi
push edi
movsd xmm0, qword [0x51e0d0]
movsd qword [esp + 0xf0], xmm0
xorps xmm0, xmm0
movsd qword [esp + 0x48], xmm0
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x4c]
movsd xmm0, qword [0x51e470]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x4c]
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x4c]
mov esi, dword [ebp + 8]
movsd qword [esp + 0x58], xmm0
movsd xmm0, qword [0x51e468]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x48]
movsd qword [esp + 0x60], xmm0
mov dword [esp + 0x78], eax
mov edi, dword [esi + 0x70]
mov eax, dword [edx]
mov dword [esp + 0x14], edi
mov eax, dword [eax]
mov dword [esp + 0x54], eax
mov eax, dword [eax + 0xc]
mov ecx, dword [eax + 0x30]
mov dword [esp + 0x2c], ecx
mov ecx, dword [edx + 0x10]
mov dword [esp + 0xc], ecx
test edi, edi
je 0x4ad641
cmp byte [eax + 7], 0
je 0x4ad628
xor ecx, ecx
mov dword [esp + 0x14], ecx
jmp 0x4ad63a
cmp ecx, dword [eax + 0x34]
jne 0x4ad63a
push edx
push esi
call fcn.004a6250
mov edx, dword [ebp + 0xc]
add esp, 8
mov dword [edx + 0x14], 1
mov edi, dword [edx]
add edi, 0x10
mov dword [esp + 0x10], edi
mov ecx, dword [esp + 0xc]
jmp 0x4ad665
mov ecx, dword [esp + 0xc]
jmp 0x4ad669
movsd qword [edi], xmm0
mov byte [edi + 8], 0x13
mov esi, dword [ebp + 8]
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
test edx, edx
je 0x4ad68b
push ecx
push esi
call fcn.004a5630
mov ecx, dword [esp + 0x14]
add esp, 8
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0xc]
mov edi, dword [eax]
add edi, 0x10
mov dword [esp + 0x10], edi
mov edx, dword [ecx]
add ecx, 4
mov dword [esp + 0xc], ecx
mov ecx, edx
shr ecx, 7
movzx eax, cl
mov esi, eax
mov dword [esp + 0x3c], eax
shl esi, 4
mov eax, edx
add edi, esi
mov dword [esp + 0x18], edx
and eax, 0x7f
mov dword [esp + 0x30], esi
mov dword [esp + 0x20], edi
cmp eax, 0x51
ja case.default.0x4ad6c1
jmp dword [eax*4 + 0x4b0d64]
shr edx, 0x10
movzx ecx, dl
shl ecx, 4
add ecx, dword [esp + 0x10]
jmp 0x4adef3
mov esi, dword [ebp + 8]
xor eax, eax
mov ecx, dword [esp + 0xc]
shr edx, 0xf
sub edx, 0xffff
mov dword [edi], edx
sbb eax, eax
mov dword [edi + 4], eax
mov byte [edi + 8], 3
jmp 0x4ad661
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
shr edx, 0xf
sub edx, 0xffff
mov byte [edi + 8], 0x13
movd xmm0, edx
cvtdq2pd xmm0, xmm0
movsd qword [edi], xmm0
jmp 0x4ad661
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
shr edx, 0xf
shl edx, 4
add edx, dword [esp + 0x2c]
mov eax, dword [edx]
mov dword [edi], eax
mov eax, dword [edx + 4]
mov dword [edi + 4], eax
mov al, byte [edx + 8]
mov byte [edi + 8], al
jmp 0x4ad661
mov eax, dword [esp + 0xc]
mov ecx, dword [eax]
shr ecx, 7
shl ecx, 4
add ecx, dword [esp + 0x2c]
add eax, 4
mov dword [esp + 0xc], eax
jmp 0x4adef3
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
mov byte [edi + 8], 1
jmp 0x4ad661
mov ecx, dword [esp + 0xc]
add ecx, 4
mov byte [edi + 8], 1
mov dword [esp + 0xc], ecx
jmp 0x4ad65e
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
mov byte [edi + 8], 0x11
jmp 0x4ad661
shr edx, 0x10
add edi, 8
movzx ecx, dl
mov eax, ecx
mov byte [edi], 0
dec ecx
lea edi, [edi + 0x10]
test eax, eax
jne 0x4ad7a0
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
jmp 0x4ad661
mov ecx, dword [esp + 0x54]
shr edx, 0x10
movzx eax, dl
mov eax, dword [ecx + eax*4 + 0x10]
mov ecx, dword [eax + 8]
jmp 0x4adef3
mov ecx, dword [esp + 0x54]
mov esi, dword [ebp + 8]
shr edx, 0x10
movzx eax, dl
mov edx, dword [ecx + eax*4 + 0x10]
mov eax, dword [edi]
mov ecx, dword [edx + 8]
mov dword [ecx], eax
mov eax, dword [edi + 4]
mov dword [ecx + 4], eax
mov al, byte [edi + 8]
mov byte [ecx + 8], al
test byte [edi + 8], 0x40
mov ecx, dword [esp + 0xc]
je 0x4ad661
test byte [edx + 5], 0x20
je 0x4ad661
mov eax, dword [edi]
mov edi, dword [esp + 0x10]
test byte [eax + 5], 0x18
je 0x4ad665
push eax
push edx
push esi
call fcn.004a82b0
mov ecx, dword [esp + 0x18]
add esp, 0xc
jmp 0x4ad661
mov ecx, dword [esp + 0x54]
mov eax, edx
shr eax, 0x10
movzx eax, al
shr edx, 0x18
shl edx, 4
add edx, dword [esp + 0x2c]
mov eax, dword [ecx + eax*4 + 0x10]
mov dword [esp + 0x18], edx
mov esi, dword [eax + 8]
mov dword [esp + 0x30], esi
cmp byte [esi + 8], 0x45
je 0x4ad85e
xor ecx, ecx
jmp 0x4ad87a
push dword [edx]
push dword [esi]
call fcn.004aaf20
mov ecx, eax
add esp, 8
test byte [ecx + 8], 0xf
jne 0x4adef3
mov edx, dword [esp + 0x18]
mov esi, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 4]
mov esi, dword [ebp + 8]
mov dword [esi + 0xc], eax
mov esi, dword [esp + 0x30]
push ecx
push edi
push edx
push esi
mov esi, dword [ebp + 8]
push esi
call fcn.004b0ff0
mov eax, dword [ebp + 0xc]
add esp, 0x14
mov edx, dword [eax + 0x14]
mov dword [esp + 0x14], edx
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
jmp 0x4ad669
mov eax, edx
shr edx, 0x18
shr eax, 0x10
shl edx, 4
add edx, dword [esp + 0x10]
movzx esi, al
shl esi, 4
add esi, dword [esp + 0x10]
cmp byte [edx + 8], 3
mov dword [esp + 0x40], esi
mov dword [esp + 0x18], edx
jne 0x4ad948
cmp byte [esi + 8], 0x45
mov eax, dword [edx + 4]
mov ecx, dword [edx]
mov dword [esp + 0x30], eax
je 0x4ad8f5
xor ecx, ecx
jmp 0x4ad976
mov eax, dword [esi]
mov edx, ecx
add edx, 0xffffffff
mov eax, dword [eax + 8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x30]
adc eax, 0xffffffff
test eax, eax
ja 0x4ad936
jb 0x4ad916
cmp edx, dword [esp + 0x3c]
jae 0x4ad936
mov eax, dword [esi]
shl ecx, 4
mov eax, dword [eax + 0xc]
add eax, 0xfffffff0
add ecx, eax
mov eax, 0
test byte [ecx + 8], 0xf
setne al
test eax, eax
jmp 0x4adeed
push dword [esp + 0x30]
mov eax, dword [esi]
push ecx
push eax
call fcn.004aad60
add esp, 0xc
jmp 0x4ad95d
cmp byte [esi + 8], 0x45
je 0x4ad952
xor ecx, ecx
jmp 0x4ad976
push edx
push dword [esi]
call fcn.004aac90
add esp, 8
mov ecx, eax
mov eax, 0
test byte [ecx + 8], 0xf
setne al
test eax, eax
jmp 0x4adeed
mov edx, dword [esp + 0x18]
mov esi, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 4]
mov esi, dword [ebp + 8]
mov dword [esi + 0xc], eax
mov esi, dword [esp + 0x40]
jmp 0x4ad891
mov eax, edx
shr edx, 0x18
shr eax, 0x10
movzx esi, al
shl esi, 4
add esi, dword [esp + 0x10]
mov dword [esp + 0x18], edx
cmp byte [esi + 8], 0x45
je 0x4ad9b2
xor ecx, ecx
jmp 0x4ada03
mov eax, dword [esi]
mov ecx, edx
add ecx, 0xffffffff
mov eax, dword [eax + 8]
mov dword [esp + 0x40], eax
mov eax, 0
adc eax, 0xffffffff
test eax, eax
ja 0x4ad9e5
jb 0x4ad9d4
cmp ecx, dword [esp + 0x40]
jae 0x4ad9e5
mov eax, dword [esi]
mov ecx, edx
shl ecx, 4
mov eax, dword [eax + 0xc]
add eax, 0xfffffff0
add ecx, eax
jmp 0x4ad9f9
mov eax, dword [esi]
push 0
push edx
push eax
call fcn.004aad60
mov edx, dword [esp + 0x24]
add esp, 0xc
mov ecx, eax
test byte [ecx + 8], 0xf
jne 0x4adef3
mov eax, dword [esp + 0xc]
mov dword [esp + 0x100], edx
mov edx, dword [ebp + 0xc]
push ecx
push edi
mov dword [esp + 0x10c], 0
mov dword [edx + 0x10], eax
mov eax, dword [edx + 4]
mov edx, dword [ebp + 8]
mov byte [esp + 0x110], 3
mov dword [edx + 0xc], eax
lea eax, [esp + 0x108]
push eax
push esi
mov esi, edx
jmp 0x4ad898
mov eax, edx
shr edx, 0x18
shr eax, 0x10
movzx esi, al
shl esi, 4
add esi, dword [esp + 0x10]
shl edx, 4
add edx, dword [esp + 0x2c]
mov dword [esp + 0x40], esi
cmp byte [esi + 8], 0x45
mov dword [esp + 0x18], edx
je 0x4ada70
xor ecx, ecx
jmp 0x4ad976
push dword [edx]
push dword [esi]
call fcn.004aaf20
jmp 0x4adee4
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x3c]
mov eax, dword [ecx + eax*4 + 0x10]
mov ecx, dword [eax + 8]
mov eax, edx
shr eax, 0x10
movzx edi, al
mov eax, dword [esp + 0x2c]
shl edi, 4
add edi, eax
mov dword [esp + 0x30], ecx
test edx, 0x8000
je 0x4adab4
shr edx, 0x18
shl edx, 4
add edx, eax
jmp 0x4adabe
shr edx, 0x18
shl edx, 4
add edx, dword [esp + 0x10]
cmp byte [ecx + 8], 0x45
mov dword [esp + 0x18], edx
je 0x4adacc
xor esi, esi
jmp 0x4adb18
push dword [edi]
push dword [ecx]
call fcn.004aaf20
mov esi, eax
add esp, 8
test byte [esi + 8], 0xf
je 0x4adb14
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov eax, dword [ecx]
mov dword [esi], eax
mov eax, dword [ecx + 4]
mov dword [esi + 4], eax
mov al, byte [ecx + 8]
mov byte [esi + 8], al
test byte [ecx + 8], 0x40
mov esi, dword [ebp + 8]
je 0x4ad650
mov eax, dword [esp + 0x30]
mov edx, dword [eax]
jmp 0x4addab
mov edx, dword [esp + 0x18]
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
push esi
mov esi, dword [ebp + 8]
mov dword [ecx + 0x10], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ebp + 8]
push edx
push edi
mov dword [ecx + 0xc], eax
mov ecx, dword [esp + 0x3c]
push ecx
push esi
call fcn.004b10e0
jmp 0x4ad89e
mov ecx, dword [esp + 0x10]
mov eax, edx
shr eax, 0x10
movzx eax, al
shl eax, 4
add eax, ecx
mov dword [esp + 0x30], eax
test edx, 0x8000
je 0x4adb6a
shr edx, 0x18
shl edx, 4
add edx, dword [esp + 0x2c]
jmp 0x4adb72
shr edx, 0x18
shl edx, 4
add edx, ecx
cmp byte [eax + 8], 3
mov dword [esp + 0x18], edx
jne 0x4adbc1
cmp byte [edi + 8], 0x45
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x40], eax
je 0x4adb8f
xor esi, esi
jmp 0x4adbf0
mov esi, dword [edi]
mov edx, ecx
add edx, 0xffffffff
adc eax, 0xffffffff
test eax, eax
ja 0x4adbb1
jb 0x4adba4
cmp edx, dword [esi + 8]
jae 0x4adbb1
mov eax, dword [esi + 0xc]
shl ecx, 4
lea esi, [ecx - 0x10]
add esi, eax
jmp 0x4adbd8
push dword [esp + 0x40]
push ecx
push esi
call fcn.004aad60
add esp, 0xc
jmp 0x4adbd6
cmp byte [edi + 8], 0x45
je 0x4adbcb
xor esi, esi
jmp 0x4adbf0
push eax
push dword [edi]
call fcn.004aac90
add esp, 8
mov esi, eax
test byte [esi + 8], 0xf
mov eax, 0
setne al
test eax, eax
jne 0x4add84
mov edx, dword [esp + 0x18]
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
push esi
push edx
push dword [esp + 0x38]
mov dword [ecx + 0x10], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ebp + 8]
mov esi, ecx
push edi
push esi
mov dword [ecx + 0xc], eax
call fcn.004b10e0
jmp 0x4ad89e
mov eax, edx
shr eax, 0x10
movzx esi, al
test edx, 0x8000
je 0x4adc33
shr edx, 0x18
shl edx, 4
add edx, dword [esp + 0x2c]
jmp 0x4adc3d
shr edx, 0x18
shl edx, 4
add edx, dword [esp + 0x10]
cmp byte [edi + 8], 0x45
mov dword [esp + 0x18], edx
je 0x4adc8c
xor ecx, ecx
mov eax, dword [esp + 0xc]
mov dword [esp + 0x110], esi
mov esi, dword [ebp + 0xc]
push ecx
push edx
mov dword [esp + 0x11c], 0
mov dword [esi + 0x10], eax
mov eax, dword [esi + 4]
mov esi, dword [ebp + 8]
mov byte [esp + 0x120], 3
mov dword [esi + 0xc], eax
lea eax, [esp + 0x118]
push eax
push edi
push esi
call fcn.004b10e0
jmp 0x4ad89e
mov eax, dword [edi]
mov ecx, esi
add ecx, 0xffffffff
mov eax, dword [eax + 8]
mov dword [esp + 0x40], eax
mov eax, 0
adc eax, 0xffffffff
test eax, eax
ja 0x4adcbf
jb 0x4adcae
cmp ecx, dword [esp + 0x40]
jae 0x4adcbf
mov eax, dword [edi]
mov ecx, esi
shl ecx, 4
add ecx, 0xfffffff0
mov eax, dword [eax + 0xc]
add ecx, eax
jmp 0x4adcd3
mov eax, dword [edi]
push 0
push esi
push eax
call fcn.004aad60
mov edx, dword [esp + 0x24]
add esp, 0xc
mov ecx, eax
test byte [ecx + 8], 0xf
je 0x4adc49
mov eax, dword [edx]
mov esi, dword [ebp + 8]
mov dword [ecx], eax
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
mov al, byte [edx + 8]
mov byte [ecx + 8], al
test byte [edx + 8], 0x40
mov ecx, dword [esp + 0xc]
je 0x4ad661
mov ecx, dword [edi]
mov edi, dword [esp + 0x10]
test byte [ecx + 5], 0x20
je 0x4ad64a
mov eax, dword [edx]
mov edx, dword [esp + 0x14]
test byte [eax + 5], 0x18
je 0x4ad650
push ecx
push esi
call fcn.004a8300
mov ecx, dword [esp + 0x14]
add esp, 8
jmp 0x4ad661
mov ecx, dword [esp + 0x2c]
mov eax, edx
shr eax, 0x10
movzx eax, al
shl eax, 4
add eax, ecx
mov dword [esp + 0x40], eax
test edx, 0x8000
je 0x4add58
shr edx, 0x18
shl edx, 4
add edx, ecx
jmp 0x4add62
shr edx, 0x18
shl edx, 4
add edx, dword [esp + 0x10]
cmp byte [edi + 8], 0x45
mov dword [esp + 0x18], edx
je 0x4add70
xor esi, esi
jmp 0x4adde0
push dword [eax]
push dword [edi]
call fcn.004aaf20
mov esi, eax
add esp, 8
test byte [esi + 8], 0xf
je 0x4adddc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov eax, dword [ecx]
mov dword [esi], eax
mov eax, dword [ecx + 4]
mov dword [esi + 4], eax
mov al, byte [ecx + 8]
mov byte [esi + 8], al
test byte [ecx + 8], 0x40
mov esi, dword [ebp + 8]
je 0x4ad8ab
mov edx, dword [edi]
test byte [edx + 5], 0x20
mov edi, dword [esp + 0x10]
je 0x4ad64a
mov eax, dword [ecx]
mov ecx, dword [esp + 0xc]
test byte [eax + 5], 0x18
je 0x4ad665
push edx
push esi
call fcn.004a8300
mov ecx, dword [esp + 0x14]
add esp, 8
jmp 0x4ad661
mov edx, dword [esp + 0x18]
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
push esi
push edx
push dword [esp + 0x48]
mov dword [ecx + 0x10], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ebp + 8]
mov esi, ecx
push edi
push esi
mov dword [ecx + 0xc], eax
call fcn.004b10e0
jmp 0x4ad89e
mov eax, edx
mov ecx, edx
shr eax, 0x10
shr ecx, 0x18
movzx esi, al
mov dword [esp + 0x18], ecx
test al, al
je 0x4ade2a
lea ecx, [esi - 1]
mov esi, 1
shl esi, cl
mov ecx, dword [esp + 0x18]
test edx, 0x8000
je 0x4ade44
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
shr eax, 7
shl eax, 8
add ecx, eax
mov dword [esp + 0x18], ecx
mov ecx, dword [ebp + 8]
lea eax, [edi + 0x10]
add dword [esp + 0xc], 4
push ecx
mov dword [ecx + 0xc], eax
call fcn.004aafa0
mov ecx, eax
mov byte [edi + 8], 0x45
mov eax, dword [esp + 0x1c]
add esp, 4
mov dword [edi], ecx
test esi, esi
jne 0x4ade73
test eax, eax
je 0x4b098e
push esi
mov esi, dword [ebp + 8]
push eax
push ecx
push esi
call fcn.004ab3b0
add esp, 0x10
jmp 0x4b0991
mov eax, edx
shr eax, 0x10
movzx esi, al
mov eax, dword [esp + 0x10]
shl esi, 4
add esi, eax
mov dword [esp + 0x40], esi
test edx, 0x8000
je 0x4adeb0
shr edx, 0x18
shl edx, 4
add edx, dword [esp + 0x2c]
jmp 0x4adeb8
shr edx, 0x18
shl edx, 4
add edx, eax
mov eax, dword [esi]
mov ecx, dword [edx]
mov dword [edi + 0x10], eax
mov eax, dword [esi + 4]
mov dword [edi + 0x14], eax
mov al, byte [esi + 8]
mov byte [edi + 0x18], al
cmp byte [esi + 8], 0x45
mov dword [esp + 0x18], edx
je 0x4adedc
xor ecx, ecx
jmp 0x4ad976
push ecx
push dword [esi]
call fcn.004aaf60
mov ecx, eax
add esp, 8
test byte [ecx + 8], 0xf
je 0x4ad972
mov eax, dword [ecx]
mov esi, dword [ebp + 8]
mov dword [edi], eax
mov eax, dword [ecx + 4]
mov dword [edi + 4], eax
mov al, byte [ecx + 8]
mov ecx, dword [esp + 0xc]
mov byte [edi + 8], al
jmp 0x4ad661
mov eax, edx
shr edx, 0x18
shr eax, 0x10
movzx ecx, al
shl ecx, 4
add ecx, dword [esp + 0x10]
mov al, byte [ecx + 8]
cmp al, 3
jne 0x4adf4f
add dword [esp + 0xc], 4
xor eax, eax
add edx, dword [ecx]
mov esi, dword [ebp + 8]
adc eax, dword [ecx + 4]
sub edx, 0x7f
mov ecx, dword [esp + 0xc]
sbb eax, 0
mov dword [edi], edx
mov dword [edi + 4], eax
mov byte [edi + 8], 3
jmp 0x4ad661
mov esi, dword [ebp + 8]
cmp al, 0x13
jne 0x4afd2f
add dword [esp + 0xc], 4
lea eax, [edx - 0x7f]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [ecx]
mov ecx, dword [esp + 0xc]
mov byte [edi + 8], 0x13
movsd qword [edi], xmm0
jmp 0x4ad661
mov eax, edx
shr edx, 0x18
shr eax, 0x10
movzx esi, al
shl esi, 4
add esi, dword [esp + 0x10]
shl edx, 4
mov dword [esp + 0x18], edx
mov al, byte [esi + 8]
cmp al, 3
jne 0x4adff7
mov eax, dword [esp + 0x2c]
mov al, byte [edx + eax + 8]
mov byte [esp + 0x1f], al
cmp al, 3
jne 0x4adfd9
mov eax, dword [esp + 0x2c]
add dword [esp + 0xc], 4
mov ecx, dword [edx + eax]
add ecx, dword [esi]
mov eax, dword [edx + eax + 4]
adc eax, dword [esi + 4]
mov esi, dword [ebp + 8]
mov dword [edi], ecx
mov ecx, dword [esp + 0xc]
mov dword [edi + 4], eax
mov byte [edi + 8], 3
jmp 0x4ad661
mov edx, dword [esi + 4]
mov ecx, dword [esi]
call fcn.004f5430
mov edx, dword [esp + 0x18]
mov al, byte [esp + 0x1f]
mov esi, dword [esp + 0x2c]
movsd qword [esp + 0x20], xmm0
jmp 0x4ae015
mov ecx, dword [esp + 0xc]
cmp al, 0x13
jne 0x4ad65e
movsd xmm0, qword [esi]
mov esi, dword [esp + 0x2c]
movsd qword [esp + 0x20], xmm0
mov al, byte [edx + esi + 8]
cmp al, 0x13
jne 0x4ae034
mov ecx, dword [esp + 0xc]
movsd xmm0, qword [edx + esi]
add ecx, 4
addsd xmm0, qword [esp + 0x20]
mov dword [esp + 0xc], ecx
jmp 0x4ad656
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
cmp al, 3
jne 0x4ad661
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
mov edx, dword [edx + esi + 4]
mov ecx, dword [ecx + esi]
call fcn.004f5430
mov ecx, dword [esp + 0xc]
addsd xmm0, qword [esp + 0x20]
add ecx, 4
mov dword [esp + 0xc], ecx
jmp 0x4ad656
mov eax, edx
shr edx, 0x18
shr eax, 0x10
movzx eax, al
shl eax, 4
add eax, dword [esp + 0x10]
shl edx, 4
mov dword [esp + 0x18], edx
mov cl, byte [eax + 8]
cmp cl, 3
jne 0x4ae0b7
mov esi, dword [esp + 0x2c]
mov cl, byte [edx + esi + 8]
mov byte [esp + 0x1f], cl
cmp cl, 3
mov ecx, dword [eax]
je 0x4aeceb
mov edx, dword [eax + 4]
call fcn.004f5430
mov edx, dword [esp + 0x18]
mov al, byte [esp + 0x1f]
jmp 0x4ae0d3
mov esi, dword [ebp + 8]
cmp cl, 0x13
mov ecx, dword [esp + 0xc]
jne 0x4ad661
mov esi, dword [esp + 0x2c]
movsd xmm0, qword [eax]
mov al, byte [edx + esi + 8]
movsd qword [esp + 0x20], xmm0
cmp al, 0x13
jne 0x4ae0e4
movsd xmm1, qword [edx + esi]
jmp 0x4ae10a
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
cmp al, 3
jne 0x4ad661
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
mov edx, dword [edx + eax + 4]
mov ecx, dword [ecx + eax]
call fcn.004f5430
movaps xmm1, xmm0
mov ecx, dword [esp + 0xc]
movsd xmm0, qword [esp + 0x20]
add ecx, 4
mov dword [esp + 0xc], ecx
subsd xmm0, xmm1
jmp 0x4ad656
mov eax, edx
shr edx, 0x18
shr eax, 0x10
movzx eax, al
shl eax, 4
add eax, dword [esp + 0x10]
shl edx, 4
mov dword [esp + 0x18], edx
mov cl, byte [eax + 8]
cmp cl, 3
jne 0x4ae174
mov esi, dword [esp + 0x2c]
mov cl, byte [edx + esi + 8]
mov byte [esp + 0x1f], cl
cmp cl, 3
je 0x4aedd0
mov edx, dword [eax + 4]
mov ecx, dword [eax]
call fcn.004f5430
mov edx, dword [esp + 0x18]
mov al, byte [esp + 0x1f]
movsd qword [esp + 0x20], xmm0
jmp 0x4ae196
mov esi, dword [ebp + 8]
cmp cl, 0x13
mov ecx, dword [esp + 0xc]
jne 0x4ad661
mov esi, dword [esp + 0x2c]
movsd xmm0, qword [eax]
movsd qword [esp + 0x20], xmm0
mov al, byte [edx + esi + 8]
cmp al, 0x13
jne 0x4ae1b5
mov ecx, dword [esp + 0xc]
movsd xmm0, qword [edx + esi]
add ecx, 4
mulsd xmm0, qword [esp + 0x20]
mov dword [esp + 0xc], ecx
jmp 0x4ad656
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
cmp al, 3
jne 0x4ad661
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
mov edx, dword [edx + eax + 4]
mov ecx, dword [ecx + eax]
call fcn.004f5430
mov ecx, dword [esp + 0xc]
mulsd xmm0, qword [esp + 0x20]
add ecx, 4
mov dword [esp + 0xc], ecx
jmp 0x4ad656
mov eax, edx
shr edx, 0x18
shr eax, 0x10
movzx eax, al
shl eax, 4
add eax, dword [esp + 0x10]
shl edx, 4
mov dword [esp + 0x18], edx
mov cl, byte [eax + 8]
cmp cl, 3
jne 0x4ae263
mov esi, dword [esp + 0x2c]
mov cl, byte [edx + esi + 8]
mov byte [esp + 0x1f], cl
cmp cl, 3
jne 0x4ae24f
push dword [edx + esi + 4]
add dword [esp + 0x10], 4
push dword [edx + esi]
mov esi, dword [ebp + 8]
push dword [eax + 4]
push dword [eax]
push esi
call fcn.004b1430
mov ecx, dword [esp + 0x20]
add esp, 0x14
mov dword [edi], eax
mov dword [edi + 4], edx
mov byte [edi + 8], 3
jmp 0x4ad661
mov edx, dword [eax + 4]
mov ecx, dword [eax]
call fcn.004f5430
mov edx, dword [esp + 0x18]
mov al, byte [esp + 0x1f]
jmp 0x4ae27f
mov esi, dword [ebp + 8]
cmp cl, 0x13
mov ecx, dword [esp + 0xc]
jne 0x4ad661
mov esi, dword [esp + 0x2c]
movsd xmm0, qword [eax]
mov al, byte [edx + esi + 8]
movsd qword [esp + 0x30], xmm0
cmp al, 0x13
jne 0x4ae290
movsd xmm0, qword [edx + esi]
jmp 0x4ae2b3
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
cmp al, 3
jne 0x4ad661
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
mov edx, dword [edx + eax + 4]
mov ecx, dword [ecx + eax]
call fcn.004f5430
fld qword [esp + 0x30]
add dword [esp + 0xc], 4
movsd qword [esp + 0x40], xmm0
fld qword [esp + 0x40]
movsd qword [esp + 0x20], xmm0
call fcn.004dc0d0
movsd xmm2, qword [esp + 0x48]
fstp qword [esp + 0x40]
movsd xmm0, qword [esp + 0x40]
comisd xmm0, xmm2
jbe 0x4ae312
movsd xmm1, qword [esp + 0x20]
xor eax, eax
comisd xmm2, xmm1
seta al
test eax, eax
je 0x4ae328
mov esi, dword [ebp + 8]
addsd xmm0, xmm1
mov ecx, dword [esp + 0xc]
mov byte [edi + 8], 0x13
movsd qword [edi], xmm0
jmp 0x4ad661
comisd xmm2, xmm0
jbe 0x4ae328
movsd xmm1, qword [esp + 0x20]
comisd xmm1, xmm2
jbe 0x4ae328
addsd xmm0, xmm1
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
movsd qword [edi], xmm0
mov byte [edi + 8], 0x13
jmp 0x4ad661
mov eax, edx
shr edx, 0x18
shr eax, 0x10
movzx ecx, al
shl ecx, 4
add ecx, dword [esp + 0x10]
shl edx, 4
add edx, dword [esp + 0x2c]
mov al, byte [ecx + 8]
mov dword [esp + 0x18], edx
cmp al, 0x13
jne 0x4ae36c
movsd xmm0, qword [ecx]
movsd qword [esp + 0x20], xmm0
jmp 0x4ae38f
mov esi, dword [ebp + 8]
mov edx, dword [esp + 0x14]
cmp al, 3
jne 0x4ad8ab
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
call fcn.004f5430
mov edx, dword [esp + 0x18]
movsd qword [esp + 0x20], xmm0
mov al, byte [edx + 8]
cmp al, 0x13
jne 0x4ae39c
movsd xmm1, qword [edx]
jmp 0x4ae3bc
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
cmp al, 3
jne 0x4ad661
mov ecx, dword [esp + 0x18]
mov edx, dword [edx + 4]
mov ecx, dword [ecx]
call fcn.004f5430
movaps xmm1, xmm0
movsd xmm0, qword [esp + 0x20]
add dword [esp + 0xc], 4
call fcn.004db4b0
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
movsd qword [edi], xmm0
mov byte [edi + 8], 0x13
jmp 0x4ad661
mov eax, edx
shr edx, 0x18
shr eax, 0x10
movzx ecx, al
shl ecx, 4
add ecx, dword [esp + 0x10]
shl edx, 4
add edx, dword [esp + 0x2c]
mov dword [esp + 0x18], edx
mov al, byte [ecx + 8]
cmp al, 0x13
jne 0x4ae40a
movsd xmm0, qword [ecx]
jmp 0x4ae427
mov esi, dword [ebp + 8]
mov edx, dword [esp + 0x14]
cmp al, 3
jne 0x4ad8ab
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
call fcn.004f5430
mov edx, dword [esp + 0x18]
mov al, byte [edx + 8]
movsd qword [esp + 0x20], xmm0
cmp al, 0x13
jne 0x4ae43a
movsd xmm1, qword [edx]
jmp 0x4ae45a
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
cmp al, 3
jne 0x4ad661
mov ecx, dword [esp + 0x18]
mov edx, dword [edx + 4]
mov ecx, dword [ecx]
call fcn.004f5430
movaps xmm1, xmm0
mov ecx, dword [esp + 0xc]
movsd xmm0, qword [esp + 0x20]
add ecx, 4
mov dword [esp + 0xc], ecx
divsd xmm0, xmm1
jmp 0x4ad656
mov eax, edx
shr edx, 0x18
shr eax, 0x10
movzx eax, al
shl eax, 4
add eax, dword [esp + 0x10]
shl edx, 4
mov dword [esp + 0x18], edx
mov cl, byte [eax + 8]
cmp cl, 3
jne 0x4ae4e9
mov esi, dword [esp + 0x2c]
mov cl, byte [edx + esi + 8]
mov byte [esp + 0x1f], cl
cmp cl, 3
jne 0x4ae4d5
push dword [edx + esi + 4]
add dword [esp + 0x10], 4
push dword [edx + esi]
mov esi, dword [ebp + 8]
push dword [eax + 4]
push dword [eax]
push esi
call fcn.004b12e0
mov ecx, dword [esp + 0x20]
add esp, 0x14
mov dword [edi], eax
mov dword [edi + 4], edx
mov byte [edi + 8], 3
jmp 0x4ad661
mov edx, dword [eax + 4]
mov ecx, dword [eax]
call fcn.004f5430
mov edx, dword [esp + 0x18]
mov al, byte [esp + 0x1f]
jmp 0x4ae505
mov esi, dword [ebp + 8]
cmp cl, 0x13
mov ecx, dword [esp + 0xc]
jne 0x4ad661
mov esi, dword [esp + 0x2c]
movsd xmm0, qword [eax]
mov al, byte [edx + esi + 8]
movsd qword [esp + 0x20], xmm0
cmp al, 0x13
jne 0x4ae516
movsd xmm1, qword [edx + esi]
jmp 0x4ae53c
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
cmp al, 3
jne 0x4ad661
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
mov edx, dword [edx + eax + 4]
mov ecx, dword [ecx + eax]
call fcn.004f5430
movaps xmm1, xmm0
movsd xmm0, qword [esp + 0x20]
sub esp, 8
divsd xmm0, xmm1
add dword [esp + 0x14], 4
movsd qword [esp + 0x28], xmm0
fld qword [esp + 0x28]
fstp qword [esp]
call fcn.004d01c0
mov esi, dword [ebp + 8]
add esp, 8
mov ecx, dword [esp + 0xc]
fstp qword [edi]
mov byte [edi + 8], 0x13
jmp 0x4ad661
mov ecx, dword [esp + 0x2c]
mov eax, edx
shr eax, 0x10
movzx esi, al
shr edx, 0x18
add edx, edx
shl esi, 4
add esi, dword [esp + 0x10]
mov eax, dword [ecx + edx*8]
mov dword [esp + 0x40], eax
mov eax, dword [ecx + edx*8 + 4]
mov dword [esp + 0x30], eax
mov al, byte [esi + 8]
cmp al, 3
jne 0x4ae5df
mov eax, dword [esi]
add dword [esp + 0xc], 4
mov dword [esp + 0xb8], eax
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0xb8]
and ecx, dword [esp + 0x40]
mov esi, dword [ebp + 8]
mov dword [esp + 0xb4], eax
and eax, dword [esp + 0x30]
mov dword [edi], ecx
mov ecx, dword [esp + 0xc]
mov dword [edi + 4], eax
mov byte [edi + 8], 3
jmp 0x4ad661
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
cmp al, 0x13
jne 0x4b0562
movsd xmm0, qword [esi]
sub esp, 8
movsd qword [esp + 0x28], xmm0
fld qword [esp + 0x28]
fstp qword [esp]
call fcn.004d01c0
movsd xmm0, qword [esi]
add esp, 8
fstp qword [esp + 0x20]
movsd xmm1, qword [esp + 0x20]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x4ae654
comisd xmm1, xmmword [esp + 0x58]
jb 0x4ae654
movsd xmm0, qword [esp + 0x60]
comisd xmm0, xmm1
jbe 0x4ae654
movaps xmm0, xmm1
call fcn.004f5330
mov dword [esp + 0xb8], eax
mov eax, 1
mov dword [esp + 0xb4], edx
jmp 0x4ae656
xor eax, eax
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
test eax, eax
je 0x4ad8af
mov ecx, dword [esp + 0xb8]
and ecx, dword [esp + 0x40]
mov eax, dword [esp + 0xb4]
add dword [esp + 0xc], 4
and eax, dword [esp + 0x30]
mov esi, dword [ebp + 8]
mov dword [edi], ecx
mov ecx, dword [esp + 0xc]
mov dword [edi + 4], eax
mov byte [edi + 8], 3
jmp 0x4ad661
mov ecx, dword [esp + 0x2c]
mov eax, edx
shr eax, 0x10
movzx esi, al
shr edx, 0x18
add edx, edx
shl esi, 4
add esi, dword [esp + 0x10]
mov eax, dword [ecx + edx*8]
mov dword [esp + 0x40], eax
mov eax, dword [ecx + edx*8 + 4]
mov dword [esp + 0x30], eax
mov al, byte [esi + 8]
cmp al, 3
jne 0x4ae703
mov eax, dword [esi]
add dword [esp + 0xc], 4
mov dword [esp + 0xc0], eax
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0xc0]
or ecx, dword [esp + 0x40]
mov esi, dword [ebp + 8]
mov dword [esp + 0xbc], eax
or eax, dword [esp + 0x30]
mov dword [edi], ecx
mov ecx, dword [esp + 0xc]
mov dword [edi + 4], eax
mov byte [edi + 8], 3
jmp 0x4ad661
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
cmp al, 0x13
jne 0x4b0562
movsd xmm0, qword [esi]
sub esp, 8
movsd qword [esp + 0x28], xmm0
fld qword [esp + 0x28]
fstp qword [esp]
call fcn.004d01c0
movsd xmm0, qword [esi]
add esp, 8
fstp qword [esp + 0x20]
movsd xmm1, qword [esp + 0x20]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x4ae778
comisd xmm1, xmmword [esp + 0x58]
jb 0x4ae778
movsd xmm0, qword [esp + 0x60]
comisd xmm0, xmm1
jbe 0x4ae778
movaps xmm0, xmm1
call fcn.004f5330
mov dword [esp + 0xc0], eax
mov eax, 1
mov dword [esp + 0xbc], edx
jmp 0x4ae77a
xor eax, eax
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
test eax, eax
je 0x4ad8af
mov ecx, dword [esp + 0xc0]
or ecx, dword [esp + 0x40]
mov eax, dword [esp + 0xbc]
add dword [esp + 0xc], 4
or eax, dword [esp + 0x30]
mov esi, dword [ebp + 8]
mov dword [edi], ecx
mov ecx, dword [esp + 0xc]
mov dword [edi + 4], eax
mov byte [edi + 8], 3
jmp 0x4ad661
mov ecx, dword [esp + 0x2c]
mov eax, edx
shr eax, 0x10
movzx esi, al
shr edx, 0x18
add edx, edx
shl esi, 4
add esi, dword [esp + 0x10]
mov eax, dword [ecx + edx*8]
mov dword [esp + 0x40], eax
mov eax, dword [ecx + edx*8 + 4]
mov dword [esp + 0x30], eax
mov al, byte [esi + 8]
cmp al, 3
jne 0x4ae827
mov eax, dword [esi]
add dword [esp + 0xc], 4
mov dword [esp + 0xc8], eax
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0xc8]
xor ecx, dword [esp + 0x40]
mov esi, dword [ebp + 8]
mov dword [esp + 0xc4], eax
xor eax, dword [esp + 0x30]
mov dword [edi], ecx
mov ecx, dword [esp + 0xc]
mov dword [edi + 4], eax
mov byte [edi + 8], 3
jmp 0x4ad661
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
cmp al, 0x13
jne 0x4b0562
movsd xmm0, qword [esi]
sub esp, 8
movsd qword [esp + 0x28], xmm0
fld qword [esp + 0x28]
fstp qword [esp]
call fcn.004d01c0
movsd xmm0, qword [esi]
add esp, 8
fstp qword [esp + 0x20]
movsd xmm1, qword [esp + 0x20]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x4ae89c
comisd xmm1, xmmword [esp + 0x58]
jb 0x4ae89c
movsd xmm0, qword [esp + 0x60]
comisd xmm0, xmm1
jbe 0x4ae89c
movaps xmm0, xmm1
call fcn.004f5330
mov dword [esp + 0xc8], eax
mov eax, 1
mov dword [esp + 0xc4], edx
jmp 0x4ae89e
xor eax, eax
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
test eax, eax
je 0x4ad8af
mov ecx, dword [esp + 0xc8]
xor ecx, dword [esp + 0x40]
mov eax, dword [esp + 0xc4]
add dword [esp + 0xc], 4
xor eax, dword [esp + 0x30]
mov esi, dword [ebp + 8]
mov dword [edi], ecx
mov ecx, dword [esp + 0xc]
mov dword [edi + 4], eax
mov byte [edi + 8], 3
jmp 0x4ad661
mov eax, edx
shr edx, 0x18
shr eax, 0x10
sub edx, 0x7f
movzx esi, al
shl esi, 4
add esi, dword [esp + 0x10]
mov dword [esp + 0x18], edx
mov al, byte [esi + 8]
cmp al, 3
jne 0x4ae919
mov eax, dword [esi]
mov dword [esp + 0xe0], eax
mov eax, dword [esi + 4]
mov dword [esp + 0xe4], eax
jmp 0x4ae9a7
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
cmp al, 0x13
jne 0x4b0562
movsd xmm0, qword [esi]
sub esp, 8
movsd qword [esp + 0x28], xmm0
fld qword [esp + 0x28]
fstp qword [esp]
call fcn.004d01c0
movsd xmm0, qword [esi]
add esp, 8
fstp qword [esp + 0x20]
movsd xmm1, qword [esp + 0x20]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x4ae98e
comisd xmm1, xmmword [esp + 0x58]
jb 0x4ae98e
movsd xmm0, qword [esp + 0x60]
comisd xmm0, xmm1
jbe 0x4ae98e
movaps xmm0, xmm1
call fcn.004f5330
mov dword [esp + 0xe0], eax
mov eax, 1
mov dword [esp + 0xe4], edx
jmp 0x4ae990
xor eax, eax
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
test eax, eax
je 0x4ad8af
mov edx, dword [esp + 0x18]
add dword [esp + 0xc], 4
mov ecx, edx
neg ecx
mov eax, ecx
cdq
test edx, edx
jg 0x4ae9c9
jl 0x4ae9bd
test eax, eax
jae 0x4aea27
cmp edx, 0xffffffff
jg 0x4ae9ef
jl 0x4ae9c9
cmp eax, 0xffffffc0
ja 0x4ae9ef
mov esi, dword [ebp + 8]
xorps xmm0, xmm0
mov ecx, dword [esp + 0xc]
movlpd qword [esp + 0x20], xmm0
mov eax, dword [esp + 0x20]
mov dword [edi], eax
mov eax, dword [esp + 0x24]
mov dword [edi + 4], eax
mov byte [edi + 8], 3
jmp 0x4ad661
mov ecx, dword [esp + 0x18]
movq xmm1, qword [esp + 0xe0]
mov esi, dword [ebp + 8]
movd xmm0, ecx
mov ecx, dword [esp + 0xc]
psrlq xmm1, xmm0
movq qword [esp + 0x20], xmm1
mov eax, dword [esp + 0x20]
mov dword [edi], eax
mov eax, dword [esp + 0x24]
mov dword [edi + 4], eax
mov byte [edi + 8], 3
jmp 0x4ad661
test edx, edx
jl 0x4aea58
jg 0x4ae9c9
cmp eax, 0x40
jb 0x4aea58
mov esi, dword [ebp + 8]
xorps xmm0, xmm0
mov ecx, dword [esp + 0xc]
movlpd qword [esp + 0x20], xmm0
mov eax, dword [esp + 0x20]
mov dword [edi], eax
mov eax, dword [esp + 0x24]
mov dword [edi + 4], eax
mov byte [edi + 8], 3
jmp 0x4ad661
movq xmm1, qword [esp + 0xe0]
movd xmm0, ecx
psllq xmm1, xmm0
movq qword [esp + 0x20], xmm1
mov eax, dword [esp + 0x20]
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
mov dword [edi], eax
mov eax, dword [esp + 0x24]
mov dword [edi + 4], eax
mov byte [edi + 8], 3
jmp 0x4ad661
mov eax, edx
shr edx, 0x18
shr eax, 0x10
movzx esi, al
shl esi, 4
add esi, dword [esp + 0x10]
mov dword [esp + 0x18], edx
mov al, byte [esi + 8]
cmp al, 3
jne 0x4aeabe
mov eax, dword [esi]
mov esi, dword [esi + 4]
mov dword [esp + 0x70], eax
mov dword [esp + 0xcc], esi
jmp 0x4aeb50
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
cmp al, 0x13
jne 0x4b0562
movsd xmm0, qword [esi]
sub esp, 8
movsd qword [esp + 0x28], xmm0
fld qword [esp + 0x28]
fstp qword [esp]
call fcn.004d01c0
movsd xmm0, qword [esi]
add esp, 8
fstp qword [esp + 0x20]
movsd xmm1, qword [esp + 0x20]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x4aeb30
comisd xmm1, xmmword [esp + 0x58]
jb 0x4aeb30
movsd xmm0, qword [esp + 0x60]
comisd xmm0, xmm1
jbe 0x4aeb30
movaps xmm0, xmm1
call fcn.004f5330
mov dword [esp + 0x70], eax
mov eax, 1
mov dword [esp + 0xcc], edx
jmp 0x4aeb32
xor eax, eax
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
test eax, eax
je 0x4ad8af
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0xcc]
mov ecx, dword [esp + 0xc]
xor eax, eax
add ecx, 4
sub edx, 0x7f
mov dword [esp + 0xc], ecx
sbb eax, eax
mov dword [esp + 0xe8], edx
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x70]
test esi, esi
jg 0x4afa9e
jl 0x4aeb82
test eax, eax
jae 0x4aebb8
cmp esi, 0xffffffff
jg 0x4aeba0
jl 0x4afa9e
cmp eax, 0xffffffc0
ja 0x4aeba0
xorps xmm0, xmm0
movlpd qword [esp + 0x20], xmm0
jmp 0x4afaeb
movq xmm1, qword [esp + 0xe8]
neg eax
movd xmm0, eax
psrlq xmm1, xmm0
jmp 0x4afae5
test esi, esi
jl 0x4aebd5
jg 0x4afa9e
cmp eax, 0x40
jb 0x4aebd5
xorps xmm0, xmm0
movlpd qword [esp + 0x20], xmm0
jmp 0x4afaeb
movq xmm1, qword [esp + 0xe8]
jmp 0x4afadd
mov ecx, dword [esp + 0x10]
mov eax, edx
shr eax, 0x10
movzx esi, al
shl esi, 4
add esi, ecx
shr edx, 0x18
shl edx, 4
mov dword [esp + 0x18], edx
mov al, byte [esi + 8]
cmp al, 3
jne 0x4aec59
mov al, byte [edx + ecx + 8]
mov byte [esp + 0x1f], al
cmp al, 3
jne 0x4aec3b
mov ecx, dword [edx + ecx]
mov eax, dword [esp + 0x10]
add dword [esp + 0xc], 4
add ecx, dword [esi]
mov eax, dword [edx + eax + 4]
adc eax, dword [esi + 4]
mov esi, dword [ebp + 8]
mov dword [edi], ecx
mov ecx, dword [esp + 0xc]
mov dword [edi + 4], eax
mov byte [edi + 8], 3
jmp 0x4ad661
mov edx, dword [esi + 4]
mov ecx, dword [esi]
call fcn.004f5430
mov edx, dword [esp + 0x18]
mov al, byte [esp + 0x1f]
mov ecx, dword [esp + 0x10]
movsd qword [esp + 0x20], xmm0
jmp 0x4aec77
mov ecx, dword [esp + 0xc]
cmp al, 0x13
jne 0x4ad65e
mov ecx, dword [esp + 0x10]
movsd xmm0, qword [esi]
movsd qword [esp + 0x20], xmm0
mov al, byte [edx + ecx + 8]
cmp al, 0x13
jne 0x4aec96
movsd xmm0, qword [edx + ecx]
mov ecx, dword [esp + 0xc]
addsd xmm0, qword [esp + 0x20]
add ecx, 4
mov dword [esp + 0xc], ecx
jmp 0x4ad656
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
cmp al, 3
jne 0x4ad661
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov edx, dword [edx + eax + 4]
mov ecx, dword [ecx + eax]
jmp 0x4ae052
mov esi, dword [esp + 0x10]
mov eax, edx
shr eax, 0x10
movzx eax, al
shl eax, 4
add eax, esi
shr edx, 0x18
shl edx, 4
mov dword [esp + 0x18], edx
mov cl, byte [eax + 8]
cmp cl, 3
jne 0x4aed21
mov cl, byte [edx + esi + 8]
mov byte [esp + 0x1f], cl
cmp cl, 3
mov ecx, dword [eax]
jne 0x4aed0f
add dword [esp + 0xc], 4
sub ecx, dword [edx + esi]
mov eax, dword [eax + 4]
sbb eax, dword [edx + esi + 4]
mov esi, dword [ebp + 8]
mov dword [edi], ecx
mov ecx, dword [esp + 0xc]
mov dword [edi + 4], eax
mov byte [edi + 8], 3
jmp 0x4ad661
mov edx, dword [eax + 4]
call fcn.004f5430
mov edx, dword [esp + 0x18]
mov al, byte [esp + 0x1f]
jmp 0x4aed3d
mov esi, dword [ebp + 8]
cmp cl, 0x13
mov ecx, dword [esp + 0xc]
jne 0x4ad661
mov esi, dword [esp + 0x10]
movsd xmm0, qword [eax]
mov al, byte [edx + esi + 8]
movsd qword [esp + 0x20], xmm0
cmp al, 0x13
jne 0x4aed60
mov ecx, dword [esp + 0xc]
movsd xmm1, qword [edx + esi]
add ecx, 4
subsd xmm0, xmm1
mov dword [esp + 0xc], ecx
jmp 0x4ad656
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
cmp al, 3
jne 0x4ad661
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov edx, dword [edx + eax + 4]
mov ecx, dword [ecx + eax]
call fcn.004f5430
mov ecx, dword [esp + 0xc]
movaps xmm1, xmm0
movsd xmm0, qword [esp + 0x20]
add ecx, 4
subsd xmm0, xmm1
mov dword [esp + 0xc], ecx
jmp 0x4ad656
mov esi, dword [esp + 0x10]
mov eax, edx
shr eax, 0x10
movzx eax, al
shl eax, 4
add eax, esi
shr edx, 0x18
shl edx, 4
mov dword [esp + 0x18], edx
mov cl, byte [eax + 8]
cmp cl, 3
jne 0x4aee15
mov cl, byte [edx + esi + 8]
mov byte [esp + 0x1f], cl
cmp cl, 3
jne 0x4aedfb
push dword [eax + 4]
add dword [esp + 0x10], 4
push dword [eax]
push dword [edx + esi + 4]
push dword [edx + esi]
call fcn.0049e700
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
mov dword [edi], eax
mov dword [edi + 4], edx
mov byte [edi + 8], 3
jmp 0x4ad661
mov edx, dword [eax + 4]
mov ecx, dword [eax]
call fcn.004f5430
mov edx, dword [esp + 0x18]
mov al, byte [esp + 0x1f]
movsd qword [esp + 0x20], xmm0
jmp 0x4aee37
mov esi, dword [ebp + 8]
cmp cl, 0x13
mov ecx, dword [esp + 0xc]
jne 0x4ad661
mov esi, dword [esp + 0x10]
movsd xmm0, qword [eax]
movsd qword [esp + 0x20], xmm0
mov al, byte [edx + esi + 8]
cmp al, 0x13
jne 0x4aee56
mov ecx, dword [esp + 0xc]
movsd xmm0, qword [edx + esi]
add ecx, 4
mulsd xmm0, qword [esp + 0x20]
mov dword [esp + 0xc], ecx
jmp 0x4ad656
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
cmp al, 3
jne 0x4ad661
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov edx, dword [edx + eax + 4]
mov ecx, dword [ecx + eax]
call fcn.004f5430
mov ecx, dword [esp + 0xc]
mulsd xmm0, qword [esp + 0x20]
add ecx, 4
mov dword [esp + 0xc], ecx
jmp 0x4ad656
mov esi, dword [esp + 0x10]
mov eax, edx
shr eax, 0x10
movzx eax, al
shl eax, 4
add eax, esi
shr edx, 0x18
shl edx, 4
mov dword [esp + 0x18], edx
mov cl, byte [eax + 8]
cmp cl, 3
jne 0x4aef02
mov cl, byte [edx + esi + 8]
mov byte [esp + 0x1f], cl
cmp cl, 3
jne 0x4aeeee
push dword [edx + esi + 4]
add dword [esp + 0x10], 4
push dword [edx + esi]
mov esi, dword [ebp + 8]
push dword [eax + 4]
push dword [eax]
push esi
call fcn.004b1430
mov ecx, dword [esp + 0x20]
add esp, 0x14
mov dword [edi], eax
mov dword [edi + 4], edx
mov byte [edi + 8], 3
jmp 0x4ad661
mov edx, dword [eax + 4]
mov ecx, dword [eax]
call fcn.004f5430
mov edx, dword [esp + 0x18]
mov al, byte [esp + 0x1f]
jmp 0x4aef1e
mov esi, dword [ebp + 8]
cmp cl, 0x13
mov ecx, dword [esp + 0xc]
jne 0x4ad661
mov esi, dword [esp + 0x10]
movsd xmm0, qword [eax]
mov al, byte [edx + esi + 8]
movsd qword [esp + 0x30], xmm0
cmp al, 0x13
jne 0x4aef2f
movsd xmm0, qword [edx + esi]
jmp 0x4aef52
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
cmp al, 3
jne 0x4ad661
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov edx, dword [edx + eax + 4]
mov ecx, dword [ecx + eax]
call fcn.004f5430
fld qword [esp + 0x30]
add dword [esp + 0xc], 4
movsd qword [esp + 0x40], xmm0
fld qword [esp + 0x40]
movsd qword [esp + 0x20], xmm0
call fcn.004dc0d0
movsd xmm2, qword [esp + 0x48]
fstp qword [esp + 0x40]
movsd xmm1, qword [esp + 0x40]
comisd xmm1, xmm2
jbe 0x4aefb1
movsd xmm0, qword [esp + 0x20]
xor eax, eax
comisd xmm2, xmm0
seta al
test eax, eax
je 0x4aefc7
mov esi, dword [ebp + 8]
addsd xmm1, xmm0
mov ecx, dword [esp + 0xc]
mov byte [edi + 8], 0x13
movsd qword [edi], xmm1
jmp 0x4ad661
comisd xmm2, xmm1
jbe 0x4aefc7
movsd xmm0, qword [esp + 0x20]
comisd xmm0, xmm2
jbe 0x4aefc7
addsd xmm1, xmm0
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
movsd qword [edi], xmm1
mov byte [edi + 8], 0x13
jmp 0x4ad661
mov eax, edx
shr edx, 0x18
shr eax, 0x10
movzx ecx, al
shl ecx, 4
add ecx, dword [esp + 0x10]
shl edx, 4
add edx, dword [esp + 0x10]
jmp 0x4ae355
mov eax, edx
shr edx, 0x18
shr eax, 0x10
movzx ecx, al
shl ecx, 4
add ecx, dword [esp + 0x10]
shl edx, 4
add edx, dword [esp + 0x10]
mov dword [esp + 0x18], edx
mov al, byte [ecx + 8]
cmp al, 0x13
jne 0x4af023
movsd xmm0, qword [ecx]
jmp 0x4af040
mov esi, dword [ebp + 8]
mov edx, dword [esp + 0x14]
cmp al, 3
jne 0x4ad8ab
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
call fcn.004f5430
mov edx, dword [esp + 0x18]
mov al, byte [edx + 8]
movsd qword [esp + 0x20], xmm0
cmp al, 0x13
jne 0x4af065
mov ecx, dword [esp + 0xc]
movsd xmm1, qword [edx]
add ecx, 4
divsd xmm0, xmm1
mov dword [esp + 0xc], ecx
jmp 0x4ad656
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
cmp al, 3
jne 0x4ad661
mov ecx, dword [esp + 0x18]
mov edx, dword [edx + 4]
mov ecx, dword [ecx]
call fcn.004f5430
mov ecx, dword [esp + 0xc]
movaps xmm1, xmm0
movsd xmm0, qword [esp + 0x20]
add ecx, 4
divsd xmm0, xmm1
mov dword [esp + 0xc], ecx
jmp 0x4ad656
mov esi, dword [esp + 0x10]
mov eax, edx
shr eax, 0x10
movzx eax, al
shl eax, 4
add eax, esi
shr edx, 0x18
shl edx, 4
mov dword [esp + 0x18], edx
mov cl, byte [eax + 8]
cmp cl, 3
jne 0x4af112
mov cl, byte [edx + esi + 8]
mov byte [esp + 0x1f], cl
cmp cl, 3
jne 0x4af0fe
push dword [edx + esi + 4]
add dword [esp + 0x10], 4
push dword [edx + esi]
mov esi, dword [ebp + 8]
push dword [eax + 4]
push dword [eax]
push esi
call fcn.004b12e0
mov ecx, dword [esp + 0x20]
add esp, 0x14
mov dword [edi], eax
mov dword [edi + 4], edx
mov byte [edi + 8], 3
jmp 0x4ad661
mov edx, dword [eax + 4]
mov ecx, dword [eax]
call fcn.004f5430
mov edx, dword [esp + 0x18]
mov al, byte [esp + 0x1f]
jmp 0x4af12e
mov esi, dword [ebp + 8]
cmp cl, 0x13
mov ecx, dword [esp + 0xc]
jne 0x4ad661
mov esi, dword [esp + 0x10]
movsd xmm0, qword [eax]
mov al, byte [edx + esi + 8]
movsd qword [esp + 0x20], xmm0
cmp al, 0x13
jne 0x4af13f
movsd xmm1, qword [edx + esi]
jmp 0x4af165
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
cmp al, 3
jne 0x4ad661
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov edx, dword [edx + eax + 4]
mov ecx, dword [ecx + eax]
call fcn.004f5430
movaps xmm1, xmm0
movsd xmm0, qword [esp + 0x20]
sub esp, 8
divsd xmm0, xmm1
add dword [esp + 0x14], 4
movsd qword [esp + 0x28], xmm0
fld qword [esp + 0x28]
fstp qword [esp]
call fcn.004d01c0
mov esi, dword [ebp + 8]
add esp, 8
mov ecx, dword [esp + 0xc]
fstp qword [edi]
mov byte [edi + 8], 0x13
jmp 0x4ad661
mov eax, edx
shr edx, 0x18
shr eax, 0x10
movzx esi, al
shl esi, 4
add esi, dword [esp + 0x10]
shl edx, 4
add edx, dword [esp + 0x10]
mov dword [esp + 0x18], edx
mov al, byte [esi + 8]
cmp al, 3
jne 0x4af1da
mov eax, dword [esi]
mov dword [esp + 0x84], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x88], eax
jmp 0x4af268
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
cmp al, 0x13
jne 0x4b0562
movsd xmm0, qword [esi]
sub esp, 8
movsd qword [esp + 0x28], xmm0
fld qword [esp + 0x28]
fstp qword [esp]
call fcn.004d01c0
movsd xmm0, qword [esi]
add esp, 8
fstp qword [esp + 0x20]
movsd xmm1, qword [esp + 0x20]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x4af24f
comisd xmm1, xmmword [esp + 0x58]
jb 0x4af24f
movsd xmm0, qword [esp + 0x60]
comisd xmm0, xmm1
jbe 0x4af24f
movaps xmm0, xmm1
call fcn.004f5330
mov dword [esp + 0x84], eax
mov eax, 1
mov dword [esp + 0x88], edx
jmp 0x4af251
xor eax, eax
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
test eax, eax
je 0x4ad8af
mov edx, dword [esp + 0x18]
mov al, byte [edx + 8]
cmp al, 3
jne 0x4af2ae
mov eax, dword [edx]
add dword [esp + 0xc], 4
mov esi, dword [ebp + 8]
mov dword [esp + 0x80], eax
mov eax, dword [edx + 4]
mov ecx, dword [esp + 0x80]
and ecx, dword [esp + 0x84]
mov dword [esp + 0x7c], eax
and eax, dword [esp + 0x88]
mov dword [edi], ecx
mov ecx, dword [esp + 0xc]
mov dword [edi + 4], eax
mov byte [edi + 8], 3
jmp 0x4ad661
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
cmp al, 0x13
jne 0x4ad661
movsd xmm0, qword [edx]
sub esp, 8
movsd qword [esp + 0x28], xmm0
fld qword [esp + 0x28]
fstp qword [esp]
call fcn.004d01c0
mov ecx, dword [esp + 0x20]
add esp, 8
fstp qword [esp + 0x20]
movsd xmm1, qword [esp + 0x20]
movsd xmm0, qword [ecx]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x4af323
comisd xmm1, xmmword [esp + 0x58]
jb 0x4af323
movsd xmm0, qword [esp + 0x60]
comisd xmm0, xmm1
jbe 0x4af323
movaps xmm0, xmm1
call fcn.004f5330
mov dword [esp + 0x80], eax
mov eax, 1
mov dword [esp + 0x7c], edx
jmp 0x4af325
xor eax, eax
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
test eax, eax
je 0x4ad8af
mov ecx, dword [esp + 0x80]
and ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x7c]
add dword [esp + 0xc], 4
and eax, dword [esp + 0x88]
mov esi, dword [ebp + 8]
mov dword [edi], ecx
mov ecx, dword [esp + 0xc]
mov dword [edi + 4], eax
mov byte [edi + 8], 3
jmp 0x4ad661
mov eax, edx
shr edx, 0x18
shr eax, 0x10
movzx esi, al
shl esi, 4
add esi, dword [esp + 0x10]
shl edx, 4
add edx, dword [esp + 0x10]
mov dword [esp + 0x18], edx
mov al, byte [esi + 8]
cmp al, 3
jne 0x4af3a4
mov eax, dword [esi]
mov dword [esp + 0x94], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x98], eax
jmp 0x4af432
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
cmp al, 0x13
jne 0x4b0562
movsd xmm0, qword [esi]
sub esp, 8
movsd qword [esp + 0x28], xmm0
fld qword [esp + 0x28]
fstp qword [esp]
call fcn.004d01c0
movsd xmm0, qword [esi]
add esp, 8
fstp qword [esp + 0x20]
movsd xmm1, qword [esp + 0x20]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x4af419
comisd xmm1, xmmword [esp + 0x58]
jb 0x4af419
movsd xmm0, qword [esp + 0x60]
comisd xmm0, xmm1
jbe 0x4af419
movaps xmm0, xmm1
call fcn.004f5330
mov dword [esp + 0x94], eax
mov eax, 1
mov dword [esp + 0x98], edx
jmp 0x4af41b
xor eax, eax
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
test eax, eax
je 0x4ad8af
mov edx, dword [esp + 0x18]
mov al, byte [edx + 8]
cmp al, 3
jne 0x4af47b
mov eax, dword [edx]
add dword [esp + 0xc], 4
mov esi, dword [ebp + 8]
mov dword [esp + 0x90], eax
mov eax, dword [edx + 4]
mov ecx, dword [esp + 0x90]
or ecx, dword [esp + 0x94]
mov dword [esp + 0x8c], eax
or eax, dword [esp + 0x98]
mov dword [edi], ecx
mov ecx, dword [esp + 0xc]
mov dword [edi + 4], eax
mov byte [edi + 8], 3
jmp 0x4ad661
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
cmp al, 0x13
jne 0x4ad661
movsd xmm0, qword [edx]
sub esp, 8
movsd qword [esp + 0x28], xmm0
fld qword [esp + 0x28]
fstp qword [esp]
call fcn.004d01c0
mov ecx, dword [esp + 0x20]
add esp, 8
fstp qword [esp + 0x20]
movsd xmm1, qword [esp + 0x20]
movsd xmm0, qword [ecx]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x4af4f3
comisd xmm1, xmmword [esp + 0x58]
jb 0x4af4f3
movsd xmm0, qword [esp + 0x60]
comisd xmm0, xmm1
jbe 0x4af4f3
movaps xmm0, xmm1
call fcn.004f5330
mov dword [esp + 0x90], eax
mov eax, 1
mov dword [esp + 0x8c], edx
jmp 0x4af4f5
xor eax, eax
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
test eax, eax
je 0x4ad8af
mov ecx, dword [esp + 0x90]
or ecx, dword [esp + 0x94]
mov eax, dword [esp + 0x8c]
add dword [esp + 0xc], 4
or eax, dword [esp + 0x98]
mov esi, dword [ebp + 8]
mov dword [edi], ecx
mov ecx, dword [esp + 0xc]
mov dword [edi + 4], eax
mov byte [edi + 8], 3
jmp 0x4ad661
mov eax, edx
shr edx, 0x18
shr eax, 0x10
movzx esi, al
shl esi, 4
add esi, dword [esp + 0x10]
shl edx, 4
add edx, dword [esp + 0x10]
mov dword [esp + 0x18], edx
mov al, byte [esi + 8]
cmp al, 3
jne 0x4af577
mov eax, dword [esi]
mov dword [esp + 0xa4], eax
mov eax, dword [esi + 4]
mov dword [esp + 0xa8], eax
jmp 0x4af605
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
cmp al, 0x13
jne 0x4b0562
movsd xmm0, qword [esi]
sub esp, 8
movsd qword [esp + 0x28], xmm0
fld qword [esp + 0x28]
fstp qword [esp]
call fcn.004d01c0
movsd xmm0, qword [esi]
add esp, 8
fstp qword [esp + 0x20]
movsd xmm1, qword [esp + 0x20]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x4af5ec
comisd xmm1, xmmword [esp + 0x58]
jb 0x4af5ec
movsd xmm0, qword [esp + 0x60]
comisd xmm0, xmm1
jbe 0x4af5ec
movaps xmm0, xmm1
call fcn.004f5330
mov dword [esp + 0xa4], eax
mov eax, 1
mov dword [esp + 0xa8], edx
jmp 0x4af5ee
xor eax, eax
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
test eax, eax
je 0x4ad8af
mov edx, dword [esp + 0x18]
mov al, byte [edx + 8]
cmp al, 3
jne 0x4af64e
mov eax, dword [edx]
add dword [esp + 0xc], 4
mov esi, dword [ebp + 8]
mov dword [esp + 0xa0], eax
mov eax, dword [edx + 4]
mov ecx, dword [esp + 0xa0]
xor ecx, dword [esp + 0xa4]
mov dword [esp + 0x9c], eax
xor eax, dword [esp + 0xa8]
mov dword [edi], ecx
mov ecx, dword [esp + 0xc]
mov dword [edi + 4], eax
mov byte [edi + 8], 3
jmp 0x4ad661
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
cmp al, 0x13
jne 0x4ad661
movsd xmm0, qword [edx]
sub esp, 8
movsd qword [esp + 0x28], xmm0
fld qword [esp + 0x28]
fstp qword [esp]
call fcn.004d01c0
mov ecx, dword [esp + 0x20]
add esp, 8
fstp qword [esp + 0x20]
movsd xmm1, qword [esp + 0x20]
movsd xmm0, qword [ecx]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x4af6c6
comisd xmm1, xmmword [esp + 0x58]
jb 0x4af6c6
movsd xmm0, qword [esp + 0x60]
comisd xmm0, xmm1
jbe 0x4af6c6
movaps xmm0, xmm1
call fcn.004f5330
mov dword [esp + 0xa0], eax
mov eax, 1
mov dword [esp + 0x9c], edx
jmp 0x4af6c8
xor eax, eax
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
test eax, eax
je 0x4ad8af
mov ecx, dword [esp + 0xa0]
xor ecx, dword [esp + 0xa4]
mov eax, dword [esp + 0x9c]
add dword [esp + 0xc], 4
xor eax, dword [esp + 0xa8]
mov esi, dword [ebp + 8]
mov dword [edi], ecx
mov ecx, dword [esp + 0xc]
mov dword [edi + 4], eax
mov byte [edi + 8], 3
jmp 0x4ad661
mov eax, edx
shr edx, 0x18
shr eax, 0x10
movzx esi, al
shl esi, 4
add esi, dword [esp + 0x10]
shl edx, 4
add edx, dword [esp + 0x10]
mov dword [esp + 0x18], edx
mov al, byte [esi + 8]
cmp al, 3
jne 0x4af74a
mov eax, dword [esi]
mov dword [esp + 0xd0], eax
mov eax, dword [esi + 4]
mov dword [esp + 0xd4], eax
jmp 0x4af7d8
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
cmp al, 0x13
jne 0x4b0562
movsd xmm0, qword [esi]
sub esp, 8
movsd qword [esp + 0x28], xmm0
fld qword [esp + 0x28]
fstp qword [esp]
call fcn.004d01c0
movsd xmm0, qword [esi]
add esp, 8
fstp qword [esp + 0x20]
movsd xmm1, qword [esp + 0x20]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x4af7bf
comisd xmm1, xmmword [esp + 0x58]
jb 0x4af7bf
movsd xmm0, qword [esp + 0x60]
comisd xmm0, xmm1
jbe 0x4af7bf
movaps xmm0, xmm1
call fcn.004f5330
mov dword [esp + 0xd0], eax
mov eax, 1
mov dword [esp + 0xd4], edx
jmp 0x4af7c1
xor eax, eax
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
test eax, eax
je 0x4ad8af
mov edx, dword [esp + 0x18]
mov al, byte [edx + 8]
cmp al, 3
jne 0x4af7f7
mov eax, dword [edx]
mov dword [esp + 0xac], eax
mov eax, dword [edx + 4]
mov dword [esp + 0xb0], eax
jmp 0x4af881
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
cmp al, 0x13
jne 0x4ad661
movsd xmm0, qword [edx]
sub esp, 8
movsd qword [esp + 0x28], xmm0
fld qword [esp + 0x28]
fstp qword [esp]
call fcn.004d01c0
mov ecx, dword [esp + 0x20]
add esp, 8
fstp qword [esp + 0x20]
movsd xmm1, qword [esp + 0x20]
movsd xmm0, qword [ecx]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x4af86f
comisd xmm1, xmmword [esp + 0x58]
jb 0x4af86f
movsd xmm0, qword [esp + 0x60]
comisd xmm0, xmm1
jbe 0x4af86f
movaps xmm0, xmm1
call fcn.004f5330
mov dword [esp + 0xac], eax
mov eax, 1
mov dword [esp + 0xb0], edx
jmp 0x4af871
xor eax, eax
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
test eax, eax
je 0x4ad8af
add dword [esp + 0xc], 4
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xb0]
neg eax
adc ecx, 0
neg ecx
test ecx, ecx
jg 0x4ae9c9
jl 0x4af8a9
test eax, eax
jae 0x4af8df
cmp ecx, 0xffffffff
jg 0x4af8c7
jl 0x4ae9c9
cmp eax, 0xffffffc0
ja 0x4af8c7
xorps xmm0, xmm0
movlpd qword [esp + 0x20], xmm0
jmp 0x4aea6f
movq xmm1, qword [esp + 0xd0]
neg eax
movd xmm0, eax
psrlq xmm1, xmm0
jmp 0x4aea69
test ecx, ecx
jl 0x4af8fc
jg 0x4ae9c9
cmp eax, 0x40
jb 0x4af8fc
xorps xmm0, xmm0
movlpd qword [esp + 0x20], xmm0
jmp 0x4aea6f
movq xmm1, qword [esp + 0xd0]
movd xmm0, eax
jmp 0x4aea65
mov eax, edx
shr edx, 0x18
shr eax, 0x10
movzx esi, al
shl esi, 4
add esi, dword [esp + 0x10]
shl edx, 4
add edx, dword [esp + 0x10]
mov dword [esp + 0x18], edx
mov al, byte [esi + 8]
cmp al, 3
jne 0x4af94a
mov eax, dword [esi]
mov dword [esp + 0xd8], eax
mov eax, dword [esi + 4]
mov dword [esp + 0xdc], eax
jmp 0x4af9d8
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
cmp al, 0x13
jne 0x4b0562
movsd xmm0, qword [esi]
sub esp, 8
movsd qword [esp + 0x28], xmm0
fld qword [esp + 0x28]
fstp qword [esp]
call fcn.004d01c0
movsd xmm0, qword [esi]
add esp, 8
fstp qword [esp + 0x20]
movsd xmm1, qword [esp + 0x20]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x4af9bf
comisd xmm1, xmmword [esp + 0x58]
jb 0x4af9bf
movsd xmm0, qword [esp + 0x60]
comisd xmm0, xmm1
jbe 0x4af9bf
movaps xmm0, xmm1
call fcn.004f5330
mov dword [esp + 0xd8], eax
mov eax, 1
mov dword [esp + 0xdc], edx
jmp 0x4af9c1
xor eax, eax
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
test eax, eax
je 0x4ad8af
mov edx, dword [esp + 0x18]
mov al, byte [edx + 8]
cmp al, 3
jne 0x4af9f1
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
jmp 0x4afa7d
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
cmp al, 0x13
jne 0x4ad661
movsd xmm0, qword [edx]
sub esp, 8
movsd qword [esp + 0x28], xmm0
fld qword [esp + 0x28]
fstp qword [esp]
call fcn.004d01c0
mov ecx, dword [esp + 0x20]
add esp, 8
fstp qword [esp + 0x20]
movsd xmm1, qword [esp + 0x20]
movsd xmm0, qword [ecx]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x4afa63
comisd xmm1, xmmword [esp + 0x58]
jb 0x4afa63
movsd xmm0, qword [esp + 0x60]
comisd xmm0, xmm1
jbe 0x4afa63
movaps xmm0, xmm1
call fcn.004f5330
mov dword [esp + 0x68], eax
mov eax, 1
mov dword [esp + 0x6c], edx
jmp 0x4afa65
xor eax, eax
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
test eax, eax
je 0x4ad8af
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0xc]
add ecx, 4
mov dword [esp + 0xc], ecx
test edx, edx
jg 0x4afa9e
jl 0x4afa92
test eax, eax
jae 0x4afabe
cmp edx, 0xffffffff
jg 0x4afaa9
jl 0x4afa9e
cmp eax, 0xffffffc0
ja 0x4afaa9
xorps xmm0, xmm0
movlpd qword [esp + 0x20], xmm0
jmp 0x4afaeb
movq xmm1, qword [esp + 0xd8]
neg eax
movd xmm0, eax
psrlq xmm1, xmm0
jmp 0x4afae5
test edx, edx
jl 0x4afad4
jg 0x4afa9e
cmp eax, 0x40
jb 0x4afad4
xorps xmm0, xmm0
movlpd qword [esp + 0x20], xmm0
jmp 0x4afaeb
movq xmm1, qword [esp + 0xd8]
movd xmm0, eax
psllq xmm1, xmm0
movq qword [esp + 0x20], xmm1
mov eax, dword [esp + 0x20]
mov dword [edi], eax
mov eax, dword [esp + 0x24]
mov dword [edi + 4], eax
mov byte [edi + 8], 3
jmp 0x4ad65e
mov esi, dword [esp + 0xc]
mov eax, dword [esi - 8]
shr eax, 7
movzx ecx, al
mov eax, dword [ebp + 0xc]
shl ecx, 4
add ecx, dword [esp + 0x10]
mov dword [eax + 0x10], esi
mov eax, dword [eax + 4]
mov esi, dword [ebp + 8]
mov dword [esi + 0xc], eax
mov eax, edx
shr eax, 0x18
push eax
shr edx, 0x10
movzx eax, dl
push ecx
shl eax, 4
add eax, dword [esp + 0x18]
push eax
push edi
push esi
call fcn.004b1e40
jmp 0x4ad89e
mov esi, dword [esp + 0xc]
mov eax, dword [esi - 8]
shr eax, 7
movzx ecx, al
mov eax, dword [ebp + 0xc]
shl ecx, 4
add ecx, dword [esp + 0x10]
mov dword [eax + 0x10], esi
mov eax, dword [eax + 4]
mov esi, dword [ebp + 8]
mov dword [esi + 0xc], eax
mov eax, edx
shr eax, 0x18
push eax
push ecx
mov eax, edx
shr edx, 0x10
shr eax, 0xf
and eax, 1
movzx ecx, dl
push eax
xor eax, eax
sub ecx, 0x7f
sbb eax, eax
push eax
push ecx
push edi
push esi
call fcn.004b1ef0
mov eax, dword [ebp + 0xc]
add esp, 0x1c
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
mov edx, dword [eax + 0x14]
mov dword [esp + 0x14], edx
jmp 0x4ad669
mov esi, dword [esp + 0xc]
mov eax, dword [esi - 8]
shr eax, 7
movzx ecx, al
mov eax, dword [ebp + 0xc]
shl ecx, 4
add ecx, dword [esp + 0x10]
mov dword [eax + 0x10], esi
mov eax, dword [eax + 4]
mov esi, dword [ebp + 8]
mov dword [esi + 0xc], eax
mov eax, edx
shr eax, 0x18
push eax
mov eax, edx
shr edx, 0x10
shr eax, 0xf
push ecx
and eax, 1
push eax
movzx eax, dl
shl eax, 4
add eax, dword [esp + 0x38]
push eax
push edi
push esi
call fcn.004b1ec0
mov eax, dword [ebp + 0xc]
add esp, 0x18
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
mov edx, dword [eax + 0x14]
mov dword [esp + 0x14], edx
jmp 0x4ad669
shr edx, 0x10
movzx edx, dl
shl edx, 4
add edx, dword [esp + 0x10]
mov al, byte [edx + 8]
cmp al, 3
jne 0x4afc3f
mov ecx, dword [edx]
mov eax, dword [edx + 4]
neg ecx
mov esi, dword [ebp + 8]
adc eax, 0
mov dword [edi], ecx
mov ecx, dword [esp + 0xc]
neg eax
mov dword [edi + 4], eax
mov byte [edi + 8], 3
jmp 0x4ad661
cmp al, 0x13
jne 0x4afc62
movsd xmm0, qword [edx]
xorps xmm0, xmmword [esp + 0xf0]
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
movsd qword [edi], xmm0
mov byte [edi + 8], al
jmp 0x4ad661
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov eax, dword [esp + 0xc]
push 0x12
push edi
push edx
mov dword [ecx + 0x10], eax
mov eax, dword [ecx + 4]
push edx
push esi
mov dword [esi + 0xc], eax
call fcn.004b1e40
jmp 0x4ad89e
shr edx, 0x10
movzx esi, dl
shl esi, 4
add esi, dword [esp + 0x10]
mov al, byte [esi + 8]
cmp al, 3
jne 0x4afca8
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x74], edx
jmp 0x4afd1f
cmp al, 0x13
jne 0x4afd38
movsd xmm0, qword [esi]
sub esp, 8
movsd qword [esp + 0x28], xmm0
fld qword [esp + 0x28]
fstp qword [esp]
call fcn.004d01c0
movsd xmm0, qword [esi]
add esp, 8
fstp qword [esp + 0x20]
movsd xmm1, qword [esp + 0x20]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x4afd11
comisd xmm1, xmmword [esp + 0x58]
jb 0x4afd11
movsd xmm0, qword [esp + 0x60]
comisd xmm0, xmm1
jbe 0x4afd11
movaps xmm0, xmm1
call fcn.004f5330
mov ecx, eax
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], ecx
mov eax, 1
jmp 0x4afd1b
mov ecx, dword [esp + 0x78]
xor eax, eax
mov edx, dword [esp + 0x74]
test eax, eax
je 0x4afd38
not ecx
not edx
mov dword [edi], ecx
mov dword [edi + 4], edx
mov byte [edi + 8], 3
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
jmp 0x4ad661
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
push 0x13
push edi
mov dword [ecx + 0x10], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ebp + 8]
push esi
push esi
mov esi, ecx
push esi
mov dword [ecx + 0xc], eax
call fcn.004b1e40
jmp 0x4ad89e
mov ecx, dword [esp + 0x10]
shr edx, 0x10
movzx eax, dl
add eax, eax
mov al, byte [ecx + eax*8 + 8]
cmp al, 1
je 0x4afd86
test al, 0xf
je 0x4afd86
mov esi, dword [ebp + 8]
mov al, 1
mov ecx, dword [esp + 0xc]
mov byte [edi + 8], al
jmp 0x4ad661
mov esi, dword [ebp + 8]
mov al, 0x11
mov ecx, dword [esp + 0xc]
mov byte [edi + 8], al
jmp 0x4ad661
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
shr edx, 0x10
movzx esi, dl
mov dword [ecx + 0x10], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ebp + 8]
shl esi, 4
add esi, dword [esp + 0x10]
mov dword [ecx + 0xc], eax
movzx eax, byte [esi + 8]
and eax, 0x3f
sub eax, 4
je 0x4afe84
sub eax, 1
je 0x4afe14
sub eax, 0xf
je 0x4afde9
push 4
push esi
push ecx
call fcn.004b1c60
add esp, 0xc
test byte [eax + 8], 0xf
je 0x4b0d56
jmp 0x4afe42
mov eax, dword [esi]
mov esi, ecx
mov ecx, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
mov dword [edi], eax
mov eax, dword [ebp + 0xc]
mov dword [edi + 4], 0
mov byte [edi + 8], 3
mov edi, dword [esp + 0x10]
mov edx, dword [eax + 0x14]
mov dword [esp + 0x14], edx
jmp 0x4ad669
mov eax, dword [esi]
mov dword [esp + 0x40], eax
mov ecx, dword [eax + 0x18]
test ecx, ecx
je 0x4afe58
test byte [ecx + 6], 0x10
jne 0x4afe58
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x10]
push dword [eax + 0xb8]
push 4
push ecx
call fcn.004b1c30
add esp, 0xc
test eax, eax
je 0x4afe54
push edi
push esi
push esi
mov esi, dword [ebp + 8]
push eax
push esi
call fcn.004b1a30
jmp 0x4ad89e
mov eax, dword [esp + 0x40]
push eax
call fcn.004aae10
mov esi, dword [ebp + 8]
add esp, 4
mov ecx, dword [esp + 0xc]
mov dword [edi], eax
mov eax, dword [ebp + 0xc]
mov dword [edi + 4], edx
mov byte [edi + 8], 3
mov edi, dword [esp + 0x10]
mov edx, dword [eax + 0x14]
mov dword [esp + 0x14], edx
jmp 0x4ad669
mov eax, dword [esi]
mov esi, ecx
mov ecx, dword [esp + 0xc]
movzx eax, byte [eax + 7]
cdq
mov dword [edi], eax
mov eax, dword [ebp + 0xc]
mov dword [edi + 4], edx
mov byte [edi + 8], 3
mov edi, dword [esp + 0x10]
mov edx, dword [eax + 0x14]
mov dword [esp + 0x14], edx
jmp 0x4ad669
mov esi, dword [ebp + 8]
shr edx, 0x10
movzx ecx, dl
mov eax, ecx
shl eax, 4
add eax, edi
mov edi, dword [ebp + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0xc]
push ecx
push esi
mov dword [edi + 0x10], eax
call fcn.004ad010
mov edx, dword [edi + 0x14]
add esp, 8
mov eax, dword [esi + 0x10]
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
mov dword [esp + 0x14], edx
cmp dword [eax + 0xc], 0
jle 0x4ad669
push esi
call fcn.004a8860
mov eax, dword [ebp + 0xc]
add esp, 4
mov ecx, dword [esp + 0xc]
mov edx, dword [eax + 0x14]
mov dword [esp + 0x14], edx
jmp 0x4ad669
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov eax, dword [esp + 0xc]
push 0
mov dword [ecx + 0x10], eax
mov eax, dword [ecx + 4]
push edi
push esi
mov dword [esi + 0xc], eax
call fcn.004a6f20
mov eax, dword [ebp + 0xc]
add esp, 0xc
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
mov edx, dword [eax + 0x14]
mov dword [esp + 0x14], edx
jmp 0x4ad669
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov eax, dword [esp + 0xc]
push edi
mov dword [ecx + 0x10], eax
mov eax, dword [ecx + 4]
push esi
mov dword [esi + 0xc], eax
call fcn.004a7360
mov ecx, dword [esp + 0x14]
add esp, 8
jmp 0x4ad661
mov eax, dword [esp + 0xc]
mov esi, dword [ebp + 8]
mov edi, dword [esp + 0x10]
lea eax, [eax + ecx*4]
add eax, 0xfc000004
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0xc]
mov edx, dword [eax + 0x14]
mov dword [esp + 0x14], edx
jmp 0x4ad669
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov eax, dword [esp + 0xc]
mov dword [ecx + 0x10], eax
mov eax, dword [ecx + 4]
mov dword [esi + 0xc], eax
mov eax, edx
shr eax, 0x10
movzx eax, al
shl eax, 4
add eax, dword [esp + 0x10]
push eax
push edi
push esi
call fcn.004ad280
mov edx, dword [ebp + 0xc]
add esp, 0xc
mov ecx, dword [edx + 0x14]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x18]
shr ecx, 0xf
and ecx, 1
cmp eax, ecx
mov ecx, dword [esp + 0xc]
je 0x4afff3
mov edx, dword [esp + 0x14]
mov eax, 4
mov edi, dword [esp + 0x10]
add ecx, eax
mov dword [esp + 0xc], ecx
jmp 0x4ad669
mov edx, dword [edx + 0x14]
mov eax, dword [ecx]
mov edi, dword [esp + 0x10]
shr eax, 7
mov dword [esp + 0x14], edx
lea eax, [eax*4 - 0x3fffff8]
add ecx, eax
mov dword [esp + 0xc], ecx
jmp 0x4ad669
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov al, byte [edi + 8]
shl ecx, 4
add ecx, dword [esp + 0x10]
cmp al, 3
jne 0x4b005a
cmp byte [ecx + 8], al
jne 0x4b0060
mov eax, dword [edi + 4]
cmp eax, dword [ecx + 4]
jg 0x4b0050
jl 0x4b0040
mov eax, dword [edi]
cmp eax, dword [ecx]
jae 0x4b0050
mov esi, dword [ebp + 8]
mov ecx, 1
mov edi, dword [ebp + 0xc]
jmp 0x4b00d4
mov esi, dword [ebp + 8]
xor ecx, ecx
mov edi, dword [ebp + 0xc]
jmp 0x4b00d4
and al, 0xf
cmp al, 3
jne 0x4b007d
mov al, byte [ecx + 8]
and al, 0xf
cmp al, 3
jne 0x4b007d
push ecx
push edi
call fcn.004aca20
mov esi, dword [ebp + 8]
add esp, 8
mov edi, dword [ebp + 0xc]
mov ecx, eax
jmp 0x4b00d0
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov eax, dword [esp + 0xc]
mov dword [edx + 0x10], eax
mov eax, dword [edx + 4]
mov dword [esi + 0xc], eax
mov al, byte [edi + 8]
and al, 0xf
cmp al, 4
jne 0x4b00b7
mov al, byte [ecx + 8]
and al, 0xf
cmp al, 4
jne 0x4b00b7
push dword [ecx]
push dword [edi]
call fcn.004acf80
xor ecx, ecx
add esp, 8
test eax, eax
sets cl
jmp 0x4b00c6
push 0x14
push ecx
push edi
push esi
call fcn.004b1ad0
add esp, 0x10
mov ecx, eax
mov edi, dword [ebp + 0xc]
mov eax, dword [edi + 0x14]
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x18]
shr edx, 0xf
and edx, 1
cmp ecx, edx
mov ecx, dword [esp + 0xc]
je 0x4b00fa
mov edx, dword [esp + 0x14]
mov eax, 4
mov edi, dword [esp + 0x10]
add ecx, eax
mov dword [esp + 0xc], ecx
jmp 0x4ad669
mov edx, dword [edi + 0x14]
jmp 0x4afff6
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov al, byte [edi + 8]
shl ecx, 4
add ecx, dword [esp + 0x10]
cmp al, 3
jne 0x4b0146
cmp byte [ecx + 8], al
jne 0x4b014c
mov eax, dword [edi + 4]
cmp eax, dword [ecx + 4]
jg 0x4b0050
jl 0x4b0040
mov eax, dword [edi]
cmp eax, dword [ecx]
ja 0x4b0050
mov esi, dword [ebp + 8]
mov ecx, 1
mov edi, dword [ebp + 0xc]
jmp 0x4b00d4
and al, 0xf
cmp al, 3
jne 0x4b016c
mov al, byte [ecx + 8]
and al, 0xf
cmp al, 3
jne 0x4b016c
push ecx
push edi
call fcn.004ac840
mov esi, dword [ebp + 8]
add esp, 8
mov edi, dword [ebp + 0xc]
mov ecx, eax
jmp 0x4b00d0
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov eax, dword [esp + 0xc]
mov dword [edx + 0x10], eax
mov eax, dword [edx + 4]
mov dword [esi + 0xc], eax
mov al, byte [edi + 8]
and al, 0xf
cmp al, 4
jne 0x4b01a9
mov al, byte [ecx + 8]
and al, 0xf
cmp al, 4
jne 0x4b01a9
push dword [ecx]
push dword [edi]
call fcn.004acf80
xor ecx, ecx
add esp, 8
test eax, eax
setle cl
jmp 0x4b00c6
push 0x15
jmp 0x4b00b9
mov eax, edx
shr eax, 0x10
movzx eax, al
shl eax, 4
add eax, dword [esp + 0x2c]
push eax
push edi
push 0
call fcn.004ad280
mov ecx, dword [esp + 0x24]
add esp, 0xc
shr ecx, 0xf
and ecx, 1
cmp eax, ecx
je 0x4b0542
mov ecx, dword [esp + 0xc]
mov eax, 4
mov edx, dword [esp + 0x14]
add ecx, eax
mov esi, dword [ebp + 8]
mov edi, dword [esp + 0x10]
mov dword [esp + 0xc], ecx
jmp 0x4ad669
mov cl, byte [edi + 8]
mov eax, edx
shr eax, 0x10
movzx eax, al
lea esi, [eax - 0x7f]
cmp cl, 3
jne 0x4b022d
xor ecx, ecx
sub eax, 0x7f
sbb ecx, ecx
cmp dword [edi], eax
jne 0x4b0256
cmp dword [edi + 4], ecx
jne 0x4b0256
mov eax, 1
shr edx, 0xf
and edx, eax
cmp eax, edx
jmp 0x4b01d7
cmp cl, 0x13
jne 0x4b0256
movsd xmm0, qword [edi]
movd xmm1, esi
cvtdq2pd xmm1, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x4b0256
mov eax, 1
shr edx, 0xf
and edx, eax
cmp eax, edx
jmp 0x4b01d7
shr edx, 0xf
xor eax, eax
and edx, 1
cmp eax, edx
jmp 0x4b01d7
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov al, byte [edi + 8]
lea esi, [ecx - 0x7f]
cmp al, 3
jne 0x4b02b5
xor eax, eax
sub ecx, 0x7f
sbb eax, eax
cmp dword [edi + 4], eax
jg 0x4b02a0
jl 0x4b0289
cmp dword [edi], ecx
jae 0x4b02a0
mov esi, dword [ebp + 8]
mov eax, 1
mov edi, dword [ebp + 0xc]
shr edx, 0xf
and edx, eax
cmp eax, edx
jmp 0x4b00dc
mov esi, dword [ebp + 8]
xor eax, eax
mov edi, dword [ebp + 0xc]
shr edx, 0xf
and edx, 1
cmp eax, edx
jmp 0x4b00dc
cmp al, 0x13
jne 0x4b02dd
movd xmm0, esi
xor eax, eax
mov esi, dword [ebp + 8]
cvtdq2pd xmm0, xmm0
comisd xmm0, xmmword [edi]
mov edi, dword [ebp + 0xc]
seta al
shr edx, 0xf
and edx, 1
cmp eax, edx
jmp 0x4b00dc
push 0x14
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0x10]
mov dword [ecx + 0x10], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0xc], eax
mov eax, edx
shr eax, 0x18
push eax
push 0
push esi
mov esi, ecx
push edi
push esi
call fcn.004b1b60
mov edi, dword [ebp + 0xc]
add esp, 0x18
mov edx, dword [esp + 0x18]
shr edx, 0xf
and edx, 1
mov ecx, dword [edi + 0x14]
cmp eax, edx
mov dword [esp + 0x14], ecx
jmp 0x4b00dc
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov al, byte [edi + 8]
lea esi, [ecx - 0x7f]
cmp al, 3
jne 0x4b0369
xor eax, eax
sub ecx, 0x7f
sbb eax, eax
cmp dword [edi + 4], eax
jg 0x4b02a0
jl 0x4b0289
cmp dword [edi], ecx
ja 0x4b02a0
mov esi, dword [ebp + 8]
mov eax, 1
mov edi, dword [ebp + 0xc]
shr edx, 0xf
and edx, eax
cmp eax, edx
jmp 0x4b00dc
cmp al, 0x13
jne 0x4b0391
movd xmm0, esi
xor eax, eax
mov esi, dword [ebp + 8]
cvtdq2pd xmm0, xmm0
comisd xmm0, xmmword [edi]
mov edi, dword [ebp + 0xc]
setae al
shr edx, 0xf
and edx, 1
cmp eax, edx
jmp 0x4b00dc
push 0x15
jmp 0x4b02df
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov al, byte [edi + 8]
lea esi, [ecx - 0x7f]
cmp al, 3
jne 0x4b03df
xor eax, eax
sub ecx, 0x7f
sbb eax, eax
cmp dword [edi + 4], eax
jl 0x4b02a0
jg 0x4b0289
cmp dword [edi], ecx
jbe 0x4b02a0
mov esi, dword [ebp + 8]
mov eax, 1
mov edi, dword [ebp + 0xc]
shr edx, 0xf
and edx, eax
cmp eax, edx
jmp 0x4b00dc
cmp al, 0x13
jne 0x4b040b
movsd xmm0, qword [edi]
xor eax, eax
mov edi, dword [ebp + 0xc]
movd xmm1, esi
mov esi, dword [ebp + 8]
cvtdq2pd xmm1, xmm1
comisd xmm0, xmm1
seta al
shr edx, 0xf
and edx, 1
cmp eax, edx
jmp 0x4b00dc
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
push 0x14
mov dword [ecx + 0x10], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0xc], eax
mov eax, edx
shr eax, 0x18
push eax
push 1
jmp 0x4b02fa
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov al, byte [edi + 8]
lea esi, [ecx - 0x7f]
cmp al, 3
jne 0x4b0474
xor eax, eax
sub ecx, 0x7f
sbb eax, eax
cmp dword [edi + 4], eax
jl 0x4b02a0
jg 0x4b0289
cmp dword [edi], ecx
jb 0x4b02a0
mov esi, dword [ebp + 8]
mov eax, 1
mov edi, dword [ebp + 0xc]
shr edx, 0xf
and edx, eax
cmp eax, edx
jmp 0x4b00dc
cmp al, 0x13
jne 0x4b04a0
movsd xmm0, qword [edi]
xor eax, eax
mov edi, dword [ebp + 0xc]
movd xmm1, esi
mov esi, dword [ebp + 8]
cvtdq2pd xmm1, xmm1
comisd xmm0, xmm1
setae al
shr edx, 0xf
and edx, 1
cmp eax, edx
jmp 0x4b00dc
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
push 0x15
mov dword [ecx + 0x10], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0xc], eax
mov eax, edx
shr eax, 0x18
push eax
push 1
jmp 0x4b02fa
mov al, byte [edi + 8]
cmp al, 1
je 0x4b0256
test al, 0xf
je 0x4b0256
mov eax, 1
shr edx, 0xf
and edx, eax
cmp eax, edx
jmp 0x4b01d7
mov eax, edx
shr eax, 0x10
movzx ecx, al
shl ecx, 4
add ecx, dword [esp + 0x10]
mov al, byte [ecx + 8]
cmp al, 1
je 0x4b0504
test al, 0xf
je 0x4b0504
xor eax, eax
jmp 0x4b0509
mov eax, 1
shr edx, 0xf
and edx, 1
cmp eax, edx
jne 0x4b0532
mov ecx, dword [esp + 0xc]
mov eax, 4
mov edx, dword [esp + 0x14]
add ecx, eax
mov esi, dword [ebp + 8]
mov edi, dword [esp + 0x10]
mov dword [esp + 0xc], ecx
jmp 0x4ad669
mov eax, dword [ecx]
mov dword [edi], eax
mov eax, dword [ecx + 4]
mov dword [edi + 4], eax
mov al, byte [ecx + 8]
mov byte [edi + 8], al
mov ecx, dword [esp + 0xc]
mov edx, dword [ebp + 0xc]
mov eax, dword [ecx]
mov edx, dword [edx + 0x14]
shr eax, 7
mov dword [esp + 0x14], edx
lea eax, [eax*4 - 0x3fffff8]
add ecx, eax
mov dword [esp + 0xc], ecx
mov esi, dword [ebp + 8]
mov edi, dword [esp + 0x10]
jmp 0x4ad669
mov esi, dword [ebp + 8]
mov eax, edx
shr eax, 0x10
shr edx, 0x18
movzx eax, al
dec edx
test eax, eax
je 0x4b0589
shl eax, 4
add eax, edi
mov dword [esi + 0xc], eax
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
push edx
push edi
push esi
mov dword [ecx + 0x10], eax
call fcn.004a5d40
mov eax, dword [ebp + 0xc]
add esp, 0xc
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
mov edx, dword [eax + 0x14]
mov dword [esp + 0x14], edx
jmp 0x4ad669
cmp byte [edi + 0x28], 3
jne 0x4b0623
mov eax, dword [edi + 0x14]
mov esi, dword [edi + 0x10]
mov dword [esp + 0x30], eax
test eax, eax
jne 0x4b05d1
test esi, esi
je 0x4b0682
mov eax, dword [edi]
sub esi, 1
mov ecx, dword [edi + 4]
sbb dword [esp + 0x30], 0
add eax, dword [edi + 0x20]
mov dword [edi + 0x10], esi
adc ecx, dword [edi + 0x24]
mov esi, dword [esp + 0x30]
mov dword [edi + 4], ecx
mov dword [edi + 0x14], esi
mov esi, dword [ebp + 8]
mov dword [edi], eax
mov dword [edi + 0x34], ecx
mov ecx, dword [esp + 0xc]
shr edx, 0xf
mov dword [edi + 0x30], eax
neg edx
mov eax, dword [ebp + 0xc]
mov byte [edi + 0x38], 3
mov edi, dword [esp + 0x10]
lea ecx, [ecx + edx*4]
mov edx, dword [eax + 0x14]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14], edx
jmp 0x4ad669
movsd xmm0, qword [edi + 0x20]
xor eax, eax
comisd xmm0, xmmword [esp + 0x48]
movsd xmm2, qword [edi + 0x10]
movaps xmm1, xmm0
addsd xmm1, qword [edi]
jbe 0x4b0644
comisd xmm2, xmm1
jmp 0x4b0648
comisd xmm1, xmm2
mov ecx, dword [esp + 0xc]
setae al
test eax, eax
je 0x4b0686
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
shr edx, 0xf
neg edx
movsd qword [edi], xmm1
movsd qword [edi + 0x30], xmm1
mov byte [edi + 0x38], 0x13
mov edi, dword [esp + 0x10]
lea ecx, [ecx + edx*4]
mov edx, dword [eax + 0x14]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14], edx
jmp 0x4ad669
mov ecx, dword [esp + 0xc]
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov edi, dword [esp + 0x10]
mov edx, dword [eax + 0x14]
mov dword [esp + 0x14], edx
jmp 0x4ad669
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov eax, dword [esp + 0xc]
push edi
mov dword [ecx + 0x10], eax
mov eax, dword [ecx + 4]
push esi
mov dword [esi + 0xc], eax
call fcn.004acc00
mov edi, dword [esp + 0x18]
add esp, 8
mov edx, dword [esp + 0x14]
test eax, eax
je 0x4ad650
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
shr ecx, 0xf
lea eax, [eax + ecx*4]
add eax, 4
mov dword [esp + 0xc], eax
mov ecx, eax
jmp 0x4ad661
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov eax, dword [esp + 0xc]
mov dword [ecx + 0x10], eax
mov eax, dword [ecx + 4]
mov dword [esi + 0xc], eax
lea eax, [edi + 0x30]
push eax
push esi
call fcn.004a7360
mov edx, dword [esp + 0x20]
add esp, 8
mov eax, dword [esp + 0xc]
shr edx, 0xf
lea eax, [eax + edx*4]
mov edx, dword [eax]
add eax, 4
mov dword [esp + 0x18], edx
mov dword [esp + 0xc], eax
jmp 0x4b0725
mov esi, dword [ebp + 8]
movups xmm0, xmmword [edi]
mov ecx, dword [ebp + 0xc]
lea eax, [edi + 0x70]
movups xmmword [edi + 0x40], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [edi + 0x50], xmm0
movups xmm0, xmmword [edi + 0x20]
movups xmmword [edi + 0x60], xmm0
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0xc]
mov dword [ecx + 0x10], eax
mov eax, edx
shr eax, 0x18
lea ecx, [edi + 0x40]
push eax
push ecx
push esi
call fcn.004a5d40
mov eax, dword [ebp + 0xc]
add esp, 0xc
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x14], ecx
test ecx, ecx
je 0x4b0785
mov ecx, dword [esp + 0x18]
mov eax, dword [eax]
shr ecx, 7
add eax, 0x10
movzx edi, cl
shl edi, 4
mov dword [esp + 0x10], eax
add edi, eax
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx]
add ecx, 4
mov dword [esp + 0xc], ecx
jmp 0x4b079b
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
test byte [edi + 0x48], 0xf
je 0x4ad661
mov eax, dword [edi + 0x40]
shr edx, 0xf
neg edx
mov dword [edi + 0x20], eax
mov eax, dword [edi + 0x44]
mov dword [edi + 0x24], eax
mov al, byte [edi + 0x48]
lea ecx, [ecx + edx*4]
mov byte [edi + 0x28], al
mov dword [esp + 0xc], ecx
jmp 0x4ad661
mov eax, edx
mov ecx, edx
shr eax, 0x10
movzx esi, al
mov eax, dword [edi]
shr ecx, 0x18
mov dword [esp + 0x3c], esi
mov dword [esp + 0x30], eax
test esi, esi
jne 0x4b07f5
mov eax, dword [ebp + 8]
mov esi, dword [eax + 0xc]
sub esi, edi
sar esi, 4
dec esi
mov dword [esp + 0x3c], esi
jmp 0x4b0805
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov eax, dword [eax + 4]
mov dword [esi + 0xc], eax
mov esi, dword [esp + 0x3c]
add ecx, esi
mov dword [esp + 0x18], ecx
test edx, 0x8000
je 0x4b082c
mov edx, dword [esp + 0xc]
mov eax, dword [edx]
shr eax, 7
shl eax, 8
add ecx, eax
add edx, 4
mov dword [esp + 0x18], ecx
mov dword [esp + 0xc], edx
push dword [esp + 0x30]
call fcn.004ab370
mov edx, dword [esp + 0x1c]
add esp, 4
cmp edx, eax
jbe 0x4b0854
push edx
push dword [esp + 0x34]
push dword [ebp + 8]
call fcn.004ab620
mov edx, dword [esp + 0x24]
add esp, 0xc
mov ecx, dword [esp + 0xc]
test esi, esi
jle 0x4ad65e
shl esi, 4
shl edx, 4
add esi, edi
mov edi, dword [esp + 0x30]
nop dword [eax]
mov ecx, dword [edi + 0xc]
mov eax, dword [esi]
mov dword [ecx + edx - 0x10], eax
mov eax, dword [esi + 4]
mov dword [ecx + edx - 0xc], eax
mov al, byte [esi + 8]
mov byte [ecx + edx - 8], al
sub edx, 0x10
test byte [esi + 8], 0x40
mov dword [esp + 0x18], edx
je 0x4b08b2
test byte [edi + 5], 0x20
je 0x4b08b2
mov eax, dword [esi]
test byte [eax + 5], 0x18
je 0x4b08b2
push edi
push dword [ebp + 8]
call fcn.004a8300
mov edx, dword [esp + 0x20]
add esp, 8
mov eax, dword [esp + 0x3c]
sub esi, 0x10
dec eax
mov dword [esp + 0x3c], eax
test eax, eax
jg 0x4b0870
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
jmp 0x4ad661
mov eax, dword [esp + 0x54]
mov ecx, dword [ebp + 0xc]
shr edx, 0xf
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + edx*4]
mov edx, dword [ebp + 8]
mov eax, dword [esp + 0xc]
mov dword [ecx + 0x10], eax
mov eax, dword [ecx + 4]
mov dword [edx + 0xc], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x3c]
push eax
push edx
mov dword [esp + 0x44], eax
mov dword [esp + 0x20], ecx
call fcn.004a7270
add esp, 8
mov dword [esp + 0x40], eax
cmp dword [esp + 0x3c], 0
mov dword [eax + 0xc], esi
mov dword [edi], eax
mov byte [edi + 8], 0x46
jle 0x4b098e
mov esi, dword [esp + 0x18]
mov edi, eax
add esi, 5
lea ecx, [edi + 0x10]
mov dword [esp + 0x30], ecx
nop dword [eax]
cmp byte [esi - 1], 0
movzx eax, byte [esi]
je 0x4b0952
shl eax, 4
add eax, dword [esp + 0x10]
push eax
push dword [ebp + 8]
call fcn.004a70a0
mov ecx, dword [esp + 0x38]
add esp, 8
jmp 0x4b095a
mov edx, dword [esp + 0x54]
mov eax, dword [edx + eax*4 + 0x10]
mov dword [ecx], eax
test byte [edi + 5], 0x20
je 0x4b0979
test byte [eax + 5], 0x18
je 0x4b0979
push eax
push edi
push dword [ebp + 8]
call fcn.004a82b0
mov ecx, dword [esp + 0x3c]
add esp, 0xc
add ecx, 4
add esi, 8
sub dword [esp + 0x3c], 1
mov dword [esp + 0x30], ecx
jne 0x4b0930
mov edi, dword [esp + 0x20]
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
cmp dword [eax + 0xc], 0
jle 0x4ad8af
lea eax, [edi + 0x10]
push esi
mov dword [esi + 0xc], eax
call fcn.004a8860
mov eax, dword [ebp + 0xc]
add esp, 4
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
mov edx, dword [eax + 0x14]
mov dword [esp + 0x14], edx
jmp 0x4ad669
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov eax, dword [esp + 0xc]
shr edx, 0x18
dec edx
mov dword [ecx + 0x10], eax
mov eax, dword [ecx + 4]
push edx
push edi
push ecx
push esi
mov dword [esi + 0xc], eax
call fcn.004b1cc0
mov eax, dword [ebp + 0xc]
add esp, 0x10
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
mov edx, dword [eax + 0x14]
mov dword [esp + 0x14], edx
jmp 0x4ad669
mov eax, dword [esp + 0x54]
mov esi, dword [ebp + 8]
push dword [eax + 0xc]
mov eax, dword [esp + 0x40]
push dword [ebp + 0xc]
push eax
push esi
call fcn.004b18d0
mov edx, dword [ebp + 0xc]
add esp, 0x10
mov eax, dword [edx + 0x14]
mov dword [esp + 0x14], eax
test eax, eax
je 0x4b0a54
push edx
push esi
call fcn.004a6250
mov ecx, dword [esp + 0x14]
add esp, 8
mov edx, dword [ebp + 0xc]
lea eax, [ecx + 4]
mov dword [esi + 0x18], eax
mov edi, dword [edx]
add edi, 0x10
mov dword [esp + 0x10], edi
jmp 0x4ad665
mov edi, dword [edx]
mov ecx, dword [esp + 0xc]
add edi, 0x10
mov dword [esp + 0x10], edi
jmp 0x4ad665
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov eax, edx
shr eax, 0x18
mov dword [esp + 0x3c], ecx
test eax, eax
je 0x4b0a89
mov esi, dword [ebp + 0xc]
mov esi, dword [esi + 0x18]
add esi, eax
mov dword [esp + 0x54], esi
jmp 0x4b0a91
mov dword [esp + 0x54], 0
test ecx, ecx
je 0x4b0aa6
mov eax, ecx
mov ecx, dword [ebp + 8]
shl eax, 4
add eax, edi
mov dword [ecx + 0xc], eax
mov eax, ecx
jmp 0x4b0ab5
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
sub ecx, edi
sar ecx, 4
mov dword [esp + 0x3c], ecx
mov esi, dword [ebp + 0xc]
mov ecx, dword [esp + 0xc]
mov dword [esi + 0x10], ecx
mov esi, dword [esp + 0x30]
test edx, 0x8000
je 0x4b0ada
push 0xffffffffffffffff
push dword [esp + 0x14]
push eax
call fcn.004a6f20
add esp, 0xc
mov al, byte [edi + 8]
and al, 0xf
cmp al, 6
je 0x4b0b50
mov esi, dword [esp + 0x3c]
mov ecx, dword [ebp + 8]
nop word [eax + eax]
push edi
push ecx
call fcn.004a6af0
mov ecx, dword [ebp + 8]
add esp, 8
inc esi
mov eax, dword [ecx + 0x1c]
sub eax, dword [ecx + 0xc]
and eax, 0xfffffff0
cmp eax, 0x10
jg 0x4b0b3f
mov eax, dword [ecx + 0x10]
sub edi, dword [ecx + 0x20]
mov dword [esp + 0x20], edi
cmp dword [eax + 0xc], 0
jle 0x4b0b28
push ecx
call fcn.004a8860
mov ecx, dword [ebp + 8]
add esp, 4
push 1
push 1
push ecx
call fcn.004a60d0
mov ecx, dword [ebp + 8]
add esp, 0xc
mov edi, dword [ecx + 0x20]
add edi, dword [esp + 0x20]
mov al, byte [edi + 8]
and al, 0xf
cmp al, 6
jne 0x4b0af0
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x30]
cmp byte [edi + 8], 0x46
jne 0x4b0b7e
push dword [esp + 0x3c]
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0x58]
mov esi, dword [ebp + 8]
neg eax
push edi
push ecx
shl eax, 4
add dword [ecx], eax
push esi
call fcn.004a6530
mov edx, dword [ebp + 0xc]
add esp, 0x10
jmp 0x4ad5f6
push 0xffffffffffffffff
push edi
push dword [ebp + 8]
call fcn.004a5d40
mov edx, dword [ebp + 0xc]
add esp, 0xc
mov eax, dword [edx + 0x14]
mov ecx, dword [edx]
test eax, eax
je 0x4b0b9d
lea edi, [ecx + 0x10]
add edi, esi
mov eax, dword [esp + 0x54]
shl eax, 4
sub ecx, eax
mov dword [edx], ecx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0xc]
sub eax, edi
sar eax, 4
push eax
push edx
push ecx
call fcn.004a6390
add esp, 0xc
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, edx
mov ecx, edx
shr eax, 0x10
movzx eax, al
dec eax
shr ecx, 0x18
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ecx
test eax, eax
jns 0x4b0bed
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
sub eax, edi
sar eax, 4
mov dword [esp + 0x68], eax
mov esi, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
mov dword [esi + 0x10], eax
mov esi, dword [esp + 0x30]
test edx, 0x8000
je 0x4b0c3a
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov eax, dword [eax + 4]
cmp dword [ecx + 0xc], eax
jae 0x4b0c14
mov dword [ecx + 0xc], eax
push 0
push dword [esp + 0x14]
push ecx
call fcn.004a6f20
mov edx, dword [ebp + 0xc]
add esp, 0xc
mov ecx, dword [esp + 0x6c]
mov eax, dword [edx + 0x14]
test eax, eax
je 0x4b0c3d
mov edi, dword [edx]
add edi, 0x10
add edi, esi
jmp 0x4b0c3d
mov edx, dword [ebp + 0xc]
test ecx, ecx
je 0x4b0c4d
mov eax, dword [edx + 0x18]
add eax, ecx
neg eax
shl eax, 4
add dword [edx], eax
mov ecx, dword [esp + 0x68]
mov eax, ecx
mov edx, dword [ebp + 8]
push ecx
push dword [ebp + 0xc]
shl eax, 4
add eax, edi
push edx
mov dword [edx + 0xc], eax
call fcn.004a6390
add esp, 0xc
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 8]
cmp dword [edx + 0x70], 0
je 0x4b0c99
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
push 0
push ecx
mov dword [edx + 0xc], edi
push edx
mov dword [ecx + 0x10], eax
call fcn.004a6390
add esp, 0xc
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0xc]
movzx ecx, word [eax + 0x20]
mov eax, dword [eax + 8]
mov dword [edx + 0x14], eax
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
movsx ecx, cx
mov dword [edx + 0xc], eax
test ecx, ecx
jle 0x4b0d50
nop dword [eax + eax]
mov eax, dword [edx + 0xc]
dec ecx
mov byte [eax + 8], 0
add dword [edx + 0xc], 0x10
test ecx, ecx
jg 0x4b0cc0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 8]
cmp dword [edx + 0x70], 0
je 0x4b0d01
mov ecx, dword [ebp + 0xc]
lea eax, [edi + 0x10]
push 1
mov dword [edx + 0xc], eax
mov eax, dword [esp + 0x10]
push ecx
push edx
mov dword [ecx + 0x10], eax
call fcn.004a6390
add esp, 0xc
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0xc]
movsx ecx, word [eax + 0x20]
mov eax, dword [eax + 8]
mov dword [edx + 0x14], eax
test ecx, ecx
jne 0x4b0d22
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov dword [edx + 0xc], eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov esi, dword [esp + 0x10]
dec ecx
mov eax, dword [edi]
mov dword [esi - 0x10], eax
mov eax, dword [edi + 4]
mov dword [esi - 0xc], eax
mov al, byte [edi + 8]
mov byte [esi - 8], al
mov dword [edx + 0xc], esi
test ecx, ecx
jle 0x4b0d50
nop
mov eax, dword [edx + 0xc]
dec ecx
mov byte [eax + 8], 0
add dword [edx + 0xc], 0x10
test ecx, ecx
jg 0x4b0d40
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push str.get_length_of
push esi
push dword [ebp + 8]
call fcn.004a57a0
enter 0x4ad6, 0
fcmovbe st(0), st(6)
dec edx
add ah, bh
salc
dec edx
add byte [ecx], ah
xlatb
dec edx
add byte [edi - 0x29], al
dec edx
add byte [ebx - 0x29], ah
dec edx
add byte [ebx - 0x29], dh
dec edx
add byte [edi - 0x68ffb529], al
xlatb
dec edx
add byte [ecx - 0x30ffb529], bh
xlatb
dec edx
add byte [edi], ch
fmul dword [edx]
mov eax, 0x92004ad8
invalid