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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xc0
mov eax, dword [esp + 0xd8]
mov ebp, dword [esp + 0xd4]
mov esi, dword [esp + 0xe0]
call 0x4af9e4
pop ebx
mov dword [esp + 0x48], ebx
mov dword [ebp + 8], 0
mov dword [ebp + 0x24], 0
mov dword [ebp + 0x38], esi
mov dword [ebp + 0x54], 0
mov dword [ebp + 0x68], esi
mov edi, dword [eax + 0x14]
mov esi, dword [eax + 0x10]
cmp esi, edi
mov dword [esp + 0xac], edi
jbe 0x4afa26
mov dword [ecx], 0
add esp, 0xc0
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, dword [eax + 0xc]
mov dword [esp + 0xa0], ecx
cmp edi, 0xffffffff
mov dword [esp + 0x10], edi
je 0x4b50a5
mov ecx, dword [eax + 8]
mov dword [esp + 0x18], ecx
movzx ecx, byte [edx + 0x14]
mov byte [esp + 0x5b], cl
mov ecx, dword [edx]
mov dword [esp + 0x60], ecx
mov ecx, dword [eax]
test ecx, ecx
je 0x4afa69
cmp ecx, 1
jne 0x4afaa8
mov ecx, dword [esp + 0x60]
mov ecx, dword [ecx + 0x130]
jmp 0x4afac4
mov ecx, dword [esp + 0x60]
mov edi, dword [ecx + 0x130]
cmp edi, dword [ecx + 0x134]
mov dword [esp + 0x84], edi
je 0x4afacb
cmp byte [edx + 0x10], 3
lea ecx, [edx + 4]
mov edx, 0x55583c
mov dword [esp + 0x78], 0
cmovne edx, ecx
xor ecx, ecx
cmp byte [edx + 0xc], 2
cmove edx, ecx
mov dword [esp + 0x7c], edx
jmp 0x4afad9
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x60]
cmp dword [edx + 0x15c], ecx
jbe 0x4b4e08
mov edx, dword [edx + 0x158]
mov ecx, dword [edx + ecx*4]
mov dword [esp + 0x84], ecx
mov cl, 1
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0xe0]
movzx edx, byte [esp + 0x5b]
movzx eax, byte [eax + 0x18]
mov dword [esp + 8], esi
mov dword [esp + 0xbc], esi
lea ecx, [ecx*4]
cmp dl, 2
mov byte [esp + 0x77], al
mov dword [esp + 0xb4], ecx
setne cl
test dl, 1
sete dl
xor eax, eax
and dl, cl
xor ecx, ecx
mov byte [esp + 0x76], dl
jmp 0x4afb7b
movups xmm0, xmmword [ebp + 0x3c]
movups xmm1, xmmword [ebp + 0xc]
movups xmmword [ebp + 0xc], xmm0
movups xmmword [ebp + 0x3c], xmm1
movsd xmm1, qword [ebp + 0x1c]
movdqu xmm0, xmmword [ebp + 0x4c]
movsd qword [ebp + 0x4c], xmm1
mov eax, dword [ebp + 0x38]
movups xmm1, xmmword [ebp + 0x5c]
movups xmm2, xmmword [ebp + 0x28]
movdqu xmmword [ebp + 0x1c], xmm0
pshufd xmm0, xmm0, 0xee
movups xmmword [ebp + 0x58], xmm2
movups xmmword [ebp + 0x2c], xmm1
mov dword [ebp + 0x68], eax
mov eax, dword [esp + 8]
mov dword [ebp + 0x54], 0
cmp eax, dword [esp + 0xac]
movd eax, xmm0
ja 0x4b4e87
test eax, eax
mov dword [esp + 0x64], ecx
je 0x4afb90
mov edi, dword [esp + 8]
jmp 0x4afc05
cmp byte [esp + 0x5b], 0
sete al
cmp ecx, 1
setne cl
cmp dword [esp + 8], esi
seta dl
test byte [esp + 0x78], dl
jne 0x4b4e83
or al, cl
mov ecx, dword [esp + 0x64]
je 0x4b4e87
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x4afb83
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov edx, dword [eax + 8]
dec edx
and edx, 0xfffffff8
lea ecx, [edx + ecx + 8]
push dword [esp + 0xac]
push dword [esp + 0xc]
push dword [esp + 0x18]
push dword [esp + 0x24]
push ecx
lea ecx, [esp + 0x44]
push ecx
call dword [eax + 0x20]
add esp, 0x18
cmp dword [esp + 0x30], 0
je 0x4b4e83
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x64]
cmp byte [esp + 0x5b], 0
mov dword [esp], edi
sete al
cmp ecx, 1
setne cl
cmp edi, esi
mov esi, edi
setne dl
test byte [esp + 0x78], dl
jne 0x4afc7e
or al, cl
je 0x4afc7e
mov edx, dword [ebp + 0x60]
mov esi, dword [ebp + 0x68]
mov ecx, edx
mov eax, esi
mov dword [esp + 0xc], esi
sub ecx, esi
jb 0x4b509b
mov edx, dword [ebp + 8]
shl ecx, 2
add ecx, dword [ebp + 0x5c]
cmp edx, dword [ebp]
mov dword [esp + 0x68], ecx
jne 0x4afc59
mov ecx, ebp
call fcn.00414d50
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 4]
mov esi, dword [esp + 0x84]
lea ecx, [edx + edx*2]
inc edx
mov dword [eax + ecx*4], 0
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp]
mov dword [ebp + 8], edx
jne 0x4b39b0
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x24]
cmp ecx, edx
ja 0x4b5073
mov edi, dword [ebp + 0x10]
lea eax, [esi + 1]
lea ebx, [esi + 2]
mov dword [esp + 0xb0], 0
mov dword [esp + 8], eax
mov dword [esp + 0x50], ebx
lea edx, [edi + ecx*4]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x80], edx
sub ecx, eax
mov dword [esp + 0x4c], ecx
xor ecx, ecx
sub eax, 4
cmovb eax, ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
lea eax, [eax + esi + 1]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x60]
cmp edi, edx
je 0x4b394e
mov ebp, dword [esp + 0x48]
jmp 0x4afd07
mov ebx, dword [edi]
mov edx, dword [eax + 0x150]
cmp edx, ebx
jbe 0x4b4ea9
mov eax, dword [eax + 0x14c]
add edi, 4
lea ecx, [ebx + ebx*4]
mov dword [esp + 0x68], edi
lea edi, [eax + ecx*4]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax*4 + 0x4b5260]
add eax, ebp
jmp eax
mov eax, dword [esp + 0xb0]
mov edi, dword [esp + 0xa4]
mov edx, dword [esp + 0xa8]
cmp eax, 1
cmove edx, esi
cmove edi, dword [esp + 0xb8]
cmove ecx, eax
cmp byte [esp + 0x77], 0
mov esi, dword [esp + 0xbc]
mov dword [esp + 0xa8], edx
mov dword [esp + 0xa4], edi
je 0x4afb20
cmp ecx, 1
jne 0x4afb20
jmp 0x4b4e54
lea eax, [esi + 1]
mov ecx, esi
mov ebx, dword [ebp + 0x24]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x10]
sub eax, esi
sub ecx, 4
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x18]
lea eax, [eax + esi]
mov dword [esp + 0x50], eax
lea eax, [esi - 1]
mov dword [esp + 0x1c], eax
mov eax, 0
cmovb ecx, eax
mov eax, dword [esp + 0xc]
mov dword [esp + 8], ecx
lea eax, [eax*4]
mov dword [esp + 0x20], eax
jmp 0x4b3a0b
mov esi, dword [esp]
nop
mov edx, dword [ebp + 8]
test edx, edx
je 0x4afc7e
dec edx
mov dword [ebp + 8], edx
lea ecx, [edx + edx*2]
mov eax, dword [ebp + 4]
mov edx, dword [eax + ecx*4]
mov edi, dword [eax + ecx*4 + 4]
test edx, edx
je 0x4b3a55
cmp edx, 2
je 0x4afc7e
cmp edi, dword [esp + 0xc]
jae 0x4b4ed3
mov eax, dword [eax + ecx*4 + 8]
mov edx, dword [esp + 0x68]
mov dword [edx + edi*4], eax
jmp 0x4b3a00
mov edx, dword [ebp + 0x20]
mov dword [esp + 0x54], edi
cmp edx, edi
jbe 0x4b4e48
mov esi, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x14]
mov ecx, dword [esi + edi*4]
cmp ecx, ebx
jae 0x4b3a9b
cmp ecx, eax
jae 0x4b4e3c
mov ebp, edi
mov edi, ebx
mov ebx, dword [esp + 0xd4]
mov ebx, dword [ebx + 0x10]
cmp dword [ebx + ecx*4], ebp
mov ebx, edi
mov edi, ebp
mov ebp, dword [esp + 0xd4]
je 0x4b39fb
cmp ebx, eax
mov dword [esp + 0x6c], ebx
jae 0x4b4f25
mov eax, dword [ebp + 0x10]
mov dword [eax + ebx*4], edi
mov ecx, dword [esp + 0x54]
cmp ecx, edx
jae 0x4b4e1a
mov eax, dword [esp + 0x60]
mov dword [esi + ecx*4], ebx
inc ebx
mov dword [ebp + 0x24], ebx
mov edx, dword [eax + 0x150]
cmp edx, edi
jbe 0x4b4e77
mov ecx, dword [eax + 0x14c]
lea edx, [edi + edi*4]
lea eax, [ecx + edx*4]
mov ecx, dword [ecx + edx*4]
mov ecx, dword [ecx*4 + 0x4b513c]
add ecx, dword [esp + 0x48]
jmp ecx
mov eax, dword [esp + 0xa0]
mov dword [eax], 0
jmp 0x4afa1b
push 0x55863c
call fcn.0053bb10
mov ecx, esi
push 0x55864c
call fcn.0053bb10
mov ecx, esi
push 0x55712c
call fcn.0053bb10
mov edx, eax
push 0x55865c
call fcn.0053bb10
mov ecx, edi
push 0x55864c
call fcn.0053bb10
mov ecx, 1
jmp 0x4b4e87
mov ecx, edi
push 0x55712c
call fcn.0053bb10
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0xa0]
mov esi, dword [esp + 0xa4]
mov edx, dword [esp + 0xa8]
mov dword [eax], ecx
mov dword [eax + 4], esi
mov dword [eax + 8], edx
jmp 0x4afa1b
mov ecx, ebx
push 0x55712c
call fcn.0053bb10
mov ecx, edx
mov edx, esi
push 0x55868c
call fcn.0053bb10
mov edx, dword [esp + 0x1c]
mov ecx, esi
push 0x55748c
call fcn.0053bb10
mov edx, dword [esp + 0xc]
mov ecx, edi
push 0x55748c
call fcn.0053bb10
push 0x557378
call fcn.0053bb10
mov ecx, dword [esp + 0x1c]
push 0x557ad8
call fcn.0053bb10
push 0x557ac8
call fcn.0053bb10
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x10]
push 0x55790c
call fcn.0053bb10
mov ecx, dword [esp + 8]
push 0x557ac8
call fcn.0053bb10
lea edx, [esp + 0x6c]
lea ecx, [esp + 0x70]
mov dword [esp + 0x88], 0x558614
mov dword [esp + 0x8c], 3
mov dword [esp + 0x98], 0
mov dword [esp + 0x70], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], fcn.004476a0
mov dword [esp + 0x38], ecx
lea ecx, [esp + 0x30]
lea edx, [esp + 0x54]
mov dword [esp + 0x3c], fcn.004476a0
mov dword [esp + 0x40], edx
mov dword [esp + 0x90], ecx
lea ecx, [esp + 0x88]
mov edx, 0x55862c
mov dword [esp + 0x44], 0x473420
mov dword [esp + 0x94], 3
call fcn.0053ba80
mov edx, dword [esp + 0x10]
push 0x557b08
call fcn.0053bb10
mov edx, dword [esp + 0x10]
push 0x5578fc
call fcn.0053bb10
push 0x557ab8
call fcn.0053bb10
mov edx, dword [esp + 0x10]
push 0x557af8
call fcn.0053bb10
mov edx, dword [esp + 0x10]
push 0x557b18
call fcn.0053bb10
mov ecx, esi
push 0x557ac8
call fcn.0053bb10
mov ecx, esi
mov edx, dword [esp + 0x10]
push 0x55790c
call fcn.0053bb10
mov ecx, 0x55749c
call fcn.0053bf10
mov ecx, eax
push 0x557500
call fcn.0053bb70
mov ecx, esi
mov edx, eax
push 0x557500
call fcn.0053bd90
mov edx, dword [esp + 0x1c]
push 0x5574ac
call fcn.0053c0e0
mov edx, dword [esp + 0xc]
push 0x5574ac
call fcn.0053c0e0
mov ecx, ebx
mov edx, eax
push 0x557500
call fcn.0053bd90
mov ecx, 0x55867c
call fcn.0053bf10
mov ecx, ebp
mov edx, eax
push 0x557500
call fcn.0053bd90
mov ecx, edi
mov edx, eax
push 0x557500
call fcn.0053bd90
push 0x55866c
call fcn.0053bb70
mov ecx, edx
mov edx, esi
push 0x55869c
call fcn.0053bab0
mov ecx, esi
mov edx, dword [esp + 0x10]
push 0x557b38
call fcn.0053bb70
push 0x557510
call fcn.0053bd90
lea ecx, [esp + 0x30]
mov edx, 0x55745c
mov dword [esp + 0x30], 0x557454
mov dword [esp + 0x34], 1
mov dword [esp + 0x40], 0
mov dword [esp + 0x38], str.Index_out_of_bounds
mov dword [esp + 0x3c], 0
call fcn.0053ba80
mov ecx, edx
mov edx, eax
push 0x55869c
call fcn.0053bab0
mov ecx, esi
mov edx, dword [esp + 0x10]
push 0x557b28
call fcn.0053bb70
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x10]
push 0x557b28
call fcn.0053bb70
mov ecx, edx
mov edx, dword [esp + 8]
push 0x55869c
call fcn.0053bab0
mov ecx, eax
mov edx, esi
push 0x557500
call fcn.0053bb70
mov ecx, dword [esp + 0xe0]
push 0x55747c
call fcn.0053c0e0
ud2