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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x6c
mov eax, ecx
mov dword [esp + 0xc], edx
push ebx
push esi
mov esi, dword [ebp + 0xc]
mov ecx, dword [eax + 0x5c]
mov dword [esp + 0x54], ecx
mov ecx, dword [eax + 0xc0]
mov dword [esp + 0x5c], ecx
mov ecx, dword [eax + 0x64]
mov dword [esp + 0x4c], ecx
mov ecx, dword [eax + 0xbc]
mov dword [esp + 0x64], ecx
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x68], eax
mov dword [esp + 0x58], 1
push edi
lea edx, [esi + ecx]
mov dword [esp + 0x20], esi
lea ebx, [edx - 8]
mov dword [esp + 0x10], edx
mov dword [esp + 0x40], ebx
mov ebx, dword [eax + 4]
mov dword [esp + 0x24], ebx
mov ebx, esi
sub ebx, dword [esp + 0x24]
add ebx, ecx
mov ecx, dword [eax + 0xb8]
shl dword [esp + 0x5c], cl
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x1c], ebx
mov ebx, dword [eax + 0x10]
mov eax, dword [esp + 0x1c]
sub eax, ebx
cmp eax, ecx
jbe 0x5af08e
mov eax, dword [esp + 0x1c]
sub eax, ecx
jmp 0x5af090
mov eax, ebx
mov ecx, dword [esp + 0x6c]
cmp dword [ecx + 0x18], 0
cmovne eax, ebx
mov dword [esp + 0x1c], eax
mov eax, dword [ecx + 0xc]
mov ebx, dword [esp + 0x1c]
cmp eax, ebx
cmova ebx, eax
mov dword [esp + 0x14], ebx
mov eax, ebx
mov ebx, dword [esp + 0x24]
add ebx, eax
mov dword [esp + 0x2c], ebx
mov ebx, dword [ecx + 8]
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x3c]
add eax, esi
cmp dword [esp + 0x14], ebx
mov dword [esp + 0x4c], eax
lea edi, [esi + ebx]
mov esi, dword [ebp + 8]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x64], edi
mov eax, dword [esi]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 4]
mov esi, dword [ebp + 0xc]
mov edi, esi
mov dword [esp + 0x44], eax
jne 0x5af14c
push dword [ebp + 0x10]
mov eax, dword [ecx + 0xc8]
mov edx, ebx
push esi
push dword [ebp + 8]
sub eax, 5
je 0x5af13d
dec eax
je 0x5af12e
dec eax
je 0x5af11f
call fcn.005a9110
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.005aa9f0
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.005aa190
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.005a9930
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [edx - 8]
cmp esi, ecx
jae 0x5afc09
mov ebx, dword [ebp + 0x14]
mov ecx, 0x40
sub ecx, dword [esp + 0x68]
mov eax, 0x40
sub eax, dword [esp + 0x60]
mov dword [esp + 0xc], ecx
mov ecx, 0x20
sub ecx, dword [esp + 0x68]
add ebx, 0xfffffffb
mov dword [esp + 0x34], ecx
mov dword [esp + 0x54], eax
mov dword [esp + 0x30], ebx
cmp ebx, 3
ja case.default.0x5af18d
jmp dword [ebx*4 + 0x5afc20]
push 0xcf1bbcdc
push 0xbb000000
push dword [esi + 4]
push dword [esi]
call fcn.00620b50
mov ecx, dword [esp + 0xc]
call fcn.00622f20
jmp 0x5af1df
push 0xcf1bbcdc
push 0xbf9b0000
jmp 0x5af19e
push 0xcf1bbcdc
push 0xbfa56300
jmp 0x5af19e
push 0xcf1bbcdc
push 0xb7a56463
jmp 0x5af19e
imul eax, dword [esi], 0x9e3779b1
shr eax, cl
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0x24]
push 0xcf1bbcdc
push 0xb7a56463
mov ecx, dword [edx + eax*4]
cmp ecx, dword [esp + 0x1c]
push dword [esi + 4]
cmovb ebx, dword [esp + 0x48]
push dword [esi]
add ebx, ecx
mov dword [esp + 0x58], eax
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], ebx
call fcn.00620b50
mov ecx, dword [esp + 0x54]
call fcn.00622f20
mov ecx, dword [esp + 0x58]
mov edx, dword [ecx + eax*4]
lea ecx, [ecx + eax*4]
mov edi, dword [esp + 0x14]
cmp edx, edi
mov eax, dword [esp + 0x24]
cmovb eax, dword [esp + 0x3c]
mov dword [esp + 0x60], edx
add edx, eax
mov eax, esi
mov dword [esp + 0x74], edx
sub eax, dword [esp + 0x24]
mov dword [esp + 0x38], eax
sub eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x5c], eax
cmp dword [esp + 0x5c], edi
mov eax, dword [esp + 0x24]
cmovb eax, dword [esp + 0x3c]
add eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x38]
mov dword [ecx], edi
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x48]
mov dword [ecx + eax*4], edi
sub edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
inc edi
cmp edi, dword [esp + 0x28]
mov edi, dword [esp + 0x20]
sbb ecx, ecx
sub eax, dword [esp + 0x5c]
dec eax
inc ecx
cmp eax, 3
sbb eax, eax
inc eax
test eax, ecx
je 0x5af3e5
mov ecx, dword [esp + 0x70]
lea eax, [esi + 1]
mov dword [esp + 0x48], eax
mov edi, eax
mov eax, dword [ecx]
cmp eax, dword [edi]
mov edi, dword [esp + 0x20]
jne 0x5af3e5
mov edx, dword [esp + 0x10]
lea edi, [ecx + 4]
mov eax, dword [esp + 0x14]
mov ebx, edx
cmp dword [esp + 0x5c], eax
mov ecx, edx
cmovb ebx, dword [esp + 0x4c]
add esi, 5
mov eax, esi
mov dword [esp + 0x70], esi
sub eax, edi
add eax, ebx
cmp eax, edx
mov edx, edi
cmovb ecx, eax
push ecx
mov ecx, esi
call fcn.0059fed0
mov esi, eax
add esp, 4
lea eax, [esi + edi]
cmp eax, ebx
jne 0x5af315
mov ecx, dword [esp + 0x70]
push dword [esp + 0x10]
mov edx, dword [esp + 0x30]
lea ecx, [esi + ecx]
call fcn.0059fed0
add esp, 4
add esi, eax
mov edx, dword [esp + 0x20]
lea edi, [esi + 4]
mov esi, dword [esp + 0x48]
mov ecx, esi
mov eax, dword [esp + 0x10]
sub ecx, edx
add eax, 0xffffffe0
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x48], eax
lea ebx, [ecx + edx]
cmp ebx, eax
ja 0x5af39e
mov ebx, dword [esp + 0x18]
movdqu xmm0, xmmword [edx]
mov eax, dword [ebx + 0xc]
movdqu xmmword [eax], xmm0
cmp ecx, 0x10
jbe 0x5af3b3
movdqu xmm0, xmmword [edx + 0x10]
lea eax, [ecx - 0x10]
mov ecx, dword [ebx + 0xc]
add ecx, 0x10
lea ebx, [ecx + eax]
mov dword [esp + 0x70], ebx
mov ebx, dword [esp + 0x18]
movdqu xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x5af3af
mov eax, dword [esp + 0x70]
add ecx, 0x10
add edx, 0x20
lea ebx, [ebx]
movdqu xmm0, xmmword [edx]
lea edx, [edx + 0x20]
movdqu xmmword [ecx], xmm0
movdqu xmm0, xmmword [edx - 0x10]
movdqu xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, eax
jb 0x5af380
jmp 0x5af3af
push eax
push ebx
mov ebx, dword [esp + 0x20]
mov ecx, dword [ebx + 0xc]
call fcn.0059a610
add esp, 8
mov ecx, dword [esp + 0x5c]
add dword [ebx + 0xc], ecx
cmp ecx, 0xffff
jbe 0x5af3d0
mov eax, dword [ebx + 4]
sub eax, dword [ebx]
sar eax, 3
mov dword [ebx + 0x24], 1
mov dword [ebx + 0x28], eax
mov eax, dword [ebx + 4]
mov word [eax + 4], cx
mov eax, dword [ebx + 4]
mov dword [eax], 1
jmp 0x5af853
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x60], eax
jbe 0x5af580
mov eax, dword [edx]
mov ecx, dword [esi + 4]
cmp eax, dword [esi]
jne 0x5af580
cmp dword [edx + 4], ecx
jne 0x5af580
mov edi, dword [esp + 0x60]
cmp edi, dword [esp + 0x14]
lea edi, [edx + 8]
mov eax, dword [esp + 0x2c]
mov edx, edi
cmovb eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x10]
mov ebx, ecx
cmovb ebx, dword [esp + 0x4c]
mov dword [esp + 0x68], eax
lea eax, [esi + 8]
sub eax, edi
add eax, ebx
cmp eax, ecx
cmovb ecx, eax
push ecx
lea ecx, [esi + 8]
call fcn.0059fed0
mov ecx, eax
add esp, 4
mov dword [esp + 0x70], ecx
lea eax, [ecx + edi]
cmp eax, ebx
jne 0x5af46e
push dword [esp + 0x10]
mov edx, dword [esp + 0x30]
lea eax, [esi + 8]
add ecx, eax
call fcn.0059fed0
mov ecx, dword [esp + 0x74]
add esp, 4
add ecx, eax
mov eax, dword [esp + 0x38]
lea edi, [ecx + 8]
sub eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x74]
cmp dword [esp + 0x68], ebx
mov edx, dword [esp + 0x20]
sbb ecx, ecx
mov dword [esp + 0x5c], eax
neg ecx
cmp edx, esi
sbb eax, eax
neg eax
test eax, ecx
je 0x5af4b4
mov al, byte [esi - 1]
cmp al, byte [ebx - 1]
jne 0x5af4b4
dec ebx
dec esi
inc edi
cmp dword [esp + 0x68], ebx
sbb ecx, ecx
neg ecx
cmp edx, esi
sbb eax, eax
neg eax
test eax, ecx
jne 0x5af497
mov eax, dword [esp + 0x28]
mov ecx, esi
mov dword [esp + 0x44], eax
sub ecx, edx
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
add eax, 0xffffffe0
mov dword [esp + 0x60], ecx
lea ebx, [ecx + edx]
mov dword [esp + 0x48], eax
cmp ebx, eax
ja 0x5af53e
mov ebx, dword [esp + 0x18]
movdqu xmm0, xmmword [edx]
mov eax, dword [ebx + 0xc]
movdqu xmmword [eax], xmm0
cmp ecx, 0x10
jbe 0x5af553
movdqu xmm0, xmmword [edx + 0x10]
lea eax, [ecx - 0x10]
mov ecx, dword [ebx + 0xc]
add ecx, 0x10
lea ebx, [ecx + eax]
mov dword [esp + 0x74], ebx
mov ebx, dword [esp + 0x18]
movdqu xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x5af54f
mov eax, dword [esp + 0x74]
add ecx, 0x10
add edx, 0x20
mov edi, edi
movdqu xmm0, xmmword [edx]
lea edx, [edx + 0x20]
movdqu xmmword [ecx], xmm0
movdqu xmm0, xmmword [edx - 0x10]
movdqu xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, eax
jb 0x5af520
jmp 0x5af54f
push eax
push ebx
mov ebx, dword [esp + 0x20]
mov ecx, dword [ebx + 0xc]
call fcn.0059a610
add esp, 8
mov ecx, dword [esp + 0x60]
add dword [ebx + 0xc], ecx
cmp ecx, 0xffff
jbe 0x5af570
mov eax, dword [ebx + 4]
sub eax, dword [ebx]
sar eax, 3
mov dword [ebx + 0x24], 1
mov dword [ebx + 0x28], eax
mov eax, dword [ebx + 4]
mov word [eax + 4], cx
mov ecx, dword [esp + 0x5c]
jmp 0x5af84b
mov edx, dword [esp + 0x1c]
cmp dword [esp + 0x68], edx
jbe 0x5afbe3
mov eax, dword [ebx]
cmp eax, dword [esi]
jne 0x5afbe3
push 0xcf1bbcdc
lea ebx, [esi + 1]
push 0xb7a56463
push dword [ebx + 4]
mov dword [esp + 0x7c], ebx
push dword [ebx]
call fcn.00620b50
mov ecx, dword [esp + 0x54]
call fcn.00622f20
mov ecx, dword [esp + 0x58]
mov edx, dword [ecx + eax*4]
lea ecx, [ecx + eax*4]
cmp edx, dword [esp + 0x14]
mov edi, dword [esp + 0x24]
cmovb edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
add edi, edx
inc eax
mov dword [esp + 0x60], edx
mov dword [esp + 0x5c], edi
mov dword [ecx], eax
cmp edx, dword [esp + 0x1c]
jbe 0x5af6c5
mov eax, dword [edi]
mov ecx, dword [ebx + 4]
cmp eax, dword [ebx]
jne 0x5af6c5
cmp dword [edi + 4], ecx
jne 0x5af6c5
mov edx, dword [esp + 0x10]
mov ebx, edx
mov ecx, dword [esp + 0x60]
cmp ecx, dword [esp + 0x14]
mov ecx, edx
mov eax, dword [esp + 0x2c]
cmovb eax, dword [esp + 0x64]
cmovb ebx, dword [esp + 0x4c]
add edi, 8
add esi, 9
mov dword [esp + 0x68], eax
mov eax, esi
mov dword [esp + 0x74], esi
sub eax, edi
add eax, ebx
cmp eax, edx
mov edx, edi
cmovb ecx, eax
push ecx
mov ecx, esi
call fcn.0059fed0
mov esi, eax
add esp, 4
lea eax, [esi + edi]
cmp eax, ebx
jne 0x5af66a
mov ecx, dword [esp + 0x74]
push dword [esp + 0x10]
mov edx, dword [esp + 0x30]
lea ecx, [esi + ecx]
call fcn.0059fed0
add esp, 4
add esi, eax
mov eax, dword [esp + 0x38]
lea edi, [esi + 8]
sub eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x5c]
inc eax
cmp dword [esp + 0x68], ebx
mov esi, dword [esp + 0x70]
mov edx, dword [esp + 0x20]
sbb ecx, ecx
neg ecx
mov dword [esp + 0x60], eax
cmp edx, esi
sbb eax, eax
neg eax
test eax, ecx
je 0x5af77d
lea esp, [esp]
mov al, byte [esi - 1]
dec ebx
cmp al, byte [ebx]
jne 0x5af77d
dec esi
inc edi
cmp dword [esp + 0x68], ebx
sbb ecx, ecx
neg ecx
cmp edx, esi
sbb eax, eax
neg eax
test eax, ecx
jne 0x5af6a0
jmp 0x5af77d
mov ecx, dword [esp + 0x68]
cmp ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ebx, edx
cmovb ebx, dword [esp + 0x4c]
mov ecx, edx
mov eax, dword [esp + 0x2c]
cmovb eax, dword [esp + 0x64]
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x5c], eax
add edi, 4
lea eax, [esi + 4]
sub eax, edi
add eax, ebx
cmp eax, edx
mov edx, edi
cmovb ecx, eax
push ecx
lea ecx, [esi + 4]
call fcn.0059fed0
mov ecx, eax
add esp, 4
mov dword [esp + 0x74], ecx
lea eax, [ecx + edi]
cmp eax, ebx
jne 0x5af730
push dword [esp + 0x10]
mov edx, dword [esp + 0x30]
lea eax, [esi + 4]
add ecx, eax
call fcn.0059fed0
mov ecx, dword [esp + 0x78]
add esp, 4
add ecx, eax
mov eax, dword [esp + 0x38]
lea edi, [ecx + 4]
sub eax, dword [esp + 0x68]
mov ebx, dword [esp + 0x6c]
cmp dword [esp + 0x5c], ebx
mov edx, dword [esp + 0x20]
sbb ecx, ecx
mov dword [esp + 0x60], eax
neg ecx
cmp edx, esi
sbb eax, eax
neg eax
test eax, ecx
je 0x5af77d
lea esp, [esp]
mov al, byte [esi - 1]
cmp al, byte [ebx - 1]
jne 0x5af77d
dec ebx
dec esi
inc edi
cmp dword [esp + 0x5c], ebx
sbb ecx, ecx
neg ecx
cmp edx, esi
sbb eax, eax
neg eax
test eax, ecx
jne 0x5af760
mov eax, dword [esp + 0x28]
mov ecx, esi
mov dword [esp + 0x44], eax
sub ecx, edx
mov eax, dword [esp + 0x60]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
add eax, 0xffffffe0
mov dword [esp + 0x68], ecx
lea ebx, [ecx + edx]
mov dword [esp + 0x48], eax
cmp ebx, eax
ja 0x5af80e
mov ebx, dword [esp + 0x18]
movdqu xmm0, xmmword [edx]
mov eax, dword [ebx + 0xc]
movdqu xmmword [eax], xmm0
cmp ecx, 0x10
jbe 0x5af823
movdqu xmm0, xmmword [edx + 0x10]
lea eax, [ecx - 0x10]
mov ecx, dword [ebx + 0xc]
add ecx, 0x10
lea ebx, [ecx + eax]
mov dword [esp + 0x74], ebx
mov ebx, dword [esp + 0x18]
movdqu xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x5af81f
mov eax, dword [esp + 0x74]
add ecx, 0x10
add edx, 0x20
jmp 0x5af7f0
movdqu xmm0, xmmword [edx]
lea edx, [edx + 0x20]
movdqu xmmword [ecx], xmm0
movdqu xmm0, xmmword [edx - 0x10]
movdqu xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, eax
jb 0x5af7f0
jmp 0x5af81f
push eax
push ebx
mov ebx, dword [esp + 0x20]
mov ecx, dword [ebx + 0xc]
call fcn.0059a610
add esp, 8
mov ecx, dword [esp + 0x68]
add dword [ebx + 0xc], ecx
cmp ecx, 0xffff
jbe 0x5af840
mov eax, dword [ebx + 4]
sub eax, dword [ebx]
sar eax, 3
mov dword [ebx + 0x24], 1
mov dword [ebx + 0x28], eax
mov eax, dword [ebx + 4]
mov word [eax + 4], cx
mov ecx, dword [esp + 0x60]
mov eax, dword [ebx + 4]
add ecx, 3
mov dword [eax], ecx
lea ecx, [edi - 3]
cmp ecx, 0xffff
jbe 0x5af870
mov eax, dword [ebx + 4]
sub eax, dword [ebx]
sar eax, 3
mov dword [ebx + 0x24], 2
mov dword [ebx + 0x28], eax
mov eax, dword [ebx + 4]
add esi, edi
mov edi, esi
mov dword [esp + 0x20], edi
mov word [eax + 6], cx
add dword [ebx + 4], 8
cmp esi, dword [esp + 0x40]
ja 0x5afbed
mov ebx, dword [esp + 0x38]
mov eax, dword [esp + 0x24]
add ebx, 2
push 0xcf1bbcdc
push 0xb7a56463
push dword [ebx + eax + 4]
push dword [ebx + eax]
call fcn.00620b50
mov ecx, dword [esp + 0x54]
call fcn.00622f20
mov ecx, dword [esp + 0x58]
push 0xcf1bbcdc
push 0xb7a56463
mov dword [ecx + eax*4], ebx
push dword [esi + 2]
push dword [esi - 2]
call fcn.00620b50
mov ecx, dword [esp + 0x54]
call fcn.00622f20
mov edx, dword [esp + 0x24]
mov ecx, eax
mov edi, dword [esp + 0x58]
mov eax, esi
sub eax, edx
mov dword [esp + 0x74], eax
add eax, 0xfffffffe
mov dword [edi + ecx*4], eax
mov edi, esi
mov eax, dword [esp + 0x30]
cmp eax, 3
ja case.default.0x5af903
jmp dword [eax*4 + 0x5afc30]
push 0xcf1bbcdc
push 0xbb000000
push dword [ebx + edx + 4]
push dword [ebx + edx]
call fcn.00620b50
mov ecx, dword [esp + 0xc]
call fcn.00622f20
mov ecx, dword [esp + 0x34]
jmp 0x5af9ab
push 0xcf1bbcdc
push 0xbf9b0000
push dword [ebx + edx + 4]
push dword [ebx + edx]
call fcn.00620b50
mov ecx, dword [esp + 0xc]
call fcn.00622f20
mov ecx, dword [esp + 0x34]
jmp 0x5af9ab
push 0xcf1bbcdc
push 0xbfa56300
push dword [ebx + edx + 4]
push dword [ebx + edx]
call fcn.00620b50
mov ecx, dword [esp + 0xc]
call fcn.00622f20
mov ecx, dword [esp + 0x34]
jmp 0x5af9ab
push 0xcf1bbcdc
push 0xb7a56463
push dword [ebx + edx + 4]
push dword [ebx + edx]
call fcn.00620b50
mov ecx, dword [esp + 0xc]
call fcn.00622f20
mov ecx, dword [esp + 0x34]
jmp 0x5af9ab
imul eax, dword [ebx + edx], 0x9e3779b1
mov ecx, dword [esp + 0x34]
shr eax, cl
mov edx, dword [esp + 0x50]
mov dword [edx + eax*4], ebx
mov ebx, dword [esp + 0x30]
cmp ebx, 3
ja case.default.0x5af9bb
jmp dword [ebx*4 + 0x5afc40]
push 0xcf1bbcdc
push 0xbb000000
push dword [esi + 3]
push dword [esi - 1]
call fcn.00620b50
mov ecx, dword [esp + 0xc]
call fcn.00622f20
mov edx, eax
jmp 0x5afa11
push 0xcf1bbcdc
push 0xbf9b0000
jmp 0x5af9cc
push 0xcf1bbcdc
push 0xbfa56300
jmp 0x5af9cc
push 0xcf1bbcdc
push 0xb7a56463
jmp 0x5af9cc
imul edx, dword [esi - 1], 0x9e3779b1
shr edx, cl
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x74]
dec eax
mov dword [ecx + edx*4], eax
lea ecx, [ecx]
mov ebx, dword [esp + 0x24]
mov eax, esi
mov ecx, dword [esp + 0x44]
sub eax, ebx
mov edx, eax
mov dword [esp + 0x70], eax
sub edx, ecx
cmp edx, dword [esp + 0x14]
jae 0x5afa3e
mov ebx, dword [esp + 0x3c]
sub eax, dword [esp + 0x1c]
add ebx, edx
cmp eax, ecx
mov dword [esp + 0x6c], ebx
mov eax, dword [esp + 0x14]
sbb ecx, ecx
sub eax, edx
dec eax
inc ecx
cmp eax, 3
sbb eax, eax
inc eax
test eax, ecx
je 0x5afbed
mov eax, dword [ebx]
cmp eax, dword [esi]
jne 0x5afbed
cmp edx, dword [esp + 0x14]
lea eax, [esi + 4]
mov ecx, dword [esp + 0x10]
mov ebx, ecx
cmovb ebx, dword [esp + 0x4c]
mov edi, dword [esp + 0x6c]
add edi, 4
sub eax, edi
mov edx, edi
add eax, ebx
cmp eax, ecx
cmovb ecx, eax
push ecx
lea ecx, [esi + 4]
call fcn.0059fed0
mov ecx, eax
add esp, 4
mov dword [esp + 0x74], ecx
lea eax, [ecx + edi]
cmp eax, ebx
jne 0x5afac4
push dword [esp + 0x10]
mov edx, dword [esp + 0x30]
lea eax, [esi + 4]
add ecx, eax
call fcn.0059fed0
mov ecx, dword [esp + 0x78]
add esp, 4
add ecx, eax
mov eax, dword [esp + 0x44]
lea edi, [ecx + 4]
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x74], edi
mov dword [esp + 0x44], ecx
cmp esi, eax
ja 0x5afaf4
mov eax, dword [ebx + 0xc]
movdqu xmm0, xmmword [esi]
movdqu xmmword [eax], xmm0
jmp 0x5afb03
mov ecx, dword [ebx + 0xc]
mov edx, esi
push eax
push esi
call fcn.0059a610
add esp, 8
mov eax, dword [ebx + 4]
xor ecx, ecx
mov word [eax + 4], cx
lea ecx, [edi - 3]
mov eax, dword [ebx + 4]
mov dword [eax], 1
cmp ecx, 0xffff
jbe 0x5afb32
mov eax, dword [ebx + 4]
sub eax, dword [ebx]
sar eax, 3
mov dword [ebx + 0x24], 2
mov dword [ebx + 0x28], eax
mov eax, dword [ebx + 4]
mov word [eax + 6], cx
add dword [ebx + 4], 8
mov ebx, dword [esp + 0x30]
cmp ebx, 3
ja case.default.0x5afb46
jmp dword [ebx*4 + 0x5afc50]
push 0xcf1bbcdc
push 0xbb000000
push dword [esi + 4]
push dword [esi]
call fcn.00620b50
mov ecx, dword [esp + 0xc]
call fcn.00622f20
jmp 0x5afb9c
push 0xcf1bbcdc
push 0xbf9b0000
jmp 0x5afb57
push 0xcf1bbcdc
push 0xbfa56300
jmp 0x5afb57
push 0xcf1bbcdc
push 0xb7a56463
jmp 0x5afb57
imul eax, dword [esi], 0x9e3779b1
mov ecx, dword [esp + 0x34]
shr eax, cl
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x70]
push 0xcf1bbcdc
push 0xb7a56463
mov dword [ecx + eax*4], edi
push dword [esi + 4]
push dword [esi]
call fcn.00620b50
mov ecx, dword [esp + 0x54]
call fcn.00622f20
mov ecx, dword [esp + 0x58]
add esi, dword [esp + 0x74]
mov dword [ecx + eax*4], edi
mov edi, esi
mov eax, dword [esp + 0x40]
mov dword [esp + 0x20], edi
cmp esi, eax
jbe 0x5afa20
jmp 0x5afbf5
mov eax, esi
sub eax, edi
sar eax, 8
inc eax
add esi, eax
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
cmp esi, eax
jb 0x5af188
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x44]
mov ebx, dword [ebp + 8]
sub edx, edi
mov ecx, dword [esp + 0x28]
pop edi
pop esi
mov dword [ebx + 4], eax
mov eax, edx
mov dword [ebx], ecx
pop ebx
mov esp, ebp
pop ebp
ret