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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x1c0
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
xorpd xmm0, xmm0
movapd xmmword [esp + 0x190], xmm0
mov dword [esp + 0x1a4], 0
mov dword [esp + 0x1a0], 0
mov dword [esp + 0x1a9], 0
mov dword [esp + 0x1a5], 0
mov dword [esp + 0x18c], 0
mov dword [esp + 0x184], 0
mov dword [esp + 0x180], 0
movapd xmmword [esp + 0x170], xmm0
movapd xmmword [esp + 0x160], xmm0
movapd xmmword [esp + 0x150], xmm0
movapd xmmword [esp + 0x140], xmm0
movapd xmmword [esp + 0x130], xmm0
movapd xmmword [esp + 0x120], xmm0
movapd xmmword [esp + 0x110], xmm0
movapd xmmword [esp + 0x100], xmm0
movapd xmmword [esp + 0xf0], xmm0
movapd xmmword [esp + 0xe0], xmm0
movapd xmmword [esp + 0xd0], xmm0
movapd xmmword [esp + 0xc0], xmm0
movapd xmmword [esp + 0xb0], xmm0
movapd xmmword [esp + 0xa0], xmm0
movapd xmmword [esp + 0x90], xmm0
movapd xmmword [esp + 0x80], xmm0
movsd xmm1, qword [0x7dc5bc]
movsd qword [esp + 0x78], xmm1
movsd xmm1, qword [0x7dc5b4]
movsd qword [esp + 0x70], xmm1
movsd xmm1, qword [0x7dc5ac]
movsd qword [esp + 0x68], xmm1
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
movapd xmmword [esp + 0x50], xmm0
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], 0xfffffffe
mov dword [esp], esi
call fcn.0059ab80
mov edx, eax
test edx, edx
jne 0x4afc90
mov eax, edx
and eax, 1
xor eax, edx
not eax
test eax, eax
je 0x4afc90
lea eax, [esp + 0x18c]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x190]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x68]
mov dword [esp], eax
mov dword [esp + 8], 0x1c
mov dword [esp + 4], 0
call fcn.005938f0
mov edx, eax
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
cmp edx, eax
jne 0x4afc90
mov eax, dword [esp + 0x190]
mov edx, 0x7000002f
cmp eax, 0x636f6964
jne 0x4afc90
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
je 0x4afc90
lea eax, [esp + 0x194]
mov dword [esp + 4], eax
lea eax, [esp + 0x180]
mov dword [esp], eax
mov dword [esp + 8], 8
call fcn.007c51d0
mov dword [esp], esi
call fcn.00434c50
mov dword [esp + 0x40], eax
mov dword [esp], eax
call fcn.004116e0
call fcn.0041cc50
mov ebx, eax
lea eax, [esp + 0x80]
mov dword [esp], eax
mov dword [esp + 4], 0x100
call fcn.00454a70
movsd xmm0, qword [esp + 0x180]
movsd qword [ebx], xmm0
mov dword [ebx + 8], esi
mov dword [ebx + 0x60], 3
mov eax, dword [str.HASP_SL_UserMode]
lea ecx, [ebx + 0x68]
mov dword [esp + 8], eax
mov dword [esp], ecx
mov dword [esp + 4], 0x20
call fcn.004959f0
mov dword [ebx + 0x19c], 0
mov dword [ebx + 0x198], 1
mov dword [ebx + 0x1a0], edi
mov dword [ebx + 0xcc], 0
mov dword [ebx + 0xd0], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x9c], 1
mov dword [ebx + 0xa0], 0
mov dword [ebx + 0x1a8], 1
lea eax, [ebx + 0x10]
mov dword [esp], eax
mov dword [esp + 4], 0x29
call fcn.00446640
mov dword [esp + 0x10], esi
mov dword [esp], ebx
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0xc], 0xb
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call fcn.0051a4f0
mov dword [esp + 0x4c], eax
and eax, 0xfffffff
xor esi, esi
cmp eax, 0x30
je 0x4af826
imul eax, eax
and eax, 3
cmp eax, 3
je 0x4af826
mov edx, dword [esp + 0x4c]
mov eax, edx
imul eax, eax
and eax, 3
cmp eax, 2
sete al
movzx eax, al
cmp edx, eax
jne 0x4af84d
mov al, 0x10
movzx eax, al
mov esi, edx
cmp eax, 0x10
je 0x4af867
cmp eax, 0x14
mov byte [esp + 0x48], 0x22
mov eax, dword [ebx + 8]
lea ecx, [esp + 0x50]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0059a7b0
mov dword [esp + 0x3c], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
mov ecx, dword [ebp + 8]
mov edx, esi
je 0x4af88c
jmp 0x4afa58
mov edi, 0xc3
add edi, 0xffffff51
mov eax, 3
sub eax, esi
xor eax, esi
setne al
movzx eax, al
add esi, eax
mov dword [ebx + 0x180], 0x30
mov eax, dword [ebx + 8]
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov dword [esp], str.Commuter_License__llu_wont_be_functional_becasue_VLIB_for_vendor__d_is_not_available_n
call fcn.004414c0
mov dword [esp], ebx
call fcn.00411700
mov dword [esp], ebx
call fcn.0041d160
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
cmp esi, eax
jb 0x4af7d0
mov byte [esp + 0x47], al
mov dword [esp + 0x3c], eax
mov dword [esp + 0x48], eax
jmp 0x4af90a
mov edi, 3
mov byte [esp + 0x47], al
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x48], edx
jmp 0x4af9c7
mov eax, dword [ebx + 8]
lea ecx, [esp + 0x50]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0059a7b0
mov dword [esp + 0x3c], eax
test eax, eax
jne 0x4af8d9
mov ecx, dword [ebp + 8]
mov edx, esi
mov byte [esp + 0x48], 0x22
movzx eax, byte [esp + 0x48]
cmp eax, 0x2a
jne 0x4af8c3
mov eax, dword [esp + 0x54]
cmp eax, 3
jb 0x4af8fb
mov dword [esp + 0x4c], edx
mov edx, eax
imul edx, edx
and edx, 3
cmp edx, 2
jae 0x4af8ee
mov edi, 5
mov edx, 0x7000002f
mov byte [esp + 0x47], al
jmp 0x4afc76
mov esi, 3
mov byte [esp + 0x47], al
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], edx
jmp 0x4afcf1
mov dword [esp + 0x48], 0x19
mov dword [esp + 0x4c], eax
mov byte [esp + 0x47], al
jmp 0x4afa3a
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x4c]
jmp 0x4af9f1
mov dword [esp + 0x38], eax
mov eax, edx
mov dword [esp + 0x4c], edx
jmp 0x4af9f1
cmp edi, 0xa
jne 0x4af976
mov eax, edi
and eax, 1
xor eax, edi
not eax
test eax, eax
je 0x4af97d
xor eax, eax
movzx edx, cl
cmp edx, 8
je 0x4af984
mov ecx, 8
cmp edx, 0xd
jne 0x4af95c
mov eax, dword [esp + 0x4c]
jmp 0x4afb2a
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
adc eax, 0
movsd xmm0, qword [esp + 0x60]
movsd qword [ebx + 0x190], xmm0
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
jb 0x4af940
mov edi, esi
jmp 0x4afce4
mov edi, esi
jmp 0x4afc13
mov edi, esi
jmp 0x4afc13
mov edi, esi
jmp 0x4af9ad
mov esi, 0x18
xor ecx, eax
setne cl
movzx ecx, cl
add eax, ecx
movsd xmm0, qword [esp + 0x60]
movsd qword [ebx + 0x190], xmm0
mov ecx, 3
sub ecx, eax
mov edx, eax
xor edx, ecx
setne dl
movzx edx, dl
cmp eax, edx
jb 0x4af990
jmp 0x4afbf3
mov dword [esp + 0x4c], edx
cmp edi, 3
mov cl, byte [esp + 0x47]
jne 0x4af9eb
mov edx, edi
not edx
and edx, 1
add edx, edi
mov edi, esi
mov eax, dword [esp + 0x48]
jne 0x4afa73
jmp 0x4af9f1
mov edi, esi
mov eax, dword [esp + 0x48]
mov byte [esp + 0x47], cl
mov edx, dword [esp + 0x38]
cmp edx, 2
je 0x4afa11
mov ecx, edx
and ecx, 1
inc ecx
xor ecx, edx
je 0x4afa11
mov dword [esp + 0x48], eax
jmp 0x4afce4
mov edx, 4
mov ecx, dword [esp + 0x58]
cmp ecx, 0x23
jb 0x4afafd
mov dword [esp + 0x48], 9
mov esi, 3
sub esi, ecx
xor esi, ecx
je 0x4afafd
cmp dword [esp + 0x48], 9
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x4c]
mov esi, edi
je 0x4afc9a
xor eax, eax
test al, al
jne 0x4afc9a
mov dword [esp + 0x4c], edx
mov eax, dword [ebx + 8]
mov dword [esp + 4], eax
mov dword [esp], str.VLIB_for_vendor__d_is_not_available_n
call fcn.004414c0
mov eax, dword [esp + 0x3c]
mov edx, 0x11
test ebx, ebx
setne cl
je 0x4afaf7
test eax, eax
je 0x4afaf7
mov dl, 0x72
xor esi, esi
movzx edx, dl
mov edi, eax
cmp edx, 0x59
je 0x4afb51
mov byte [esp + 0x47], cl
cmp edx, 0x72
je 0x4afae1
mov dword [esp], ebx
mov dword [esp + 4], 0x4ae670
call fcn.004117f0
jmp 0x4afb94
mov eax, 3
sub eax, esi
xor eax, esi
setne al
movzx eax, al
add esi, eax
mov dword [esp], ebx
mov dword [esp + 4], 0x4ae670
call fcn.004117f0
mov eax, esi
imul eax, eax
and eax, 3
test esi, esi
je 0x4afac0
cmp eax, 2
je 0x4afac0
jmp 0x4afb94
mov byte [esp + 0x47], cl
mov edi, eax
mov dword [esp + 0x48], eax
cmp edx, 4
jne 0x4afb16
mov ecx, edx
or ecx, 2
xor edx, 2
add edx, ecx
jne 0x4afce4
mov ecx, 4
test byte [esp + 0x47], 1
mov esi, edi
mov eax, esi
jne 0x4afbe2
mov edi, esi
cmp ecx, 4
jne 0x4afb3a
mov dword [esp + 0x4c], eax
jmp 0x4afc13
mov dword [esp + 0x4c], eax
movsd xmm0, qword [esp + 0x60]
movsd qword [ebx + 0x190], xmm0
jmp 0x4afce4
mov byte [esp + 0x47], cl
jmp 0x4afb81
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
add esi, eax
mov dword [esp], ebx
mov dword [esp + 4], 0x4ae670
call fcn.004117f0
mov eax, 3
sub eax, esi
xor eax, esi
setne al
movzx eax, al
cmp esi, eax
jb 0x4afb60
mov esi, edi
mov dword [esp + 0x48], edi
jmp 0x4afbe2
mov eax, dword [esp + 0x54]
cmp eax, 3
jb 0x4afbce
mov edx, eax
or edx, 2
mov dword [esp + 0x38], eax
mov esi, eax
xor esi, 2
add esi, edx
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x4c]
mov esi, edi
mov edi, 0x13
jne 0x4afc9a
jmp 0x4af9c7
mov dword [esp + 0x38], eax
mov edx, dword [esp + 0x4c]
mov esi, edi
mov edi, 0x13
jmp 0x4af9c7
mov dword [esp + 0x4c], esi
mov esi, 0xb
mov dword [esp], ebx
call fcn.0041d160
mov eax, dword [esp + 0x4c]
cmp esi, 0xb
jne 0x4afce0
mov dword [esp + 0x4c], eax
mov eax, 3
sub eax, esi
xor eax, esi
je 0x4afce4
mov eax, edi
mov edi, 3
mov ecx, dword [esp + 0x40]
test ecx, ecx
mov edx, dword [esp + 0x4c]
je 0x4afc71
imul ecx, ecx
and ecx, 3
cmp ecx, 2
je 0x4afc71
mov ebx, edx
xor esi, esi
mov edi, dword [esp + 0x40]
jmp 0x4afc5a
mov eax, esi
and eax, 1
xor eax, esi
cmp eax, 0xffffffff
setne al
movzx eax, al
add esi, eax
mov dword [esp], edi
call fcn.00434c70
mov eax, 3
sub eax, esi
xor eax, esi
setne al
movzx eax, al
cmp esi, eax
jb 0x4afc40
mov edx, ebx
jmp 0x4afc90
mov esi, eax
mov ecx, dword [ebp + 8]
cmp edi, 3
jne 0x4afc9a
mov eax, esi
mov esi, edx
mov edx, edi
and edx, 1
xor edx, edi
not edx
test edx, edx
mov edx, esi
mov esi, eax
je 0x4afc9a
mov eax, edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x4c], edx
mov edx, dword [ebx + 0x1a0]
lea eax, [esp + 0x60]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0x30
mov dword [esp], 0
call fcn.0051f860
test eax, eax
jne 0x4afa73
mov dword [esp + 0x48], eax
mov edi, 0xa
mov cl, 8
jmp 0x4af90a
mov dword [esp + 0x4c], eax
mov esi, 0xa
mov dword [esp], ebx
call fcn.00411700
cmp esi, 3
je 0x4afb9c
xor eax, eax
test al, al
jne 0x4afb9c
xor esi, esi
jmp 0x4afbe2