Function at 0x10005810
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x48
mov ebx, ecx
mov eax, edx
sub eax, ecx
cmp eax, 0x294
jge 0x10005970
mov edi, ebx
cmp edi, edx
je 0x100064f6
lea eax, [edi + 0x14]
mov dword [esp + 0x1c], eax
cmp eax, edx
je 0x100064f6
lea eax, [edi + 9]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x1c]
mov esi, edi
mov dword [esp], edx
jmp 0x100058bf
mov eax, esi
sub eax, ebx
push eax
push edi
push dword [esp + 0x24]
movss dword [esp + 0x2c], xmm1
call sub.VCRUNTIME140.dll_memmove
movss xmm1, dword [esp + 0x2c]
add esp, 0xc
mov eax, dword [esp + 0x2c]
mov dword [edi + 4], eax
mov dword [edi], ebp
movzx eax, byte [esp + 0x18]
mov byte [edi + 8], al
movzx eax, word [esp + 4]
mov ecx, dword [esp + 0x28]
mov word [ecx], ax
movzx eax, byte [esp + 6]
mov byte [ecx + 2], al
mov ebp, dword [esp + 0x24]
mov eax, edi
mov edx, dword [esp]
movss dword [eax + 0xc], xmm1
mov dword [eax + 0x10], ebp
lea eax, [esi + 0x14]
cmp eax, edx
je 0x100064f6
mov ebp, dword [esi + 0x14]
mov ecx, dword [esi + 0x18]
mov dword [esp + 0x2c], ecx
movzx edx, byte [esi + 0x1c]
movzx ecx, byte [esi + 0x1f]
mov byte [esp + 6], cl
movzx ecx, word [esi + 0x1d]
mov word [esp + 4], cx
movss xmm1, dword [esi + 0x20]
mov ecx, dword [esi + 0x24]
mov esi, eax
mov byte [esp + 0x18], dl
cmp dl, byte [edi + 8]
mov dword [esp + 0x24], ecx
jg 0x10005860
ucomiss xmm1, dword [edi + 0xc]
jb 0x10005860
mov eax, esi
movzx ecx, byte [esp + 0x18]
cmp cl, byte [esi - 0xc]
jg 0x10005920
ucomiss xmm1, dword [esi - 8]
mov eax, esi
jae 0x10005942
nop word [eax + eax]
mov ecx, eax
add eax, 0xffffffec
mov edx, dword [ecx - 4]
mov dword [ecx + 0x10], edx
movups xmm0, xmmword [ecx - 0x14]
movups xmmword [ecx], xmm0
movzx edx, byte [esp + 0x18]
cmp dl, byte [ecx - 0x20]
jg 0x10005920
ucomiss xmm1, dword [ecx - 0x1c]
jb 0x10005920
mov dword [eax], ebp
mov ecx, dword [esp + 0x2c]
mov dword [eax + 4], ecx
movzx ecx, byte [esp + 0x18]
mov byte [eax + 8], cl
movzx ecx, word [esp + 4]
mov word [eax + 9], cx
movzx ecx, byte [esp + 6]
mov byte [eax + 0xb], cl
mov edx, dword [esp]
mov ebp, dword [esp + 0x24]
jmp 0x100058ac
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x24], edx
jmp 0x100059a5
mov ecx, edi
mov edx, dword [esp]
push esi
call fcn.10005810
add esp, 4
mov eax, ebp
mov edx, ebp
mov edi, ebx
mov dword [esp + 0x24], eax
sub eax, ebx
cmp eax, 0x294
jl 0x1000582a
mov dword [esp], edx
mov ecx, 0xcccccccd
mul ecx
mov edi, edx
shr edi, 5
test esi, esi
mov dword [esp + 0x18], ebx
jle 0x1000617a
mov dword [esp + 0x2c], esi
lea edi, [edi + edi*4]
lea ebp, [ebx + edi*4]
mov eax, dword [esp]
lea esi, [eax - 0x14]
mov eax, esi
sub eax, ebx
cmp eax, 0x321
jl 0x10005db0
mov dword [esp + 0x20], edi
mov ecx, 0xcccccccd
mul ecx
shr edx, 4
inc edx
shr edx, 3
lea eax, [edx + edx]
mov dword [esp + 0x30], eax
mov edi, ebx
lea ebx, [edx + edx*4]
lea ecx, [edi + ebx*4]
movzx eax, byte [edi + ebx*4 + 8]
cmp al, byte [edi + 8]
jg 0x10005a16
movss xmm0, dword [edi + ebx*4 + 0xc]
ucomiss xmm0, dword [edi + 0xc]
jae 0x10005a49
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x14], eax
movups xmm0, xmmword [ecx]
movups xmmword [esp + 4], xmm0
mov eax, dword [edi + 0x10]
mov dword [ecx + 0x10], eax
movups xmm0, xmmword [edi]
movups xmmword [ecx], xmm0
mov eax, dword [esp + 0x14]
mov dword [edi + 0x10], eax
movups xmm0, xmmword [esp + 4]
movups xmmword [edi], xmm0
movzx eax, byte [ecx + 8]
movss xmm0, dword [ecx + 0xc]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x30]
lea ecx, [ecx + ecx*4]
cmp byte [edi + ecx*4 + 8], al
jg 0x10005a65
movss xmm1, dword [edi + ecx*4 + 0xc]
ucomiss xmm1, xmm0
jae 0x10005ae4
lea eax, [edi + ebx*8]
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x14], ecx
movups xmm0, xmmword [eax]
movups xmmword [esp + 4], xmm0
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x28]
mov ecx, dword [ebx + 0x10]
mov dword [eax + 0x10], ecx
movups xmm0, xmmword [ebx]
movups xmmword [eax], xmm0
mov eax, dword [esp + 0x14]
mov dword [ebx + 0x10], eax
movups xmm0, xmmword [esp + 4]
movups xmmword [ebx], xmm0
movzx eax, byte [ebx + 8]
mov ebx, dword [esp + 0x1c]
cmp al, byte [edi + 8]
jg 0x10005ab6
mov eax, dword [esp + 0x28]
movss xmm0, dword [eax + 0xc]
ucomiss xmm0, dword [edi + 0xc]
jae 0x10005ae4
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x14], eax
movups xmm0, xmmword [ecx]
movups xmmword [esp + 4], xmm0
mov eax, dword [edi + 0x10]
mov dword [ecx + 0x10], eax
movups xmm0, xmmword [edi]
movups xmmword [ecx], xmm0
mov eax, dword [esp + 0x14]
mov dword [edi + 0x10], eax
movups xmm0, xmmword [esp + 4]
movups xmmword [edi], xmm0
neg edx
lea edx, [edx + edx*4]
lea eax, [edx*4]
add eax, ebp
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x20]
lea eax, [edi + ecx*4 + 8]
mov dword [esp + 0x1c], eax
movzx eax, byte [edi + ecx*4 + 8]
mov edi, ecx
cmp al, byte [ebp + edx*4 + 8]
jg 0x10005b28
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
movss xmm0, dword [edi + ecx*4 + 0xc]
mov edi, dword [esp + 0x20]
ucomiss xmm0, dword [ebp + edx*4 + 0xc]
jae 0x10005b64
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x14], eax
movups xmm0, xmmword [ebp]
movups xmmword [esp + 4], xmm0
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 0x10]
mov dword [ebp + 0x10], eax
movups xmm0, xmmword [ecx]
movups xmmword [ebp], xmm0
mov eax, dword [esp + 0x14]
mov dword [ecx + 0x10], eax
movups xmm0, xmmword [esp + 4]
movups xmmword [ecx], xmm0
mov ecx, dword [esp + 0x1c]
movzx eax, byte [ecx]
movss xmm0, dword [ecx + 4]
cmp byte [ebp + ebx*4 + 8], al
jg 0x10005b79
movss xmm1, dword [ebp + ebx*4 + 0xc]
ucomiss xmm1, xmm0
jae 0x10005c08
lea eax, [ebx*4]
add eax, ebp
lea edi, [ebp + edx*4 + 8]
mov ebx, dword [eax + 0x10]
mov dword [esp + 0x14], ebx
movups xmm0, xmmword [eax]
movups xmmword [esp + 4], xmm0
mov ebx, dword [ebp + 0x10]
mov dword [eax + 0x10], ebx
movups xmm0, xmmword [ebp]
movups xmmword [eax], xmm0
mov eax, dword [esp + 0x14]
mov dword [ebp + 0x10], eax
movups xmm0, xmmword [esp + 4]
movups xmmword [ebp], xmm0
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax]
cmp al, byte [edi]
mov edi, dword [esp + 0x20]
jg 0x10005bd8
lea eax, [edx*4 + 0xc]
add eax, ebp
mov ecx, dword [esp + 0x1c]
movss xmm0, dword [ecx + 4]
ucomiss xmm0, dword [eax]
jae 0x10005c08
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x14], eax
movups xmm0, xmmword [ebp]
movups xmmword [esp + 4], xmm0
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 0x10]
mov dword [ebp + 0x10], eax
movups xmm0, xmmword [ecx]
movups xmmword [ebp], xmm0
mov eax, dword [esp + 0x14]
mov dword [ecx + 0x10], eax
movups xmm0, xmmword [esp + 4]
movups xmmword [ecx], xmm0
lea ebx, [esi + edx*4]
mov eax, dword [esp + 0x30]
neg eax
lea eax, [eax + eax*4]
lea ecx, [esi + eax*4]
mov dword [esp + 0x20], ecx
movzx ecx, byte [esi + edx*4 + 8]
cmp cl, byte [esi + eax*4 + 8]
jg 0x10005c33
movss xmm0, dword [esi + edx*4 + 0xc]
ucomiss xmm0, dword [esi + eax*4 + 0xc]
jae 0x10005c6a
mov ecx, dword [ebx + 0x10]
mov dword [esp + 0x14], ecx
movups xmm0, xmmword [ebx]
movups xmmword [esp + 4], xmm0
mov edx, dword [esp + 0x20]
mov ecx, dword [edx + 0x10]
mov dword [ebx + 0x10], ecx
movups xmm0, xmmword [edx]
movups xmmword [ebx], xmm0
mov ecx, dword [esp + 0x14]
mov dword [edx + 0x10], ecx
movups xmm0, xmmword [esp + 4]
movups xmmword [edx], xmm0
movzx ecx, byte [ebx + 8]
movss xmm0, dword [ebx + 0xc]
mov edx, dword [esp]
cmp byte [edx - 0xc], cl
jg 0x10005c7f
mov ecx, dword [esp]
movss xmm1, dword [ecx - 8]
ucomiss xmm1, xmm0
jae 0x10005cf5
lea ecx, [esi + eax*4]
add ecx, 8
mov edx, dword [esi + 0x10]
mov dword [esp + 0x14], edx
movups xmm0, xmmword [esi]
movups xmmword [esp + 4], xmm0
mov edx, dword [ebx + 0x10]
mov dword [esi + 0x10], edx
movups xmm0, xmmword [ebx]
movups xmmword [esi], xmm0
mov edx, dword [esp + 0x14]
mov dword [ebx + 0x10], edx
movups xmm0, xmmword [esp + 4]
movups xmmword [ebx], xmm0
movzx edx, byte [ebx + 8]
cmp dl, byte [ecx]
jg 0x10005cc7
lea eax, [esi + eax*4]
add eax, 0xc
movss xmm0, dword [ebx + 0xc]
ucomiss xmm0, dword [eax]
jae 0x10005cf5
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x14], eax
movups xmm0, xmmword [ebx]
movups xmmword [esp + 4], xmm0
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x10]
mov dword [ebx + 0x10], eax
movups xmm0, xmmword [ecx]
movups xmmword [ebx], xmm0
mov eax, dword [esp + 0x14]
mov dword [ecx + 0x10], eax
movups xmm0, xmmword [esp + 4]
movups xmmword [ecx], xmm0
mov edx, dword [esp + 0x1c]
movzx eax, byte [edx]
mov ecx, dword [esp + 0x28]
cmp al, byte [ecx + 8]
jg 0x10005d10
movss xmm0, dword [edx + 4]
ucomiss xmm0, dword [ecx + 0xc]
jae 0x10005d44
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x14], eax
movups xmm0, xmmword [ebp]
movups xmmword [esp + 4], xmm0
mov eax, dword [ecx + 0x10]
mov dword [ebp + 0x10], eax
movups xmm0, xmmword [ecx]
movups xmmword [ebp], xmm0
mov eax, dword [esp + 0x14]
mov dword [ecx + 0x10], eax
movups xmm0, xmmword [esp + 4]
movups xmmword [ecx], xmm0
movzx eax, byte [edx]
movss xmm0, dword [edx + 4]
cmp byte [ebx + 8], al
jg 0x10005d57
movss xmm1, dword [ebx + 0xc]
ucomiss xmm1, xmm0
jae 0x10005e8c
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x14], eax
movups xmm0, xmmword [ebx]
movups xmmword [esp + 4], xmm0
mov eax, dword [ebp + 0x10]
mov dword [ebx + 0x10], eax
movups xmm0, xmmword [ebp]
movups xmmword [ebx], xmm0
mov eax, dword [esp + 0x14]
mov dword [ebp + 0x10], eax
movups xmm0, xmmword [esp + 4]
movups xmmword [ebp], xmm0
movzx eax, byte [edx]
cmp al, byte [ecx + 8]
jg 0x10005d9a
movss xmm0, dword [edx + 4]
ucomiss xmm0, dword [ecx + 0xc]
jae 0x10005e8c
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x14], eax
movups xmm0, xmmword [ebp]
movups xmmword [esp + 4], xmm0
jmp 0x10005e70
lea eax, [ebx + edi*4]
add eax, 8
movzx ecx, byte [ebx + edi*4 + 8]
cmp cl, byte [ebx + 8]
jg 0x10005dcc
movss xmm0, dword [ebx + edi*4 + 0xc]
ucomiss xmm0, dword [ebx + 0xc]
jae 0x10005e00
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x14], ecx
movups xmm0, xmmword [ebp]
movups xmmword [esp + 4], xmm0
mov ecx, dword [ebx + 0x10]
mov dword [ebp + 0x10], ecx
movups xmm0, xmmword [ebx]
movups xmmword [ebp], xmm0
mov ecx, dword [esp + 0x14]
mov dword [ebx + 0x10], ecx
movups xmm0, xmmword [esp + 4]
movups xmmword [ebx], xmm0
movzx ecx, byte [eax]
movss xmm0, dword [eax + 4]
mov edx, dword [esp]
cmp byte [edx - 0xc], cl
jg 0x10005e15
mov ecx, dword [esp]
movss xmm1, dword [ecx - 8]
ucomiss xmm1, xmm0
jae 0x10005e8c
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x14], ecx
movups xmm0, xmmword [esi]
movups xmmword [esp + 4], xmm0
mov ecx, dword [ebp + 0x10]
mov dword [esi + 0x10], ecx
movups xmm0, xmmword [ebp]
movups xmmword [esi], xmm0
mov ecx, dword [esp + 0x14]
mov dword [ebp + 0x10], ecx
movups xmm0, xmmword [esp + 4]
movups xmmword [ebp], xmm0
movzx ecx, byte [eax]
mov edx, dword [esp + 0x18]
cmp cl, byte [edx + 8]
jg 0x10005e5c
movss xmm0, dword [eax + 4]
mov eax, dword [esp + 0x18]
ucomiss xmm0, dword [eax + 0xc]
jae 0x10005e8c
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x14], eax
movups xmm0, xmmword [ebp]
movups xmmword [esp + 4], xmm0
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x10]
mov dword [ebp + 0x10], eax
movups xmm0, xmmword [ecx]
movups xmmword [ebp], xmm0
mov eax, dword [esp + 0x14]
mov dword [ecx + 0x10], eax
movups xmm0, xmmword [esp + 4]
movups xmmword [ecx], xmm0
mov ebx, dword [esp + 0x18]
mov ecx, ebp
cmp ebp, ebx
jbe 0x10005ec0
movzx eax, byte [ecx - 0xc]
movzx edx, byte [ecx + 8]
cmp al, dl
jg 0x10005ec0
movss xmm0, dword [ecx - 8]
movss xmm1, dword [ecx + 0xc]
ucomiss xmm0, xmm1
jb 0x10005ec0
cmp dl, al
jg 0x10005ec0
lea ebp, [ecx - 0x14]
ucomiss xmm1, xmm0
jae 0x10005e90
nop dword [eax]
lea eax, [ebx + edi*4]
add eax, 0x14
mov ebp, dword [esp]
nop dword [eax]
mov edi, eax
cmp eax, ebp
jae 0x10005f00
movzx eax, byte [edi + 8]
movzx edx, byte [ecx + 8]
cmp al, dl
jg 0x10005f00
movss xmm0, dword [edi + 0xc]
movss xmm1, dword [ecx + 0xc]
ucomiss xmm0, xmm1
jb 0x10005f00
cmp dl, al
jg 0x10005f00
lea eax, [edi + 0x14]
ucomiss xmm1, xmm0
jae 0x10005ed0
nop dword [eax]
mov eax, edi
mov esi, ecx
jmp 0x10005f0c
lea edi, [eax + 0x14]
add eax, 0x14
cmp eax, ebp
jae 0x10005f69
movzx edx, byte [ecx + 8]
mov dh, byte [eax + 8]
cmp dl, dh
jg 0x10005f09
movss xmm0, dword [ecx + 0xc]
movss xmm1, dword [eax + 0xc]
ucomiss xmm0, xmm1
jb 0x10005f09
cmp dh, dl
jg 0x10005f69
ucomiss xmm1, xmm0
jb 0x10005f69
cmp eax, edi
je 0x10005f06
mov edx, dword [edi + 0x10]
mov dword [esp + 0x14], edx
movups xmm0, xmmword [edi]
movups xmmword [esp + 4], xmm0
mov edx, dword [eax + 0x10]
mov dword [edi + 0x10], edx
movups xmm0, xmmword [eax]
movups xmmword [edi], xmm0
mov edx, dword [esp + 0x14]
mov dword [eax + 0x10], edx
movups xmm0, xmmword [esp + 4]
movups xmmword [eax], xmm0
add edi, 0x14
add eax, 0x14
jmp 0x10005f0c
cmp esi, ebx
ja 0x10005fde
mov ebp, ecx
mov edx, esi
cmp edx, ebx
jne 0x10005f7e
cmp eax, dword [esp]
je 0x10006130
cmp edx, ebx
je 0x10006045
lea esi, [edx - 0x14]
cmp eax, dword [esp]
je 0x100060b6
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x14], ecx
movups xmm0, xmmword [eax]
movups xmmword [esp + 4], xmm0
mov ecx, dword [esi + 0x10]
mov dword [eax + 0x10], ecx
movups xmm0, xmmword [esi]
movups xmmword [eax], xmm0
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x10], ecx
movups xmm0, xmmword [esp + 4]
movups xmmword [esi], xmm0
add eax, 0x14
mov ecx, ebp
mov ebp, dword [esp]
jmp 0x10005f0c
mov ebp, ecx
mov ebx, dword [esp + 0x18]
mov esi, edx
mov ecx, ebp
cmp edx, ebx
jbe 0x10005f71
lea edx, [esi - 0x14]
movzx ebx, byte [esi - 0xc]
mov bh, byte [ecx + 8]
cmp bl, bh
jg 0x10005fd0
movss xmm0, dword [esi - 8]
movss xmm1, dword [ecx + 0xc]
ucomiss xmm0, xmm1
jb 0x10005fd0
cmp bh, bl
jg 0x10006120
ucomiss xmm1, xmm0
mov ebx, dword [esp + 0x18]
jb 0x10005f6d
lea ebp, [ecx - 0x14]
cmp esi, ecx
je 0x10005fd6
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x14], ecx
movups xmm0, xmmword [ebp]
movups xmmword [esp + 4], xmm0
mov ecx, dword [edx + 0x10]
mov dword [ebp + 0x10], ecx
movups xmm0, xmmword [edx]
movups xmmword [ebp], xmm0
mov ecx, dword [esp + 0x14]
mov dword [edx + 0x10], ecx
movups xmm0, xmmword [esp + 4]
movups xmmword [edx], xmm0
jmp 0x10005fd6
cmp edi, eax
je 0x10006075
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x14], ecx
movups xmm0, xmmword [ebp]
movups xmmword [esp + 4], xmm0
mov ecx, dword [edi + 0x10]
mov dword [ebp + 0x10], ecx
movups xmm0, xmmword [edi]
movups xmmword [ebp], xmm0
mov ecx, dword [esp + 0x14]
mov dword [edi + 0x10], ecx
movups xmm0, xmmword [esp + 4]
movups xmmword [edi], xmm0
add edi, 0x14
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x14], ecx
movups xmm0, xmmword [ebp]
movups xmmword [esp + 4], xmm0
mov ecx, dword [eax + 0x10]
mov dword [ebp + 0x10], ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp], xmm0
mov ecx, dword [esp + 0x14]
mov dword [eax + 0x10], ecx
movups xmm0, xmmword [esp + 4]
movups xmmword [eax], xmm0
add ebp, 0x14
add eax, 0x14
mov ecx, ebp
mov esi, ebx
mov ebp, dword [esp]
jmp 0x10005f0c
lea ecx, [ebp - 0x14]
cmp edx, ebp
je 0x100060e7
mov eax, dword [esi + 0x10]
mov dword [esp + 0x14], eax
movups xmm0, xmmword [esi]
movups xmmword [esp + 4], xmm0
mov eax, dword [ecx + 0x10]
mov dword [esi + 0x10], eax
movups xmm0, xmmword [ecx]
movups xmmword [esi], xmm0
mov eax, dword [esp + 0x14]
mov dword [ecx + 0x10], eax
movups xmm0, xmmword [esp + 4]
movups xmmword [ecx], xmm0
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x14], eax
movups xmm0, xmmword [ecx]
movups xmmword [esp + 4], xmm0
mov eax, dword [edi - 4]
mov dword [ecx + 0x10], eax
movups xmm0, xmmword [edi - 0x14]
movups xmmword [ecx], xmm0
mov eax, dword [esp + 0x14]
mov dword [edi - 4], eax
movups xmm0, xmmword [esp + 4]
movups xmmword [edi - 0x14], xmm0
add edi, 0xffffffec
mov ebp, dword [esp]
mov eax, ebp
jmp 0x10005f0c
mov ebp, ecx
mov edx, esi
mov ebx, dword [esp + 0x18]
jmp 0x10005f71
mov esi, dword [esp + 0x2c]
mov eax, esi
sar eax, 1
sar esi, 2
add esi, eax
mov eax, ebp
sub eax, ebx
sar eax, 2
imul eax, eax, 0xcccccccd
mov ecx, dword [esp + 0x24]
sub ecx, edi
sar ecx, 2
imul ecx, ecx, 0xcccccccd
cmp eax, ecx
jge 0x10005980
mov ecx, ebx
mov edx, ebp
push esi
call fcn.10005810
add esp, 4
mov ebx, edi
mov edx, dword [esp]
mov eax, edx
jmp 0x10005994
shr edx, 4
mov dword [esp + 0x44], edx
lea eax, [edx - 1]
mov ecx, eax
shr ecx, 1
mov dword [esp + 0x40], eax
lea eax, [eax + eax*4]
lea eax, [ebx + eax*4]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x24], ecx
lea eax, [ecx + ecx*4]
lea eax, [ebx + eax*4]
mov dword [esp + 0x38], eax
jmp 0x10006207
mov ebp, esi
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
lea eax, [ebp*4]
add eax, ebp
mov ecx, dword [esp + 0x34]
mov dword [ebx + eax*4 + 4], ecx
mov ecx, dword [esp + 0x28]
mov dword [ebx + eax*4], ecx
movzx ecx, byte [esp + 0x20]
mov byte [ebx + eax*4 + 8], cl
movzx ecx, word [esp + 4]
mov word [ebx + eax*4 + 9], cx
movzx ecx, byte [esp + 6]
mov byte [ebx + eax*4 + 0xb], cl
movss dword [ebx + eax*4 + 0xc], xmm0
mov ecx, dword [esp + 0x30]
mov dword [ebx + eax*4 + 0x10], ecx
cmp dword [esp + 0x2c], 1
jle 0x10006353
lea esi, [edi - 1]
lea ecx, [esi + esi*4]
mov eax, dword [ebx + ecx*4]
mov dword [esp + 0x28], eax
mov eax, dword [ebx + ecx*4 + 4]
mov dword [esp + 0x34], eax
movzx eax, byte [ebx + ecx*4 + 8]
mov byte [esp + 0x20], al
movzx edx, byte [ebx + ecx*4 + 0xb]
mov byte [esp + 6], dl
movzx edx, word [ebx + ecx*4 + 9]
mov word [esp + 4], dx
movss xmm0, dword [ebx + ecx*4 + 0xc]
mov eax, dword [ebx + ecx*4 + 0x10]
mov dword [esp + 0x30], eax
mov dword [esp + 0x1c], esi
mov dword [esp + 0x2c], edi
cmp dword [esp + 0x24], edi
jge 0x100062f0
test byte [esp + 0x44], 1
jne 0x1000627d
cmp esi, dword [esp + 0x24]
jne 0x1000627d
mov ecx, dword [esp + 0x3c]
mov eax, dword [ecx + 0x10]
mov edx, dword [esp + 0x38]
mov dword [edx + 0x10], eax
movups xmm1, xmmword [ecx]
movups xmmword [edx], xmm1
mov esi, dword [esp + 0x40]
cmp esi, dword [esp + 0x2c]
jl 0x100061b0
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
jmp 0x100062bf
lea eax, [esi + esi*4]
mov edx, dword [ebx + ecx*4 + 0x10]
mov dword [ebx + eax*4 + 0x10], edx
movups xmm1, xmmword [ebx + ecx*4]
movups xmmword [ebx + eax*4], xmm1
mov esi, ebp
cmp ebp, dword [esp + 0x2c]
jl 0x100061ba
lea ebp, [esi - 1]
sar ebp, 1
lea ecx, [ebp*4]
add ecx, ebp
movzx eax, byte [esp + 0x20]
cmp byte [ebx + ecx*4 + 8], al
jg 0x100062a0
movss xmm1, dword [ebx + ecx*4 + 0xc]
ucomiss xmm1, xmm0
jb 0x100062a0
mov ebp, esi
jmp 0x100061ba
mov ebp, dword [esp + 0x1c]
jmp 0x1000632f
movzx eax, byte [ebx + edi*4 + 8]
cmp al, byte [ebx + edx*4 + 8]
cmovle esi, ecx
lea eax, [esi + esi*4]
lea ecx, [ebp + ebp*4]
mov edx, dword [ebx + eax*4 + 0x10]
mov dword [ebx + ecx*4 + 0x10], edx
movups xmm1, xmmword [ebx + eax*4]
movups xmmword [ebx + ecx*4], xmm1
mov ebp, esi
cmp esi, dword [esp + 0x24]
jge 0x10006258
lea ecx, [ebp + 2]
add ecx, ebp
lea esi, [ebp + ebp + 1]
lea edi, [ecx + ecx*4]
lea edx, [esi + esi*4]
movss xmm1, dword [ebx + edi*4 + 0xc]
ucomiss xmm1, dword [ebx + edx*4 + 0xc]
jae 0x10006300
mov ecx, esi
jmp 0x10006300
mov edx, dword [esp]
jmp 0x100063a7
xor esi, esi
mov edx, dword [esp]
lea eax, [esi + esi*4]
mov esi, dword [esp + 0x20]
mov dword [ebx + eax*4 + 4], esi
mov esi, dword [esp + 0x24]
mov dword [ebx + eax*4], esi
mov byte [ebx + eax*4 + 8], cl
movzx ecx, word [esp + 4]
mov word [ebx + eax*4 + 9], cx
movzx ecx, byte [esp + 6]
mov byte [ebx + eax*4 + 0xb], cl
movss dword [ebx + eax*4 + 0xc], xmm0
mov ecx, dword [esp + 0x2c]
mov dword [ebx + eax*4 + 0x10], ecx
cmp dword [esp + 0x1c], 0x14
jle 0x100064f6
mov eax, edx
mov ecx, dword [edx - 0x14]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx - 0x10]
mov dword [esp + 0x20], ecx
movzx ecx, byte [edx - 0xc]
movzx edx, byte [edx - 9]
mov byte [esp + 6], dl
movzx edx, word [eax - 0xb]
mov word [esp + 4], dx
movss xmm0, dword [eax - 8]
mov edx, dword [eax - 4]
mov dword [esp + 0x2c], edx
mov edx, dword [ebx + 0x10]
mov dword [eax - 4], edx
movups xmm1, xmmword [ebx]
movups xmmword [eax - 0x14], xmm1
add eax, 0xffffffec
mov dword [esp], eax
mov edx, eax
sub edx, ebx
mov eax, edx
sar eax, 2
imul eax, eax, 0xcccccccd
mov dword [esp + 0x28], eax
dec eax
mov dword [esp + 0x30], eax
mov ebp, eax
sar ebp, 1
xor esi, esi
mov dword [esp + 0x1c], edx
cmp edx, 0x29
jl 0x10006470
xor edx, edx
mov dword [esp + 0x18], ebp
jmp 0x1000644d
mov ch, byte [eax + edi*4 + 8]
cmp ch, byte [eax + ebp*4 + 8]
cmovle esi, ebx
lea edi, [esi + esi*4]
lea edx, [edx + edx*4]
mov ebx, dword [eax + edi*4 + 0x10]
mov dword [eax + edx*4 + 0x10], ebx
movups xmm1, xmmword [eax + edi*4]
movups xmmword [eax + edx*4], xmm1
mov edx, esi
mov ebp, dword [esp + 0x18]
cmp esi, ebp
mov ebx, eax
jge 0x10006470
mov eax, ebx
lea ebx, [edx + edx]
add ebx, 2
lea esi, [edx + edx + 1]
lea edi, [ebx + ebx*4]
lea ebp, [esi + esi*4]
movss xmm1, dword [eax + edi*4 + 0xc]
ucomiss xmm1, dword [eax + ebp*4 + 0xc]
jae 0x10006420
mov ebx, esi
jmp 0x10006420
test byte [esp + 0x28], 1
jne 0x1000649d
cmp esi, ebp
jne 0x1000649d
mov edi, dword [esp + 0x30]
lea edx, [edi + edi*4]
lea eax, [ebp*4]
add eax, ebp
mov esi, dword [ebx + edx*4 + 0x10]
mov dword [ebx + eax*4 + 0x10], esi
movups xmm1, xmmword [ebx + edx*4]
movups xmmword [ebx + eax*4], xmm1
mov esi, edi
test esi, esi
jg 0x100064d2
jmp 0x10006362
lea esi, [esi + esi*4]
mov edi, dword [ebp + ebx*4 + 0x10]
mov dword [ebp + esi*4 + 0x10], edi
movups xmm1, xmmword [ebp + ebx*4]
movups xmmword [ebp + esi*4], xmm1
mov esi, edx
cmp eax, 1
mov ebx, ebp
jbe 0x10006360
lea eax, [esi - 1]
mov edx, eax
shr edx, 1
mov ebp, ebx
lea ebx, [edx + edx*4]
cmp byte [ebp + ebx*4 + 8], cl
jg 0x100064b0
movss xmm1, dword [ebp + ebx*4 + 0xc]
ucomiss xmm1, xmm0
jb 0x100064b0
mov ebx, ebp
jmp 0x10006362
add esp, 0x48
pop esi
pop edi
pop ebx
pop ebp
ret