Function at 0x52bcc0
Capabilities:
Check for time delay via queryperformancecounter
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x110
mov ebx, ecx
mov edi, dword [ebp + 8]
mov eax, dword [0x64a040]
xor eax, ebp
mov dword [esp + 0x108], eax
mov ecx, dword [ecx + 8]
mov edx, dword [ebx + 0xc]
mov eax, 0xffffffff
mov dword [esp + 0x48], 0xffffff00
mov dword [esp + 0x6c], edx
cmp ecx, edx
mov dword [esp + 0x60], ecx
je 0x52c8f7
mov edx, dword [ecx]
mov dword [esp + 0x80], edx
mov edx, dword [ecx + 4]
mov dword [esp + 0x7c], edx
mov edx, dword [ecx + 0xc]
mov dword [esp + 0x78], edx
mov edx, dword [ecx + 8]
mov dword [esp + 0x74], edx
mov ecx, dword [ecx + 0x14]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x84], 0
mov ecx, dword [ebp + 0x20]
mov dword [esp + 0x38], ecx
mov ecx, dword [ebp + 0x24]
mov dword [esp + 0x24], ecx
movzx ecx, byte [ebp + 0x28]
mov byte [esp + 0x3c], cl
mov ecx, dword [edi + 0xa0]
mov dword [esp + 0x68], ecx
cmp ecx, 0xffffffff
je 0x52c8cf
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 0x52dc5f
shl eax, 5
mov eax, dword [ecx + eax + 0x10]
mov dword [esp + 0x88], eax
and eax, 0xffffff00
mov dword [esp + 0x48], eax
mov eax, dword [edi + 0xa0]
lea esi, [ebx + 8]
cmp byte [esp + 0x3c], 0
mov dword [esp + 8], ebx
je 0x52c312
lea ecx, [ebp + 0x10]
cmp eax, 0xffffffff
je 0x52c98c
mov dword [esp + 0x58], esp
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 + 0x6527ec]
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 + 0x18], eax
jb 0x52c8e9
mov eax, edi
shr eax, 0x15
mov byte [eax + 0x65a7ec], 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 0x52cda2
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 + 0x10], edx
mov dword [esp + 0x4c], ebx
cmp ebx, edx
jbe 0x52cda2
mov dword [esp + 0x20], edi
mov dword [esp + 0x54], esi
mov ebx, 0x80000000
mov edi, 1
lea edx, [ecx + eax]
mov dword [esp + 0x1c], ecx
cmp dword [ecx + eax + 0x14], 0
jne 0x52c8df
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 8]
mov esi, ecx
add esi, edi
mov edi, eax
adc edi, ebx
cmp esi, 2
sbb edi, 0
mov edi, dword [edx]
mov edx, dword [edx + 4]
jb 0x52ddc2
add edi, ecx
adc edx, eax
seto bl
mov ecx, edx
sar ecx, 0x1f
lea eax, [ecx - 0x80000000]
test bl, bl
cmove ecx, edi
test bl, bl
cmove eax, edx
mov dword [esp + 0x28], eax
mov eax, dword [esp]
mov dword [esp + 0x30], ecx
mov esi, dword [esp + 4]
cmp dword [esp + 0x24], 0
mov ebx, dword [esp + 0xc]
mov edi, dword [esp + 0x18]
jne 0x52bf11
mov edx, edi
mov eax, 1
add edx, eax
mov esi, ebx
mov eax, 0x80000000
adc esi, eax
cmp edx, 2
sbb esi, 0
mov eax, ebx
mov ebx, edi
jb 0x52deea
mov esi, dword [esp + 4]
add esi, ebx
mov ecx, dword [esp]
adc ecx, eax
mov edi, ebx
seto al
mov ebx, ecx
sar ebx, 0x1f
lea edx, [ebx - 0x80000000]
mov dword [esp + 0x14], edx
test al, al
cmove ebx, esi
mov esi, ebx
mov ebx, dword [esp + 0xc]
test al, al
mov eax, dword [esp + 0x14]
cmove eax, ecx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 4]
add eax, edi
mov esi, dword [esp]
adc esi, ebx
seto bl
mov edx, esi
sar edx, 0x1f
test bl, bl
mov ecx, edi
lea edi, [edx - 0x80000000]
cmove edx, eax
test bl, bl
cmove edi, esi
mov eax, 1
add eax, ecx
mov esi, 0x80000000
adc esi, dword [esp + 0xc]
add eax, 0xfffffffe
adc esi, 0xffffffff
cmp eax, 0xfffffffe
sbb esi, 0xffffffff
setb byte [esp + 0x44]
mov ecx, dword [esp + 4]
mov eax, ecx
mov esi, 1
add eax, esi
mov esi, dword [esp]
mov ebx, 0x80000000
adc esi, ebx
cmp eax, 2
sbb esi, 0
setb byte [esp + 0x34]
mov esi, ecx
xor esi, dword [esp + 0x18]
mov eax, dword [esp]
mov ebx, eax
xor ebx, dword [esp + 0xc]
or ebx, esi
setne bl
and bl, byte [esp + 0x34]
cmp dword [esp + 0x24], 0
mov esi, eax
cmovne edi, eax
mov dword [esp + 0x5c], edi
cmovne edx, ecx
mov dword [esp + 0x34], edx
setne al
or al, byte [esp + 0x44]
mov byte [esp + 0x44], al
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x14]
sbb dword [esp + 0x28], ecx
jge 0x52c246
mov byte [esp + 0x30], bl
mov ebx, dword [esp + 8]
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x20]
lea ecx, [edx*2 + 1]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x14], ecx
cmp ecx, eax
mov dword [esp + 0x10], edx
mov ecx, dword [esp + 4]
jae 0x52c42a
lea esi, [edx + edx]
add esi, 2
mov edx, edi
mov ecx, dword [esp + 0x1c]
sub edx, ecx
mov dword [esp + 0x64], edx
sar edx, 5
cmp esi, eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x28], edx
jae 0x52c1d7
mov eax, esi
cmp edx, esi
mov esi, dword [esp + 0x14]
jbe 0x52cda2
cmp edx, esi
mov ebx, 0x80000000
jbe 0x52cda2
mov dword [esp + 0x2c], eax
mov ecx, eax
shl ecx, 5
mov edx, dword [esp + 0x1c]
lea eax, [edx + ecx]
cmp dword [edx + ecx + 0x14], 0
jne 0x52c1e0
mov edx, dword [eax + 0xc]
mov edi, dword [eax + 8]
mov ecx, edi
mov esi, 1
add ecx, esi
mov esi, edx
adc esi, ebx
cmp ecx, 2
sbb esi, 0
mov ecx, dword [eax]
mov eax, dword [eax + 4]
jb 0x52de58
add ecx, edi
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 + 0x14]
mov eax, 1
mov dword [esp + 0x40], edx
mov ecx, esi
shl ecx, 5
add ecx, dword [esp + 0x1c]
cmp dword [ecx + 0x14], 0
jne 0x52c1c4
mov edx, dword [ecx + 0xc]
mov ebx, dword [ecx + 8]
mov esi, ebx
add esi, eax
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 0x52de11
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 + 0x14]
mov eax, dword [esp + 0x50]
cmp eax, ebx
sbb dword [esp + 0x40], edx
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
jl 0x52c117
mov eax, esi
mov ebx, dword [esp + 8]
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
cmp edx, eax
jbe 0x52cda2
mov dword [esp + 0x14], eax
shl eax, 5
lea edx, [ecx + eax]
cmp dword [ecx + eax + 0x14], 0
mov dword [esp + 0x2c], edx
jne 0x52c1ce
mov ecx, dword [edx + 0xc]
mov ebx, edx
mov edx, dword [edx + 8]
mov eax, edx
mov esi, 1
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 0x52dd81
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 + 8]
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x5c]
cmp byte [esp + 0x44], 0
je 0x52dd2f
cmp edx, eax
sbb ecx, esi
jl 0x52ccf7
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 4]
mov esi, dword [esp]
mov eax, dword [esp + 0x28]
jmp 0x52c437
mov ebx, dword [ecx]
mov edx, dword [ecx + 4]
jmp 0x52c101
mov eax, edx
mov edx, dword [edx]
mov ecx, dword [eax + 4]
jmp 0x52c193
mov eax, dword [esp + 0x14]
jmp 0x52c123
mov ecx, dword [eax]
mov dword [esp + 0x50], ecx
mov edx, dword [eax + 4]
jmp 0x52c0a1
mov eax, dword [esp + 8]
mov edx, dword [eax + 0x10]
mov eax, dword [esp + 0x20]
cmp eax, edx
jae 0x52d634
test eax, eax
je 0x52dc64
mov ebx, eax
mov dword [eax], ecx
mov eax, dword [esp]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x18]
mov dword [ebx + 8], eax
mov eax, dword [esp + 0xc]
mov dword [ebx + 0xc], eax
mov eax, dword [esp + 0x38]
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 + 8]
mov dword [eax + 0xc], ebx
mov ebx, eax
jmp 0x52c2cf
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x20]
test esi, esi
mov ecx, dword [esp + 4]
mov dword [esp + 0x20], edi
jne 0x52cdb1
sub edi, dword [esp + 0x1c]
mov ebx, edi
sar ebx, 5
cmp ebx, esi
je 0x52c1ee
jbe 0x52cda2
mov edi, esi
mov eax, esi
shl eax, 5
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp]
mov dword [ebx + eax + 4], edx
mov dword [ebx + eax], ecx
mov ecx, dword [esp + 0xc]
mov dword [ebx + eax + 0xc], ecx
mov ecx, dword [esp + 0x18]
mov dword [ebx + eax + 8], ecx
mov ecx, dword [esp + 0x38]
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 + 0x6527ec]
bt esi, edx
lea esi, [ebx + eax]
mov ebx, dword [esp + 8]
jb 0x52c307
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 0x52cda2
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 0x52c4d3
jmp 0x52cda2
push ecx
call fcn.00506f30
add esp, 4
jmp 0x52c2c7
cmp eax, 0xffffffff
je 0x52c4d7
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], esp
mov edi, dword [edi + 0xa0]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub ecx, eax
sar ecx, 5
cmp ecx, edi
jbe 0x52cda2
mov ecx, edi
shl ecx, 5
mov eax, dword [eax + ecx + 0x18]
mov dword [eax + 0xa0], 0xffffffff
mov eax, dword [ebx + 8]
mov esi, dword [ebx + 0xc]
mov ecx, esi
sub ecx, eax
sar ecx, 5
dec ecx
cmp ecx, edi
jne 0x52d288
cmp eax, esi
je 0x52dd45
mov edi, esi
add edi, 0xffffffe0
je 0x52dd54
mov eax, dword [esi - 8]
mov ecx, eax
shr ecx, 0xe
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x6527ec]
bt edx, ecx
jae 0x52c39a
push eax
call fcn.00506f30
add esp, 4
mov dword [esi - 8], 0
mov dword [ebx + 0xc], edi
jmp 0x52c4d3
mov eax, dword [ebx + 0x10]
cmp edi, eax
jae 0x52d56c
test edi, edi
je 0x52dc64
mov dword [edi], ecx
mov dword [edi + 4], esi
mov eax, dword [esp + 0x18]
mov dword [edi + 8], eax
mov eax, dword [esp + 0xc]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x38]
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 0x52c4a0
push ecx
call fcn.00506f30
add esp, 4
jmp 0x52c496
mov dword [esp + 0x24], 0xffffffff
mov dword [esp], 0xffffff00
mov ebx, 0xffffffff
mov dword [esp + 4], 0xffffffff
mov dword [esp + 0xc], 0xffffffff
mov edx, 0xffffffff
jmp 0x52c504
mov eax, edi
sub eax, dword [esp + 0x1c]
mov dword [esp + 0x64], eax
sar eax, 5
cmp eax, edx
je 0x52c3a9
jbe 0x52cda2
mov eax, edx
shl eax, 5
mov edi, dword [esp + 0x1c]
mov dword [edi + eax + 4], esi
mov dword [edi + eax], ecx
mov ecx, dword [esp + 0xc]
mov dword [edi + eax + 0xc], ecx
mov ecx, dword [esp + 0x18]
mov dword [edi + eax + 8], ecx
mov ecx, dword [esp + 0x38]
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 + 0x6527ec]
bt esi, edx
lea esi, [edi + eax]
jb 0x52c3ee
mov eax, dword [ebp + 8]
mov dword [esi + 0x18], eax
mov edx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub ecx, eax
sar ecx, 5
cmp ecx, edx
jbe 0x52cda2
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 0x52cda2
mov esp, dword [esp + 0x58]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
cmp eax, ecx
je 0x52c3fc
mov edx, dword [eax]
mov dword [esp], edx
mov edx, dword [eax + 4]
mov esi, dword [eax + 0xc]
mov dword [esp + 0xc], esi
mov edi, dword [eax + 8]
mov dword [esp + 4], edi
mov edi, dword [eax + 0x14]
mov dword [esp + 0x24], edi
xor ebx, ebx
mov edi, dword [esp + 0x68]
cmp edi, 0xffffffff
je 0x52c52c
movzx edi, byte [esp + 0x88]
mov esi, ecx
mov ecx, ebx
mov ebx, dword [esp + 0x48]
or ebx, edi
cmp ebx, 1
mov ebx, ecx
mov ecx, esi
je 0x52dc73
cmp byte [esp + 0x3c], 0
je 0x52c53e
cmp dword [esp + 0x38], 1
je 0x52dc7f
mov edi, dword [esp + 0x6c]
cmp dword [esp + 0x60], edi
je 0x52c75e
cmp eax, ecx
je 0x52c75e
cmp ebx, dword [esp + 0x84]
jne 0x52c591
mov edi, dword [esp]
xor edi, dword [esp + 0x80]
xor edx, dword [esp + 0x7c]
or edx, edi
jne 0x52c591
mov edx, dword [esp + 4]
xor edx, dword [esp + 0x74]
mov esi, dword [esp + 0xc]
xor esi, dword [esp + 0x78]
or esi, edx
jne 0x52c591
mov edx, dword [esp + 0x24]
cmp edx, dword [esp + 0x70]
je 0x52c7d7
cmp eax, ecx
je 0x52c735
movdqu xmm0, xmmword [eax]
mov edx, dword [eax + 0x14]
movdqu xmmword [esp + 0x90], xmm0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], edx
mov dl, 1
mov esi, dword [esp + 8]
mov ebx, dword [ebp + 0xc]
mov byte [esp + 0xa8], dl
mov edx, dword [esi]
mov edi, dword [edx + 8]
cmp edi, 0x57ca30
jne 0x52c7a9
xor edi, edi
dec edi
mov esi, dword [esi + 0x1c]
mov dword [esp + 4], 0xffffff00
mov dl, 1
mov dword [esp + 0x1c], edx
cmp eax, ecx
je 0x52c744
mov dword [esp + 0x24], esi
mov edx, dword [esp + 0x90]
mov ebx, dword [esp + 0x94]
mov ecx, dword [esp + 0x9c]
mov eax, dword [esp + 0x98]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x3c], edx
mov edi, ebx
cmp eax, 1
mov esi, dword [ebp + 0xc]
mov dword [esp], ecx
mov dword [esp + 0xc], eax
je 0x52df4b
cmp byte [esi + 8], 0
je 0x52c7ef
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov esi, dword [esp + 0x3c]
cmp eax, esi
sbb ecx, edi
jge 0x52d547
mov eax, dword [esp + 0x24]
cmp dword [eax + 0x174], 0
jne 0x52deac
mov eax, edx
shrd eax, ebx, 8
shr ebx, 8
mov ecx, dword [esp]
shld ebx, eax, 8
shl eax, 8
movzx esi, dl
or esi, eax
mov dword [esp + 4], esi
mov eax, esi
or eax, ebx
je 0x52c8b6
mov al, 1
mov dword [esp + 0x3c], eax
mov dword [esp + 0x1c], 0
mov dword [esp], ecx
mov ecx, ebx
xor edi, edi
dec edi
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0xc]
mov ebx, dword [esi + 0x20]
mov esi, dword [esp + 4]
mov dword [esp + 0xb0], esi
mov dword [esp + 0xb4], ecx
mov esi, edx
mov dword [esp + 0xb8], edx
mov edx, dword [esp]
mov dword [esp + 0xbc], edx
mov edx, dword [esp + 8]
mov dword [esp + 0xc0], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x3c]
mov byte [esp + 0xc8], al
mov dword [esp + 0xc9], edi
mov dword [esp + 0xcc], edi
mov eax, dword [ebx]
mov edi, dword [eax + 0x10]
cmp edi, 0x57c3d0
jne 0x52c778
mov eax, dword [ebx + 0x138]
cmp eax, 4
jne 0x52c7d7
jmp 0x52d800
mov byte [esp + 0x90], 0
xor edx, edx
jmp 0x52c5bd
mov dword [esp + 0x3c], 0
mov ecx, edi
mov edx, edi
mov dword [esp], edi
mov dword [esp + 8], edi
mov eax, edi
jmp 0x52c6bd
cmp eax, ecx
setne dl
mov esi, dword [esp + 0x6c]
cmp dword [esp + 0x60], esi
setne dh
cmp dh, dl
jne 0x52c591
jmp 0x52c7d7
mov ecx, edi
call dword [0x6445dc]
sub esp, 0x24
movdqu xmm0, xmmword [esp + 0xd4]
movups xmm1, xmmword [esp + 0xe4]
movups xmmword [esp + 0x14], xmm1
movdqu xmmword [esp + 4], xmm0
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
mov ecx, ebx
jmp 0x52c7d5
mov ecx, edi
call dword [0x6445dc]
sub esp, 0x24
movdqu xmm0, xmmword [esp + 0xb4]
movups xmm1, xmmword [esp + 0xc4]
movups xmmword [esp + 0x14], xmm1
movdqu xmmword [esp + 4], xmm0
mov dword [esp], ebx
mov ecx, esi
call edi
mov ecx, dword [esp + 0x108]
xor ecx, ebp
call fcn.005810d5
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x28
mov dword [esp + 0x10], edx
mov ecx, dword [fcn.0056d830]
cmp ecx, 0x56aca0
jne 0x52c8a1
mov dword [esp + 0x18], edi
xor eax, eax
lea edi, [esp + 0xd0]
mov dword [edi + 4], eax
mov dword [edi], eax
push edi
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov esi, dword [edi]
mov edi, dword [edi + 4]
cmp esi, 0x7bd05af7
mov eax, edi
sbb eax, 0x863
jge 0x52e1b2
mov ecx, 0xf4240
mov eax, esi
mul ecx
imul ecx, edi, 0xf4240
add ecx, edx
push dword [0x64f6a4]
push dword [0x64f6a0]
push ecx
push eax
call fcn.005a13d0
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], edx
mov esi, dword [ebp + 0xc]
mov edi, dword [esp + 0x18]
cmp byte [esi + 8], 0
jne 0x52dece
test esi, esi
mov edx, dword [esp + 0x10]
je 0x52dc64
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd4]
mov dword [esi], eax
mov dword [esi + 4], ecx
mov byte [esi + 8], 1
jmp 0x52c656
call dword [0x6445dc]
lea eax, [esp + 0xd0]
push eax
call ecx
add esp, 4
jmp 0x52c86f
mov eax, dword [esp + 0x24]
mov esi, dword [eax + 0x20]
mov eax, dword [esi]
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [0x6445dc]
jmp 0x52c7d3
mov dword [esp + 0x88], 0
jmp 0x52bd94
mov ecx, dword [edx]
mov eax, dword [edx + 4]
jmp 0x52be9e
push edi
call fcn.00506e00
add esp, 4
jmp 0x52bdf6
mov dword [esp + 0x80], 0xffffff00
mov dword [esp + 0x7c], 0xffffffff
mov dword [esp + 0x74], 0xffffffff
mov dword [esp + 0x78], 0xffffffff
mov dword [esp + 0x84], 0xffffffff
mov dword [esp + 0x70], 0xffffffff
jmp 0x52bd35
mov eax, dword [ebx + 0x10]
cmp ecx, eax
jae 0x52d6f6
test ecx, ecx
je 0x52dc64
mov eax, dword [esp]
mov dword [ecx], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0xc]
mov dword [ecx + 8], eax
mov eax, dword [esp + 4]
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x38]
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 0x52ca4d
mov eax, edi
shr eax, 0x15
mov byte [eax + 0x65a7ec], 1
jmp 0x52c9c5
mov eax, dword [ecx]
mov dword [esp], eax
mov eax, edi
shr eax, 0xe
mov edx, edi
shr edx, 0x13
mov edx, dword [edx*4 + 0x6527ec]
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
jae 0x52c97e
push edi
call fcn.00506e00
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 + 0x10], edx
jne 0x52ca90
mov esi, ecx
sub esi, edi
sar esi, 5
cmp esi, edx
je 0x52c932
jbe 0x52cda2
mov eax, edx
shl eax, 5
mov ecx, dword [esp + 0x1c]
mov dword [edi + eax + 4], ecx
mov ecx, dword [esp]
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 + 0x38]
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 + 0x6527ec]
bt esi, edx
lea esi, [edi + eax]
jb 0x52ca85
mov eax, dword [ebp + 8]
mov dword [esi + 0x18], eax
mov edx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub ecx, eax
sar ecx, 5
cmp ecx, edx
jbe 0x52cda2
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 0x52c4d7
jmp 0x52cda2
push ecx
call fcn.00506f30
add esp, 4
jmp 0x52ca43
mov dword [esp + 0x54], esi
lea eax, [edx - 1]
shr eax, 1
mov dword [esp + 0x28], ecx
mov esi, ecx
mov dword [esp + 0x44], edi
sub esi, edi
sar esi, 5
mov dword [esp + 0x20], eax
cmp esi, eax
jbe 0x52cda2
mov ecx, dword [esp]
add ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x1c]
adc edi, dword [esp + 4]
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 + 0xc]
add edx, 1
mov edi, dword [esp + 4]
adc edi, 0x80000000
add edx, 0xfffffffe
adc edi, 0xffffffff
cmp dword [esp + 0x24], 0
cmovne ecx, dword [esp]
mov dword [esp + 0x30], ecx
cmovne eax, dword [esp + 0x1c]
mov dword [esp + 0x2c], eax
jne 0x52cb15
cmp edx, 0xfffffffe
sbb edi, 0xffffffff
jae 0x52e0b6
mov ecx, dword [esp + 0x20]
shl ecx, 5
mov edi, dword [esp + 0x44]
add ecx, edi
cmp dword [ecx + 0x14], 0
mov dword [esp + 0x58], ecx
jne 0x52cbb6
mov dword [esp + 0x34], esi
mov edx, dword [ecx + 0xc]
mov eax, dword [ecx + 8]
mov ebx, eax
xor ecx, ecx
inc ecx
add ebx, ecx
mov dword [esp + 0x18], edx
mov ecx, 0x80000000
adc edx, ecx
mov ecx, dword [esp + 0x58]
cmp ebx, 2
mov ebx, dword [ecx]
mov dword [esp + 0x14], ebx
sbb edx, 0
mov ebx, dword [ecx + 4]
jb 0x52e02d
mov edx, dword [esp + 0x14]
add edx, eax
adc ebx, dword [esp + 0x18]
seto byte [esp + 0x14]
mov eax, ebx
sar eax, 0x1f
lea esi, [eax - 0x80000000]
mov dword [esp + 0x18], esi
cmp byte [esp + 0x14], 0
cmove eax, edx
cmp byte [esp + 0x14], 0
mov edx, dword [esp + 0x18]
cmove edx, ebx
mov ebx, dword [esp + 8]
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x30], eax
sbb dword [esp + 0x2c], edx
mov edx, dword [esp + 0x10]
jl 0x52cbbd
mov ecx, dword [esp + 0x28]
jmp 0x52c9e5
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
jmp 0x52cb9f
cmp esi, edx
mov eax, dword [esp + 0x28]
je 0x52cc66
mov esi, dword [esp + 0x54]
jbe 0x52cda2
mov eax, edx
shl eax, 5
movsd xmm0, qword [ecx + 0x10]
movsd qword [edi + eax + 0x10], xmm0
movdqu xmm0, xmmword [ecx]
movdqu xmmword [edi + eax], xmm0
cmp edx, dword [esp + 0x20]
je 0x52cc26
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 + 0x6527ec]
bt edx, ecx
jb 0x52e0a8
mov ecx, dword [esp + 0x58]
mov eax, dword [ecx + 0x18]
mov dword [edi + 0x18], eax
mov dword [ecx + 0x18], 0
mov edx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub ecx, eax
sar ecx, 5
cmp ecx, edx
jbe 0x52cda2
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 + 0x20]
ja 0x52c9d2
jmp 0x52cda2
cmp edx, dword [esp + 0x20]
mov esi, dword [esp + 0x54]
jbe 0x52cda2
cmp eax, dword [ebx + 0x10]
jae 0x52db57
test eax, eax
je 0x52dc64
movsd xmm0, qword [ecx + 0x10]
movsd qword [eax + 0x10], xmm0
movdqu xmm0, xmmword [ecx]
movdqu 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 0x52cc26
cmp edx, dword [esp + 0x14]
jbe 0x52cda2
cmp edi, dword [ebx + 0x10]
jae 0x52db2f
test edi, edi
je 0x52dc64
mov ecx, dword [esp + 0x2c]
movsd xmm0, qword [ecx + 0x10]
movsd qword [edi + 0x10], xmm0
movdqu xmm0, xmmword [ecx]
movdqu 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 0x52cd67
mov edx, dword [esp + 0x10]
cmp dword [esp + 0x28], edx
mov esi, dword [esp]
je 0x52ccb1
jbe 0x52cda2
mov eax, edx
shl eax, 5
mov edi, dword [esp + 0x2c]
movsd xmm0, qword [edi + 0x10]
mov ecx, dword [esp + 0x1c]
movsd qword [ecx + eax + 0x10], xmm0
movdqu xmm0, xmmword [edi]
movdqu xmmword [ecx + eax], xmm0
cmp edx, dword [esp + 0x14]
je 0x52cd67
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 + 0x6527ec]
bt edx, ecx
jb 0x52df3d
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 0x18]
mov dword [edi + 0x18], eax
mov dword [ecx + 0x18], 0
mov edx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub ecx, eax
sar ecx, 5
cmp ecx, edx
jbe 0x52cda2
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 + 0x1c], ecx
sub eax, ecx
sar eax, 5
cmp eax, edx
mov edx, dword [esp + 0x14]
ja 0x52bfdf
push str....._third_partylibc_srcinclude_vector:1411:_assertion___n___size___failed:_vector___index_out_of_bounds_n
push 0x62a183
call fcn.005aacb0
mov byte [esp + 0x30], bl
lea ecx, [esi - 1]
shr ecx, 1
mov eax, dword [esp + 0x1c]
sub edi, eax
mov ebx, edi
sar ebx, 5
cmp ebx, ecx
jbe 0x52cda2
mov edx, dword [esp + 0x34]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x14], edx
cmp byte [esp + 0x44], 0
je 0x52dd63
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 0x52ce6b
mov dword [esp + 0x10], esi
mov esi, dword [ecx + 0xc]
mov edi, dword [ecx + 8]
mov eax, edi
mov edx, 1
add eax, edx
mov dword [esp + 0x40], esi
mov edx, 0x80000000
adc esi, edx
cmp eax, 2
mov edx, dword [ecx]
sbb esi, 0
mov eax, dword [ecx + 4]
jb 0x52dfcf
add edx, edi
adc eax, dword [esp + 0x40]
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 + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
cmp ecx, edi
sbb eax, edx
jl 0x52ce72
mov ecx, dword [esp + 4]
mov edi, dword [esp + 0x50]
jmp 0x52c267
mov edi, dword [ecx]
mov edx, dword [ecx + 4]
jmp 0x52ce50
cmp ebx, esi
je 0x52cf25
mov edi, dword [esp + 8]
mov ecx, dword [esp + 0x2c]
jbe 0x52cda2
mov eax, esi
shl eax, 5
mov edx, dword [esp + 0x4c]
movsd xmm0, qword [edx + 0x10]
mov ebx, dword [esp + 0x1c]
movsd qword [ebx + eax + 0x10], xmm0
movdqu xmm0, xmmword [edx]
movdqu xmmword [ebx + eax], xmm0
cmp esi, ecx
je 0x52cedd
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 + 0x6527ec]
bt edx, ecx
jb 0x52e08c
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 0x52cda2
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 + 0x1c], ecx
sub eax, ecx
sar eax, 5
cmp eax, esi
mov esi, dword [esp + 0x2c]
mov bl, byte [esp + 0x30]
ja 0x52c24e
jmp 0x52cda2
cmp esi, dword [esp + 0x2c]
mov edi, dword [esp + 8]
jbe 0x52cda2
mov eax, dword [esp + 0x20]
cmp eax, dword [edi + 0x10]
mov edx, dword [esp + 0x4c]
jae 0x52db21
test eax, eax
je 0x52dc64
movsd xmm0, qword [edx + 0x10]
movsd qword [eax + 0x10], xmm0
movdqu xmm0, xmmword [edx]
movdqu 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 0x52cedd
cmp esi, dword [ebx + 0x10]
mov edx, dword [esp + 0x30]
jae 0x52dc4b
test esi, esi
je 0x52dc64
movsd xmm0, qword [edx + 0x10]
movsd qword [esi + 0x10], xmm0
movdqu xmm0, xmmword [edx]
movdqu xmmword [esi], xmm0
mov eax, dword [edx + 0x18]
mov dword [esi + 0x18], eax
mov dword [edx + 0x18], 0
add esi, 0x20
mov dword [ebx + 0xc], esi
jmp 0x52d12a
lea edx, [edi - 1]
shr edx, 1
mov dword [esp + 0x28], esi
mov eax, esi
mov dword [esp], ecx
sub eax, ecx
sar eax, 5
mov dword [esp + 0xc], edx
cmp eax, edx
jbe 0x52cda2
mov edx, dword [esp + 0x20]
add edx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x34]
adc esi, edi
seto bl
mov ecx, esi
sar ecx, 0x1f
test bl, bl
cmovne edx, ecx
add ecx, 0x80000000
test bl, bl
cmove ecx, esi
xor esi, esi
inc esi
add esi, dword [esp + 0x18]
mov ebx, 0x80000000
adc ebx, edi
add esi, 0xfffffffe
adc ebx, 0xffffffff
cmp dword [esp + 0x44], 0
cmovne edx, dword [esp + 0x20]
cmovne ecx, dword [esp + 0x14]
mov dword [esp + 0x24], ecx
jne 0x52d033
cmp esi, 0xfffffffe
sbb ebx, 0xffffffff
jae 0x52e2b5
mov esi, dword [esp + 0xc]
shl esi, 5
mov ecx, dword [esp]
add esi, ecx
cmp dword [esi + 0x14], 0
mov dword [esp + 0x30], esi
jne 0x52d0b8
mov dword [esp + 0x1c], edx
mov ebx, dword [esi + 0xc]
mov edx, esi
mov edi, dword [esi + 8]
mov ecx, edi
xor esi, esi
inc esi
add ecx, esi
mov dword [esp + 0x10], ebx
mov esi, 0x80000000
adc ebx, esi
cmp ecx, 2
mov esi, dword [edx]
sbb ebx, 0
mov ecx, dword [edx + 4]
jb 0x52e243
add esi, edi
adc ecx, dword [esp + 0x10]
seto bl
mov edi, ecx
sar edi, 0x1f
lea edx, [edi - 0x80000000]
test bl, bl
cmove edi, esi
test bl, bl
mov ebx, edx
cmove ebx, ecx
mov ecx, dword [esp]
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x1c]
cmp edx, edi
sbb dword [esp + 0x24], ebx
mov ebx, dword [esp + 8]
jl 0x52d0c3
mov edi, dword [esp + 4]
jmp 0x52d1c7
mov edi, dword [esi]
mov ebx, dword [esi + 4]
mov esi, dword [esp + 0x28]
jmp 0x52d0a3
mov edi, dword [esp + 4]
cmp eax, edi
je 0x52cf76
mov esi, dword [esp + 0x30]
jbe 0x52cda2
mov eax, edi
shl eax, 5
movsd xmm0, qword [esi + 0x10]
movsd qword [ecx + eax + 0x10], xmm0
movdqu xmm0, xmmword [esi]
movdqu xmmword [ecx + eax], xmm0
cmp edi, dword [esp + 0xc]
je 0x52d12a
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 + 0x6527ec]
bt edx, ecx
jb 0x52e29d
mov eax, dword [esi + 0x18]
mov dword [edi + 0x18], eax
mov dword [esi + 0x18], 0
mov edi, dword [esp + 4]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub ecx, eax
sar ecx, 5
cmp ecx, edi
jbe 0x52cda2
mov ecx, edi
shl ecx, 5
mov eax, dword [eax + ecx + 0x18]
mov dword [eax + 0xa0], edi
mov ecx, dword [ebx + 8]
mov esi, dword [ebx + 0xc]
mov eax, esi
sub eax, ecx
sar eax, 5
cmp eax, edi
mov edi, dword [esp + 0xc]
ja 0x52d1b4
jmp 0x52cda2
mov eax, dword [ebx + 0x10]
cmp esi, eax
jae 0x52db69
test esi, esi
je 0x52dc64
mov eax, dword [esp + 0x20]
mov dword [esi], eax
mov eax, dword [esp + 0x14]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x18]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x34]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x5c]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x44]
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x4c]
mov dword [esi + 0x18], eax
add esi, 0x20
mov dword [ebx + 0xc], esi
jmp 0x52d22f
mov ecx, dword [esp]
test edi, edi
mov dword [esp + 4], edi
jne 0x52cfb5
mov eax, esi
sub eax, ecx
sar eax, 5
cmp eax, edi
je 0x52d166
jbe 0x52cda2
mov eax, edi
mov edi, ecx
shl eax, 5
mov ecx, dword [esp + 0x14]
mov dword [edi + eax + 4], ecx
mov ecx, dword [esp + 0x20]
mov dword [edi + eax], ecx
mov ecx, dword [esp + 0x34]
mov dword [edi + eax + 0xc], ecx
mov ecx, dword [esp + 0x18]
mov dword [edi + eax + 8], ecx
mov ecx, dword [esp + 0x5c]
mov dword [edi + eax + 0x10], ecx
mov ecx, dword [esp + 0x44]
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 + 0x6527ec]
bt esi, edx
lea esi, [edi + eax]
jb 0x52d26b
mov eax, dword [esp + 0x4c]
mov dword [esi + 0x18], eax
mov edi, dword [esp + 4]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub ecx, eax
sar ecx, 5
cmp ecx, edi
jbe 0x52cda2
mov ecx, edi
shl ecx, 5
mov eax, dword [eax + ecx + 0x18]
mov dword [eax + 0xa0], edi
mov eax, dword [ebx + 8]
mov esi, dword [ebx + 0xc]
mov ecx, esi
sub ecx, eax
sar ecx, 5
cmp ecx, edi
ja 0x52c365
jmp 0x52cda2
push ecx
call fcn.00506f30
add esp, 4
jmp 0x52d224
mov ecx, dword [edx]
mov eax, dword [edx + 4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xc]
jmp 0x52d3b4
cmp esi, eax
je 0x52cda2
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 0x52cda2
mov ecx, dword [eax - 0x20]
mov dword [esp + 0x20], ecx
mov ecx, dword [eax - 0x1c]
mov dword [esp + 0x14], ecx
mov ecx, dword [eax - 0x14]
mov dword [esp + 0x34], ecx
mov ecx, dword [eax - 0x18]
mov dword [esp + 0x18], ecx
mov ecx, dword [eax - 0x10]
mov dword [esp + 0x5c], ecx
mov ecx, dword [eax - 0xc]
mov dword [esp + 0x44], ecx
mov ecx, dword [eax - 8]
mov dword [esp + 0x4c], ecx
mov dword [eax - 8], 0
mov ecx, dword [ebx + 8]
mov esi, dword [ebx + 0xc]
mov eax, esi
mov dword [esp], ecx
sub eax, ecx
sar eax, 5
dec eax
mov dword [esp + 0x24], eax
lea ecx, [edi*2 + 1]
cmp ecx, dword [esp + 0x24]
jae 0x52d1b1
mov eax, dword [esp + 0x24]
lea edx, [edi + edi]
add edx, 2
mov dword [esp + 0x28], esi
sub esi, dword [esp]
sar esi, 5
cmp edx, eax
mov dword [esp + 4], edi
mov dword [esp + 0x1c], esi
jae 0x52d42a
cmp esi, edx
jbe 0x52cda2
mov dword [esp + 0xc], ecx
cmp esi, ecx
jbe 0x52cda2
mov dword [esp + 0x10], edx
mov ecx, edx
shl ecx, 5
mov eax, dword [esp]
lea edx, [eax + ecx]
cmp dword [eax + ecx + 0x14], 0
mov edi, eax
jne 0x52d276
mov dword [esp], edi
mov ebx, dword [edx + 0xc]
mov ecx, dword [edx + 8]
mov esi, ecx
xor eax, eax
inc eax
add esi, eax
mov edi, ebx
mov eax, 0x80000000
adc edi, eax
cmp esi, 2
sbb edi, 0
mov esi, dword [edx]
mov edx, dword [edx + 4]
jb 0x52e157
add esi, ecx
adc edx, ebx
seto bl
mov ecx, edx
sar ecx, 0x1f
lea eax, [ecx - 0x80000000]
test bl, bl
cmove ecx, esi
test bl, bl
cmove eax, edx
mov dword [esp + 0x30], eax
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0xc]
mov edi, dword [esp]
mov dword [esp + 0x2c], ecx
mov esi, eax
shl esi, 5
add esi, edi
cmp dword [esi + 0x14], 0
jne 0x52d4ec
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 8]
mov ebx, edi
xor eax, eax
inc eax
add ebx, eax
mov edx, ecx
mov eax, 0x80000000
adc edx, eax
cmp ebx, 2
sbb edx, 0
mov ebx, dword [esi]
mov esi, dword [esi + 4]
jb 0x52e115
add ebx, edi
adc esi, ecx
seto dl
mov edi, esi
sar edi, 0x1f
lea ecx, [edi - 0x80000000]
test dl, dl
cmove edi, ebx
test dl, dl
cmove ecx, esi
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0xc]
cmp dword [esp + 0x2c], edi
sbb dword [esp + 0x30], ecx
mov edi, dword [esp + 4]
jl 0x52d426
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
cmp esi, edi
mov dword [esp + 0xc], ecx
je 0x52d4f6
cmp esi, ecx
jbe 0x52cda2
cmp esi, edi
jbe 0x52cda2
mov eax, ecx
shl eax, 5
mov edx, edi
shl edi, 5
mov esi, dword [esp]
movsd xmm0, qword [esi + eax + 0x10]
movsd qword [esi + edi + 0x10], xmm0
mov dword [esp + 0x1c], eax
movdqu xmm0, xmmword [esi + eax]
movdqu xmmword [esi + edi], xmm0
cmp edx, ecx
je 0x52d4a9
add edi, esi
mov eax, dword [edi + 0x18]
mov ecx, eax
shr ecx, 0xe
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x6527ec]
bt edx, ecx
jb 0x52e09a
add esi, dword [esp + 0x1c]
mov eax, dword [esi + 0x18]
mov dword [edi + 0x18], eax
mov dword [esi + 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 0x52cda2
mov ecx, edx
shl ecx, 5
mov eax, dword [eax + ecx + 0x18]
mov dword [eax + 0xa0], edx
mov ecx, dword [ebx + 8]
mov esi, dword [ebx + 0xc]
mov eax, esi
mov dword [esp], ecx
sub eax, ecx
sar eax, 5
cmp eax, edx
mov edi, dword [esp + 0xc]
ja 0x52d2fa
jmp 0x52cda2
mov edi, dword [esi]
mov ecx, dword [esi + 4]
jmp 0x52d414
cmp edi, ecx
jbe 0x52cda2
shl ecx, 5
mov edx, dword [esp]
add edx, ecx
mov eax, dword [esp + 0x28]
cmp eax, dword [ebx + 0x10]
jae 0x52db47
test eax, eax
je 0x52dc64
movsd xmm0, qword [edx + 0x10]
movsd qword [eax + 0x10], xmm0
movdqu xmm0, xmmword [edx]
movdqu xmmword [eax], xmm0
mov esi, dword [edx + 0x18]
mov dword [eax + 0x18], esi
mov dword [edx + 0x18], 0
add eax, 0x20
mov dword [ebx + 0xc], eax
mov edx, edi
jmp 0x52d4a9
mov dword [esp + 0xc], 0
xor ebx, ebx
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x48], 0
mov dword [esp + 8], 0
xor edx, edx
jmp 0x52c681
cmp edx, 0x7ffffff
jae 0x52e2ab
lea ecx, [edx + 1]
sub eax, dword [esp + 0x1c]
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 0x52e2b0
shl ebx, 5
push ebx
call fcn.0057dc30
add esp, 4
shl esi, 5
add esi, eax
je 0x52dc64
mov ecx, eax
mov eax, dword [esp + 4]
mov dword [esi], eax
mov eax, dword [esp]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x18]
mov dword [esi + 8], eax
mov eax, dword [esp + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x38]
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 + 0x64]
mov edi, dword [esp + 0x20]
push edi
push ecx
mov dword [esp + 0xc], ecx
call fcn.005822f0
mov ecx, edi
add esp, 0xc
mov eax, dword [esp + 8]
mov edx, dword [esp]
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 0x52d629
mov edx, dword [esp + 0x10]
jmp 0x52c3e6
push ecx
call fcn.0057dc2b
add esp, 4
jmp 0x52d620
mov dword [esp + 0x10], esi
cmp ebx, 0x7ffffff
jae 0x52e2ab
lea ecx, [ebx + 1]
sub edx, dword [esp + 0x1c]
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 0x52e2b0
shl eax, 5
mov esi, eax
push eax
call fcn.0057dc30
add esp, 4
shl ebx, 5
add ebx, eax
je 0x52dc64
mov ecx, eax
mov eax, dword [esp + 4]
mov dword [ebx], eax
mov eax, dword [esp]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x18]
mov dword [ebx + 8], eax
mov eax, dword [esp + 0xc]
mov dword [ebx + 0xc], eax
mov eax, dword [esp + 0x38]
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 + 0x20]
push edi
push ecx
mov dword [esp + 0xc], ecx
call fcn.005822f0
add esp, 0xc
mov eax, dword [esp + 8]
mov edx, dword [esp]
mov dword [eax + 8], edx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], esi
test edi, edi
jne 0x52d6eb
mov esi, dword [esp + 0x10]
jmp 0x52c238
push edi
call fcn.0057dc2b
add esp, 4
jmp 0x52d6e2
lea ecx, [esi + 1]
cmp ecx, 0x8000000
jae 0x52e2ab
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 0x52e30e
cmp edi, 0x8000000
jae 0x52e2b0
mov eax, edi
shl eax, 5
push eax
call fcn.0057dc30
add esp, 4
mov ebx, eax
shl esi, 5
add esi, ebx
je 0x52dc64
shl edi, 5
add ebx, edi
mov eax, dword [esp]
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 + 0x38]
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 + 0x28], eax
mov edi, dword [esp + 8]
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
sub ecx, eax
sub esi, ecx
push ecx
push eax
push esi
call fcn.005822f0
mov ecx, dword [esp + 0x34]
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 0x52d7bf
mov edx, dword [esp + 0x10]
jmp 0x52c976
push eax
mov esi, ecx
call fcn.0057dc2b
mov ecx, esi
add esp, 4
jmp 0x52d7b6
dec edx
xor ebx, ebx
inc ebx
or ebx, 0xfffffffe
mov edi, edx
mov esi, dword [ebp + 0xc]
jmp 0x52d9f0
mov edi, 0x80000000
mov eax, dword [esp + 4]
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x10]
mov dword [esp + 0x18], edx
cmp dword [esp + 0xc], 1
jne 0x52d877
jmp 0x52e3a8
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x10], ecx
mov edx, 0x80000000
cmp byte [esp + 0x1c], 0
mov dword [esp + 0x48], esi
jne 0x52d7ce
cmp dword [esp + 0xc], 0
jne 0x52d7df
mov edi, esi
mov eax, esi
xor ecx, ecx
inc ecx
add eax, ecx
mov esi, dword [esp]
mov ecx, esi
adc ecx, edx
cmp eax, 2
sbb ecx, 0
jb 0x52e34c
mov eax, dword [esp + 4]
add eax, edi
mov edi, dword [esp + 0x10]
mov ecx, edi
adc ecx, esi
seto byte [esp + 8]
mov edx, ecx
sar edx, 0x1f
lea ebx, [edx - 0x80000000]
cmp byte [esp + 8], 0
cmove edx, eax
mov dword [esp + 0x20], edx
cmp byte [esp + 8], 0
cmove ebx, ecx
mov dword [esp + 0x18], ebx
mov eax, dword [esp + 4]
mov edx, edi
mov dword [esp + 8], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0x24], edx
mov dword [esp + 0xd4], edx
movq xmm0, qword [0x64c0e0]
movd esi, xmm0
pshufd xmm0, xmm0, 0x55
movd ecx, xmm0
mov eax, ecx
shld eax, esi, 0x1f
mov edx, 0x3e8
mul edx
mov edi, 0x978d4fdf
cmp edi, esi
mov edi, 0x83126e
sbb edi, ecx
jb 0x52dc8b
shr ecx, 1
imul ecx, ecx, 0x3e8
add edx, ecx
cmp eax, 0x3e81
sbb edx, 0
jae 0x52dc8b
mov edi, 0x80000000
dec edi
xor ebx, ebx
inc ebx
or ebx, 0xfffffffe
mov eax, dword [esp + 8]
xor eax, ebx
mov ecx, dword [esp + 0x24]
xor ecx, edi
or ecx, eax
mov esi, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
je 0x52d9f4
cmp byte [esi + 8], 0
jne 0x52d9c0
mov ecx, dword [fcn.0056d830]
cmp ecx, 0x56aca0
jne 0x52d9ab
xor eax, eax
lea edi, [esp + 0xd0]
mov dword [edi + 4], eax
mov dword [edi], eax
push edi
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov ebx, dword [edi]
mov edi, dword [edi + 4]
cmp ebx, 0x7bd05af7
mov eax, edi
sbb eax, 0x863
jge 0x52e4c4
mov ecx, 0xf4240
mov eax, ebx
mul ecx
imul ecx, edi, 0xf4240
add ecx, edx
push dword [0x64f6a4]
push dword [0x64f6a0]
push ecx
push eax
call fcn.005a13d0
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], edx
mov esi, dword [ebp + 0xc]
cmp byte [esi + 8], 0
jne 0x52e32d
test esi, esi
je 0x52dc64
mov ebx, dword [esp + 0xd0]
mov eax, dword [esp + 0xd4]
mov dword [esi], ebx
mov dword [esi + 4], eax
mov byte [esi + 8], 1
jmp 0x52d9c5
call dword [0x6445dc]
lea eax, [esp + 0xd0]
push eax
call ecx
add esp, 4
jmp 0x52d980
mov ebx, dword [esi]
mov eax, dword [esi + 4]
xor ecx, ecx
dec ecx
add ebx, 0x1dd76000
adc eax, 0x14
mov edi, 0x7fffffff
cmovno edi, eax
cmovo ebx, ecx
mov ecx, dword [esp + 8]
cmp ebx, ecx
mov eax, edi
mov edx, dword [esp + 0x24]
sbb eax, edx
cmovge edi, edx
cmovge ebx, ecx
mov eax, dword [esp + 0xc]
cmp eax, 2
sete al
xor ecx, ecx
mov edx, ebx
mov ebx, dword [esp + 0x1c]
or bl, al
mov eax, dword [esp + 0x3c]
mov ebx, esi
mov esi, dword [eax + 0x188]
mov dword [esp + 0xd4], edi
mov dword [esp + 0xd0], edx
mov eax, dword [esp + 0x48]
cmovne eax, ecx
mov edi, dword [esp]
cmovne edi, ecx
mov dword [esp + 0xdc], edi
mov dword [esp + 0xd8], eax
cmp byte [ebx + 8], 0
je 0x52da6a
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
lea ebx, [esp + 0xd0]
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], ecx
mov byte [ebx + 0x18], 0
mov eax, dword [esi]
mov edi, dword [eax + 0x10]
mov ecx, edi
call dword [0x6445dc]
mov ecx, esi
push ebx
jmp 0x52c7d5
mov ecx, dword [fcn.0056d830]
cmp ecx, 0x56aca0
jne 0x52db0c
xor eax, eax
lea ebx, [esp + 0x100]
mov dword [ebx + 4], eax
mov dword [ebx], eax
push ebx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edi, dword [ebx]
mov ebx, dword [ebx + 4]
cmp edi, 0x7bd05af7
mov eax, ebx
sbb eax, 0x863
jge 0x52e436
mov ecx, 0xf4240
mov eax, edi
mul ecx
imul ecx, ebx, 0xf4240
add ecx, edx
push dword [0x64f6a4]
push dword [0x64f6a0]
push ecx
push eax
call fcn.005a13d0
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], edx
mov edx, dword [ebp + 0xc]
cmp byte [edx + 8], 0
jne 0x52e315
test edx, edx
je 0x52dc64
mov eax, dword [esp + 0x100]
mov ecx, dword [esp + 0x104]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov byte [edx + 8], 1
jmp 0x52da44
call dword [0x6445dc]
lea eax, [esp + 0x100]
push eax
call ecx
add esp, 4
jmp 0x52dadb
mov ecx, dword [esp + 0x54]
call fcn.00405a90
jmp 0x52cf6e
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x2c]
call fcn.00405a90
mov edx, dword [esp + 0x10]
mov edi, eax
jmp 0x52ccf2
mov ecx, dword [esp + 0x54]
mov esi, edi
call fcn.00405a90
jmp 0x52d53d
mov edx, ecx
mov ecx, esi
call fcn.00405a90
mov edx, dword [esp + 0x10]
jmp 0x52cca9
mov edx, ecx
lea ecx, [edi + 1]
cmp ecx, 0x8000000
jae 0x52e2ab
sub eax, edx
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 0x52e345
cmp edi, 0x8000000
jae 0x52e2b0
mov eax, edi
shl eax, 5
push eax
call fcn.0057dc30
add esp, 4
mov esi, eax
mov ebx, dword [esp + 4]
shl ebx, 5
add ebx, esi
je 0x52dc64
shl edi, 5
add esi, edi
mov eax, dword [esp + 0x20]
mov dword [ebx], eax
mov eax, dword [esp + 0x14]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x18]
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x34]
mov dword [ebx + 0xc], eax
mov eax, dword [esp + 0x5c]
mov dword [ebx + 0x10], eax
mov eax, dword [esp + 0x44]
mov dword [ebx + 0x14], eax
mov eax, dword [esp + 0x4c]
mov dword [ebx + 0x18], eax
lea eax, [ebx + 0x20]
mov dword [esp + 0x28], eax
mov edi, dword [esp + 8]
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
sub ecx, eax
sub ebx, ecx
push ecx
push eax
push ebx
call fcn.005822f0
add esp, 0xc
mov eax, dword [edi + 8]
mov dword [edi + 8], ebx
mov ecx, dword [esp + 0x28]
mov dword [edi + 0xc], ecx
mov dword [edi + 0x10], esi
test eax, eax
jne 0x52dc40
mov ebx, dword [esp + 8]
mov edi, dword [esp + 4]
mov esi, dword [esp + 0x28]
jmp 0x52d1ac
push eax
call fcn.0057dc2b
add esp, 4
jmp 0x52dc2f
mov ecx, dword [esp + 0x54]
call fcn.00405a90
mov edi, dword [esp + 4]
mov esi, eax
jmp 0x52cfad
call fcn.005f3260
push str....._third_partylibc_srcinclude__memoryconstruct_at.h:40:_assertion___location___nullptr_failed:_null_pointer_given_to_construct_at_n
push 0x62a183
call fcn.005aacb0
mov edi, dword [esp + 8]
dec dword [edi + 0x14]
jmp 0x52c52c
mov edi, dword [esp + 8]
inc dword [edi + 0x14]
jmp 0x52c53e
movq xmm0, qword [0x64c0e0]
movd eax, xmm0
mov ecx, dword [esp + 4]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x24], ecx
test al, 1
je 0x52d8db
xor eax, eax
dec eax
mov edi, dword [esp + 0x20]
lea ebx, [esp + 0x100]
mov dword [ebx + 4], eax
mov dword [ebx], eax
lea esi, [esp + 0xf8]
push esi
call fcn.00534590
add esp, 4
xor eax, eax
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf0], eax
sub esp, 0x14
movsd xmm0, qword [esi]
movsd qword [esp + 0xc], xmm0
movq xmm0, qword [esp + 0x104]
movq qword [esp + 4], xmm0
mov dword [esp], ebx
lea ecx, [esp + 0xe4]
call fcn.0056ebc0
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
cmp edi, ecx
mov ebx, dword [esp + 0x18]
mov eax, ebx
sbb eax, edx
cmovl edx, ebx
mov dword [esp + 0x24], edx
cmovl ecx, edi
mov dword [esp + 8], ecx
jmp 0x52d8db
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
cmp byte [esp + 0x30], 0
je 0x52c1a6
int3
push str....._third_partylibc_srcinclude_vector:1539:_assertion__empty___failed:_vector::pop_back_called_on_an_empty_vector_n
push 0x62a183
call fcn.005aacb0
push str....._third_partylibc_srcinclude__memoryconstruct_at.h:66:_assertion___loc___nullptr_failed:_null_pointer_given_to_destroy_at_n
push 0x62a183
call fcn.005aacb0
mov edx, dword [esp + 0x18]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0xc]
mov dword [esp + 0x14], edx
cmp byte [esp + 0x30], 0
je 0x52cde4
int3
mov esi, edi
mov ebx, 1
add esi, ebx
mov dword [esp + 0x40], esi
mov esi, eax
mov ebx, 0x80000000
adc esi, ebx
xor edi, edx
xor eax, ecx
or eax, edi
je 0x52c18b
xor eax, eax
inc eax
cmp eax, dword [esp + 0x40]
mov eax, 0
sbb eax, esi
mov ebx, dword [esp + 8]
mov edi, dword [esp + 0x20]
jb 0x52c193
int3
mov ebx, edi
mov esi, eax
mov eax, 1
add ebx, eax
mov dword [esp + 0x14], ebx
mov ebx, edx
mov eax, 0x80000000
adc ebx, eax
mov dword [esp + 0x30], ecx
xor edi, ecx
mov dword [esp + 0x28], esi
xor edx, esi
or edx, edi
jne 0x52ddf6
mov eax, dword [esp]
mov ecx, dword [esp + 0x30]
jmp 0x52bea5
xor edx, edx
xor edi, edi
inc edi
cmp edi, dword [esp + 0x14]
sbb edx, ebx
mov eax, dword [esp]
mov ecx, dword [esp + 0x30]
jb 0x52bea5
int3
mov edi, esi
mov eax, 1
add edi, eax
mov dword [esp + 0x8c], edi
mov edi, ecx
mov eax, 0x80000000
adc edi, eax
xor esi, ebx
xor ecx, edx
or ecx, esi
je 0x52c0fd
xor eax, eax
inc eax
cmp eax, dword [esp + 0x8c]
mov eax, 0
sbb eax, edi
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x50]
jb 0x52c105
int3
mov ebx, ecx
mov esi, 1
add ebx, esi
mov dword [esp + 0x40], ebx
mov ebx, eax
mov esi, edx
mov edx, 0x80000000
adc ebx, edx
mov dword [esp + 0x50], edi
xor ecx, edi
mov edx, esi
xor eax, esi
or eax, ecx
jne 0x52de8c
mov eax, 1
mov esi, dword [esp + 0x14]
jmp 0x52c0a6
xor eax, eax
inc eax
cmp eax, dword [esp + 0x40]
mov eax, 0
sbb eax, ebx
mov eax, 1
mov esi, dword [esp + 0x14]
jb 0x52c0a6
int3
xor eax, eax
dec eax
mov dword [esp + 0x3c], 0
mov edx, eax
mov dword [esp], eax
mov dword [esp + 8], eax
mov ecx, eax
xor edi, edi
dec edi
mov esi, dword [esp + 0x24]
jmp 0x52c6bd
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd4]
mov dword [esi], eax
mov dword [esi + 4], ecx
mov edx, dword [esp + 0x10]
jmp 0x52c656
mov edi, dword [esp + 4]
mov edx, edi
mov ecx, eax
mov eax, 1
add edx, eax
mov dword [esp + 0x2c], edx
mov edx, dword [esp]
mov esi, edx
mov eax, 0x80000000
adc esi, eax
mov dword [esp + 0x14], esi
mov eax, edi
xor eax, ebx
xor edx, ecx
or edx, eax
mov edi, ebx
mov esi, ebx
mov ebx, ecx
mov eax, ecx
je 0x52bf11
xor eax, eax
mov esi, edi
xor edx, edx
inc edx
cmp edx, dword [esp + 0x2c]
sbb eax, dword [esp + 0x14]
mov eax, ebx
jb 0x52bf11
int3
push eax
call fcn.00506f30
add esp, 4
jmp 0x52cd52
mov eax, dword [esp + 0x48]
mov edi, eax
add eax, 1
adc ecx, 0x80000000
cmp eax, 2
sbb ecx, 0
jb 0x52df9b
mov esi, edx
mov eax, edi
sub edx, edi
mov eax, ebx
sbb eax, dword [esp]
seto byte [esp + 0x10]
mov ecx, eax
sar ecx, 0x1f
lea edi, [ecx - 0x80000000]
cmp byte [esp + 0x10], 0
cmove ecx, edx
mov dword [esp + 0x3c], ecx
cmp byte [esp + 0x10], 0
mov edx, esi
cmove edi, eax
mov esi, dword [ebp + 0xc]
jmp 0x52c647
mov eax, edx
xor eax, edi
mov ecx, ebx
xor ecx, dword [esp]
or ecx, eax
je 0x52e54c
mov ecx, 0x80000000
xor eax, eax
inc eax
mov esi, dword [esp]
shr esi, 0x1f
not esi
add esi, eax
mov dword [esp + 0x3c], esi
adc ecx, 0xffffffff
mov esi, dword [ebp + 0xc]
mov edi, ecx
jmp 0x52c647
mov esi, edx
mov ecx, edx
mov edx, 1
add esi, edx
mov dword [esp + 0x64], esi
mov esi, eax
mov edx, 0x80000000
adc esi, edx
xor ecx, edi
xor eax, dword [esp + 0x40]
or eax, ecx
jne 0x52e006
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x40]
jmp 0x52ce58
xor eax, eax
inc eax
cmp eax, dword [esp + 0x64]
mov eax, 0
sbb eax, esi
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x40]
jb 0x52ce58
int3
mov edx, dword [esp + 0x14]
mov edi, edx
xor ecx, ecx
inc ecx
add edi, ecx
mov dword [esp + 0x4c], edi
mov edi, ebx
mov ecx, 0x80000000
adc edi, ecx
xor edx, eax
xor ebx, dword [esp + 0x18]
or ebx, edx
jne 0x52e064
mov ebx, dword [esp + 8]
mov ecx, dword [esp + 0x58]
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0x18]
jmp 0x52cb9b
xor edx, edx
xor ecx, ecx
inc ecx
cmp ecx, dword [esp + 0x4c]
sbb edx, edi
mov ebx, dword [esp + 8]
mov ecx, dword [esp + 0x58]
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x34]
jb 0x52cb9f
int3
push eax
call fcn.00506f30
add esp, 4
jmp 0x52cecc
push eax
call fcn.00506f30
add esp, 4
jmp 0x52d494
push eax
call fcn.00506f30
add esp, 4
jmp 0x52cc11
mov ecx, dword [esp]
mov edi, ecx
xor eax, eax
inc eax
add edi, eax
mov ebx, dword [esp + 0x1c]
mov edx, ebx
mov eax, 0x80000000
adc edx, eax
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xc]
xor ecx, edx
mov eax, dword [esp + 4]
xor ebx, eax
or ebx, ecx
mov ebx, dword [esp + 8]
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], eax
je 0x52cb15
xor ecx, ecx
xor eax, eax
inc eax
cmp eax, edi
sbb ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x2c], eax
jb 0x52cb15
int3
mov edx, ebx
xor eax, eax
inc eax
add edx, eax
mov dword [esp + 0x40], edx
mov edx, esi
mov eax, 0x80000000
adc edx, eax
mov dword [esp + 0x50], edx
xor ebx, edi
xor esi, ecx
or esi, ebx
je 0x52d40c
xor edx, edx
xor eax, eax
inc eax
cmp eax, dword [esp + 0x40]
sbb edx, dword [esp + 0x50]
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0xc]
jb 0x52d414
int3
mov edi, esi
xor eax, eax
inc eax
add edi, eax
mov dword [esp + 0x40], edi
mov edi, edx
mov eax, 0x80000000
adc edi, eax
mov dword [esp + 0x2c], ecx
xor esi, ecx
mov dword [esp + 0x30], ebx
xor edx, ebx
or edx, esi
jne 0x52e18f
mov ebx, dword [esp + 8]
mov edi, dword [esp]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x2c]
jmp 0x52d3b4
xor edx, edx
xor eax, eax
inc eax
cmp eax, dword [esp + 0x40]
sbb edx, edi
mov ebx, dword [esp + 8]
mov edi, dword [esp]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x2c]
jb 0x52d3b4
int3
mov eax, dword [0x64f6a0]
mov dword [esp + 0x20], eax
mov ecx, dword [0x64f6a4]
mov dword [esp + 0x14], ecx
push ecx
push eax
push edi
push esi
call fcn.005a13d0
mov dword [esp + 0x38], eax
mov dword [esp + 0x68], edx
mul dword [esp + 0x20]
mov dword [esp + 0x6c], eax
mov ecx, dword [esp + 0x38]
imul ecx, dword [esp + 0x14]
add edx, ecx
mov eax, dword [esp + 0x68]
imul ecx, eax, 0xf4240
mov dword [esp + 0x60], ecx
imul eax, dword [esp + 0x20]
add eax, edx
sub esi, dword [esp + 0x6c]
sbb edi, eax
mov ecx, 0xf4240
mov eax, dword [esp + 0x38]
mul ecx
mov dword [esp + 0x38], eax
add edx, dword [esp + 0x60]
mov dword [esp + 0x60], edx
mov eax, esi
mul ecx
imul ecx, edi, 0xf4240
add edx, ecx
push dword [esp + 0x14]
push dword [esp + 0x24]
push edx
push eax
call fcn.005a13d0
add eax, dword [esp + 0x38]
adc edx, dword [esp + 0x60]
jmp 0x52c85a
mov ebx, esi
mov edx, esi
xor esi, esi
inc esi
add ebx, esi
mov dword [esp + 0x2c], ebx
mov ebx, ecx
mov esi, 0x80000000
adc ebx, esi
xor edx, edi
xor ecx, dword [esp + 0x10]
or ecx, edx
jne 0x52e277
mov ecx, dword [esp]
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x10]
jmp 0x52d0a3
xor ecx, ecx
inc ecx
cmp ecx, dword [esp + 0x2c]
mov ecx, 0
sbb ecx, ebx
mov ecx, dword [esp]
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x10]
jb 0x52d0a3
int3
push eax
call fcn.00506f30
add esp, 4
jmp 0x52d119
call fcn.005b76e0
call fcn.005b6d80
mov edx, dword [esp + 0x20]
mov esi, edx
xor ecx, ecx
inc ecx
add esi, ecx
mov dword [esp + 0x1c], esi
mov edi, dword [esp + 0x14]
mov esi, edi
mov ecx, 0x80000000
adc esi, ecx
mov ecx, dword [esp + 0x18]
xor edx, ecx
mov ebx, dword [esp + 0x34]
xor edi, ebx
or edi, edx
mov edx, ecx
mov dword [esp + 0x24], ebx
je 0x52d033
xor ecx, ecx
inc ecx
cmp ecx, dword [esp + 0x1c]
mov ecx, 0
sbb ecx, esi
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x24], ecx
jb 0x52d033
int3
xor ebx, ebx
jmp 0x52d742
mov eax, dword [esp + 0x100]
mov ecx, dword [esp + 0x104]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x52da44
mov ebx, dword [esp + 0xd0]
mov eax, dword [esp + 0xd4]
mov dword [esi], ebx
mov dword [esi + 4], eax
jmp 0x52d9c5
xor esi, esi
jmp 0x52dbb7
mov eax, dword [esp + 4]
xor ecx, ecx
inc ecx
add eax, ecx
mov ecx, dword [esp + 0x10]
adc ecx, edx
xor edx, edx
xor ebx, ebx
inc ebx
cmp ebx, eax
sbb edx, ecx
mov dword [esp + 0x20], edi
mov dword [esp + 0x18], esi
mov eax, dword [esp + 4]
mov edx, dword [esp + 0x10]
jb 0x52d877
mov esi, dword [esp + 4]
mov eax, esi
mov edx, dword [esp + 0x48]
xor eax, edx
mov ebx, dword [esp + 0x10]
mov ecx, ebx
mov edi, dword [esp]
xor ecx, edi
or ecx, eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], edi
mov eax, esi
mov edx, ebx
je 0x52d877
int3
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x48]
xor ecx, ecx
inc ecx
add eax, ecx
mov ecx, dword [esp]
adc ecx, edi
cmp eax, 2
sbb ecx, 0
jb 0x52e3fb
mov edi, dword [esp + 4]
mov esi, edi
sub esi, dword [esp + 0x48]
mov edx, ebx
sbb edx, dword [esp]
seto byte [esp + 8]
mov ecx, edx
sar ecx, 0x1f
lea eax, [ecx - 0x80000000]
cmp byte [esp + 8], 0
cmove ecx, esi
cmp byte [esp + 8], 0
cmove eax, edx
mov edx, eax
mov eax, ecx
mov dword [esp + 0x20], edi
jmp 0x52e42d
mov eax, dword [esp + 4]
xor eax, dword [esp + 0x48]
mov ecx, ebx
xor ecx, dword [esp]
or ecx, eax
je 0x52e549
mov eax, dword [esp]
shr eax, 0x1f
not eax
xor ecx, ecx
inc ecx
add eax, ecx
mov edx, 0x80000000
adc edx, 0xffffffff
mov ecx, dword [esp + 4]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], ebx
jmp 0x52d877
mov eax, dword [0x64f6a0]
mov dword [esp], eax
mov ecx, dword [0x64f6a4]
mov dword [esp + 4], ecx
push ecx
push eax
push ebx
push edi
call fcn.005a13d0
mov dword [esp + 0xc], eax
mov dword [esp + 0x3c], edx
mul dword [esp]
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0xc]
imul ecx, dword [esp + 4]
add edx, ecx
mov eax, dword [esp + 0x3c]
imul ecx, eax, 0xf4240
mov dword [esp + 8], ecx
imul eax, dword [esp]
add eax, edx
sub edi, dword [esp + 0x24]
sbb ebx, eax
mov ecx, 0xf4240
mov eax, dword [esp + 0xc]
mul ecx
mov dword [esp + 0xc], eax
add edx, dword [esp + 8]
mov dword [esp + 8], edx
mov eax, edi
mul ecx
imul ecx, ebx, 0xf4240
add edx, ecx
push dword [esp + 4]
push dword [esp + 4]
push edx
push eax
call fcn.005a13d0
add eax, dword [esp + 0xc]
adc edx, dword [esp + 8]
jmp 0x52dacd
mov ecx, dword [0x64f6a0]
mov eax, dword [0x64f6a4]
mov dword [esp + 4], eax
push eax
push ecx
mov dword [esp + 0x18], ecx
mov esi, ecx
push edi
push ebx
call fcn.005a13d0
mov dword [esp + 0x14], edx
mov ecx, eax
mul esi
mov dword [esp + 0x18], eax
mov eax, ecx
imul ecx, dword [esp + 4]
add edx, ecx
mov ecx, dword [esp + 0x14]
imul esi, ecx, 0xf4240
mov dword [esp + 0x20], esi
imul ecx, dword [esp + 0x10]
add ecx, edx
sub ebx, dword [esp + 0x18]
sbb edi, ecx
mov ecx, 0xf4240
mul ecx
mov dword [esp + 0x18], eax
mov esi, edx
add esi, dword [esp + 0x20]
mov eax, ebx
mul ecx
imul ecx, edi, 0xf4240
add edx, ecx
push dword [esp + 4]
push dword [esp + 0x14]
push edx
push eax
call fcn.005a13d0
add eax, dword [esp + 0x18]
adc edx, esi
jmp 0x52d96f
int3
int3