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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x100
mov ebx, dword [ebp + 8]
mov eax, dword [0x808040]
xor eax, ebp
mov dword [esp + 0xf8], eax
mov edx, dword [ecx + 8]
mov dword [esp + 0x10], ecx
mov eax, dword [ecx + 0xc]
mov esi, 0xffffff00
mov dword [esp + 0x5c], eax
cmp edx, eax
mov dword [esp + 0x50], edx
je 0x5906c3
mov eax, dword [edx]
mov dword [esp + 0x40], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x44], eax
mov eax, dword [edx + 0xc]
mov dword [esp + 0x3c], eax
mov eax, dword [edx + 8]
mov dword [esp + 0x38], eax
mov eax, dword [edx + 0x14]
mov dword [esp + 0x30], eax
mov dword [esp + 0x48], 0
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x24]
mov dword [esp + 0xc], eax
movzx eax, byte [ebp + 0x28]
mov byte [esp + 0x23], al
mov edi, dword [esp + 0x10]
lea eax, [edi + 8]
mov dword [esp + 0x24], eax
mov ecx, dword [ebx + 0xc]
call fcn.0058fda0
mov eax, dword [ebx + 0x98]
mov dword [esp + 0x4c], eax
cmp eax, 0xffffffff
je 0x590249
mov esi, esp
mov ecx, dword [ebx + 0xc]
call fcn.0058fda0
mov eax, dword [ebx + 0x98]
mov ecx, dword [edi + 8]
mov edx, dword [edi + 0xc]
sub edx, ecx
sar edx, 5
cmp edx, eax
jbe 0x590d90
mov esp, esi
shl eax, 5
mov eax, dword [ecx + eax + 0x10]
movzx ecx, al
mov dword [esp + 0x34], ecx
mov esi, eax
and esi, 0xffffff00
mov ecx, dword [ebx + 0xc]
call fcn.0058fda0
mov eax, dword [ebx + 0x98]
test byte [esp + 0x23], 1
mov dword [esp + 0x58], esi
je 0x59043d
lea ecx, [ebp + 0x10]
cmp eax, 0xffffffff
je 0x590745
mov dword [esp + 0x18], esp
movups xmm0, xmmword [ecx]
movaps xmmword [esp + 0x80], xmm0
mov ecx, dword [ebx + 0xc]
call fcn.0058fda0
mov edx, dword [ebx + 0x98]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], ebx
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub ecx, eax
sar ecx, 5
cmp ecx, edx
jbe 0x590d89
mov esi, edx
shl esi, 5
mov dword [esp + 0xc], edx
mov edi, dword [eax + esi + 0x18]
mov ecx, dword [edi + 0xc]
call fcn.0058fda0
mov dword [edi + 0x98], 0xffffffff
mov edi, dword [esp + 0xc]
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 5
cmp eax, edi
jbe 0x590d89
add ecx, esi
lea eax, [esp + 0xd0]
push eax
call fcn.005923b0
lea esi, [esp + 0xa0]
lea ecx, [esp + 0x80]
push esi
call fcn.005923b0
mov eax, dword [esp + 0xd0]
cmp eax, dword [esp + 0xa0]
mov eax, dword [esp + 0xd4]
sbb eax, dword [esp + 0xa4]
jge 0x590256
movaps xmm0, xmmword [esp + 0x80]
movaps xmm1, xmmword [esp + 0x90]
movaps xmmword [esp + 0xb0], xmm1
movaps xmmword [esp + 0xa0], xmm0
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
sub edx, eax
sar edx, 5
mov esi, edi
lea edi, [edi*2 + 1]
cmp edi, edx
jae 0x590439
add esi, esi
mov dword [esp + 0x1c], edx
add esi, 2
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
cmp esi, edx
jae 0x590126
sub eax, ecx
sar eax, 5
cmp eax, esi
jbe 0x590d89
mov eax, esi
shl eax, 5
add eax, ecx
mov ebx, edi
shl ebx, 5
add ebx, ecx
mov ecx, eax
lea eax, [esp + 0xd0]
push eax
call fcn.005923b0
mov ecx, ebx
lea eax, [esp + 0xc8]
push eax
call fcn.005923b0
mov eax, dword [esp + 0xd0]
cmp eax, dword [esp + 0xc8]
mov eax, dword [esp + 0xd4]
sbb eax, dword [esp + 0xcc]
cmovl edi, esi
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov esi, edi
sub eax, ecx
sar eax, 5
cmp eax, edi
mov edi, dword [esp + 0xc]
jbe 0x590d89
mov ebx, esi
shl ebx, 5
add ecx, ebx
lea eax, [esp + 0xd0]
push eax
call fcn.005923b0
lea ecx, [esp + 0xa0]
lea eax, [esp + 0xc8]
push eax
call fcn.005923b0
mov eax, dword [esp + 0xd0]
cmp eax, dword [esp + 0xc8]
mov eax, dword [esp + 0xd4]
sbb eax, dword [esp + 0xcc]
jge 0x590497
mov dword [esp + 0x14], esi
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 8]
mov esi, dword [ecx + 0xc]
mov ecx, esi
sub ecx, eax
sar ecx, 5
cmp ecx, edi
je 0x590a31
cmp ecx, dword [esp + 0x14]
jbe 0x590d89
cmp ecx, edi
jbe 0x590d89
mov ecx, edi
shl ecx, 5
movups xmm0, xmmword [eax + ebx]
movups xmm1, xmmword [eax + ebx + 0x10]
movups xmmword [eax + ecx + 0x10], xmm1
movups xmmword [eax + ecx], xmm0
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub ecx, eax
sar ecx, 5
cmp ecx, edi
jbe 0x590d89
mov dword [esp + 0x28], esp
mov esi, edi
shl esi, 5
mov dword [esp + 0xc], edi
mov edi, dword [eax + esi + 0x18]
mov ecx, dword [edi + 0xc]
call fcn.0058fda0
mov edx, dword [esp + 0xc]
mov dword [edi + 0x98], edx
mov esp, dword [esp + 0x28]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub ecx, eax
sar ecx, 5
cmp ecx, edx
jbe 0x590d89
mov eax, dword [eax + esi + 0x18]
mov ecx, dword [eax + 0xc]
call fcn.0058fda0
mov ecx, dword [esp + 0x14]
lea esi, [ecx + ecx]
lea edi, [ecx*2 + 1]
mov dword [esp + 0xc], ecx
mov edx, dword [esp + 0x1c]
cmp edi, edx
jae 0x59049d
jmp 0x5900b7
mov dword [esp + 0x34], 0
jmp 0x58ff80
movaps xmm0, xmmword [esp + 0x80]
movaps xmm1, xmmword [esp + 0x90]
movaps xmmword [esp + 0xe0], xmm1
movaps xmmword [esp + 0xd0], xmm0
xor edx, edx
test edi, edi
je 0x5903a0
lea ecx, [edi - 1]
mov dword [esp + 0x28], ecx
shr ecx, 1
mov eax, ebx
mov ebx, dword [ebx + 8]
mov eax, dword [eax + 0xc]
sub eax, ebx
sar eax, 5
cmp eax, ecx
jbe 0x590d89
mov dword [esp + 0x14], ecx
shl ecx, 5
mov dword [esp + 0x1c], ecx
add ebx, ecx
lea ecx, [esp + 0xd0]
push esi
call fcn.005923b0
mov ecx, ebx
lea eax, [esp + 0xc8]
push eax
call fcn.005923b0
mov eax, dword [esp + 0xa0]
cmp eax, dword [esp + 0xc8]
mov eax, dword [esp + 0xa4]
sbb eax, dword [esp + 0xcc]
jge 0x5903ff
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
mov esi, dword [ebx + 0xc]
mov ecx, esi
sub ecx, eax
sar ecx, 5
cmp ecx, edi
mov dword [esp + 0xc], edi
je 0x590b1f
cmp ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
jbe 0x590d89
cmp ecx, edi
jbe 0x590d89
mov ecx, edi
shl ecx, 5
movups xmm0, xmmword [eax + edx]
movups xmm1, xmmword [eax + edx + 0x10]
movups xmmword [eax + ecx + 0x10], xmm1
movups xmmword [eax + ecx], xmm0
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub ecx, eax
sar ecx, 5
cmp ecx, edi
jbe 0x590d89
mov dword [esp + 0x1c], esp
mov esi, edi
shl esi, 5
mov edi, dword [eax + esi + 0x18]
mov ecx, dword [edi + 0xc]
call fcn.0058fda0
mov edx, dword [esp + 0xc]
mov dword [edi + 0x98], edx
mov esp, dword [esp + 0x1c]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub ecx, eax
sar ecx, 5
cmp ecx, edx
jbe 0x590d89
mov eax, dword [eax + esi + 0x18]
mov ecx, dword [eax + 0xc]
call fcn.0058fda0
mov edx, dword [esp + 0x14]
mov edi, edx
cmp dword [esp + 0x28], 1
lea esi, [esp + 0xa0]
ja 0x590280
mov eax, dword [ebx + 8]
mov esi, dword [ebx + 0xc]
mov ecx, esi
sub ecx, eax
sar ecx, 5
cmp ecx, edx
je 0x590407
jbe 0x590d89
mov ecx, edx
shl ecx, 5
movaps xmm0, xmmword [esp + 0xd0]
movaps xmm1, xmmword [esp + 0xe0]
movups xmmword [eax + ecx + 0x10], xmm1
movups xmmword [eax + ecx], xmm0
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub ecx, eax
sar ecx, 5
cmp ecx, edx
jbe 0x590d89
mov dword [esp + 0xc], esp
mov esi, edx
shl esi, 5
mov ebx, dword [eax + esi + 0x18]
mov ecx, dword [ebx + 0xc]
mov edi, edx
jmp 0x590519
mov edx, edi
mov ebx, dword [esp + 0x10]
jmp 0x5903a0
mov ecx, dword [ebx + 0x10]
cmp esi, ecx
jae 0x590c0c
test esi, esi
je 0x590d89
movaps xmm0, xmmword [esp + 0xd0]
movaps xmm1, xmmword [esp + 0xe0]
movups xmmword [esi + 0x10], xmm1
movups xmmword [esi], xmm0
add esi, 0x20
mov dword [ebx + 0xc], esi
jmp 0x5903d5
mov edi, esi
jmp 0x5904aa
cmp eax, 0xffffffff
je 0x59054f
mov esi, esp
mov eax, dword [esp + 0x10]
lea edi, [eax + 4]
mov ecx, dword [ebx + 0xc]
call fcn.0058fda0
mov ecx, edi
push dword [ebx + 0x98]
call fcn.00590fa0
mov esp, esi
jmp 0x59054f
mov dword [esp + 0x24], 0xffffffff
mov esi, 0xffffff00
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x18], 0xffffffff
mov edi, 0xffffffff
mov edx, 0xffffffff
jmp 0x59057f
mov ecx, edi
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
sub edx, eax
sar edx, 5
mov edi, ecx
movaps xmm0, xmmword [esp + 0xa0]
movaps xmm1, xmmword [esp + 0xb0]
movaps xmmword [esp + 0xe0], xmm1
movaps xmmword [esp + 0xd0], xmm0
cmp edx, edi
je 0x590dba
jbe 0x590d89
mov ecx, edi
shl ecx, 5
movaps xmm0, xmmword [esp + 0xa0]
movaps xmm1, xmmword [esp + 0xb0]
movups xmmword [eax + ecx + 0x10], xmm1
movups xmmword [eax + ecx], xmm0
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub ecx, eax
sar ecx, 5
cmp ecx, edi
jbe 0x590d89
mov dword [esp + 0xc], esp
mov esi, edi
shl esi, 5
mov ebx, dword [eax + esi + 0x18]
mov ecx, dword [ebx + 0xc]
call fcn.0058fda0
mov dword [ebx + 0x98], edi
mov esp, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
sub ecx, eax
sar ecx, 5
cmp ecx, edi
jbe 0x590d89
mov eax, dword [eax + esi + 0x18]
mov ecx, dword [eax + 0xc]
call fcn.0058fda0
mov esp, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
cmp eax, ecx
je 0x59046b
mov esi, dword [eax]
mov edx, dword [eax + 4]
mov edi, dword [eax + 0xc]
mov ebx, dword [eax + 8]
mov dword [esp + 0x18], ebx
mov ebx, dword [eax + 0x14]
mov dword [esp + 0x24], ebx
mov dword [esp + 0xc], 0
mov ebx, dword [esp + 0x4c]
cmp ebx, 0xffffffff
je 0x590599
mov ebx, dword [esp + 0x58]
or ebx, dword [esp + 0x34]
cmp ebx, 1
je 0x590dae
cmp dword [esp + 0x2c], 1
sete bl
mov bh, byte [esp + 0x23]
and bh, bl
cmp bh, 1
je 0x590d99
mov ebx, dword [esp + 0x5c]
cmp dword [esp + 0x50], ebx
je 0x5906a9
cmp eax, ecx
je 0x5906a9
mov ebx, dword [esp + 0xc]
cmp ebx, dword [esp + 0x48]
mov ebx, dword [esp + 0x10]
jne 0x5905fa
xor esi, dword [esp + 0x40]
xor edx, dword [esp + 0x44]
or edx, esi
jne 0x5905fa
mov edx, dword [esp + 0x18]
xor edx, dword [esp + 0x38]
xor edi, dword [esp + 0x3c]
or edi, edx
jne 0x5905fa
mov edx, dword [esp + 0x24]
cmp edx, dword [esp + 0x30]
je 0x59065b
cmp eax, ecx
je 0x59069d
movups xmm0, xmmword [eax]
mov eax, dword [eax + 0x14]
movups xmmword [esp + 0x60], xmm0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], eax
mov al, 1
mov esi, dword [ebp + 0xc]
mov byte [esp + 0x78], al
mov eax, dword [ebx]
mov edi, dword [eax + 8]
cmp edi, 0x590f90
je 0x590673
mov ecx, edi
call dword [0x8010bc]
sub esp, 0x24
movups xmm0, xmmword [esp + 0x84]
movups xmm1, xmmword [esp + 0x94]
movups xmmword [esp + 0x14], xmm1
movups xmmword [esp + 4], xmm0
mov dword [esp], esi
mov ecx, ebx
call edi
mov ecx, dword [esp + 0xf8]
xor ecx, ebp
call fcn.005c6b46
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x28
mov ecx, dword [ebx + 0x1c]
sub esp, 0x24
movups xmm0, xmmword [esp + 0x84]
movups xmm1, xmmword [esp + 0x94]
movups xmmword [esp + 0x14], xmm1
movups xmmword [esp + 4], xmm0
mov dword [esp], esi
call fcn.00572300
jmp 0x59065b
mov byte [esp + 0x60], 0
xor eax, eax
jmp 0x59061b
cmp eax, ecx
setne dl
cmp dword [esp + 0x50], ebx
setne dh
cmp dh, dl
mov ebx, dword [esp + 0x10]
jne 0x5905fa
jmp 0x59065b
mov dword [esp + 0x44], 0xffffffff
mov dword [esp + 0x40], 0xffffff00
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x3c], 0xffffffff
mov dword [esp + 0x48], 0xffffffff
mov dword [esp + 0x30], 0xffffffff
jmp 0x58ff09
mov ecx, dword [esp + 0xc]
cmp ecx, dword [esp + 0x18]
jbe 0x590d89
add edi, eax
mov ecx, dword [ebx + 0x10]
cmp esi, ecx
jae 0x590cda
test esi, esi
je 0x590d89
movups xmm0, xmmword [edi]
movups xmm1, xmmword [edi + 0x10]
movups xmmword [esi + 0x10], xmm1
movups xmmword [esi], xmm0
add esi, 0x20
mov dword [ebx + 0xc], esi
mov edx, dword [esp + 0xc]
jmp 0x590840
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
jmp 0x5908a8
movups xmm0, xmmword [ecx]
movaps xmmword [esp + 0xd0], xmm0
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 8]
mov edi, dword [ecx + 0xc]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0xe0], ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xe8], ebx
xor edx, edx
mov ecx, edi
sub ecx, eax
je 0x5908ae
sar ecx, 5
mov edi, dword [esp + 0x10]
mov dword [esp + 0xc], ecx
dec ecx
mov dword [esp + 0x14], ecx
shr ecx, 1
mov ebx, dword [edi + 8]
mov eax, dword [edi + 0xc]
sub eax, ebx
sar eax, 5
cmp eax, ecx
jbe 0x590d89
mov dword [esp + 0x18], ecx
mov edi, ecx
shl edi, 5
add ebx, edi
lea ecx, [esp + 0xd0]
lea eax, [esp + 0xa0]
push eax
call fcn.005923b0
mov ecx, ebx
lea eax, [esp + 0x80]
push eax
call fcn.005923b0
mov eax, dword [esp + 0xa0]
cmp eax, dword [esp + 0x80]
mov eax, dword [esp + 0xa4]
sbb eax, dword [esp + 0x84]
jge 0x590738
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
mov esi, dword [ebx + 0xc]
mov ecx, esi
sub ecx, eax
sar ecx, 5
cmp ecx, dword [esp + 0xc]
je 0x5906f8
cmp ecx, dword [esp + 0x18]
jbe 0x590d89
mov edx, dword [esp + 0xc]
cmp ecx, edx
jbe 0x590d89
mov ecx, edx
shl ecx, 5
movups xmm0, xmmword [eax + edi]
movups xmm1, xmmword [eax + edi + 0x10]
movups xmmword [eax + ecx + 0x10], xmm1
movups xmmword [eax + ecx], xmm0
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub ecx, eax
sar ecx, 5
cmp ecx, edx
jbe 0x590d89
mov dword [esp + 0x1c], esp
mov esi, edx
shl esi, 5
mov edi, dword [eax + esi + 0x18]
mov ecx, dword [edi + 0xc]
call fcn.0058fda0
mov edx, dword [esp + 0xc]
mov dword [edi + 0x98], edx
mov esp, dword [esp + 0x1c]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub ecx, eax
sar ecx, 5
cmp ecx, edx
jbe 0x590d89
mov edi, ebx
mov eax, dword [eax + esi + 0x18]
mov ecx, dword [eax + 0xc]
call fcn.0058fda0
mov edx, dword [esp + 0x18]
mov ecx, edx
cmp dword [esp + 0x14], 1
ja 0x59078a
mov eax, dword [edi + 8]
mov edi, dword [edi + 0xc]
mov ecx, edi
sub ecx, eax
sar ecx, 5
cmp ecx, edx
je 0x590941
mov esi, dword [esp + 0x10]
jbe 0x590d89
mov ecx, edx
shl ecx, 5
movaps xmm0, xmmword [esp + 0xd0]
movaps xmm1, xmmword [esp + 0xe0]
movups xmmword [eax + ecx + 0x10], xmm1
movups xmmword [eax + ecx], xmm0
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
sub ecx, eax
sar ecx, 5
cmp ecx, edx
jbe 0x590d89
mov dword [esp + 0xc], esp
mov esi, edx
shl esi, 5
mov ebx, dword [eax + esi + 0x18]
mov ecx, dword [ebx + 0xc]
mov edi, edx
call fcn.0058fda0
mov dword [ebx + 0x98], edi
mov esp, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
sub ecx, eax
sar ecx, 5
cmp ecx, edi
jbe 0x590d89
mov eax, dword [eax + esi + 0x18]
mov ecx, dword [eax + 0xc]
call fcn.0058fda0
jmp 0x59054f
mov esi, dword [esp + 0x10]
mov ecx, dword [esi + 0x10]
cmp edi, ecx
jae 0x590976
test edi, edi
je 0x590d89
movaps xmm0, xmmword [esp + 0xd0]
movaps xmm1, xmmword [esp + 0xe0]
movups xmmword [edi + 0x10], xmm1
movups xmmword [edi], xmm0
add edi, 0x20
mov dword [esi + 0xc], edi
jmp 0x5908e5
mov dword [esp + 0x18], edx
inc edx
cmp edx, 0x8000000
jae 0x590da5
sub ecx, eax
mov eax, ecx
sar eax, 4
cmp eax, edx
cmovbe eax, edx
cmp ecx, 0x7fffffe0
mov esi, 0x7ffffff
cmovb esi, eax
test esi, esi
je 0x590dd7
cmp esi, 0x8000000
jae 0x590d8b
mov eax, esi
shl eax, 5
push eax
call fcn.005c5789
add esp, 4
mov ebx, eax
mov edi, dword [esp + 0x18]
shl edi, 5
add edi, ebx
je 0x590d89
shl esi, 5
add ebx, esi
movaps xmm0, xmmword [esp + 0xd0]
movaps xmm1, xmmword [esp + 0xe0]
movups xmmword [edi + 0x10], xmm1
movups xmmword [edi], xmm0
lea eax, [edi + 0x20]
mov dword [esp + 0xc], eax
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
sub ecx, eax
sub edi, ecx
push ecx
push eax
push edi
call fcn.005c9580
add esp, 0xc
mov eax, dword [esi + 8]
mov dword [esi + 8], edi
mov edi, dword [esp + 0xc]
mov dword [esi + 0xc], edi
mov dword [esi + 0x10], ebx
test eax, eax
jne 0x590ccc
mov edx, dword [esp + 0x18]
jmp 0x59096e
cmp edi, dword [esp + 0x14]
jbe 0x590d89
add ebx, eax
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0x10]
cmp esi, ecx
jae 0x590a6d
test esi, esi
je 0x590d89
movups xmm0, xmmword [ebx]
movups xmm1, xmmword [ebx + 0x10]
movups xmmword [esi + 0x10], xmm1
movups xmmword [esi], xmm0
add esi, 0x20
mov ebx, dword [esp + 0x10]
mov dword [ebx + 0xc], esi
jmp 0x5901cd
lea edx, [edi + 1]
cmp edx, 0x8000000
jae 0x590da5
sub ecx, eax
mov eax, ecx
sar eax, 4
cmp eax, edx
ja 0x590a89
mov eax, edx
cmp ecx, 0x7fffffe0
mov esi, 0x7ffffff
cmovb esi, eax
test esi, esi
je 0x590dde
cmp esi, 0x8000000
jae 0x590d8b
mov eax, esi
shl eax, 5
push eax
call fcn.005c5789
add esp, 4
shl edi, 5
add edi, eax
je 0x590d89
shl esi, 5
add eax, esi
mov dword [esp + 0x28], eax
movups xmm0, xmmword [ebx]
movups xmm1, xmmword [ebx + 0x10]
movups xmmword [edi + 0x10], xmm1
movups xmmword [edi], xmm0
lea esi, [edi + 0x20]
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub ecx, eax
sub edi, ecx
push ecx
push eax
push edi
call fcn.005c9580
add esp, 0xc
mov eax, dword [ebx + 8]
mov dword [ebx + 8], edi
mov dword [ebx + 0xc], esi
mov ecx, dword [esp + 0x28]
mov dword [ebx + 0x10], ecx
test eax, eax
jne 0x590b14
mov edi, dword [esp + 0xc]
jmp 0x590a65
push eax
call fcn.005c57c0
add esp, 4
jmp 0x590b0b
cmp edi, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
jbe 0x590d89
add edx, eax
mov ecx, dword [ebx + 0x10]
cmp esi, ecx
jae 0x590b57
test esi, esi
je 0x590d89
movups xmm0, xmmword [edx]
movups xmm1, xmmword [edx + 0x10]
movups xmmword [esi + 0x10], xmm1
movups xmmword [esi], xmm0
add esi, 0x20
mov dword [ebx + 0xc], esi
jmp 0x590333
mov dword [esp + 0x1c], edx
lea edx, [edi + 1]
cmp edx, 0x8000000
jae 0x590da5
sub ecx, eax
mov eax, ecx
sar eax, 4
cmp eax, edx
cmovbe eax, edx
cmp ecx, 0x7fffffe0
mov esi, 0x7ffffff
cmovb esi, eax
test esi, esi
je 0x590de5
cmp esi, 0x8000000
jae 0x590d8b
mov eax, esi
shl eax, 5
push eax
call fcn.005c5789
add esp, 4
shl edi, 5
add edi, eax
mov ecx, dword [esp + 0x1c]
je 0x590d89
shl esi, 5
add eax, esi
mov dword [esp + 0x54], eax
movups xmm0, xmmword [ecx]
movups xmm1, xmmword [ecx + 0x10]
movups xmmword [edi + 0x10], xmm1
movups xmmword [edi], xmm0
lea esi, [edi + 0x20]
mov edx, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub ecx, edx
sub edi, ecx
push ecx
push edx
push edi
call fcn.005c9580
add esp, 0xc
mov eax, dword [ebx + 8]
mov dword [ebx + 8], edi
mov dword [ebx + 0xc], esi
mov ecx, dword [esp + 0x54]
mov dword [ebx + 0x10], ecx
test eax, eax
jne 0x590c01
mov edi, dword [esp + 0xc]
jmp 0x590b4f
push eax
call fcn.005c57c0
add esp, 4
jmp 0x590bf8
mov dword [esp + 0x14], edx
inc edx
cmp edx, 0x8000000
jae 0x590da5
sub ecx, eax
mov eax, ecx
sar eax, 4
cmp eax, edx
cmovbe eax, edx
cmp ecx, 0x7fffffe0
mov esi, 0x7ffffff
cmovb esi, eax
test esi, esi
je 0x590dd0
cmp esi, 0x8000000
jae 0x590d8b
mov eax, esi
shl eax, 5
push eax
call fcn.005c5789
add esp, 4
mov edi, dword [esp + 0x14]
shl edi, 5
add edi, eax
je 0x590d89
shl esi, 5
add eax, esi
mov dword [esp + 0xc], eax
movaps xmm0, xmmword [esp + 0xd0]
movaps xmm1, xmmword [esp + 0xe0]
movups xmmword [edi + 0x10], xmm1
movups xmmword [edi], xmm0
lea esi, [edi + 0x20]
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub ecx, eax
sub edi, ecx
push ecx
push eax
push edi
call fcn.005c9580
add esp, 0xc
mov eax, dword [ebx + 8]
mov dword [ebx + 8], edi
mov dword [ebx + 0xc], esi
mov ecx, dword [esp + 0xc]
mov dword [ebx + 0x10], ecx
test eax, eax
jne 0x590cc1
mov edx, dword [esp + 0x14]
jmp 0x590434
push eax
call fcn.005c57c0
add esp, 4
jmp 0x590cb8
push eax
call fcn.005c57c0
add esp, 4
jmp 0x590a28
mov edx, dword [esp + 0xc]
inc edx
cmp edx, 0x8000000
jae 0x590da5
sub ecx, eax
mov eax, ecx
sar eax, 4
cmp eax, edx
cmovbe eax, edx
cmp ecx, 0x7fffffe0
mov esi, 0x7ffffff
cmovb esi, eax
test esi, esi
je 0x590dec
cmp esi, 0x8000000
jae 0x590d8b
mov eax, esi
shl eax, 5
push eax
call fcn.005c5789
add esp, 4
mov ebx, dword [esp + 0xc]
shl ebx, 5
add ebx, eax
je 0x590d89
shl esi, 5
add eax, esi
mov dword [esp + 0x1c], eax
movups xmm0, xmmword [edi]
movups xmm1, xmmword [edi + 0x10]
movups xmmword [ebx + 0x10], xmm1
movups xmmword [ebx], xmm0
lea esi, [ebx + 0x20]
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
sub ecx, eax
sub ebx, ecx
push ecx
push eax
push ebx
call fcn.005c9580
add esp, 0xc
mov eax, dword [edi + 8]
mov dword [edi + 8], ebx
mov ebx, edi
mov dword [edi + 0xc], esi
mov ecx, dword [esp + 0x1c]
mov dword [edi + 0x10], ecx
test eax, eax
je 0x59072c
push eax
call fcn.005c57c0
add esp, 4
jmp 0x59072c
ud2
call fcn.005fb090
mov ecx, dword [esp + 0x24]
call fcn.00601160
mov ebx, dword [esp + 0x10]
inc dword [ebx + 0x14]
jmp 0x5905b0
mov ecx, dword [esp + 0x24]
call fcn.005fa9f0
mov ebx, dword [esp + 0x10]
dec dword [ebx + 0x14]
jmp 0x590599
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0xd0]
push eax
call fcn.006e9f20
jmp 0x5904f6
xor eax, eax
jmp 0x590c59
xor ebx, ebx
jmp 0x5909c5
xor eax, eax
jmp 0x590ab9
xor eax, eax
jmp 0x590ba6
xor eax, eax
jmp 0x590d23