Function at 0x58fe90
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x74dc4d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x164
push esi
mov esi, dword [ebp + 8]
push edi
mov dword [ebp - 0xf0], ecx
xor edi, edi
push 1
mov ecx, esi
mov dword [ebp - 0x20], edi
call fcn.00580e20
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
push eax
call fcn.0058eca0
add esp, 4
test al, al
jne 0x591b00
mov dword [ebp - 0x110], edi
mov dword [ebp - 0x100], edi
mov dword [ebp - 0xfc], 0xf
mov byte [ebp - 0x110], al
mov dword [ebp - 4], edi
cmp byte [esi + 0x134], al
je 0x58ff5f
cmp byte [esi + 0x134], 0
lea eax, [esi + 0x11c]
je 0x58ff22
push eax
lea ecx, [ebp - 0x88]
call fcn.004838a0
jmp 0x58ff3a
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x74], 0xf
mov dword [ebp - 0x78], 0
movups xmm0, xmmword [ebp - 0x88]
mov edi, 1
mov dword [ebp - 0x20], edi
movups xmmword [ebp - 0x110], xmm0
movq xmm0, qword [ebp - 0x78]
movq qword [ebp - 0x100], xmm0
jmp 0x58ff81
mov ecx, 0x79e35c
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x58ff67
sub ecx, edx
push ecx
push 0x79e35c
lea ecx, [ebp - 0x110]
call fcn.00486af0
lea ecx, [ebp - 0x50]
call fcn.004d1e60
mov ecx, dword [ebp + 8]
mov byte [ebp - 4], 1
mov eax, dword [ecx + 0x44]
mov esi, dword [ecx + 0x40]
mov dword [ebp - 0x54], eax
cmp esi, eax
je 0x5901e1
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x18]
test eax, eax
jg 0x58ffcf
jl 0x58ffb1
test ecx, ecx
jae 0x58ffcf
neg ecx
adc eax, 0
neg eax
push eax
push ecx
lea eax, [ebp - 0x8b]
push eax
call fcn.004e1930
mov byte [eax - 1], 0x2d
lea ecx, [eax - 1]
jmp 0x58ffdf
push eax
push ecx
lea eax, [ebp - 0x8b]
push eax
call fcn.004e1930
mov ecx, eax
lea eax, [ebp - 0x8b]
mov dword [ebp - 0x70], 0
add esp, 0xc
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0xf
mov byte [ebp - 0x70], 0
cmp ecx, eax
je 0x590011
sub eax, ecx
push eax
push ecx
lea ecx, [ebp - 0x70]
call fcn.00486af0
or edi, 6
mov dword [ebp - 0x20], edi
cmp dword [esi + 0x14], 0x10
mov edx, esi
mov byte [ebp - 4], 2
jb 0x590025
mov edx, dword [esi]
xor ecx, ecx
mov edi, 0x811c9dc5
cmp dword [esi + 0x10], ecx
jbe 0x590043
movzx eax, byte [ecx + edx]
inc ecx
xor eax, edi
imul edi, eax, 0x1000193
cmp ecx, dword [esi + 0x10]
jb 0x590031
push edi
push esi
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x50]
call fcn.00489ef0
cmp dword [ebp - 0x24], 0
jne 0x590194
cmp dword [ebp - 0x48], 0x4924924
je 0x591b12
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x30], eax
push 0x38
mov byte [ebp - 4], 3
mov dword [ebp - 0x2c], 0
call fcn.00516cd0
add esp, 4
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x2c], eax
add eax, 8
mov ecx, eax
mov dword [ebp - 0x10], eax
push esi
call fcn.004838a0
mov eax, dword [ebp - 0x10]
movups xmm0, xmmword [ebp - 0x70]
mov byte [ebp - 0x70], 0
mov dword [eax + 0x28], 0
mov dword [eax + 0x2c], 0
movups xmmword [eax + 0x18], xmm0
movq xmm0, qword [ebp - 0x60]
movq qword [eax + 0x28], xmm0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0xf
mov ecx, dword [ebp - 0x48]
mov byte [ebp - 4], 4
lea eax, [ecx + 1]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x75f520]
mov eax, dword [ebp - 0x34]
cvtpd2ps xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x75f520]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, dword [ebp - 0x50]
seta al
test al, al
je 0x590144
lea ecx, [ebp - 0x50]
call fcn.004ce530
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 0x50]
push edi
push eax
lea eax, [ebp - 0xb4]
push eax
call fcn.00489ef0
mov ecx, dword [ebp - 0x48]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], eax
jmp 0x590147
mov edx, dword [ebp - 0x28]
mov eax, dword [edx + 4]
inc ecx
mov dword [ebp - 0x48], ecx
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x2c], 0
mov dword [ecx + 4], eax
mov dword [ecx], edx
mov dword [eax], ecx
mov dword [edx + 4], ecx
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x44]
and eax, edi
mov edi, dword [edx + eax*8]
cmp edi, dword [ebp - 0x4c]
jne 0x59017d
mov dword [edx + eax*8], ecx
jmp 0x590190
cmp edi, dword [ebp - 0x10]
jne 0x590187
mov dword [edx + eax*8], ecx
jmp 0x590194
mov edi, dword [ebp - 0x14]
cmp dword [edx + eax*8 + 4], edi
jne 0x590194
mov dword [edx + eax*8 + 4], ecx
mov eax, dword [ebp - 0x5c]
mov byte [ebp - 4], 1
cmp eax, 0x10
jb 0x5901ce
mov ecx, dword [ebp - 0x70]
lea edx, [eax + 1]
mov eax, ecx
cmp edx, 0x1000
jb 0x5901c4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x591b21
push edx
push ecx
call fcn.00516d60
add esp, 8
add esi, 0x20
cmp esi, dword [ebp - 0x54]
je 0x5901de
mov edi, dword [ebp - 0x20]
jmp 0x58ffa1
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x50]
mov edi, dword [ecx + 0x4c]
mov dword [ebp - 0x14], eax
cmp edi, eax
je 0x590400
push dword [edi + 0x1c]
lea eax, [ebp - 0x8b]
push dword [edi + 0x18]
push eax
call fcn.004e1930
mov ecx, eax
mov dword [ebp - 0x70], 0
lea eax, [ebp - 0x8b]
mov dword [ebp - 0x60], 0
add esp, 0xc
mov dword [ebp - 0x5c], 0xf
mov byte [ebp - 0x70], 0
cmp ecx, eax
je 0x590238
sub eax, ecx
push eax
push ecx
lea ecx, [ebp - 0x70]
call fcn.00486af0
or dword [ebp - 0x20], 0x18
cmp dword [edi + 0x14], 0x10
mov edx, edi
mov byte [ebp - 4], 5
jb 0x59024a
mov edx, dword [edi]
xor ecx, ecx
mov esi, 0x811c9dc5
cmp dword [edi + 0x10], ecx
jbe 0x590268
movzx eax, byte [ecx + edx]
inc ecx
xor eax, esi
imul esi, eax, 0x1000193
cmp ecx, dword [edi + 0x10]
jb 0x590256
push esi
push edi
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x50]
call fcn.00489ef0
cmp dword [ebp - 0x24], 0
jne 0x5903b9
cmp dword [ebp - 0x48], 0x4924924
je 0x591b12
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x30], eax
push 0x38
mov byte [ebp - 4], 6
mov dword [ebp - 0x2c], 0
call fcn.00516cd0
add esp, 4
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x2c], eax
add eax, 8
mov ecx, eax
mov dword [ebp - 0x10], eax
push edi
call fcn.004838a0
mov eax, dword [ebp - 0x10]
movups xmm0, xmmword [ebp - 0x70]
mov byte [ebp - 0x70], 0
mov dword [eax + 0x28], 0
mov dword [eax + 0x2c], 0
movups xmmword [eax + 0x18], xmm0
movq xmm0, qword [ebp - 0x60]
movq qword [eax + 0x28], xmm0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0xf
mov ecx, dword [ebp - 0x48]
mov byte [ebp - 4], 7
lea eax, [ecx + 1]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x75f520]
mov eax, dword [ebp - 0x34]
cvtpd2ps xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x75f520]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, dword [ebp - 0x50]
seta al
test al, al
je 0x590369
lea ecx, [ebp - 0x50]
call fcn.004ce530
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 0x50]
push esi
push eax
lea eax, [ebp - 0xb4]
push eax
call fcn.00489ef0
mov ecx, dword [ebp - 0x48]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], eax
jmp 0x59036c
mov edx, dword [ebp - 0x28]
mov eax, dword [edx + 4]
inc ecx
mov dword [ebp - 0x48], ecx
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x2c], 0
mov dword [ecx + 4], eax
mov dword [ecx], edx
mov dword [eax], ecx
mov dword [edx + 4], ecx
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x44]
and eax, esi
mov esi, dword [edx + eax*8]
cmp esi, dword [ebp - 0x4c]
jne 0x5903a2
mov dword [edx + eax*8], ecx
jmp 0x5903b5
cmp esi, dword [ebp - 0x10]
jne 0x5903ac
mov dword [edx + eax*8], ecx
jmp 0x5903b9
mov esi, dword [ebp - 0x18]
cmp dword [edx + eax*8 + 4], esi
jne 0x5903b9
mov dword [edx + eax*8 + 4], ecx
mov edx, dword [ebp - 0x5c]
mov byte [ebp - 4], 1
cmp edx, 0x10
jb 0x5903f1
mov ecx, dword [ebp - 0x70]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x5903e7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x591b21
push edx
push ecx
call fcn.00516d60
add esp, 8
add edi, 0x20
cmp edi, dword [ebp - 0x14]
jne 0x5901f2
mov ecx, dword [ebp + 8]
mov edi, dword [ecx + 0x58]
mov eax, dword [ecx + 0x5c]
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x1c], eax
cmp edi, eax
je 0x59074c
nop dword [eax]
nop dword [eax + eax]
movsd xmm0, qword [edi + 0x18]
sub esp, 8
movsd qword [ebp - 0xec], xmm0
movsd qword [esp], xmm0
push 0x76743c
call fcn.00506900
mov edi, eax
mov dword [ebp - 0xa0], 0
add esp, 0xc
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 0xf
mov byte [ebp - 0xa0], 0
cmp edi, 0xf
ja 0x590496
push edi
lea eax, [ebp - 0xa0]
mov dword [ebp - 0x90], edi
push 0
push eax
call fcn.007051b0
mov byte [ebp + edi - 0xa0], 0
mov eax, dword [ebp - 0xa0]
jmp 0x59052d
cmp edi, 0x7fffffff
ja 0x591b26
mov esi, edi
or esi, 0xf
cmp esi, 0x7fffffff
jbe 0x5904b9
mov esi, bind
lea ecx, [esi + 0x24]
jmp 0x5904d9
cmp esi, 0x16
mov eax, 0x16
cmovb esi, eax
lea eax, [esi + 1]
cmp eax, 0x1000
jb 0x5904f7
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x591b1c
push ecx
call fcn.00516cd0
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x591b21
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x590508
test eax, eax
je 0x590506
push eax
call fcn.00516cd0
add esp, 4
jmp 0x590508
xor eax, eax
push edi
push 0
push eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x90], edi
mov dword [ebp - 0x8c], esi
call fcn.007051b0
mov eax, dword [ebp - 0x14]
mov byte [eax + edi], 0
mov dword [ebp - 0xa0], eax
or dword [ebp - 0x20], 0x20
lea ecx, [ebp - 0xa0]
movsd xmm0, qword [ebp - 0xec]
add esp, 0xc
cmp dword [ebp - 0x8c], 0x10
cmovae ecx, eax
sub esp, 8
lea eax, [edi + 1]
movsd qword [esp], xmm0
push 0x76743c
push eax
push ecx
call fcn.004d3e20
add esp, 0x14
mov edi, dword [ebp - 0x10]
mov edx, edi
mov byte [ebp - 4], 8
cmp dword [edi + 0x14], 0x10
jb 0x590577
mov edx, dword [edi]
xor ecx, ecx
mov esi, 0x811c9dc5
cmp dword [edi + 0x10], ecx
jbe 0x590595
movzx eax, byte [ecx + edx]
inc ecx
xor eax, esi
imul esi, eax, 0x1000193
cmp ecx, dword [edi + 0x10]
jb 0x590583
push esi
push edi
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x50]
call fcn.00489ef0
cmp dword [ebp - 0x24], 0
jne 0x5906fc
cmp dword [ebp - 0x48], 0x4924924
je 0x591b12
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x30], eax
push 0x38
mov byte [ebp - 4], 9
mov dword [ebp - 0x2c], 0
call fcn.00516cd0
add esp, 4
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x2c], eax
add eax, 8
mov ecx, eax
mov dword [ebp - 0x10], eax
push edi
call fcn.004838a0
mov eax, dword [ebp - 0x10]
mov dword [eax + 0x18], 0
mov dword [eax + 0x28], 0
mov dword [eax + 0x2c], 0
movups xmm0, xmmword [ebp - 0xa0]
movups xmmword [eax + 0x18], xmm0
movq xmm0, qword [ebp - 0x90]
movq qword [eax + 0x28], xmm0
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 0xf
mov byte [ebp - 0xa0], 0
mov ecx, dword [ebp - 0x48]
mov byte [ebp - 4], 0xa
lea eax, [ecx + 1]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x75f520]
mov eax, dword [ebp - 0x34]
cvtpd2ps xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x75f520]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, dword [ebp - 0x50]
seta al
test al, al
je 0x5906ac
lea ecx, [ebp - 0x50]
call fcn.004ce530
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 0x50]
push esi
push eax
lea eax, [ebp - 0xb4]
push eax
call fcn.00489ef0
mov ecx, dword [ebp - 0x48]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], eax
jmp 0x5906af
mov edx, dword [ebp - 0x28]
mov eax, dword [edx + 4]
inc ecx
mov dword [ebp - 0x48], ecx
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x2c], 0
mov dword [ecx + 4], eax
mov dword [ecx], edx
mov dword [eax], ecx
mov dword [edx + 4], ecx
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x44]
and eax, esi
mov esi, dword [edx + eax*8]
cmp esi, dword [ebp - 0x4c]
jne 0x5906e5
mov dword [edx + eax*8], ecx
jmp 0x5906f8
cmp esi, dword [ebp - 0x10]
jne 0x5906ef
mov dword [edx + eax*8], ecx
jmp 0x5906fc
mov esi, dword [ebp - 0x18]
cmp dword [edx + eax*8 + 4], esi
jne 0x5906fc
mov dword [edx + eax*8 + 4], ecx
mov edx, dword [ebp - 0x8c]
mov byte [ebp - 4], 1
cmp edx, 0x10
jb 0x59073a
mov ecx, dword [ebp - 0xa0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x590730
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x591b21
push edx
push ecx
call fcn.00516d60
add esp, 8
add edi, 0x20
mov dword [ebp - 0x10], edi
cmp edi, dword [ebp - 0x1c]
jne 0x590420
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x74]
mov esi, dword [ecx + 0x70]
mov dword [ebp - 0x1c], eax
cmp esi, eax
je 0x590816
mov ecx, 0x75d2fc
cmp byte [esi + 0x18], 0
mov edx, 0x75d304
mov dword [ebp - 0x88], 0
cmove edx, ecx
mov dword [ebp - 0x78], 0
mov ecx, edx
mov dword [ebp - 0x74], 0xf
mov byte [ebp - 0x88], 0
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x590792
sub ecx, edi
push ecx
push edx
lea ecx, [ebp - 0x88]
call fcn.00486af0
or dword [ebp - 0x20], 0x40
lea eax, [ebp - 0x88]
mov byte [ebp - 4], 0xb
push eax
push esi
lea eax, [ebp - 0xb4]
push eax
lea ecx, [ebp - 0x50]
call fcn.00503fa0
mov edx, dword [ebp - 0x74]
mov byte [ebp - 4], 1
cmp edx, 0x10
jb 0x590802
mov ecx, dword [ebp - 0x88]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x5907f8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x591b21
push edx
push ecx
call fcn.00516d60
add esp, 8
add esi, 0x1c
mov ecx, 0x75d2fc
cmp esi, dword [ebp - 0x1c]
jne 0x590762
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x15c]
mov dword [ebp - 0x1c], eax
mov esi, dword [eax]
cmp esi, eax
je 0x59086b
lea edi, [esi + 8]
lea eax, [edi + 0x18]
push eax
lea eax, [ebp - 0x128]
push eax
call fcn.005811f0
add esp, 8
push eax
push edi
lea eax, [ebp - 0xb4]
mov byte [ebp - 4], 0xc
push eax
lea ecx, [ebp - 0x50]
call fcn.00503fa0
lea ecx, [ebp - 0x128]
mov byte [ebp - 4], 1
call fcn.00484b50
mov eax, dword [esi]
mov esi, eax
cmp eax, dword [ebp - 0x1c]
jne 0x590825
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x68]
mov esi, dword [ecx + 0x64]
mov dword [ebp - 0x1c], eax
cmp esi, eax
je 0x590991
nop dword [eax]
push esi
lea ecx, [ebp - 0x50]
call fcn.00489650
mov edi, eax
lea ecx, [ebp - 0x50]
push edi
push esi
lea eax, [ebp - 0x58]
push eax
call fcn.00489ef0
cmp dword [ebp - 0x54], 0
jne 0x590982
cmp dword [ebp - 0x48], 0x4924924
je 0x591b12
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x30], eax
push 1
mov ecx, eax
mov byte [ebp - 4], 0xd
mov dword [ebp - 0x2c], 0
call fcn.004ce7f0
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x2c], eax
add eax, 8
push esi
mov ecx, eax
mov dword [ebp - 0x24], eax
call fcn.004838a0
mov ecx, dword [ebp - 0x14]
lea eax, [esi + 0x18]
push eax
mov byte [ebp - 4], 0xe
lea ecx, [ecx + 0x20]
call fcn.004838a0
mov eax, dword [ebp - 0x48]
inc eax
mov byte [ebp - 4], 0xf
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x75f520]
mov eax, dword [ebp - 0x34]
cvtpd2ps xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x75f520]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, dword [ebp - 0x50]
seta al
test al, al
je 0x590967
lea ecx, [ebp - 0x50]
call fcn.004ce530
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0x50]
push edi
add eax, 8
push eax
lea eax, [ebp - 0xb4]
push eax
call fcn.00489ef0
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x54], eax
jmp 0x59096a
mov ecx, dword [ebp - 0x58]
push dword [ebp - 0x14]
mov dword [ebp - 0x2c], 0
push ecx
push edi
lea ecx, [ebp - 0x50]
call fcn.004ce260
mov byte [ebp - 4], 1
add esi, 0x30
cmp esi, dword [ebp - 0x1c]
jne 0x590880
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x80]
mov dword [ebp - 0x18], eax
mov edi, dword [eax]
mov dword [ebp - 0x10], edi
cmp edi, eax
je 0x590e2e
nop word [eax + eax]
push 0
lea ecx, [ebp - 0xac]
call fcn.0051e0c0
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 0x10
call fcn.00522e00
mov eax, dword [edi + 0x24]
mov esi, dword [eax]
cmp esi, eax
je 0x590a0b
mov edi, eax
nop word [eax + eax]
lea eax, [esi + 8]
push eax
lea ecx, [ebp - 0xac]
call fcn.00522eb0
push dword [esi + 0x24]
lea ecx, [ebp - 0xac]
push dword [esi + 0x20]
call fcn.00522540
mov eax, dword [esi]
mov esi, eax
cmp eax, edi
jne 0x5909e0
mov edi, dword [ebp - 0x10]
lea ecx, [ebp - 0xac]
call fcn.005220d0
lea eax, [ebp - 0x88]
push eax
lea ecx, [ebp - 0xac]
call fcn.00522e20
lea ecx, [ebp - 0xac]
call fcn.0051e500
mov ecx, dword [edi + 0x18]
lea esi, [edi + 8]
mov eax, bind
mov byte [ebp - 4], 0x11
sub eax, ecx
cmp eax, 7
jb 0x591b26
cmp dword [esi + 0x14], 0x10
mov eax, esi
jb 0x590a57
mov eax, dword [esi]
push 7
push str._int64s
push ecx
push eax
push esi
push dword [ebp + 8]
lea ecx, [ebp - 0xcc]
call fcn.004f1ef0
or dword [ebp - 0x20], 0x180
lea eax, [ebp - 0x88]
mov byte [ebp - 4], 0x12
push eax
lea eax, [ebp - 0xcc]
push eax
lea eax, [ebp - 0xb4]
push eax
lea ecx, [ebp - 0x50]
call fcn.0058a170
lea ecx, [ebp - 0xcc]
call fcn.00484b50
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 1
call fcn.00484b50
mov eax, dword [esi + 0x1c]
mov dword [ebp - 0x54], eax
mov esi, dword [eax]
cmp esi, eax
je 0x590e1b
mov eax, dword [esi + 0x24]
lea ecx, [esi + 8]
mov edx, dword [ecx + 0x18]
mov dword [ebp - 0x14], ecx
test eax, eax
jg 0x590af5
jl 0x590ad7
test edx, edx
jae 0x590af5
neg edx
adc eax, 0
neg eax
push eax
push edx
lea eax, [ebp - 0x8b]
push eax
call fcn.004e1930
mov byte [eax - 1], 0x2d
lea ecx, [eax - 1]
jmp 0x590b05
push eax
push edx
lea eax, [ebp - 0x8b]
push eax
call fcn.004e1930
mov ecx, eax
lea eax, [ebp - 0x8b]
mov dword [ebp - 0x88], 0
add esp, 0xc
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 0xf
mov byte [ebp - 0x88], 0
cmp ecx, eax
je 0x590b40
sub eax, ecx
push eax
push ecx
lea ecx, [ebp - 0x88]
call fcn.00486af0
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], 0x13
cmp dword [eax + 0x14], 0x10
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x10], ecx
jb 0x590b58
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
cmp ecx, 0x10
jae 0x590b79
movups xmm0, xmmword [eax]
mov dword [ebp - 0xd4], ecx
mov dword [ebp - 0xd0], 0xf
movups xmmword [ebp - 0xe4], xmm0
jmp 0x590bc5
mov eax, ecx
mov ecx, bind
or eax, 0xf
cmp eax, 0x7fffffff
cmova eax, ecx
lea ecx, [ebp - 0xe4]
mov dword [ebp - 0x1c], eax
inc eax
push eax
call fcn.00486a30
mov ecx, dword [ebp - 0x10]
inc ecx
mov dword [ebp - 0xe4], eax
push ecx
mov ecx, dword [ebp - 0x14]
push ecx
push eax
call fcn.00704c30
mov eax, dword [ebp - 0x10]
add esp, 0xc
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0xd0], eax
cmp dword [edi + 0x1c], 0x10
lea ecx, [edi + 8]
mov edx, dword [ecx + 0x10]
mov eax, ecx
mov byte [ebp - 4], 0x14
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x10], ecx
jb 0x590be2
mov eax, dword [ecx]
mov dword [ebp - 0x10], eax
cmp edx, 0x10
jae 0x590bf5
movups xmm0, xmmword [eax]
mov ecx, 0xf
movups xmmword [ebp - 0x70], xmm0
jmp 0x590c2e
mov eax, edx
mov ecx, bind
or eax, 0xf
cmp eax, 0x7fffffff
cmova eax, ecx
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x1c], eax
inc eax
push eax
call fcn.00486a30
mov ecx, dword [ebp - 0x14]
inc ecx
mov dword [ebp - 0x70], eax
push ecx
push dword [ebp - 0x10]
push eax
call fcn.00704c30
mov edx, dword [ebp - 0x14]
add esp, 0xc
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x60], edx
mov eax, bind
mov byte [ebp - 4], 0x16
sub eax, edx
cmp eax, 1
jb 0x591b26
push 1
push 0x766e24
cmp ecx, 0x10
lea eax, [ebp - 0x70]
push edx
cmovae eax, dword [ebp - 0x70]
lea ecx, [ebp - 0xa0]
push eax
lea eax, [ebp - 0x70]
push eax
push dword [ebp + 8]
call fcn.004f1ef0
lea eax, [ebp - 0xe4]
mov byte [ebp - 4], 0x17
push eax
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp - 0xcc]
push eax
call fcn.004d3f70
or dword [ebp - 0x20], 0x1e00
lea ecx, [ebp - 0xa0]
add esp, 0xc
call fcn.00484b50
lea ecx, [ebp - 0x70]
call fcn.00484b50
lea ecx, [ebp - 0xe4]
call fcn.00484b50
lea eax, [ebp - 0xcc]
mov byte [ebp - 4], 0x18
push eax
lea ecx, [ebp - 0x50]
call fcn.00489650
push eax
mov dword [ebp - 0x10], eax
lea ecx, [ebp - 0x50]
lea eax, [ebp - 0xcc]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00489ef0
cmp dword [ebp - 0x24], 0
jne 0x590dc6
cmp dword [ebp - 0x48], 0x4924924
je 0x591b12
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x30], eax
push 1
mov ecx, eax
mov byte [ebp - 4], 0x19
mov dword [ebp - 0x2c], 0
call fcn.004ce7f0
lea ecx, [ebp - 0xcc]
mov dword [ebp - 0x14], eax
push ecx
mov dword [ebp - 0x2c], eax
lea ecx, [eax + 8]
call fcn.00483850
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x88]
push eax
lea ecx, [ecx + 0x20]
call fcn.00483850
mov eax, dword [ebp - 0x48]
inc eax
mov byte [ebp - 4], 0x1a
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x75f520]
mov eax, dword [ebp - 0x34]
cvtpd2ps xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x75f520]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, dword [ebp - 0x50]
seta al
test al, al
je 0x590dad
lea ecx, [ebp - 0x50]
call fcn.004ce530
push dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0x50]
add eax, 8
push eax
lea eax, [ebp - 0xec]
push eax
call fcn.00489ef0
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], eax
jmp 0x590db0
mov ecx, dword [ebp - 0x28]
push dword [ebp - 0x14]
mov dword [ebp - 0x2c], 0
push ecx
push dword [ebp - 0x10]
lea ecx, [ebp - 0x50]
call fcn.004ce260
lea ecx, [ebp - 0xcc]
call fcn.00484b50
mov eax, dword [ebp - 0x74]
mov byte [ebp - 4], 1
cmp eax, 0x10
jb 0x590e0e
mov ecx, dword [ebp - 0x88]
lea edx, [eax + 1]
mov eax, ecx
cmp edx, 0x1000
jb 0x590e04
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x591b21
push edx
push ecx
call fcn.00516d60
add esp, 8
mov eax, dword [esi]
mov esi, eax
cmp eax, dword [ebp - 0x54]
jne 0x590ac1
mov eax, dword [edi]
mov edi, eax
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x18]
jne 0x5909b0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0xa0]
mov dword [ebp - 0x18], eax
mov edi, dword [eax]
mov dword [ebp - 0x10], edi
cmp edi, eax
je 0x5912a2
nop dword [eax]
nop dword [eax + eax]
push 0
lea ecx, [ebp - 0xac]
call fcn.0051e0c0
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 0x1b
call fcn.00522e00
mov eax, dword [edi + 0x24]
mov esi, dword [eax]
cmp esi, eax
je 0x590eab
mov edi, eax
nop word [eax + eax]
lea eax, [esi + 8]
push eax
lea ecx, [ebp - 0xac]
call fcn.00522eb0
push dword [esi + 0x24]
lea ecx, [ebp - 0xac]
push dword [esi + 0x20]
call fcn.00522540
mov eax, dword [esi]
mov esi, eax
cmp eax, edi
jne 0x590e80
mov edi, dword [ebp - 0x10]
lea ecx, [ebp - 0xac]
call fcn.005220d0
lea eax, [ebp - 0x88]
push eax
lea ecx, [ebp - 0xac]
call fcn.00522e20
lea ecx, [ebp - 0xac]
call fcn.0051e500
mov ecx, dword [edi + 0x18]
lea esi, [edi + 8]
mov eax, bind
mov byte [ebp - 4], 0x1c
sub eax, ecx
cmp eax, 8
jb 0x591b26
cmp dword [esi + 0x14], 0x10
mov eax, esi
jb 0x590ef7
mov eax, dword [esi]
push 8
push str._uint64s
push ecx
push eax
push esi
push dword [ebp + 8]
lea ecx, [ebp - 0xcc]
call fcn.004f1ef0
or dword [ebp - 0x20], 0x6000
lea eax, [ebp - 0x88]
mov byte [ebp - 4], 0x1d
push eax
lea eax, [ebp - 0xcc]
push eax
lea eax, [ebp - 0xb4]
push eax
lea ecx, [ebp - 0x50]
call fcn.0058a170
lea ecx, [ebp - 0xcc]
call fcn.00484b50
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 1
call fcn.00484b50
mov eax, dword [esi + 0x1c]
mov dword [ebp - 0x54], eax
mov esi, dword [eax]
cmp esi, eax
je 0x59128f
push dword [esi + 0x24]
lea ecx, [esi + 8]
push dword [ecx + 0x18]
lea eax, [ebp - 0x8b]
mov dword [ebp - 0x14], ecx
push eax
call fcn.004e1930
mov ecx, eax
mov dword [ebp - 0x88], 0
lea eax, [ebp - 0x8b]
mov dword [ebp - 0x78], 0
add esp, 0xc
mov dword [ebp - 0x74], 0xf
mov byte [ebp - 0x88], 0
cmp ecx, eax
je 0x590fb6
sub eax, ecx
push eax
push ecx
lea ecx, [ebp - 0x88]
call fcn.00486af0
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], 0x1e
cmp dword [eax + 0x14], 0x10
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x10], ecx
jb 0x590fce
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
cmp ecx, 0x10
jae 0x590fef
movups xmm0, xmmword [eax]
mov dword [ebp - 0xd4], ecx
mov dword [ebp - 0xd0], 0xf
movups xmmword [ebp - 0xe4], xmm0
jmp 0x59103b
mov eax, ecx
mov ecx, bind
or eax, 0xf
cmp eax, 0x7fffffff
cmova eax, ecx
lea ecx, [ebp - 0xe4]
mov dword [ebp - 0x1c], eax
inc eax
push eax
call fcn.00486a30
mov ecx, dword [ebp - 0x10]
inc ecx
mov dword [ebp - 0xe4], eax
push ecx
mov ecx, dword [ebp - 0x14]
push ecx
push eax
call fcn.00704c30
mov eax, dword [ebp - 0x10]
add esp, 0xc
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0xd0], eax
cmp dword [edi + 0x1c], 0x10
lea eax, [edi + 8]
mov edx, dword [eax + 0x10]
mov ecx, eax
mov byte [ebp - 4], 0x1f
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x10], eax
jb 0x591058
mov ecx, dword [eax]
mov dword [ebp - 0x10], ecx
cmp edx, 0x10
jae 0x59106b
movups xmm0, xmmword [ecx]
mov ecx, 0xf
movups xmmword [ebp - 0x70], xmm0
jmp 0x5910a4
mov eax, edx
mov ecx, bind
or eax, 0xf
cmp eax, 0x7fffffff
cmova eax, ecx
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x1c], eax
inc eax
push eax
call fcn.00486a30
mov ecx, dword [ebp - 0x14]
inc ecx
mov dword [ebp - 0x70], eax
push ecx
push dword [ebp - 0x10]
push eax
call fcn.00704c30
mov edx, dword [ebp - 0x14]
add esp, 0xc
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x60], edx
mov eax, bind
mov byte [ebp - 4], 0x21
sub eax, edx
cmp eax, 1
jb 0x591b26
push 1
push 0x766e24
cmp ecx, 0x10
lea eax, [ebp - 0x70]
push edx
cmovae eax, dword [ebp - 0x70]
lea ecx, [ebp - 0xa0]
push eax
lea eax, [ebp - 0x70]
push eax
push dword [ebp + 8]
call fcn.004f1ef0
lea eax, [ebp - 0xe4]
mov byte [ebp - 4], 0x22
push eax
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp - 0xcc]
push eax
call fcn.004d3f70
or dword [ebp - 0x20], 0x78000
lea ecx, [ebp - 0xa0]
add esp, 0xc
call fcn.00484b50
lea ecx, [ebp - 0x70]
call fcn.00484b50
lea ecx, [ebp - 0xe4]
call fcn.00484b50
lea eax, [ebp - 0xcc]
mov byte [ebp - 4], 0x23
push eax
lea ecx, [ebp - 0x50]
call fcn.00489650
push eax
mov dword [ebp - 0x10], eax
lea ecx, [ebp - 0x50]
lea eax, [ebp - 0xcc]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00489ef0
cmp dword [ebp - 0x24], 0
jne 0x59123c
cmp dword [ebp - 0x48], 0x4924924
je 0x591b12
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x30], eax
push 1
mov ecx, eax
mov byte [ebp - 4], 0x24
mov dword [ebp - 0x2c], 0
call fcn.004ce7f0
lea ecx, [ebp - 0xcc]
mov dword [ebp - 0x14], eax
push ecx
mov dword [ebp - 0x2c], eax
lea ecx, [eax + 8]
call fcn.00483850
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x88]
push eax
lea ecx, [ecx + 0x20]
call fcn.00483850
mov eax, dword [ebp - 0x48]
inc eax
mov byte [ebp - 4], 0x25
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x75f520]
mov eax, dword [ebp - 0x34]
cvtpd2ps xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x75f520]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, dword [ebp - 0x50]
seta al
test al, al
je 0x591223
lea ecx, [ebp - 0x50]
call fcn.004ce530
push dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0x50]
add eax, 8
push eax
lea eax, [ebp - 0xec]
push eax
call fcn.00489ef0
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], eax
jmp 0x591226
mov ecx, dword [ebp - 0x28]
push dword [ebp - 0x14]
mov dword [ebp - 0x2c], 0
push ecx
push dword [ebp - 0x10]
lea ecx, [ebp - 0x50]
call fcn.004ce260
lea ecx, [ebp - 0xcc]
call fcn.00484b50
mov edx, dword [ebp - 0x74]
mov byte [ebp - 4], 1
cmp edx, 0x10
jb 0x591282
mov ecx, dword [ebp - 0x88]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x591278
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x591b21
push edx
push ecx
call fcn.00516d60
add esp, 8
mov eax, dword [esi]
mov esi, eax
cmp eax, dword [ebp - 0x54]
jne 0x590f61
mov eax, dword [edi]
mov edi, eax
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x18]
jne 0x590e50
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0xc0]
mov dword [ebp - 0x24], eax
mov edi, dword [eax]
mov dword [ebp - 0x18], edi
cmp edi, eax
je 0x5917cf
nop dword [eax + eax]
push 0
lea ecx, [ebp - 0x94]
call fcn.0051e0c0
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 0x26
call fcn.00522e00
mov eax, dword [edi + 0x24]
mov esi, dword [eax]
cmp esi, eax
je 0x591322
mov edi, eax
nop word [eax + eax]
lea eax, [esi + 8]
push eax
lea ecx, [ebp - 0x94]
call fcn.00522eb0
movsd xmm0, qword [esi + 0x20]
lea ecx, [ebp - 0x94]
sub esp, 8
movsd qword [esp], xmm0
call fcn.00521fa0
mov eax, dword [esi]
mov esi, eax
cmp eax, edi
jne 0x5912f0
mov edi, dword [ebp - 0x18]
lea ecx, [ebp - 0x94]
call fcn.005220d0
lea eax, [ebp - 0x88]
push eax
lea ecx, [ebp - 0x94]
call fcn.00522e20
lea ecx, [ebp - 0x94]
call fcn.0051e500
mov ecx, dword [edi + 0x18]
lea esi, [edi + 8]
mov eax, bind
mov byte [ebp - 4], 0x27
sub eax, ecx
cmp eax, 8
jb 0x591b26
cmp dword [esi + 0x14], 0x10
mov eax, esi
jb 0x59136e
mov eax, dword [esi]
push 8
push str._doubles
push ecx
push eax
push esi
push dword [ebp + 8]
lea ecx, [ebp - 0xcc]
call fcn.004f1ef0
or dword [ebp - 0x20], 0x180000
lea eax, [ebp - 0x88]
mov byte [ebp - 4], 0x28
push eax
lea eax, [ebp - 0xcc]
push eax
lea eax, [ebp - 0xf8]
push eax
lea ecx, [ebp - 0x50]
call fcn.0058a170
lea ecx, [ebp - 0xcc]
call fcn.00484b50
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 1
call fcn.00484b50
mov eax, dword [esi + 0x1c]
mov dword [ebp - 0x54], eax
mov esi, dword [eax]
cmp esi, eax
je 0x5917bc
nop dword [eax + eax]
movsd xmm0, qword [esi + 0x20]
lea ecx, [esi + 8]
sub esp, 8
mov dword [ebp - 0x10], ecx
movsd qword [ebp - 0xb4], xmm0
movsd qword [esp], xmm0
push 0x76743c
call fcn.00506900
add esp, 0xc
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0xf
mov byte [ebp - 0x70], 0
cmp eax, 0xf
ja 0x591445
push eax
mov dword [ebp - 0x60], eax
lea eax, [ebp - 0x70]
push 0
push eax
call fcn.007051b0
mov eax, dword [ebp - 0x14]
mov byte [ebp + eax - 0x70], 0
mov edx, dword [ebp - 0x70]
jmp 0x5914a0
cmp eax, 0x7fffffff
ja 0x591b26
or eax, 0xf
cmp eax, 0x7fffffff
jbe 0x591461
mov eax, bind
jmp 0x59146c
cmp eax, 0x16
mov ecx, 0x16
cmovb eax, ecx
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x70]
inc eax
push eax
call fcn.00486a30
mov ecx, dword [ebp - 0x18]
mov edx, eax
mov eax, dword [ebp - 0x14]
push eax
push 0
push edx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], ecx
call fcn.007051b0
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
mov byte [edx + eax], 0
mov dword [ebp - 0x70], edx
movsd xmm0, qword [ebp - 0xb4]
lea ecx, [ebp - 0x70]
add esp, 0xc
cmp dword [ebp - 0x5c], 0x10
cmovae ecx, edx
sub esp, 8
inc eax
movsd qword [esp], xmm0
push 0x76743c
push eax
push ecx
call fcn.004d3e20
add esp, 0x14
mov eax, dword [ebp - 0x10]
mov byte [ebp - 4], 0x29
cmp dword [eax + 0x14], 0x10
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x18], ecx
jb 0x5914e5
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
cmp ecx, 0x10
jae 0x591500
movups xmm0, xmmword [eax]
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x74], 0xf
movups xmmword [ebp - 0x88], xmm0
jmp 0x591546
mov eax, ecx
mov ecx, bind
or eax, 0xf
cmp eax, 0x7fffffff
cmova eax, ecx
lea ecx, [ebp - 0x88]
mov dword [ebp - 0x1c], eax
inc eax
push eax
call fcn.00486a30
mov ecx, dword [ebp - 0x18]
inc ecx
mov dword [ebp - 0x88], eax
push ecx
mov ecx, dword [ebp - 0x10]
push ecx
push eax
call fcn.00704c30
mov eax, dword [ebp - 0x18]
add esp, 0xc
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x74], eax
cmp dword [edi + 0x1c], 0x10
lea ecx, [edi + 8]
mov edx, dword [ecx + 0x10]
mov eax, ecx
mov byte [ebp - 4], 0x2a
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x18], ecx
jb 0x591563
mov eax, dword [ecx]
mov dword [ebp - 0x18], eax
cmp edx, 0x10
jae 0x591579
movups xmm0, xmmword [eax]
mov ecx, 0xf
movups xmmword [ebp - 0xe4], xmm0
jmp 0x5915b8
mov eax, edx
mov ecx, bind
or eax, 0xf
cmp eax, 0x7fffffff
cmova eax, ecx
lea ecx, [ebp - 0xe4]
mov dword [ebp - 0x1c], eax
inc eax
push eax
call fcn.00486a30
mov ecx, dword [ebp - 0x10]
inc ecx
mov dword [ebp - 0xe4], eax
push ecx
push dword [ebp - 0x18]
push eax
call fcn.00704c30
mov edx, dword [ebp - 0x10]
add esp, 0xc
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0xd4], edx
mov eax, bind
mov byte [ebp - 4], 0x2c
sub eax, edx
cmp eax, 1
jb 0x591b26
push 1
push 0x766e24
cmp ecx, 0x10
lea eax, [ebp - 0xe4]
push edx
cmovae eax, dword [ebp - 0xe4]
lea ecx, [ebp - 0x128]
push eax
lea eax, [ebp - 0xe4]
push eax
push dword [ebp + 8]
call fcn.004f1ef0
lea eax, [ebp - 0x88]
mov byte [ebp - 4], 0x2d
push eax
lea eax, [ebp - 0x128]
push eax
lea eax, [ebp - 0xcc]
push eax
call fcn.004d3f70
or dword [ebp - 0x20], 0xe00000
lea ecx, [ebp - 0x128]
add esp, 0xc
call fcn.00484b50
lea ecx, [ebp - 0xe4]
call fcn.00484b50
lea ecx, [ebp - 0x88]
call fcn.00484b50
lea eax, [ebp - 0xcc]
mov byte [ebp - 4], 0x2e
push eax
lea ecx, [ebp - 0x50]
call fcn.00489650
push eax
mov dword [ebp - 0x10], eax
lea ecx, [ebp - 0x50]
lea eax, [ebp - 0xcc]
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.00489ef0
cmp dword [ebp - 0x2c], 0
jne 0x59176c
cmp dword [ebp - 0x48], 0x4924924
je 0x591b12
lea eax, [ebp - 0x4c]
mov dword [ebp - 0xec], eax
push 1
mov ecx, eax
mov byte [ebp - 4], 0x2f
mov dword [ebp - 0xe8], 0
call fcn.004ce7f0
mov dword [ebp - 0x1c], eax
lea ecx, [ebp - 0xcc]
mov dword [ebp - 0xe8], eax
add eax, 8
push ecx
mov ecx, eax
mov dword [ebp - 0x18], eax
call fcn.00483850
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x70]
push eax
lea ecx, [ecx + 0x18]
call fcn.00483850
mov eax, dword [ebp - 0x48]
inc eax
mov byte [ebp - 4], 0x30
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x75f520]
mov eax, dword [ebp - 0x34]
cvtpd2ps xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x75f520]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, dword [ebp - 0x50]
seta al
test al, al
je 0x591750
lea ecx, [ebp - 0x50]
call fcn.004ce530
push dword [ebp - 0x10]
lea eax, [ebp - 0xa8]
push dword [ebp - 0x18]
lea ecx, [ebp - 0x50]
push eax
call fcn.00489ef0
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x2c], eax
jmp 0x591753
mov ecx, dword [ebp - 0x30]
push dword [ebp - 0x1c]
mov dword [ebp - 0xe8], 0
push ecx
push dword [ebp - 0x10]
lea ecx, [ebp - 0x50]
call fcn.004ce260
lea ecx, [ebp - 0xcc]
call fcn.00484b50
mov edx, dword [ebp - 0x5c]
mov byte [ebp - 4], 1
cmp edx, 0x10
jb 0x5917af
mov ecx, dword [ebp - 0x70]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x5917a5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x591b21
push edx
push ecx
call fcn.00516d60
add esp, 8
mov eax, dword [esi]
mov esi, eax
cmp eax, dword [ebp - 0x54]
jne 0x5913e0
mov eax, dword [edi]
mov edi, eax
mov dword [ebp - 0x18], eax
cmp eax, dword [ebp - 0x24]
jne 0x5912c0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x100]
mov dword [ebp - 0x54], eax
mov edi, dword [eax]
mov dword [ebp - 0x18], edi
cmp edi, eax
je 0x5918ff
lea eax, [edi + 8]
mov dword [ebp - 0x24], eax
add eax, 0x18
push eax
lea eax, [ebp - 0xcc]
push eax
call fcn.00575de0
mov esi, eax
push str._bools
lea eax, [edi + 8]
mov byte [ebp - 4], 0x31
push eax
lea eax, [ebp - 0x128]
push eax
call fcn.005025a0
add esp, 0x14
push esi
push eax
lea eax, [ebp - 0xa8]
mov byte [ebp - 4], 0x32
push eax
lea ecx, [ebp - 0x50]
call fcn.0058a170
lea ecx, [ebp - 0x128]
call fcn.00484b50
lea ecx, [ebp - 0xcc]
mov byte [ebp - 4], 1
call fcn.00484b50
mov eax, dword [edi + 0x24]
mov dword [ebp - 0x1c], eax
mov esi, dword [eax]
cmp esi, eax
je 0x5918ec
mov edi, dword [ebp - 0x24]
nop dword [eax + eax]
movzx eax, byte [esi + 0x20]
push eax
lea eax, [ebp - 0xcc]
push eax
call fcn.0058e3d0
mov dword [ebp - 0x24], eax
sub esp, 0x10
mov byte [ebp - 4], 0x33
lea edx, [esi + 8]
mov dword [ebp - 0x10], esp
mov ecx, esp
push edx
call fcn.004838a0
sub esp, 0x18
mov byte [ebp - 4], 0x34
mov ecx, esp
push edi
call fcn.004838a0
lea eax, [ebp - 0x128]
mov byte [ebp - 4], 0x33
push eax
call fcn.00580b30
add esp, 0x34
push dword [ebp - 0x24]
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x35
push eax
lea eax, [ebp - 0xf8]
push eax
call fcn.0058a170
lea ecx, [ebp - 0x128]
call fcn.00484b50
lea ecx, [ebp - 0xcc]
mov byte [ebp - 4], 1
call fcn.00484b50
mov eax, dword [esi]
mov esi, eax
cmp eax, dword [ebp - 0x1c]
jne 0x591860
mov edi, dword [ebp - 0x18]
mov eax, dword [edi]
mov edi, eax
mov dword [ebp - 0x18], eax
cmp eax, dword [ebp - 0x54]
jne 0x5917e5
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0xe0]
mov dword [ebp - 0x54], eax
mov edi, dword [eax]
mov dword [ebp - 0x18], edi
cmp edi, eax
je 0x5919fd
lea eax, [edi + 8]
mov dword [ebp - 0x24], eax
add eax, 0x18
push eax
lea eax, [ebp - 0xcc]
push eax
call fcn.00575cb0
mov esi, eax
push str._strings
lea eax, [edi + 8]
mov byte [ebp - 4], 0x36
push eax
lea eax, [ebp - 0x128]
push eax
call fcn.005025a0
add esp, 0x14
push esi
push eax
lea eax, [ebp - 0xa8]
mov byte [ebp - 4], 0x37
push eax
lea ecx, [ebp - 0x50]
call fcn.0058a170
lea ecx, [ebp - 0x128]
call fcn.00484b50
lea ecx, [ebp - 0xcc]
mov byte [ebp - 4], 1
call fcn.00484b50
mov eax, dword [edi + 0x24]
mov dword [ebp - 0x1c], eax
mov esi, dword [eax]
cmp esi, eax
je 0x5919ed
mov edi, dword [ebp - 0x24]
lea edx, [esi + 8]
lea eax, [edx + 0x18]
push eax
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x24], esp
push edx
call fcn.004838a0
sub esp, 0x18
mov byte [ebp - 4], 0x38
mov ecx, esp
push edi
call fcn.004838a0
lea eax, [ebp - 0x128]
mov byte [ebp - 4], 1
push eax
call fcn.00580b30
add esp, 0x34
push eax
lea eax, [ebp - 0xf8]
mov byte [ebp - 4], 0x39
push eax
lea ecx, [ebp - 0x50]
call fcn.00589fd0
lea ecx, [ebp - 0x128]
mov byte [ebp - 4], 1
call fcn.00484b50
mov eax, dword [esi]
mov esi, eax
cmp eax, dword [ebp - 0x1c]
jne 0x591987
mov edi, dword [ebp - 0x18]
mov eax, dword [edi]
mov edi, eax
mov dword [ebp - 0x18], eax
cmp eax, dword [ebp - 0x54]
jne 0x591915
cmp byte [0xa968b0], 0
je 0x591a34
cmp byte [0x8f7c38], 0
je 0x591a34
lea eax, [ebp - 0x18]
push eax
call fcn.005938e0
add esp, 4
cmp dword [ebp - 0x18], 0
je 0x591a34
lea ecx, [ebp - 0x18]
call fcn.0058c7a0
lea ecx, [ebp - 0x50]
push ecx
mov ecx, eax
call fcn.00581650
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x170]
push 0x75cfea
push eax
lea ecx, [esi + 0x138]
call fcn.0058aaf0
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x3a
push eax
lea eax, [esi + 0x14]
push eax
lea eax, [ebp - 0x170]
push eax
lea eax, [ebp - 0x158]
push eax
call fcn.0058e420
add esp, 0x10
mov ecx, dword [ebp - 0xf0]
add ecx, 0xc
mov byte [ebp - 4], 0x3b
call fcn.0058c7a0
mov esi, dword [esi + 0x10]
sub esp, 0x18
mov edi, eax
mov dword [ebp + 8], esp
lea eax, [ebp - 0x110]
mov ecx, esp
push eax
call fcn.004838a0
sub esp, 0x18
mov byte [ebp - 4], 0x3c
lea eax, [ebp - 0x158]
mov ecx, esp
push eax
call fcn.004838a0
lea ecx, [ebp - 0x140]
mov byte [ebp - 4], 0x3b
call fcn.0058b9b0
push esi
push eax
mov ecx, edi
mov byte [ebp - 4], 0x3d
call fcn.0059a7e0
lea ecx, [ebp - 0x140]
call fcn.004b3720
lea ecx, [ebp - 0x158]
call fcn.00484b50
lea ecx, [ebp - 0x170]
call fcn.00484b50
lea ecx, [ebp - 0x50]
call fcn.004b38d0
lea ecx, [ebp - 0x110]
call fcn.00484b50
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
ret 4
push str.unordered_map_set_too_long
call fcn.006ee17a
call fcn.00486850
call fcn.0070f5b4
call fcn.00486890
int3