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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xb8
mov ebx, ecx
mov edi, dword [ebp + 8]
mov eax, dword [0x644040]
xor eax, ebp
mov dword [esp + 0xb0], eax
mov ecx, dword [ecx + 8]
mov edx, dword [ebx + 0xc]
mov eax, 0xffffffff
mov dword [esp + 0x84], 0xffffff00
mov dword [esp + 0x7c], edx
cmp ecx, edx
mov dword [esp + 0x80], ecx
je 0x50fff5
mov edx, dword [ecx]
mov dword [esp + 0x70], edx
mov edx, dword [ecx + 4]
mov dword [esp + 0x6c], edx
mov edx, dword [ecx + 0xc]
mov dword [esp + 0x68], edx
mov edx, dword [ecx + 8]
mov dword [esp + 0x64], edx
mov ecx, dword [ecx + 0x14]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x74], 0
mov ecx, dword [ebp + 0x20]
mov dword [esp + 0x48], ecx
mov ecx, dword [ebp + 0x24]
mov dword [esp + 0x24], ecx
movzx ecx, byte [ebp + 0x28]
mov byte [esp + 0x47], cl
mov ecx, dword [edi + 0xa0]
mov dword [esp + 0x8c], ecx
cmp ecx, 0xffffffff
je 0x50ffcc
mov eax, dword [edi + 0xa0]
mov ecx, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
sub edx, ecx
sar edx, 5
cmp edx, eax
jbe 0x510fc0
shl eax, 5
mov eax, dword [ecx + eax + 0x10]
mov dword [esp + 0x78], eax
and eax, 0xffffff00
mov dword [esp + 0x84], eax
mov eax, dword [edi + 0xa0]
lea esi, [ebx + 8]
cmp byte [esp + 0x47], 0
mov dword [esp + 0x20], ebx
je 0x50fcb4
lea ecx, [ebp + 0x10]
cmp eax, 0xffffffff
je 0x510084
mov dword [esp + 0x58], esp
mov eax, dword [ecx]
mov dword [esp + 0x10], eax
mov eax, edi
shr eax, 0xe
mov edx, edi
shr edx, 0x13
mov edx, dword [edx*4 + 0x64c804]
bt edx, eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x1c], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 4], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0xc], eax
jb 0x50ffd9
mov eax, edi
shr eax, 0x15
mov byte [eax + 0x654804], 1
mov edx, dword [edi + 0xa0]
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
sub eax, ecx
sar eax, 5
cmp eax, edx
jbe 0x51047b
mov eax, edx
shl eax, 5
mov ecx, dword [ecx + eax + 0x18]
mov dword [ecx + 0xa0], 0xffffffff
mov ecx, dword [ebx + 8]
mov edi, dword [ebx + 0xc]
mov ebx, edi
sub ebx, ecx
sar ebx, 5
mov dword [esp + 0x14], edx
mov dword [esp + 0x4c], ebx
cmp ebx, edx
jbe 0x51047b
mov dword [esp + 0x18], edi
mov dword [esp + 0x40], esi
mov ebx, 0x80000000
xor edi, edi
inc edi
lea edx, [ecx + eax]
cmp dword [ecx + eax + 0x14], 0
mov dword [esp], ecx
jne 0x50ffe7
mov ecx, dword [edx + 0xc]
mov eax, dword [edx + 8]
mov esi, eax
add esi, edi
mov edi, ecx
adc edi, ebx
cmp esi, 2
sbb edi, 0
mov edi, dword [edx]
mov edx, dword [edx + 4]
jb 0x51110a
add edi, eax
adc edx, ecx
seto bl
mov ecx, edx
sar ecx, 0x1f
lea eax, [ecx - 0x80000000]
test bl, bl
cmove ecx, edi
mov dword [esp + 0x30], ecx
test bl, bl
cmove eax, edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov edi, edx
cmp dword [esp + 0x24], 0
jne 0x50f8bc
mov ecx, dword [esp + 0xc]
mov edx, ecx
xor eax, eax
inc eax
add edx, eax
mov edi, dword [esp + 4]
mov esi, edi
mov eax, 0x80000000
adc esi, eax
cmp edx, 2
sbb esi, 0
mov eax, ecx
jb 0x51114c
mov edx, dword [esp + 0x10]
mov esi, edx
add esi, eax
mov ebx, dword [esp + 0x1c]
adc ebx, edi
seto al
mov edi, ebx
sar edi, 0x1f
lea ecx, [edi - 0x80000000]
mov dword [esp + 8], ecx
test al, al
cmove edi, esi
test al, al
mov eax, dword [esp + 8]
cmove eax, ebx
mov dword [esp + 0x2c], edi
mov dword [esp + 8], eax
mov eax, edx
add eax, dword [esp + 0xc]
mov edi, dword [esp + 0x1c]
mov esi, edi
adc esi, dword [esp + 4]
seto bl
mov ecx, esi
sar ecx, 0x1f
test bl, bl
lea edx, [ecx - 0x80000000]
cmove ecx, eax
test bl, bl
cmove edx, esi
mov dword [esp + 0x34], edx
xor ebx, ebx
inc ebx
mov eax, ebx
add eax, dword [esp + 0xc]
mov esi, 0x80000000
adc esi, dword [esp + 4]
add eax, 0xfffffffe
adc esi, 0xffffffff
cmp eax, 0xfffffffe
sbb esi, 0xffffffff
setb byte [esp + 0x38]
mov edx, dword [esp + 0x10]
mov eax, edx
add eax, ebx
mov esi, edi
mov ebx, 0x80000000
adc esi, ebx
cmp eax, 2
sbb esi, 0
setb al
mov esi, edx
xor esi, dword [esp + 0xc]
mov ebx, edi
xor ebx, dword [esp + 4]
or ebx, esi
setne ah
and ah, al
cmp dword [esp + 0x24], 0
mov esi, edi
mov edi, dword [esp + 0x34]
cmovne edi, esi
mov dword [esp + 0x34], edi
cmovne ecx, edx
mov dword [esp + 0x54], ecx
setne al
or al, byte [esp + 0x38]
mov byte [esp + 0x38], al
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x30], ecx
mov ecx, dword [esp + 8]
sbb dword [esp + 0x28], ecx
jge 0x50fbe9
mov byte [esp + 0x30], ah
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
lea ecx, [edx*2 + 1]
mov eax, dword [esp + 0x4c]
mov dword [esp + 8], ecx
cmp ecx, eax
mov dword [esp + 0x14], edx
mov ecx, dword [esp + 0x10]
jae 0x50fdcd
lea esi, [edx + edx]
add esi, 2
mov edx, edi
mov ecx, dword [esp]
sub edx, ecx
mov dword [esp + 0x5c], edx
sar edx, 5
cmp esi, eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x28], edx
jae 0x50fb70
mov eax, esi
cmp edx, esi
mov esi, dword [esp + 8]
jbe 0x51047b
cmp edx, esi
jbe 0x51047b
mov dword [esp + 0x2c], eax
mov ecx, eax
shl ecx, 5
mov edx, dword [esp]
lea eax, [edx + ecx]
cmp dword [edx + ecx + 0x14], 0
jne 0x50fb82
mov edx, dword [eax + 0xc]
mov ebx, dword [eax + 8]
mov ecx, ebx
xor edi, edi
inc edi
add ecx, edi
mov esi, edx
mov edi, 0x80000000
adc esi, edi
cmp ecx, 2
sbb esi, 0
mov ecx, dword [eax]
mov eax, dword [eax + 4]
jb 0x5110c2
add ecx, ebx
adc eax, edx
seto bl
mov esi, eax
sar esi, 0x1f
lea edx, [esi - 0x80000000]
test bl, bl
cmove esi, ecx
mov dword [esp + 0x50], esi
test bl, bl
cmove edx, eax
mov esi, dword [esp + 8]
xor edi, edi
inc edi
mov dword [esp + 0x3c], edx
mov ecx, esi
shl ecx, 5
add ecx, dword [esp]
cmp dword [ecx + 0x14], 0
jne 0x50fb66
mov edx, dword [ecx + 0xc]
mov ebx, dword [ecx + 8]
mov esi, ebx
add esi, edi
mov eax, edx
mov edi, 0x80000000
adc eax, edi
cmp esi, 2
sbb eax, 0
mov esi, dword [ecx]
mov ecx, dword [ecx + 4]
jb 0x51107d
add esi, ebx
adc ecx, edx
seto al
mov ebx, ecx
sar ebx, 0x1f
lea edx, [ebx - 0x80000000]
test al, al
cmove ebx, esi
test al, al
cmove edx, ecx
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x50]
cmp eax, ebx
sbb dword [esp + 0x3c], edx
mov ecx, dword [esp]
mov eax, dword [esp + 0x2c]
jl 0x50faba
mov eax, esi
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x28]
cmp edx, eax
jbe 0x51047b
mov dword [esp + 8], eax
shl eax, 5
lea edx, [ecx + eax]
cmp dword [ecx + eax + 0x14], 0
mov dword [esp + 0x2c], edx
jne 0x50fb79
mov ecx, dword [edx + 0xc]
mov ebx, edx
mov edx, dword [edx + 8]
mov eax, edx
xor esi, esi
inc esi
add eax, esi
mov esi, ecx
mov edi, 0x80000000
adc esi, edi
cmp eax, 2
mov edi, dword [ebx]
sbb esi, 0
mov eax, dword [ebx + 4]
jb 0x51103e
add edi, edx
adc eax, ecx
seto bl
mov edx, eax
sar edx, 0x1f
lea ecx, [edx - 0x80000000]
test bl, bl
cmove edx, edi
test bl, bl
cmove ecx, eax
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x54]
mov esi, dword [esp + 0x34]
cmp byte [esp + 0x38], 0
je 0x510fec
cmp edx, eax
sbb ecx, esi
jl 0x5103d3
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
jmp 0x50fdd9
mov ebx, dword [ecx]
mov edx, dword [ecx + 4]
jmp 0x50faa5
mov eax, dword [esp + 8]
jmp 0x50fac6
mov eax, edx
mov edx, dword [edx]
mov ecx, dword [eax + 4]
jmp 0x50fb34
mov ecx, dword [eax]
mov dword [esp + 0x50], ecx
mov edx, dword [eax + 4]
jmp 0x50fa48
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0x10]
mov eax, dword [esp + 0x18]
cmp eax, edx
jae 0x510ce5
test eax, eax
je 0x510fc5
mov ebx, eax
mov dword [eax], ecx
mov eax, dword [esp + 0x1c]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0xc]
mov dword [ebx + 8], eax
mov eax, dword [esp + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [esp + 0x48]
mov dword [ebx + 0x10], eax
mov eax, dword [esp + 0x24]
mov dword [ebx + 0x14], eax
mov eax, dword [ebp + 8]
mov dword [ebx + 0x18], eax
add ebx, 0x20
mov eax, dword [esp + 0x20]
mov dword [eax + 0xc], ebx
mov ebx, eax
jmp 0x50fc71
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
test esi, esi
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], edi
jne 0x51048a
sub edi, dword [esp]
mov ebx, edi
sar ebx, 5
cmp ebx, esi
je 0x50fb90
jbe 0x51047b
mov edi, esi
mov eax, esi
shl eax, 5
mov ebx, dword [esp]
mov edx, dword [esp + 0x1c]
mov dword [ebx + eax + 4], edx
mov dword [ebx + eax], ecx
mov ecx, dword [esp + 4]
mov dword [ebx + eax + 0xc], ecx
mov ecx, dword [esp + 0xc]
mov dword [ebx + eax + 8], ecx
mov ecx, dword [esp + 0x48]
mov dword [ebx + eax + 0x10], ecx
mov ecx, dword [esp + 0x24]
mov dword [ebx + eax + 0x14], ecx
mov ecx, dword [ebx + eax + 0x18]
mov edx, ecx
shr edx, 0xe
mov esi, ecx
shr esi, 0x13
mov esi, dword [esi*4 + 0x64c804]
bt esi, edx
lea esi, [ebx + eax]
mov ebx, dword [esp + 0x20]
jb 0x50fca9
mov eax, dword [ebp + 8]
mov dword [esi + 0x18], eax
mov esi, edi
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub ecx, eax
sar ecx, 5
cmp ecx, esi
jbe 0x51047b
mov ecx, esi
shl ecx, 5
mov eax, dword [eax + ecx + 0x18]
mov dword [eax + 0xa0], esi
mov eax, dword [ebx + 0xc]
sub eax, dword [ebx + 8]
sar eax, 5
cmp eax, esi
ja 0x50fe74
jmp 0x51047b
push ecx
call fcn.004f0f10
add esp, 4
jmp 0x50fc69
cmp eax, 0xffffffff
je 0x50fe78
mov dword [esp + 0x40], esi
mov dword [esp + 0x58], esp
mov esi, dword [edi + 0xa0]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub ecx, eax
sar ecx, 5
cmp ecx, esi
jbe 0x51047b
mov ecx, esi
shl ecx, 5
mov eax, dword [eax + ecx + 0x18]
mov dword [eax + 0xa0], 0xffffffff
mov eax, dword [ebx + 8]
mov edi, dword [ebx + 0xc]
mov ecx, edi
sub ecx, eax
sar ecx, 5
dec ecx
cmp ecx, esi
jne 0x510967
cmp eax, edi
je 0x511002
mov esi, edi
add esi, 0xffffffe0
je 0x511011
mov eax, dword [edi - 8]
mov ecx, eax
shr ecx, 0xe
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x64c804]
bt edx, ecx
jae 0x50fd3c
push eax
call fcn.004f0f10
add esp, 4
mov dword [edi - 8], 0
mov dword [ebx + 0xc], esi
jmp 0x50fe74
mov eax, dword [ebx + 0x10]
cmp edi, eax
jae 0x510c1c
test edi, edi
je 0x510fc5
mov dword [edi], ecx
mov dword [edi + 4], esi
mov eax, dword [esp + 0xc]
mov dword [edi + 8], eax
mov eax, dword [esp + 4]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x48]
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0x24]
mov dword [edi + 0x14], eax
mov eax, dword [ebp + 8]
mov dword [edi + 0x18], eax
add edi, 0x20
mov dword [ebx + 0xc], edi
jmp 0x50fe41
push ecx
call fcn.004f0f10
add esp, 4
jmp 0x50fe37
mov dword [esp + 0x24], 0xffffffff
mov dword [esp + 4], 0xffffff00
mov esi, 0xffffffff
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x10], 0xffffffff
mov edx, 0xffffffff
jmp 0x50fea6
mov eax, edi
sub eax, dword [esp]
mov dword [esp + 0x5c], eax
sar eax, 5
cmp eax, edx
je 0x50fd4b
jbe 0x51047b
mov eax, edx
shl eax, 5
mov edi, dword [esp]
mov dword [edi + eax + 4], esi
mov dword [edi + eax], ecx
mov ecx, dword [esp + 4]
mov dword [edi + eax + 0xc], ecx
mov ecx, dword [esp + 0xc]
mov dword [edi + eax + 8], ecx
mov ecx, dword [esp + 0x48]
mov dword [edi + eax + 0x10], ecx
mov ecx, dword [esp + 0x24]
mov dword [edi + eax + 0x14], ecx
mov ecx, dword [edi + eax + 0x18]
mov edx, ecx
shr edx, 0xe
mov esi, ecx
shr esi, 0x13
mov esi, dword [esi*4 + 0x64c804]
bt esi, edx
lea esi, [edi + eax]
jb 0x50fd90
mov eax, dword [ebp + 8]
mov dword [esi + 0x18], eax
mov edx, dword [esp + 0x14]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub ecx, eax
sar ecx, 5
cmp ecx, edx
jbe 0x51047b
mov ecx, edx
shl ecx, 5
mov eax, dword [eax + ecx + 0x18]
mov dword [eax + 0xa0], edx
mov eax, dword [ebx + 0xc]
sub eax, dword [ebx + 8]
sar eax, 5
cmp eax, edx
jbe 0x51047b
mov esp, dword [esp + 0x58]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
cmp eax, ecx
je 0x50fd9e
mov edx, dword [eax]
mov dword [esp + 4], edx
mov edx, dword [eax + 4]
mov esi, dword [eax + 0xc]
mov dword [esp + 0x10], esi
mov edi, dword [eax + 8]
mov dword [esp + 0xc], edi
mov edi, dword [eax + 0x14]
mov dword [esp + 0x24], edi
xor esi, esi
cmp dword [esp + 0x8c], 0xffffffff
je 0x50fec7
movzx edi, byte [esp + 0x78]
mov ebx, dword [esp + 0x84]
or ebx, edi
cmp ebx, 1
je 0x510fd4
cmp byte [esp + 0x47], 0
je 0x50fed9
cmp dword [esp + 0x48], 1
je 0x510fe0
mov edi, dword [esp + 0x7c]
cmp dword [esp + 0x80], edi
je 0x50ffaf
cmp eax, ecx
je 0x50ffaf
cmp esi, dword [esp + 0x74]
jne 0x50ff26
mov edi, dword [esp + 4]
xor edi, dword [esp + 0x70]
xor edx, dword [esp + 0x6c]
or edx, edi
jne 0x50ff26
mov edx, dword [esp + 0xc]
xor edx, dword [esp + 0x64]
mov esi, dword [esp + 0x10]
xor esi, dword [esp + 0x68]
or esi, edx
jne 0x50ff26
mov edx, dword [esp + 0x24]
cmp edx, dword [esp + 0x60]
je 0x50ff8b
mov esi, dword [ebp + 0xc]
cmp eax, ecx
je 0x50ffa3
movups xmm0, xmmword [eax]
mov eax, dword [eax + 0x14]
movups xmmword [esp + 0x90], xmm0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], eax
mov al, 1
mov ebx, dword [esp + 0x20]
mov byte [esp + 0xa8], al
mov eax, dword [ebx]
mov edi, dword [eax + 8]
mov ecx, edi
call dword [0x63e64c]
sub esp, 0x24
movups xmm0, xmmword [esp + 0xb4]
movups xmm1, xmmword [esp + 0xc4]
movups xmmword [esp + 0x14], xmm1
movups xmmword [esp + 4], xmm0
mov dword [esp], esi
mov ecx, ebx
call edi
mov ecx, dword [esp + 0xb0]
xor ecx, ebp
call fcn.00568175
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x28
mov byte [esp + 0x90], 0
xor eax, eax
jmp 0x50ff4f
cmp eax, ecx
setne dl
mov esi, dword [esp + 0x7c]
cmp dword [esp + 0x80], esi
setne dh
cmp dh, dl
jne 0x50ff26
jmp 0x50ff8b
mov dword [esp + 0x78], 0
jmp 0x50f747
push edi
call fcn.004f0de0
add esp, 4
jmp 0x50f7aa
mov eax, dword [edx]
mov dword [esp + 0x30], eax
mov eax, dword [edx + 4]
jmp 0x50f853
mov dword [esp + 0x70], 0xffffff00
mov dword [esp + 0x6c], 0xffffffff
mov dword [esp + 0x64], 0xffffffff
mov dword [esp + 0x68], 0xffffffff
mov dword [esp + 0x74], 0xffffffff
mov dword [esp + 0x60], 0xffffffff
jmp 0x50f6e5
mov eax, dword [ebx + 0x10]
cmp ecx, eax
jae 0x510da8
test ecx, ecx
je 0x510fc5
mov eax, dword [esp + 4]
mov dword [ecx], eax
mov eax, dword [esp]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x10]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0xc]
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x48]
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x24]
mov dword [ecx + 0x14], eax
mov eax, dword [ebp + 8]
mov dword [ecx + 0x18], eax
add ecx, 0x20
mov dword [ebx + 0xc], ecx
jmp 0x510145
mov eax, edi
shr eax, 0x15
mov byte [eax + 0x654804], 1
jmp 0x5100bd
mov eax, dword [ecx]
mov dword [esp + 4], eax
mov eax, edi
shr eax, 0xe
mov edx, edi
shr edx, 0x13
mov edx, dword [edx*4 + 0x64c804]
bt edx, eax
mov eax, dword [ecx + 4]
mov dword [esp], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0xc], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0x10], eax
jae 0x510076
push edi
call fcn.004f0de0
add esp, 4
mov edi, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
mov edx, ecx
sub edx, edi
sar edx, 5
test edx, edx
mov dword [esp + 0x1c], edx
jne 0x510188
mov esi, ecx
sub esi, edi
sar esi, 5
cmp esi, edx
je 0x51002a
jbe 0x51047b
mov eax, edx
shl eax, 5
mov ecx, dword [esp]
mov dword [edi + eax + 4], ecx
mov ecx, dword [esp + 4]
mov dword [edi + eax], ecx
mov ecx, dword [esp + 0xc]
mov dword [edi + eax + 0xc], ecx
mov ecx, dword [esp + 0x10]
mov dword [edi + eax + 8], ecx
mov ecx, dword [esp + 0x48]
mov dword [edi + eax + 0x10], ecx
mov ecx, dword [esp + 0x24]
mov dword [edi + eax + 0x14], ecx
mov ecx, dword [edi + eax + 0x18]
mov edx, ecx
shr edx, 0xe
mov esi, ecx
shr esi, 0x13
mov esi, dword [esi*4 + 0x64c804]
bt esi, edx
lea esi, [edi + eax]
jb 0x51017d
mov eax, dword [ebp + 8]
mov dword [esi + 0x18], eax
mov edx, dword [esp + 0x1c]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub ecx, eax
sar ecx, 5
cmp ecx, edx
jbe 0x51047b
mov ecx, edx
shl ecx, 5
mov eax, dword [eax + ecx + 0x18]
mov dword [eax + 0xa0], edx
mov eax, dword [ebx + 0xc]
sub eax, dword [ebx + 8]
sar eax, 5
cmp eax, edx
ja 0x50fe78
jmp 0x51047b
push ecx
call fcn.004f0f10
add esp, 4
jmp 0x51013b
mov dword [esp + 0x40], esi
lea eax, [edx - 1]
shr eax, 1
mov dword [esp + 0x34], ecx
mov esi, ecx
mov dword [esp + 0x30], edi
sub esi, edi
sar esi, 5
mov dword [esp + 0x14], eax
cmp esi, eax
jbe 0x51047b
mov ecx, dword [esp + 4]
add ecx, dword [esp + 0x10]
mov edi, dword [esp]
adc edi, dword [esp + 0xc]
seto dl
mov eax, edi
sar eax, 0x1f
test dl, dl
cmovne ecx, eax
add eax, 0x80000000
test dl, dl
cmove eax, edi
mov edx, dword [esp + 0x10]
add edx, 1
mov edi, dword [esp + 0xc]
adc edi, 0x80000000
add edx, 0xfffffffe
adc edi, 0xffffffff
cmp dword [esp + 0x24], 0
cmovne ecx, dword [esp + 4]
cmovne eax, dword [esp]
mov dword [esp + 0x28], eax
mov dword [esp + 0x58], ecx
jne 0x51020d
cmp edx, 0xfffffffe
sbb edi, 0xffffffff
jae 0x511291
mov ecx, dword [esp + 0x14]
shl ecx, 5
mov edi, dword [esp + 0x30]
add ecx, edi
cmp dword [ecx + 0x14], 0
mov dword [esp + 8], ecx
jne 0x510298
mov ebx, dword [ecx + 0xc]
mov eax, dword [ecx + 8]
mov edx, eax
xor ecx, ecx
inc ecx
add edx, ecx
mov dword [esp + 0x18], ebx
mov ecx, 0x80000000
adc ebx, ecx
mov ecx, dword [esp + 8]
cmp edx, 2
mov edx, dword [ecx]
sbb ebx, 0
mov ebx, dword [ecx + 4]
jb 0x511210
add edx, eax
mov dword [esp + 0x38], edx
adc ebx, dword [esp + 0x18]
seto byte [esp + 0x18]
mov eax, ebx
sar eax, 0x1f
lea edx, [eax - 0x80000000]
cmp byte [esp + 0x18], 0
cmove eax, dword [esp + 0x38]
cmp byte [esp + 0x18], 0
cmove edx, ebx
mov ebx, dword [esp + 0x20]
cmp dword [esp + 0x58], eax
sbb dword [esp + 0x28], edx
mov edx, dword [esp + 0x1c]
jl 0x51029f
mov ecx, dword [esp + 0x34]
jmp 0x5100dd
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
jmp 0x510281
cmp esi, edx
mov eax, dword [esp + 0x34]
je 0x510346
mov esi, dword [esp + 0x40]
jbe 0x51047b
mov eax, edx
shl eax, 5
movsd xmm0, qword [ecx + 0x10]
movsd qword [edi + eax + 0x10], xmm0
movups xmm0, xmmword [ecx]
movups xmmword [edi + eax], xmm0
cmp edx, dword [esp + 0x14]
je 0x510306
add edi, eax
mov eax, dword [edi + 0x18]
mov ecx, eax
shr ecx, 0xe
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x64c804]
bt edx, ecx
jb 0x511283
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 0x18]
mov dword [edi + 0x18], eax
mov dword [ecx + 0x18], 0
mov edx, dword [esp + 0x1c]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub ecx, eax
sar ecx, 5
cmp ecx, edx
jbe 0x51047b
mov ecx, edx
shl ecx, 5
mov eax, dword [eax + ecx + 0x18]
mov dword [eax + 0xa0], edx
mov edi, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
mov eax, ecx
sub eax, edi
sar eax, 5
cmp eax, edx
mov edx, dword [esp + 0x14]
ja 0x5100ca
jmp 0x51047b
cmp edx, dword [esp + 0x14]
mov esi, dword [esp + 0x40]
jbe 0x51047b
cmp eax, dword [ebx + 0x10]
jae 0x510eba
test eax, eax
je 0x510fc5
movsd xmm0, qword [ecx + 0x10]
movsd qword [eax + 0x10], xmm0
movups xmm0, xmmword [ecx]
movups xmmword [eax], xmm0
mov edi, ecx
mov ecx, dword [ecx + 0x18]
mov dword [eax + 0x18], ecx
mov dword [edi + 0x18], 0
add eax, 0x20
mov dword [ebx + 0xc], eax
jmp 0x510306
cmp edx, dword [esp + 8]
jbe 0x51047b
cmp edi, dword [ebx + 0x10]
jae 0x510e8e
test edi, edi
je 0x510fc5
mov ecx, dword [esp + 0x2c]
movsd xmm0, qword [ecx + 0x10]
movsd qword [edi + 0x10], xmm0
movups xmm0, xmmword [ecx]
movups xmmword [edi], xmm0
mov eax, dword [ecx + 0x18]
mov dword [edi + 0x18], eax
mov dword [ecx + 0x18], 0
add edi, 0x20
mov dword [ebx + 0xc], edi
jmp 0x510441
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x28], edx
mov esi, dword [esp + 0x1c]
je 0x51038f
jbe 0x51047b
mov eax, edx
shl eax, 5
mov edi, dword [esp + 0x2c]
movsd xmm0, qword [edi + 0x10]
mov ecx, dword [esp]
movsd qword [ecx + eax + 0x10], xmm0
movups xmm0, xmmword [edi]
movups xmmword [ecx + eax], xmm0
cmp edx, dword [esp + 8]
je 0x510441
add ecx, eax
mov eax, dword [ecx + 0x18]
mov edi, ecx
mov ecx, eax
shr ecx, 0xe
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x64c804]
bt edx, ecx
jb 0x5111a6
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 0x18]
mov dword [edi + 0x18], eax
mov dword [ecx + 0x18], 0
mov edx, dword [esp + 0x14]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub ecx, eax
sar ecx, 5
cmp ecx, edx
jbe 0x51047b
mov ecx, edx
shl ecx, 5
mov eax, dword [eax + ecx + 0x18]
mov dword [eax + 0xa0], edx
mov ecx, dword [ebx + 8]
mov edi, dword [ebx + 0xc]
mov eax, edi
mov dword [esp], ecx
sub eax, ecx
sar eax, 5
cmp eax, edx
mov edx, dword [esp + 8]
ja 0x50f98a
push str....._third_partylibc_srcinclude_vector:1411:_assertion___n___size___failed:_vector___index_out_of_bounds_n
push 0x624173
call fcn.00591ed0
mov byte [esp + 0x30], ah
lea ecx, [esi - 1]
shr ecx, 1
mov eax, dword [esp]
sub edi, eax
mov ebx, edi
sar ebx, 5
cmp ebx, ecx
jbe 0x51047b
mov edx, dword [esp + 0x54]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 8], edx
cmp byte [esp + 0x38], 0
je 0x511020
mov dword [esp + 0x50], edi
mov dword [esp + 0x2c], ecx
shl ecx, 5
add ecx, eax
cmp dword [ecx + 0x14], 0
mov dword [esp + 0x4c], ecx
jne 0x510541
mov dword [esp + 0x14], esi
mov esi, dword [ecx + 0xc]
mov edi, dword [ecx + 8]
mov eax, edi
xor edx, edx
inc edx
add eax, edx
mov dword [esp + 0x3c], esi
mov edx, 0x80000000
adc esi, edx
cmp eax, 2
mov edx, dword [ecx]
sbb esi, 0
mov eax, dword [ecx + 4]
jb 0x5111b4
add edx, edi
adc eax, dword [esp + 0x3c]
mov esi, edx
seto dl
mov edi, eax
sar edi, 0x1f
lea ecx, [edi - 0x80000000]
test dl, dl
cmove edi, esi
test dl, dl
mov edx, ecx
cmove edx, eax
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x28]
cmp ecx, edi
sbb eax, edx
jl 0x510548
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x50]
jmp 0x50fc09
mov edi, dword [ecx]
mov edx, dword [ecx + 4]
jmp 0x510526
cmp ebx, esi
je 0x5105f7
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
jbe 0x51047b
mov eax, esi
shl eax, 5
mov edx, dword [esp + 0x4c]
movsd xmm0, qword [edx + 0x10]
mov ebx, dword [esp]
movsd qword [ebx + eax + 0x10], xmm0
movups xmm0, xmmword [edx]
movups xmmword [ebx + eax], xmm0
cmp esi, ecx
je 0x5105b0
add ebx, eax
mov eax, dword [ebx + 0x18]
mov ecx, eax
shr ecx, 0xe
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x64c804]
bt edx, ecx
jb 0x511267
mov ecx, dword [esp + 0x4c]
mov eax, dword [ecx + 0x18]
mov dword [ebx + 0x18], eax
mov dword [ecx + 0x18], 0
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
sub ecx, eax
sar ecx, 5
cmp ecx, esi
jbe 0x51047b
mov ecx, esi
shl ecx, 5
mov eax, dword [eax + ecx + 0x18]
mov dword [eax + 0xa0], esi
mov ecx, dword [edi + 8]
mov edi, dword [edi + 0xc]
mov eax, edi
mov dword [esp], ecx
sub eax, ecx
sar eax, 5
cmp eax, esi
mov esi, dword [esp + 0x2c]
mov ah, byte [esp + 0x30]
ja 0x50fbf1
jmp 0x51047b
cmp esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x20]
jbe 0x51047b
mov eax, dword [esp + 0x18]
cmp eax, dword [edi + 0x10]
mov edx, dword [esp + 0x4c]
jae 0x510e80
test eax, eax
je 0x510fc5
movsd xmm0, qword [edx + 0x10]
movsd qword [eax + 0x10], xmm0
movups xmm0, xmmword [edx]
movups xmmword [eax], xmm0
mov ecx, dword [edx + 0x18]
mov dword [eax + 0x18], ecx
mov dword [edx + 0x18], 0
add eax, 0x20
mov dword [edi + 0xc], eax
jmp 0x5105b0
cmp edi, dword [ebx + 0x10]
jae 0x510faa
test edi, edi
je 0x510fc5
mov ecx, dword [esp + 0x28]
movsd xmm0, qword [ecx + 0x10]
movsd qword [edi + 0x10], xmm0
movups xmm0, xmmword [ecx]
movups xmmword [edi], xmm0
mov eax, dword [ecx + 0x18]
mov dword [edi + 0x18], eax
mov dword [ecx + 0x18], 0
add edi, 0x20
mov dword [ebx + 0xc], edi
jmp 0x510801
lea edx, [esi - 1]
shr edx, 1
mov dword [esp + 0x30], edi
mov eax, edi
mov dword [esp + 0xc], ecx
sub eax, ecx
sar eax, 5
mov dword [esp + 0x10], edx
cmp eax, edx
jbe 0x51047b
mov edx, dword [esp + 8]
add edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x34]
adc ecx, dword [esp + 0x14]
seto bl
mov esi, ecx
sar esi, 0x1f
test bl, bl
cmovne edx, esi
add esi, 0x80000000
test bl, bl
cmove esi, ecx
xor edi, edi
inc edi
add edi, dword [esp + 0x18]
mov ecx, 0x80000000
adc ecx, dword [esp + 0x14]
add edi, 0xfffffffe
adc ecx, 0xffffffff
cmp dword [esp + 0x38], 0
cmovne edx, dword [esp + 8]
cmovne esi, dword [esp + 0x34]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x40]
jne 0x510706
cmp edi, 0xfffffffe
sbb ecx, 0xffffffff
jae 0x5113eb
mov edi, dword [esp + 0x10]
shl edi, 5
add edi, dword [esp + 0xc]
cmp dword [edi + 0x14], 0
mov dword [esp + 0x28], edi
jne 0x51078d
mov dword [esp], edx
mov ebx, dword [edi + 0xc]
mov ecx, dword [edi + 8]
mov esi, ecx
mov edx, edi
xor edi, edi
inc edi
add esi, edi
mov dword [esp + 0x1c], ebx
mov edi, 0x80000000
adc ebx, edi
cmp esi, 2
mov esi, dword [edx]
sbb ebx, 0
mov edi, dword [edx + 4]
jb 0x511379
add esi, ecx
adc edi, dword [esp + 0x1c]
seto bl
mov ecx, edi
sar ecx, 0x1f
lea edx, [ecx - 0x80000000]
test bl, bl
cmove ecx, esi
test bl, bl
cmove edx, edi
mov ebx, edx
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x30]
mov edx, dword [esp]
cmp edx, ecx
sbb dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x20]
jl 0x510798
mov esi, dword [esp + 4]
mov ecx, dword [esp + 0xc]
jmp 0x51084f
mov ecx, dword [edi]
mov ebx, dword [edi + 4]
mov edi, dword [esp + 0x30]
jmp 0x510774
mov edx, dword [esp + 4]
cmp eax, edx
mov ecx, dword [esp + 0xc]
je 0x510646
jbe 0x51047b
mov eax, edx
shl eax, 5
mov edi, dword [esp + 0x28]
movsd xmm0, qword [edi + 0x10]
movsd qword [ecx + eax + 0x10], xmm0
movups xmm0, xmmword [edi]
movups xmmword [ecx + eax], xmm0
cmp edx, dword [esp + 0x10]
je 0x510801
add ecx, eax
mov eax, dword [ecx + 0x18]
mov esi, ecx
mov ecx, eax
shr ecx, 0xe
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x64c804]
bt edx, ecx
jb 0x5113dd
mov eax, dword [edi + 0x18]
mov dword [esi + 0x18], eax
mov dword [edi + 0x18], 0
mov edx, dword [esp + 4]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub ecx, eax
sar ecx, 5
cmp ecx, edx
jbe 0x51047b
mov ecx, edx
shl ecx, 5
mov eax, dword [eax + ecx + 0x18]
mov dword [eax + 0xa0], edx
mov ecx, dword [ebx + 8]
mov edi, dword [ebx + 0xc]
mov eax, edi
sub eax, ecx
sar eax, 5
cmp eax, edx
mov esi, dword [esp + 0x10]
jbe 0x51047b
test esi, esi
mov dword [esp + 4], esi
jne 0x510683
mov eax, edi
sub eax, ecx
sar eax, 5
cmp eax, esi
je 0x510902
jbe 0x51047b
mov edi, ecx
mov eax, esi
shl eax, 5
mov ecx, dword [esp + 0x34]
mov dword [edi + eax + 4], ecx
mov ecx, dword [esp + 8]
mov dword [edi + eax], ecx
mov ecx, dword [esp + 0x14]
mov dword [edi + eax + 0xc], ecx
mov ecx, dword [esp + 0x18]
mov dword [edi + eax + 8], ecx
mov ecx, dword [esp + 0x54]
mov dword [edi + eax + 0x10], ecx
mov ecx, dword [esp + 0x38]
mov dword [edi + eax + 0x14], ecx
mov ecx, dword [edi + eax + 0x18]
mov edx, ecx
shr edx, 0xe
mov esi, ecx
shr esi, 0x13
mov esi, dword [esi*4 + 0x64c804]
bt esi, edx
lea edi, [edi + eax]
jb 0x5108f7
mov eax, dword [esp + 0x4c]
mov dword [edi + 0x18], eax
mov esi, dword [esp + 4]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub ecx, eax
sar ecx, 5
cmp ecx, esi
jbe 0x51047b
mov ecx, esi
shl ecx, 5
mov eax, dword [eax + ecx + 0x18]
mov dword [eax + 0xa0], esi
mov eax, dword [ebx + 8]
mov edi, dword [ebx + 0xc]
mov ecx, edi
sub ecx, eax
sar ecx, 5
cmp ecx, esi
ja 0x50fd07
jmp 0x51047b
push ecx
call fcn.004f0f10
add esp, 4
jmp 0x5108b0
mov eax, dword [ebx + 0x10]
cmp edi, eax
jae 0x510ecc
test edi, edi
je 0x510fc5
mov eax, dword [esp + 8]
mov dword [edi], eax
mov eax, dword [esp + 0x34]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x18]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x14]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x54]
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0x38]
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0x4c]
mov dword [edi + 0x18], eax
add edi, 0x20
mov dword [ebx + 0xc], edi
jmp 0x5108bb
mov esi, dword [ecx]
mov edx, dword [ecx + 4]
jmp 0x510a80
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
jmp 0x510b0a
cmp edi, eax
je 0x51047b
shl ecx, 5
mov eax, dword [eax + ecx + 0x18]
mov dword [eax + 0xa0], 0xffffffff
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
je 0x51047b
mov ecx, dword [eax - 0x20]
mov dword [esp + 8], ecx
mov ecx, dword [eax - 0x1c]
mov dword [esp + 0x34], ecx
mov ecx, dword [eax - 0x14]
mov dword [esp + 0x14], ecx
mov ecx, dword [eax - 0x18]
mov dword [esp + 0x18], ecx
mov ecx, dword [eax - 0x10]
mov dword [esp + 0x54], ecx
mov ecx, dword [eax - 0xc]
mov dword [esp + 0x38], ecx
mov ecx, dword [eax - 8]
mov dword [esp + 0x4c], ecx
mov dword [eax - 8], 0
mov ecx, dword [ebx + 8]
mov edi, dword [ebx + 0xc]
mov edx, edi
sub edx, ecx
sar edx, 5
dec edx
mov dword [esp + 0x24], edx
lea eax, [esi*2 + 1]
cmp eax, edx
jae 0x51083c
lea edx, [esi + esi]
add edx, 2
mov dword [esp + 0x30], edi
mov dword [esp + 0xc], ecx
sub edi, ecx
sar edi, 5
cmp edx, dword [esp + 0x24]
mov dword [esp + 4], esi
mov dword [esp + 0x1c], edi
jae 0x51095a
cmp edi, edx
jbe 0x51047b
mov ebx, edi
mov dword [esp + 0x10], eax
cmp edi, eax
mov eax, dword [esp + 0xc]
jbe 0x51047b
mov dword [esp + 0x28], edx
shl edx, 5
lea ecx, [eax + edx]
cmp dword [eax + edx + 0x14], 0
jne 0x510950
mov edi, dword [ecx + 0xc]
mov esi, dword [ecx + 8]
mov edx, esi
xor eax, eax
inc eax
add edx, eax
mov dword [esp], edi
mov eax, 0x80000000
adc edi, eax
cmp edx, 2
sbb edi, 0
mov edi, dword [ecx]
mov edx, dword [ecx + 4]
jb 0x5112f0
add edi, esi
adc edx, dword [esp]
seto cl
mov esi, edx
sar esi, 0x1f
lea eax, [esi - 0x80000000]
test cl, cl
cmove esi, edi
test cl, cl
cmove eax, edx
mov edx, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x2c], esi
mov ebx, eax
shl ebx, 5
mov ecx, dword [esp + 0xc]
add ebx, ecx
cmp dword [ebx + 0x14], 0
jne 0x510bc8
mov dword [esp], edx
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 8]
mov ecx, edi
xor eax, eax
inc eax
add ecx, eax
mov edx, esi
mov eax, 0x80000000
adc edx, eax
cmp ecx, 2
sbb edx, 0
mov ecx, dword [ebx]
mov ebx, dword [ebx + 4]
jb 0x51133a
add ecx, edi
adc ebx, esi
seto dl
mov edi, ebx
sar edi, 0x1f
lea esi, [edi - 0x80000000]
test dl, dl
cmove edi, ecx
test dl, dl
cmove esi, ebx
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
mov edx, dword [esp]
cmp dword [esp + 0x2c], edi
sbb edx, esi
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 4]
mov edx, dword [esp + 0x24]
jl 0x510b06
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x1c]
cmp edi, esi
mov dword [esp + 0x10], eax
je 0x510bd2
cmp edi, eax
jbe 0x51047b
cmp edi, esi
jbe 0x51047b
mov ebx, eax
shl ebx, 5
mov edi, esi
shl edi, 5
movsd xmm0, qword [ecx + ebx + 0x10]
movsd qword [ecx + edi + 0x10], xmm0
movups xmm0, xmmword [ecx + ebx]
movups xmmword [ecx + edi], xmm0
cmp esi, eax
je 0x510b84
add edi, ecx
mov eax, dword [edi + 0x18]
mov esi, ecx
mov ecx, eax
shr ecx, 0xe
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x64c804]
bt edx, ecx
jb 0x511275
add esi, ebx
mov eax, dword [esi + 0x18]
mov dword [edi + 0x18], eax
mov dword [esi + 0x18], 0
mov esi, dword [esp + 4]
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub ecx, eax
sar ecx, 5
cmp ecx, esi
jbe 0x51047b
mov ecx, esi
shl ecx, 5
mov eax, dword [eax + ecx + 0x18]
mov dword [eax + 0xa0], esi
mov ecx, dword [ebx + 8]
mov edi, dword [ebx + 0xc]
mov eax, edi
sub eax, ecx
sar eax, 5
cmp eax, esi
mov esi, dword [esp + 0x10]
ja 0x5109d6
jmp 0x51047b
mov edi, dword [ebx]
mov esi, dword [ebx + 4]
jmp 0x510aee
cmp esi, eax
jbe 0x51047b
shl eax, 5
add ecx, eax
mov eax, dword [esp + 0x30]
cmp eax, dword [ebx + 0x10]
jae 0x510ea6
test eax, eax
je 0x510fc5
movsd xmm0, qword [ecx + 0x10]
movsd qword [eax + 0x10], xmm0
movups xmm0, xmmword [ecx]
movups xmmword [eax], xmm0
mov edi, dword [ecx + 0x18]
mov dword [eax + 0x18], edi
mov dword [ecx + 0x18], 0
add eax, 0x20
mov dword [ebx + 0xc], eax
jmp 0x510b84
cmp edx, 0x7ffffff
jae 0x5113d3
lea ecx, [edx + 1]
sub eax, dword [esp]
mov esi, edx
mov edx, eax
sar edx, 4
cmp edx, ecx
cmovbe edx, ecx
cmp eax, 0x7fffffe0
mov ebx, 0x7ffffff
cmovb ebx, edx
cmp ebx, 0x8000000
jae 0x5113d8
shl ebx, 5
push ebx
call fcn.00564ea5
add esp, 4
shl esi, 5
add esi, eax
je 0x510fc5
mov ecx, eax
mov eax, dword [esp + 0x10]
mov dword [esi], eax
mov eax, dword [esp + 0x1c]
mov dword [esi + 4], eax
mov eax, dword [esp + 0xc]
mov dword [esi + 8], eax
mov eax, dword [esp + 4]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x48]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x24]
mov dword [esi + 0x14], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x18], eax
add ebx, ecx
add esi, 0x20
push dword [esp + 0x5c]
mov edi, dword [esp + 4]
push edi
push ecx
mov dword [esp + 0x10], ecx
call fcn.00569390
mov ecx, edi
add esp, 0xc
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 4]
mov dword [eax + 8], edx
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], ebx
mov ebx, eax
test edi, edi
mov edi, esi
jne 0x510cda
mov edx, dword [esp + 0x14]
jmp 0x50fd88
push ecx
call fcn.00564ea0
add esp, 4
jmp 0x510cd1
mov dword [esp + 0x14], esi
cmp ebx, 0x7ffffff
jae 0x5113d3
lea ecx, [ebx + 1]
sub edx, dword [esp]
mov eax, edx
sar edx, 4
cmp edx, ecx
cmovbe edx, ecx
cmp eax, 0x7fffffe0
mov eax, 0x7ffffff
cmovb eax, edx
cmp eax, 0x8000000
jae 0x5113d8
shl eax, 5
mov esi, eax
push eax
call fcn.00564ea5
add esp, 4
shl ebx, 5
add ebx, eax
je 0x510fc5
mov ecx, eax
mov eax, dword [esp + 0x10]
mov dword [ebx], eax
mov eax, dword [esp + 0x1c]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0xc]
mov dword [ebx + 8], eax
mov eax, dword [esp + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [esp + 0x48]
mov dword [ebx + 0x10], eax
mov eax, dword [esp + 0x24]
mov dword [ebx + 0x14], eax
mov eax, dword [ebp + 8]
mov dword [ebx + 0x18], eax
add esi, ecx
add ebx, 0x20
push edi
mov edi, dword [esp + 4]
push edi
push ecx
mov dword [esp + 0x10], ecx
call fcn.00569390
add esp, 0xc
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 4]
mov dword [eax + 8], edx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], esi
test edi, edi
jne 0x510d9d
mov esi, dword [esp + 0x14]
jmp 0x50fbdb
push edi
call fcn.00564ea0
add esp, 4
jmp 0x510d94
lea ecx, [esi + 1]
cmp ecx, 0x8000000
jae 0x5113d3
sub eax, edi
mov edx, eax
sar edx, 4
cmp edx, ecx
cmovbe edx, ecx
cmp eax, 0x7fffffe0
mov edi, 0x7ffffff
cmovb edi, edx
test edi, edi
je 0x511448
cmp edi, 0x8000000
jae 0x5113d8
mov eax, edi
shl eax, 5
push eax
call fcn.00564ea5
add esp, 4
mov ebx, eax
shl esi, 5
add esi, ebx
je 0x510fc5
shl edi, 5
add ebx, edi
mov eax, dword [esp + 4]
mov dword [esi], eax
mov eax, dword [esp]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x10]
mov dword [esi + 8], eax
mov eax, dword [esp + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x48]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x24]
mov dword [esi + 0x14], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x18], eax
lea eax, [esi + 0x20]
mov dword [esp + 0x34], eax
mov edi, dword [esp + 0x20]
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
sub ecx, eax
sub esi, ecx
push ecx
push eax
push esi
call fcn.00569390
mov ecx, dword [esp + 0x40]
add esp, 0xc
mov eax, dword [edi + 8]
mov dword [edi + 8], esi
mov dword [edi + 0xc], ecx
mov dword [edi + 0x10], ebx
mov ebx, edi
test eax, eax
jne 0x510e71
mov edx, dword [esp + 0x1c]
jmp 0x51006e
push eax
mov esi, ecx
call fcn.00564ea0
mov ecx, esi
add esp, 4
jmp 0x510e68
mov ecx, dword [esp + 0x40]
call fcn.004055e0
jmp 0x51063e
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x2c]
call fcn.004055e0
mov edx, dword [esp + 0x14]
mov edi, eax
jmp 0x5103ce
mov edx, ecx
mov ecx, dword [esp + 0x40]
call fcn.004055e0
mov edx, dword [esp + 0x24]
jmp 0x510c14
mov edx, ecx
mov ecx, esi
call fcn.004055e0
mov edx, dword [esp + 0x1c]
jmp 0x510387
mov edx, ecx
lea ecx, [esi + 1]
cmp ecx, 0x8000000
jae 0x5113d3
sub eax, edx
mov edx, eax
sar edx, 4
cmp edx, ecx
cmovbe edx, ecx
cmp eax, 0x7fffffe0
mov ebx, 0x7ffffff
cmovb ebx, edx
test ebx, ebx
je 0x51144f
cmp ebx, 0x8000000
jae 0x5113d8
mov eax, ebx
shl eax, 5
push eax
call fcn.00564ea5
add esp, 4
mov edi, dword [esp + 4]
shl edi, 5
add edi, eax
je 0x510fc5
shl ebx, 5
add eax, ebx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 8]
mov dword [edi], eax
mov eax, dword [esp + 0x34]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x18]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x14]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x54]
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0x38]
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0x4c]
mov dword [edi + 0x18], eax
lea ebx, [edi + 0x20]
mov esi, dword [esp + 0x20]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
sub ecx, eax
sub edi, ecx
push ecx
push eax
push edi
call fcn.00569390
add esp, 0xc
mov eax, dword [esi + 8]
mov dword [esi + 8], edi
mov edi, ebx
mov dword [esi + 0xc], ebx
mov ecx, dword [esp + 0xc]
mov dword [esi + 0x10], ecx
test eax, eax
jne 0x510f9f
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 4]
jmp 0x510948
push eax
call fcn.00564ea0
add esp, 4
jmp 0x510f92
mov ecx, esi
mov edx, dword [esp + 0x28]
call fcn.004055e0
mov edx, dword [esp + 4]
mov edi, eax
jmp 0x51067b
call fcn.005d19e0
push str....._third_partylibc_srcinclude__memoryconstruct_at.h:40:_assertion___location___nullptr_failed:_null_pointer_given_to_construct_at_n
push 0x624173
call fcn.00591ed0
mov edi, dword [esp + 0x20]
dec dword [edi + 0x14]
jmp 0x50fec7
mov edi, dword [esp + 0x20]
inc dword [edi + 0x14]
jmp 0x50fed9
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 4]
cmp byte [esp + 0x30], 0
je 0x50fb47
int3
push str....._third_partylibc_srcinclude_vector:1539:_assertion__empty___failed:_vector::pop_back_called_on_an_empty_vector_n
push 0x624173
call fcn.00591ed0
push str....._third_partylibc_srcinclude__memoryconstruct_at.h:66:_assertion___loc___nullptr_failed:_null_pointer_given_to_destroy_at_n
push 0x624173
call fcn.00591ed0
mov edx, dword [esp + 0xc]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 4]
mov dword [esp + 8], edx
cmp byte [esp + 0x30], 0
je 0x5104bc
int3
mov esi, edi
xor ebx, ebx
inc ebx
add esi, ebx
mov dword [esp + 0x3c], esi
mov esi, eax
mov ebx, 0x80000000
adc esi, ebx
xor edi, edx
xor eax, ecx
or eax, edi
je 0x50fb2c
xor eax, eax
inc eax
cmp eax, dword [esp + 0x3c]
mov eax, 0
sbb eax, esi
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
jb 0x50fb34
int3
mov edi, esi
xor eax, eax
inc eax
add edi, eax
mov dword [esp + 0x88], edi
mov edi, ecx
mov eax, 0x80000000
adc edi, eax
xor esi, ebx
xor ecx, edx
or ecx, esi
je 0x50faa1
xor eax, eax
inc eax
cmp eax, dword [esp + 0x88]
mov eax, 0
sbb eax, edi
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x50]
jb 0x50faa9
int3
mov esi, ecx
xor edi, edi
inc edi
add esi, edi
mov dword [esp + 0x3c], esi
mov esi, eax
mov edi, edx
mov edx, 0x80000000
adc esi, edx
mov dword [esp + 0x50], ebx
xor ecx, ebx
mov edx, edi
xor eax, edi
xor edi, edi
inc edi
or eax, ecx
jne 0x5110f2
mov esi, dword [esp + 8]
jmp 0x50fa4b
cmp edi, dword [esp + 0x3c]
mov eax, 0
sbb eax, esi
mov esi, dword [esp + 8]
jb 0x50fa4b
int3
mov ebx, edi
mov esi, eax
xor eax, eax
inc eax
add ebx, eax
mov dword [esp + 8], ebx
mov ebx, edx
mov eax, 0x80000000
adc ebx, eax
mov dword [esp + 0x30], esi
xor edi, esi
mov dword [esp + 0x28], ecx
xor edx, ecx
or edx, edi
je 0x50f857
xor edx, edx
xor eax, eax
inc eax
cmp eax, dword [esp + 8]
sbb edx, ebx
mov eax, dword [esp + 0x1c]
jb 0x50f85b
int3
mov esi, dword [esp + 0x10]
mov edx, esi
xor ecx, ecx
inc ecx
add edx, ecx
mov dword [esp + 8], edx
mov ecx, dword [esp + 0x1c]
mov ebx, ecx
mov edx, 0x80000000
adc ebx, edx
mov dword [esp + 0x34], ebx
mov ebx, edi
mov edi, eax
mov eax, esi
xor eax, edi
mov edx, ecx
xor edx, ebx
or edx, eax
mov edx, esi
mov eax, ebx
je 0x50f8bc
xor eax, eax
mov ecx, edx
xor edx, edx
inc edx
cmp edx, dword [esp + 8]
mov edx, ecx
sbb eax, dword [esp + 0x34]
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 4]
jb 0x50f8bc
int3
push eax
call fcn.004f0f10
add esp, 4
jmp 0x51042c
mov esi, edx
mov ecx, edx
xor edx, edx
inc edx
add esi, edx
mov dword [esp + 0x5c], esi
mov esi, eax
mov edx, 0x80000000
adc esi, edx
xor ecx, edi
xor eax, dword [esp + 0x3c]
or eax, ecx
jne 0x5111e9
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x3c]
jmp 0x51052e
xor eax, eax
inc eax
cmp eax, dword [esp + 0x5c]
mov eax, 0
sbb eax, esi
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x3c]
jb 0x51052e
int3
mov edi, edx
xor ecx, ecx
inc ecx
add edi, ecx
mov dword [esp + 0x38], edi
mov edi, ebx
mov ecx, 0x80000000
adc edi, ecx
xor edx, eax
xor ebx, dword [esp + 0x18]
or ebx, edx
jne 0x511243
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
jmp 0x510281
xor edx, edx
xor ecx, ecx
inc ecx
cmp ecx, dword [esp + 0x38]
sbb edx, edi
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
jb 0x510281
int3
push eax
call fcn.004f0f10
add esp, 4
jmp 0x51059f
push eax
call fcn.004f0f10
add esp, 4
jmp 0x510b6d
push eax
call fcn.004f0f10
add esp, 4
jmp 0x5102f1
mov ecx, dword [esp + 4]
mov edi, ecx
xor eax, eax
inc eax
add edi, eax
mov ebx, dword [esp]
mov edx, ebx
mov eax, 0x80000000
adc edx, eax
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x10]
xor ecx, edx
mov eax, dword [esp + 0xc]
xor ebx, eax
or ebx, ecx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x58], edx
mov dword [esp + 0x28], eax
je 0x51020d
xor ecx, ecx
xor eax, eax
inc eax
cmp eax, edi
sbb ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x28], eax
jb 0x51020d
int3
mov ecx, edi
xor eax, eax
inc eax
add ecx, eax
mov ebx, edx
mov eax, 0x80000000
adc ebx, eax
mov dword [esp + 0x2c], esi
xor edi, esi
xor edx, dword [esp]
or edx, edi
jne 0x51131d
mov eax, dword [esp + 0x10]
mov edx, dword [esp]
mov esi, dword [esp + 0x2c]
jmp 0x510a84
xor edx, edx
xor eax, eax
inc eax
cmp eax, ecx
sbb edx, ebx
mov eax, dword [esp + 0x10]
mov edx, dword [esp]
mov esi, dword [esp + 0x2c]
jb 0x510a84
int3
mov edx, ecx
xor eax, eax
inc eax
add edx, eax
mov dword [esp + 0x3c], edx
mov edx, ebx
mov eax, 0x80000000
adc edx, eax
xor ecx, edi
xor ebx, esi
or ebx, ecx
je 0x510ae3
xor ecx, ecx
xor eax, eax
inc eax
cmp eax, dword [esp + 0x3c]
sbb ecx, edx
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
mov edx, dword [esp]
jb 0x510aee
int3
mov edx, esi
mov ebx, esi
xor esi, esi
inc esi
add edx, esi
mov dword [esp + 0x2c], edx
mov edx, edi
mov esi, 0x80000000
adc edx, esi
xor ebx, ecx
xor edi, dword [esp + 0x1c]
or edi, ebx
jne 0x5113ad
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x30]
mov edx, dword [esp]
mov ebx, dword [esp + 0x1c]
jmp 0x510774
xor esi, esi
inc esi
cmp esi, dword [esp + 0x2c]
mov esi, 0
sbb esi, edx
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x30]
mov edx, dword [esp]
mov ebx, dword [esp + 0x1c]
jb 0x510774
int3
call fcn.00596170
call fcn.005957f0
push eax
call fcn.004f0f10
add esp, 4
jmp 0x5107f0
mov edx, dword [esp + 8]
mov ebx, edx
xor ecx, ecx
inc ecx
add ebx, ecx
mov ecx, dword [esp + 0x34]
mov esi, ecx
mov edi, 0x80000000
adc esi, edi
mov dword [esp], esi
mov edi, dword [esp + 0x18]
xor edx, edi
mov esi, ecx
mov ecx, dword [esp + 0x14]
xor esi, ecx
or esi, edx
mov esi, dword [esp + 0x40]
mov edx, edi
mov dword [esp + 0x24], ecx
je 0x510706
xor ecx, ecx
inc ecx
cmp ecx, ebx
mov ecx, 0
sbb ecx, dword [esp]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x24], ecx
jb 0x510706
int3
xor ebx, ebx
jmp 0x510df4
xor eax, eax
jmp 0x510f18