Function at 0x581650
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x74ce3e
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x158
push esi
push edi
xor edi, edi
mov esi, ecx
mov dword [ebp - 0x20], edi
push dword [0xa91410]
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x14], edi
call fcn.005174e0
add esp, 4
mov dword [ebp - 0x114], eax
cmp byte [0xa968b0], 0
mov dword [ebp - 4], edi
je 0x5822f3
cmp byte [0x8f7c40], 0
je 0x5822f3
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x24], eax
mov esi, dword [eax]
cmp esi, eax
je 0x581976
nop
lea eax, [esi + 0x20]
push eax
lea eax, [ebp - 0x7c]
push eax
call fcn.00575d40
add esp, 8
mov dword [ebp - 0x10], eax
mov edx, dword [esi + 0x18]
lea eax, [esi + 8]
mov ecx, bind
mov byte [ebp - 4], 1
sub ecx, edx
cmp ecx, 7
jb 0x58345a
cmp dword [eax + 0x14], 0x10
mov ecx, eax
jb 0x5816f7
mov ecx, dword [eax]
push 7
push str._int64s
push edx
push ecx
push eax
push dword [ebp + 8]
lea ecx, [ebp - 0xc8]
call fcn.004f1ef0
or edi, 1
mov dword [ebp - 0x14], edi
push dword [ebp - 0x10]
lea eax, [ebp - 0xc8]
push eax
lea ecx, [ebp - 0xb0]
call fcn.004cca10
cmp dword [ebp - 0x9c], 0x10
lea ecx, [ebp - 0xb0]
mov eax, dword [ebp - 0xb0]
mov edx, 0x811c9dc5
cmovae ecx, eax
mov byte [ebp - 4], 3
mov dword [ebp - 0x10], ecx
xor ecx, ecx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x20], edx
cmp dword [ebp - 0xa0], ecx
jbe 0x58177b
mov edi, dword [ebp - 0x10]
nop
movzx eax, byte [ecx + edi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [ebp - 0xa0]
jb 0x581760
mov edi, dword [ebp - 0x14]
mov dword [ebp - 0x20], edx
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0xb0]
push edx
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.00489ef0
cmp dword [ebp - 0x2c], 0
jne 0x58187c
mov eax, dword [ebp + 8]
cmp dword [eax + 8], 0x4924924
je 0x58344b
add eax, 4
mov dword [ebp - 0x40], eax
push 0x38
mov byte [ebp - 4], 4
mov dword [ebp - 0x3c], 0
call fcn.00516cd0
add esp, 4
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x3c], eax
lea ecx, [ebp - 0xb0]
add eax, 8
mov dword [ebp - 0x10], eax
push ecx
mov ecx, eax
call fcn.005741a0
mov ecx, dword [ebp + 8]
mov byte [ebp - 4], 5
mov edx, dword [ecx + 8]
inc edx
mov eax, edx
shr eax, 0x1f
movd xmm0, edx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x75f520]
mov eax, dword [ecx + 0x1c]
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 [ecx]
seta al
test al, al
je 0x58185d
push edx
call fcn.004cdfd0
mov ecx, dword [ebp + 8]
push eax
call fcn.004ce060
push dword [ebp - 0x20]
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x4c]
push dword [ebp - 0x10]
push eax
call fcn.00489ef0
mov ecx, dword [ebp + 8]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], eax
jmp 0x581860
mov edx, dword [ebp - 0x30]
push dword [ebp - 0x18]
mov dword [ebp - 0x3c], 0
push edx
push dword [ebp - 0x20]
call fcn.004ce260
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0x28], eax
mov edx, dword [ebp - 0x84]
mov byte [ebp - 4], 2
cmp edx, 0x10
jb 0x5818ba
mov ecx, dword [ebp - 0x98]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x5818b0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x583455
push edx
push ecx
call fcn.00516d60
add esp, 8
mov eax, dword [ebp - 0x9c]
cmp eax, 0x10
jb 0x5818f3
mov ecx, dword [ebp - 0x28]
lea edx, [eax + 1]
mov eax, ecx
cmp edx, 0x1000
jb 0x5818e9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x583455
push edx
push ecx
call fcn.00516d60
add esp, 8
mov edx, dword [ebp - 0xb4]
mov byte [ebp - 4], 1
cmp edx, 0x10
jb 0x581931
mov ecx, dword [ebp - 0xc8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x581927
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x583455
push edx
push ecx
call fcn.00516d60
add esp, 8
mov edx, dword [ebp - 0x68]
mov byte [ebp - 4], 0
cmp edx, 0x10
jb 0x581969
mov ecx, dword [ebp - 0x7c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x58195f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x583455
push edx
push ecx
call fcn.00516d60
add esp, 8
mov eax, dword [esi]
mov esi, eax
cmp eax, dword [ebp - 0x24]
jne 0x5816c0
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x1c], eax
mov esi, dword [eax]
mov dword [ebp - 0x20], esi
cmp esi, eax
je 0x581c93
nop dword [eax]
lea eax, [esi + 0x20]
push eax
lea eax, [ebp - 0x7c]
push eax
call fcn.00575d40
add esp, 8
mov dword [ebp - 0x10], eax
mov edx, dword [esi + 0x18]
lea eax, [esi + 8]
mov ecx, bind
mov byte [ebp - 4], 6
sub ecx, edx
cmp ecx, 8
jb 0x58345a
cmp dword [eax + 0x14], 0x10
mov ecx, eax
jb 0x5819c7
mov ecx, dword [eax]
push 8
push str._uint64s
push edx
push ecx
push eax
push dword [ebp + 8]
lea ecx, [ebp - 0xc8]
call fcn.004f1ef0
or edi, 2
push dword [ebp - 0x10]
lea eax, [ebp - 0xc8]
push eax
lea ecx, [ebp - 0xb0]
call fcn.004cca10
cmp dword [ebp - 0x9c], 0x10
lea eax, [ebp - 0xb0]
mov edx, 0x811c9dc5
mov byte [ebp - 4], 8
cmovae eax, dword [ebp - 0xb0]
xor ecx, ecx
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0xa0], ecx
jbe 0x581a3e
mov esi, eax
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [ebp - 0xa0]
jb 0x581a23
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0xb0]
push edx
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.00489ef0
cmp dword [ebp - 0x2c], 0
jne 0x581b95
mov eax, dword [ebp + 8]
cmp dword [eax + 8], 0x4924924
je 0x58344b
add eax, 4
mov dword [ebp - 0x38], eax
push 0x38
mov byte [ebp - 4], 9
mov dword [ebp - 0x34], 0
call fcn.00516cd0
add esp, 4
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x34], eax
lea ecx, [ebp - 0xb0]
add eax, 8
mov dword [ebp - 0x10], eax
push ecx
mov ecx, eax
call fcn.005741a0
mov ecx, dword [ebp + 8]
mov byte [ebp - 4], 0xa
mov esi, dword [ecx + 8]
lea edx, [esi + 1]
movd xmm0, edx
mov eax, edx
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x75f520]
mov eax, dword [ecx + 0x1c]
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 [ecx]
seta al
test al, al
je 0x581b25
push edx
call fcn.004cdfd0
mov ecx, dword [ebp + 8]
push eax
call fcn.004ce060
push dword [ebp - 0x14]
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x4c]
push dword [ebp - 0x10]
push eax
call fcn.00489ef0
mov ecx, dword [ebp + 8]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov esi, dword [ecx + 8]
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], eax
jmp 0x581b28
mov edx, dword [ebp - 0x30]
mov eax, dword [edx + 4]
mov dword [ebp - 0x18], eax
lea eax, [esi + 1]
mov esi, dword [ebp - 0x18]
mov dword [ecx + 8], eax
mov dword [ebp - 0x28], edx
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x34], 0
mov dword [edx], eax
mov dword [edx + 4], esi
mov dword [esi], edx
mov dword [eax + 4], edx
mov eax, dword [ecx + 0xc]
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x10], eax
mov eax, dword [ecx + 0x18]
and eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
mov esi, dword [ecx + eax*8]
cmp esi, dword [edx]
mov esi, dword [ebp - 0x20]
mov edx, dword [ebp - 0x24]
jne 0x581b75
mov dword [ecx + eax*8], edx
jmp 0x581b91
mov esi, dword [ecx + eax*8]
cmp esi, dword [ebp - 0x28]
mov esi, dword [ebp - 0x20]
jne 0x581b85
mov dword [ecx + eax*8], edx
jmp 0x581b95
mov esi, dword [ebp - 0x18]
cmp dword [ecx + eax*8 + 4], esi
mov esi, dword [ebp - 0x20]
jne 0x581b95
mov dword [ecx + eax*8 + 4], edx
mov edx, dword [ebp - 0x84]
mov byte [ebp - 4], 7
cmp edx, 0x10
jb 0x581bd3
mov ecx, dword [ebp - 0x98]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x581bc9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x583455
push edx
push ecx
call fcn.00516d60
add esp, 8
mov edx, dword [ebp - 0x9c]
cmp edx, 0x10
jb 0x581c0d
mov ecx, dword [ebp - 0xb0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x581c03
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x583455
push edx
push ecx
call fcn.00516d60
add esp, 8
mov edx, dword [ebp - 0xb4]
mov byte [ebp - 4], 6
cmp edx, 0x10
jb 0x581c4b
mov ecx, dword [ebp - 0xc8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x581c41
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x583455
push edx
push ecx
call fcn.00516d60
add esp, 8
mov edx, dword [ebp - 0x68]
mov byte [ebp - 4], 0
cmp edx, 0x10
jb 0x581c83
mov ecx, dword [ebp - 0x7c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x581c79
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x583455
push edx
push ecx
call fcn.00516d60
add esp, 8
mov eax, dword [esi]
mov esi, eax
mov dword [ebp - 0x20], eax
cmp eax, dword [ebp - 0x1c]
jne 0x581990
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x70]
mov dword [ebp - 0x10], eax
mov esi, dword [eax]
mov dword [ebp - 0x20], esi
cmp esi, eax
je 0x581fb3
nop dword [eax]
lea eax, [esi + 0x20]
push eax
lea eax, [ebp - 0x7c]
push eax
call fcn.00575cb0
add esp, 8
mov dword [ebp - 0x1c], eax
mov edx, dword [esi + 0x18]
lea eax, [esi + 8]
mov ecx, bind
mov byte [ebp - 4], 0xb
sub ecx, edx
cmp ecx, 8
jb 0x58345a
cmp dword [eax + 0x14], 0x10
mov ecx, eax
jb 0x581ce7
mov ecx, dword [eax]
push 8
push str._strings
push edx
push ecx
push eax
push dword [ebp + 8]
lea ecx, [ebp - 0xc8]
call fcn.004f1ef0
or edi, 4
push dword [ebp - 0x1c]
lea eax, [ebp - 0xc8]
push eax
lea ecx, [ebp - 0xb0]
call fcn.004cca10
cmp dword [ebp - 0x9c], 0x10
lea eax, [ebp - 0xb0]
mov edx, 0x811c9dc5
mov byte [ebp - 4], 0xd
cmovae eax, dword [ebp - 0xb0]
xor ecx, ecx
mov dword [ebp - 0x28], edx
cmp dword [ebp - 0xa0], ecx
jbe 0x581d5e
mov esi, eax
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [ebp - 0xa0]
jb 0x581d43
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0x28], edx
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0xb0]
push edx
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.00489ef0
cmp dword [ebp - 0x2c], 0
jne 0x581eb5
mov eax, dword [ebp + 8]
cmp dword [eax + 8], 0x4924924
je 0x58344b
add eax, 4
mov dword [ebp - 0x38], eax
push 0x38
mov byte [ebp - 4], 0xe
mov dword [ebp - 0x34], 0
call fcn.00516cd0
add esp, 4
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x34], eax
lea ecx, [ebp - 0xb0]
add eax, 8
mov dword [ebp - 0x1c], eax
push ecx
mov ecx, eax
call fcn.005741a0
mov ecx, dword [ebp + 8]
mov byte [ebp - 4], 0xf
mov esi, dword [ecx + 8]
lea edx, [esi + 1]
movd xmm0, edx
mov eax, edx
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x75f520]
mov eax, dword [ecx + 0x1c]
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 [ecx]
seta al
test al, al
je 0x581e45
push edx
call fcn.004cdfd0
mov ecx, dword [ebp + 8]
push eax
call fcn.004ce060
push dword [ebp - 0x28]
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x4c]
push dword [ebp - 0x1c]
push eax
call fcn.00489ef0
mov ecx, dword [ebp + 8]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov esi, dword [ecx + 8]
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], eax
jmp 0x581e48
mov edx, dword [ebp - 0x30]
mov eax, dword [edx + 4]
mov dword [ebp - 0x24], eax
lea eax, [esi + 1]
mov esi, dword [ebp - 0x24]
mov dword [ecx + 8], eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x34], 0
mov dword [edx], eax
mov dword [edx + 4], esi
mov dword [esi], edx
mov dword [eax + 4], edx
mov eax, dword [ecx + 0xc]
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x1c], eax
mov eax, dword [ecx + 0x18]
and eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ecx + eax*8]
cmp esi, dword [edx]
mov esi, dword [ebp - 0x20]
mov edx, dword [ebp - 0x18]
jne 0x581e95
mov dword [ecx + eax*8], edx
jmp 0x581eb1
mov esi, dword [ecx + eax*8]
cmp esi, dword [ebp - 0x14]
mov esi, dword [ebp - 0x20]
jne 0x581ea5
mov dword [ecx + eax*8], edx
jmp 0x581eb5
mov esi, dword [ebp - 0x24]
cmp dword [ecx + eax*8 + 4], esi
mov esi, dword [ebp - 0x20]
jne 0x581eb5
mov dword [ecx + eax*8 + 4], edx
mov edx, dword [ebp - 0x84]
mov byte [ebp - 4], 0xc
cmp edx, 0x10
jb 0x581ef3
mov ecx, dword [ebp - 0x98]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x581ee9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x583455
push edx
push ecx
call fcn.00516d60
add esp, 8
mov edx, dword [ebp - 0x9c]
cmp edx, 0x10
jb 0x581f2d
mov ecx, dword [ebp - 0xb0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x581f23
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x583455
push edx
push ecx
call fcn.00516d60
add esp, 8
mov edx, dword [ebp - 0xb4]
mov byte [ebp - 4], 0xb
cmp edx, 0x10
jb 0x581f6b
mov ecx, dword [ebp - 0xc8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x581f61
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x583455
push edx
push ecx
call fcn.00516d60
add esp, 8
mov edx, dword [ebp - 0x68]
mov byte [ebp - 4], 0
cmp edx, 0x10
jb 0x581fa3
mov ecx, dword [ebp - 0x7c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x581f99
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x583455
push edx
push ecx
call fcn.00516d60
add esp, 8
mov eax, dword [esi]
mov esi, eax
mov dword [ebp - 0x20], eax
cmp eax, dword [ebp - 0x10]
jne 0x581cb0
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x50]
mov dword [ebp - 0x10], eax
mov esi, dword [eax]
mov dword [ebp - 0x20], esi
cmp esi, eax
je 0x582218
nop dword [eax]
lea eax, [esi + 0x20]
push eax
lea eax, [ebp - 0x98]
push eax
call fcn.00575c10
add esp, 8
mov dword [ebp - 0x1c], eax
mov edx, dword [esi + 0x18]
lea eax, [esi + 8]
mov ecx, bind
mov byte [ebp - 4], 0x10
sub ecx, edx
cmp ecx, 8
jb 0x58345a
cmp dword [eax + 0x14], 0x10
mov ecx, eax
jb 0x58200a
mov ecx, dword [eax]
push 8
push str._doubles
push edx
push ecx
push eax
push dword [ebp + 8]
lea ecx, [ebp - 0xc8]
call fcn.004f1ef0
or edi, 8
push dword [ebp - 0x1c]
lea eax, [ebp - 0xc8]
push eax
lea ecx, [ebp - 0x110]
call fcn.004cca10
cmp dword [ebp - 0xfc], 0x10
lea eax, [ebp - 0x110]
mov edx, 0x811c9dc5
mov byte [ebp - 4], 0x12
cmovae eax, dword [ebp - 0x110]
xor ecx, ecx
mov dword [ebp - 0x28], edx
cmp dword [ebp - 0x100], ecx
jbe 0x582081
mov esi, eax
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [ebp - 0x100]
jb 0x582066
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0x28], edx
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x110]
push edx
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.00489ef0
cmp dword [ebp - 0x2c], 0
jne 0x5821d8
mov eax, dword [ebp + 8]
cmp dword [eax + 8], 0x4924924
je 0x58344b
add eax, 4
mov dword [ebp - 0x38], eax
push 0x38
mov byte [ebp - 4], 0x13
mov dword [ebp - 0x34], 0
call fcn.00516cd0
add esp, 4
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x34], eax
lea ecx, [ebp - 0x110]
add eax, 8
mov dword [ebp - 0x1c], eax
push ecx
mov ecx, eax
call fcn.005741a0
mov ecx, dword [ebp + 8]
mov byte [ebp - 4], 0x14
mov esi, dword [ecx + 8]
lea edx, [esi + 1]
movd xmm0, edx
mov eax, edx
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x75f520]
mov eax, dword [ecx + 0x1c]
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 [ecx]
seta al
test al, al
je 0x582168
push edx
call fcn.004cdfd0
mov ecx, dword [ebp + 8]
push eax
call fcn.004ce060
push dword [ebp - 0x28]
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x4c]
push dword [ebp - 0x1c]
push eax
call fcn.00489ef0
mov ecx, dword [ebp + 8]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov esi, dword [ecx + 8]
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], eax
jmp 0x58216b
mov edx, dword [ebp - 0x30]
mov eax, dword [edx + 4]
mov dword [ebp - 0x24], eax
lea eax, [esi + 1]
mov esi, dword [ebp - 0x24]
mov dword [ecx + 8], eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x34], 0
mov dword [edx], eax
mov dword [edx + 4], esi
mov dword [esi], edx
mov dword [eax + 4], edx
mov eax, dword [ecx + 0xc]
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x1c], eax
mov eax, dword [ecx + 0x18]
and eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ecx + eax*8]
cmp esi, dword [edx]
mov esi, dword [ebp - 0x20]
mov edx, dword [ebp - 0x18]
jne 0x5821b8
mov dword [ecx + eax*8], edx
jmp 0x5821d4
mov esi, dword [ecx + eax*8]
cmp esi, dword [ebp - 0x14]
mov esi, dword [ebp - 0x20]
jne 0x5821c8
mov dword [ecx + eax*8], edx
jmp 0x5821d8
mov esi, dword [ebp - 0x24]
cmp dword [ecx + eax*8 + 4], esi
mov esi, dword [ebp - 0x20]
jne 0x5821d8
mov dword [ecx + eax*8 + 4], edx
lea ecx, [ebp - 0xf8]
call fcn.00484b50
lea ecx, [ebp - 0x110]
call fcn.00484b50
lea ecx, [ebp - 0xc8]
call fcn.00484b50
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0
call fcn.00484b50
mov eax, dword [esi]
mov esi, eax
mov dword [ebp - 0x20], eax
cmp eax, dword [ebp - 0x10]
jne 0x581fd0
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x90]
mov dword [ebp - 0x10], eax
mov esi, dword [eax]
cmp esi, eax
je 0x583424
nop
lea eax, [esi + 0x20]
push eax
lea eax, [ebp - 0x98]
push eax
call fcn.00575de0
add esp, 8
mov dword [ebp - 0x1c], eax
mov edx, dword [esi + 0x18]
lea eax, [esi + 8]
mov ecx, bind
mov byte [ebp - 4], 0x15
sub ecx, edx
cmp ecx, 6
jb 0x58345a
cmp dword [eax + 0x14], 0x10
mov ecx, eax
jb 0x58226a
mov ecx, dword [eax]
push 6
push str._bools
push edx
push ecx
push eax
push dword [ebp + 8]
lea ecx, [ebp - 0xc8]
call fcn.004f1ef0
or edi, 0x10
push dword [ebp - 0x1c]
lea eax, [ebp - 0xc8]
push eax
lea ecx, [ebp - 0x14c]
call fcn.004cca10
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x4c]
mov byte [ebp - 4], 0x17
push eax
call fcn.005759e0
lea ecx, [ebp - 0x134]
call fcn.00484b50
lea ecx, [ebp - 0x14c]
call fcn.00484b50
lea ecx, [ebp - 0xc8]
call fcn.00484b50
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0
call fcn.00484b50
mov eax, dword [esi]
mov esi, eax
cmp eax, dword [ebp - 0x10]
jne 0x582230
jmp 0x583424
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x10], eax
mov edi, dword [eax]
cmp edi, eax
je 0x5826a6
mov ecx, eax
mov eax, dword [edi + 0x24]
mov dword [ebp - 0x34], eax
mov esi, dword [eax]
cmp esi, eax
je 0x582697
mov eax, dword [esi + 0x24]
lea ecx, [esi + 8]
mov edx, dword [ecx + 0x18]
mov dword [ebp - 0x28], ecx
test eax, eax
jg 0x582349
jl 0x58232b
test edx, edx
jae 0x582349
neg edx
adc eax, 0
neg eax
push eax
push edx
lea eax, [ebp - 0x14f]
push eax
call fcn.004e1930
mov byte [eax - 1], 0x2d
lea ecx, [eax - 1]
jmp 0x582359
push eax
push edx
lea eax, [ebp - 0x14f]
push eax
call fcn.004e1930
mov ecx, eax
lea eax, [ebp - 0x14f]
mov dword [ebp - 0xc8], 0
add esp, 0xc
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0xb4], 0xf
mov byte [ebp - 0xc8], 0
cmp ecx, eax
je 0x58239a
sub eax, ecx
push eax
push ecx
lea ecx, [ebp - 0xc8]
call fcn.00486af0
or dword [ebp - 0x14], 0x60
mov eax, dword [ebp - 0x28]
mov byte [ebp - 4], 0x18
cmp dword [eax + 0x14], 0x10
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x18], ecx
jb 0x5823b6
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
cmp ecx, 0x10
jae 0x5823ce
movups xmm0, xmmword [eax]
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x68], 0xf
movups xmmword [ebp - 0x7c], xmm0
jmp 0x58240e
mov eax, ecx
mov ecx, bind
or eax, 0xf
cmp eax, 0x7fffffff
cmova eax, ecx
lea ecx, [ebp - 0x7c]
mov dword [ebp - 0x1c], eax
inc eax
push eax
call fcn.00486a30
mov ecx, dword [ebp - 0x18]
inc ecx
mov dword [ebp - 0x7c], eax
push ecx
mov ecx, dword [ebp - 0x28]
push ecx
push eax
call fcn.00704c30
mov eax, dword [ebp - 0x18]
add esp, 0xc
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x68], eax
cmp dword [edi + 0x1c], 0x10
lea ecx, [edi + 8]
mov edx, dword [ecx + 0x10]
mov eax, ecx
mov byte [ebp - 4], 0x19
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x18], ecx
jb 0x58242b
mov eax, dword [ecx]
mov dword [ebp - 0x18], eax
cmp edx, 0x10
jae 0x58243e
movups xmm0, xmmword [eax]
mov ecx, 0xf
movups xmmword [ebp - 0x64], xmm0
jmp 0x582477
mov eax, edx
mov ecx, bind
or eax, 0xf
cmp eax, 0x7fffffff
cmova eax, ecx
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x1c], eax
inc eax
push eax
call fcn.00486a30
mov ecx, dword [ebp - 0x24]
inc ecx
mov dword [ebp - 0x64], eax
push ecx
push dword [ebp - 0x18]
push eax
call fcn.00704c30
mov edx, dword [ebp - 0x24]
add esp, 0xc
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x54], edx
mov eax, bind
mov byte [ebp - 4], 0x1b
sub eax, edx
cmp eax, 1
jb 0x58345a
push 1
push 0x766e24
cmp ecx, 0x10
lea eax, [ebp - 0x64]
push edx
cmovae eax, dword [ebp - 0x64]
lea ecx, [ebp - 0x164]
push eax
lea eax, [ebp - 0x64]
push eax
push dword [ebp + 8]
call fcn.004f1ef0
or dword [ebp - 0x14], 0x100
lea eax, [ebp - 0x7c]
mov byte [ebp - 4], 0x1c
push eax
lea eax, [ebp - 0x164]
push eax
lea eax, [ebp - 0xf8]
push eax
call fcn.004d3f70
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0x164]
add esp, 0xc
or eax, 0x80
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x20], eax
call fcn.00484b50
lea ecx, [ebp - 0x64]
call fcn.00484b50
lea ecx, [ebp - 0x7c]
call fcn.00484b50
lea eax, [ebp - 0xc8]
push eax
lea eax, [ebp - 0xf8]
push eax
lea ecx, [ebp - 0xb0]
call fcn.004cca10
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0xb0]
push eax
mov byte [ebp - 4], 0x1e
call fcn.00489650
mov ecx, dword [ebp + 8]
push eax
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0xb0]
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.00489ef0
cmp dword [ebp - 0x2c], 0
jne 0x582628
mov eax, dword [ebp + 8]
cmp dword [eax + 8], 0x4924924
je 0x58344b
lea ecx, [eax + 4]
mov dword [ebp - 0x40], ecx
push 1
mov byte [ebp - 4], 0x1f
mov dword [ebp - 0x3c], 0
call fcn.004ce7f0
mov dword [ebp - 0x24], eax
lea ecx, [ebp - 0xb0]
mov dword [ebp - 0x3c], eax
add eax, 8
push ecx
mov ecx, eax
mov dword [ebp - 0x1c], eax
call fcn.005741a0
mov ecx, dword [ebp + 8]
mov byte [ebp - 4], 0x20
mov edx, dword [ecx + 8]
inc edx
mov eax, edx
shr eax, 0x1f
movd xmm0, edx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x75f520]
mov eax, dword [ecx + 0x1c]
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 [ecx]
seta al
test al, al
je 0x582612
push edx
call fcn.004cdfd0
mov ecx, dword [ebp + 8]
push eax
call fcn.004ce060
push dword [ebp - 0x18]
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x4c]
push dword [ebp - 0x1c]
push eax
call fcn.00489ef0
mov ecx, dword [ebp + 8]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], eax
jmp 0x582615
mov edx, dword [ebp - 0x30]
push dword [ebp - 0x24]
mov dword [ebp - 0x3c], 0
push edx
push dword [ebp - 0x18]
call fcn.004ce260
lea ecx, [ebp - 0x98]
call fcn.00484b50
lea ecx, [ebp - 0xb0]
call fcn.00484b50
lea ecx, [ebp - 0xf8]
call fcn.00484b50
mov edx, dword [ebp - 0xb4]
mov byte [ebp - 4], 0
cmp edx, 0x10
jb 0x582687
mov ecx, dword [ebp - 0xc8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x58267d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x583455
push edx
push ecx
call fcn.00516d60
add esp, 8
mov eax, dword [esi]
mov esi, eax
cmp eax, dword [ebp - 0x34]
jne 0x582315
mov ecx, dword [ebp - 0x10]
mov eax, dword [edi]
mov edi, eax
cmp eax, ecx
jne 0x582305
mov esi, dword [ebp - 0x44]
mov eax, dword [esi + 0x30]
mov dword [ebp - 0x24], eax
mov edi, dword [eax]
cmp edi, eax
je 0x582a3b
mov ecx, eax
mov eax, dword [edi + 0x24]
mov dword [ebp - 0x2c], eax
mov esi, dword [eax]
cmp esi, eax
je 0x582a2c
nop dword [eax + eax]
push dword [esi + 0x24]
lea ecx, [esi + 8]
push dword [ecx + 0x18]
lea eax, [ebp - 0x14f]
mov dword [ebp - 0x28], ecx
push eax
call fcn.004e1930
lea ecx, [ebp - 0x14f]
mov dword [ebp - 0xc8], 0
add esp, 0xc
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0xb4], 0xf
mov byte [ebp - 0xc8], 0
cmp eax, ecx
je 0x582729
sub ecx, eax
push ecx
push eax
lea ecx, [ebp - 0xc8]
call fcn.00486af0
or dword [ebp - 0x14], 0x600
mov eax, dword [ebp - 0x28]
mov byte [ebp - 4], 0x21
cmp dword [eax + 0x14], 0x10
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x10], ecx
jb 0x582748
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
cmp ecx, 0x10
jae 0x582760
movups xmm0, xmmword [eax]
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x68], 0xf
movups xmmword [ebp - 0x7c], xmm0
jmp 0x5827a0
mov eax, ecx
mov ecx, bind
or eax, 0xf
cmp eax, 0x7fffffff
cmova eax, ecx
lea ecx, [ebp - 0x7c]
mov dword [ebp - 0x34], eax
inc eax
push eax
call fcn.00486a30
mov ecx, dword [ebp - 0x10]
inc ecx
mov dword [ebp - 0x7c], eax
push ecx
mov ecx, dword [ebp - 0x28]
push ecx
push eax
call fcn.00704c30
mov eax, dword [ebp - 0x10]
add esp, 0xc
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x68], eax
cmp dword [edi + 0x1c], 0x10
lea ecx, [edi + 8]
mov edx, dword [ecx + 0x10]
mov eax, ecx
mov byte [ebp - 4], 0x22
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x10], ecx
jb 0x5827bd
mov eax, dword [ecx]
mov dword [ebp - 0x10], eax
cmp edx, 0x10
jae 0x5827d0
movups xmm0, xmmword [eax]
mov ecx, 0xf
movups xmmword [ebp - 0x64], xmm0
jmp 0x582809
mov eax, edx
mov ecx, bind
or eax, 0xf
cmp eax, 0x7fffffff
cmova eax, ecx
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x34], eax
inc eax
push eax
call fcn.00486a30
mov ecx, dword [ebp - 0x18]
inc ecx
mov dword [ebp - 0x64], eax
push ecx
push dword [ebp - 0x10]
push eax
call fcn.00704c30
mov edx, dword [ebp - 0x18]
add esp, 0xc
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x54], edx
mov eax, bind
mov byte [ebp - 4], 0x24
sub eax, edx
cmp eax, 1
jb 0x58345a
push 1
push 0x766e24
cmp ecx, 0x10
lea eax, [ebp - 0x64]
push edx
cmovae eax, dword [ebp - 0x64]
lea ecx, [ebp - 0xf8]
push eax
lea eax, [ebp - 0x64]
push eax
push dword [ebp + 8]
call fcn.004f1ef0
or dword [ebp - 0x14], 0x1000
lea eax, [ebp - 0x7c]
mov byte [ebp - 4], 0x25
push eax
lea eax, [ebp - 0xf8]
push eax
lea eax, [ebp - 0x98]
push eax
call fcn.004d3f70
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0xf8]
add esp, 0xc
or eax, 0x800
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x20], eax
call fcn.00484b50
lea ecx, [ebp - 0x64]
call fcn.00484b50
lea ecx, [ebp - 0x7c]
call fcn.00484b50
lea eax, [ebp - 0xc8]
push eax
lea eax, [ebp - 0x98]
push eax
lea ecx, [ebp - 0x14c]
call fcn.004cca10
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x14c]
push eax
mov byte [ebp - 4], 0x27
call fcn.00489650
mov ecx, dword [ebp + 8]
push eax
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.00489ef0
cmp dword [ebp - 0x3c], 0
jne 0x5829bd
mov eax, dword [ebp + 8]
cmp dword [eax + 8], 0x4924924
je 0x58344b
lea ecx, [eax + 4]
mov dword [ebp - 0x4c], ecx
push 1
mov byte [ebp - 4], 0x28
mov dword [ebp - 0x48], 0
call fcn.004ce7f0
mov dword [ebp - 0x1c], eax
lea ecx, [ebp - 0x14c]
mov dword [ebp - 0x48], eax
add eax, 8
push ecx
mov ecx, eax
mov dword [ebp - 0x34], eax
call fcn.005741a0
mov ecx, dword [ebp + 8]
mov byte [ebp - 4], 0x29
mov edx, dword [ecx + 8]
inc edx
mov eax, edx
shr eax, 0x1f
movd xmm0, edx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x75f520]
mov eax, dword [ecx + 0x1c]
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 [ecx]
seta al
test al, al
je 0x5829a7
push edx
call fcn.004cdfd0
mov ecx, dword [ebp + 8]
push eax
call fcn.004ce060
push dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x11c]
push dword [ebp - 0x34]
push eax
call fcn.00489ef0
mov ecx, dword [ebp + 8]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x3c], eax
jmp 0x5829aa
mov edx, dword [ebp - 0x40]
push dword [ebp - 0x1c]
mov dword [ebp - 0x48], 0
push edx
push dword [ebp - 0x10]
call fcn.004ce260
lea ecx, [ebp - 0x134]
call fcn.00484b50
lea ecx, [ebp - 0x14c]
call fcn.00484b50
lea ecx, [ebp - 0x98]
call fcn.00484b50
mov edx, dword [ebp - 0xb4]
mov byte [ebp - 4], 0
cmp edx, 0x10
jb 0x582a1c
mov ecx, dword [ebp - 0xc8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x582a12
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x583455
push edx
push ecx
call fcn.00516d60
add esp, 8
mov eax, dword [esi]
mov esi, eax
cmp eax, dword [ebp - 0x2c]
jne 0x5826d0
mov ecx, dword [ebp - 0x24]
mov eax, dword [edi]
mov edi, eax
cmp eax, ecx
jne 0x5826b8
mov esi, dword [ebp - 0x44]
mov eax, dword [esi + 0x70]
mov dword [ebp - 0x24], eax
mov edi, dword [eax]
cmp edi, eax
je 0x582d47
mov ecx, eax
nop dword [eax]
mov eax, dword [edi + 0x24]
mov dword [ebp - 0x1c], eax
mov esi, dword [eax]
cmp esi, eax
je 0x582d38
cmp dword [esi + 0x1c], 0x10
lea eax, [esi + 8]
lea ecx, [eax + 0x18]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x34], ecx
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x18], ecx
jb 0x582a7d
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
cmp ecx, 0x10
jae 0x582a95
movups xmm0, xmmword [eax]
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x68], 0xf
movups xmmword [ebp - 0x7c], xmm0
jmp 0x582ad4
mov eax, ecx
mov ecx, bind
or eax, 0xf
cmp eax, 0x7fffffff
cmova eax, ecx
lea ecx, [ebp - 0x7c]
mov dword [ebp - 0x2c], eax
inc eax
push eax
call fcn.00486a30
mov ecx, dword [ebp - 0x18]
inc ecx
mov dword [ebp - 0x7c], eax
push ecx
push dword [ebp - 0x10]
push eax
call fcn.00704c30
mov eax, dword [ebp - 0x18]
add esp, 0xc
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x68], 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 - 0x18], edx
mov dword [ebp - 0x10], ecx
jb 0x582af1
mov eax, dword [ecx]
mov dword [ebp - 0x10], eax
cmp edx, 0x10
jae 0x582b04
movups xmm0, xmmword [eax]
mov ecx, 0xf
movups xmmword [ebp - 0x64], xmm0
jmp 0x582b3d
mov eax, edx
mov ecx, bind
or eax, 0xf
cmp eax, 0x7fffffff
cmova eax, ecx
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x2c], eax
inc eax
push eax
call fcn.00486a30
mov ecx, dword [ebp - 0x18]
inc ecx
mov dword [ebp - 0x64], eax
push ecx
push dword [ebp - 0x10]
push eax
call fcn.00704c30
mov edx, dword [ebp - 0x18]
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x54], edx
mov eax, bind
mov byte [ebp - 4], 0x2c
sub eax, edx
cmp eax, 1
jb 0x58345a
push 1
push 0x766e24
cmp ecx, 0x10
lea eax, [ebp - 0x64]
push edx
cmovae eax, dword [ebp - 0x64]
lea ecx, [ebp - 0x98]
push eax
lea eax, [ebp - 0x64]
push eax
push dword [ebp + 8]
call fcn.004f1ef0
or dword [ebp - 0x14], 0x4000
lea eax, [ebp - 0x7c]
mov byte [ebp - 4], 0x2d
push eax
lea eax, [ebp - 0x98]
push eax
lea eax, [ebp - 0xf8]
push eax
call fcn.004d3f70
or dword [ebp - 0x14], 0x2000
lea ecx, [ebp - 0x98]
add esp, 0xc
call fcn.00484b50
lea ecx, [ebp - 0x64]
call fcn.00484b50
lea ecx, [ebp - 0x7c]
call fcn.00484b50
lea eax, [ebp - 0xf8]
push eax
lea ecx, [ebp - 0xe0]
call fcn.00483850
push dword [ebp - 0x34]
lea ecx, [ebp - 0xc8]
mov byte [ebp - 4], 0x2f
call fcn.004838a0
mov eax, dword [ebp - 0x14]
or eax, 0x8000
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0xe0]
push eax
mov byte [ebp - 4], 0x30
call fcn.00489650
mov ecx, dword [ebp + 8]
push eax
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0xe0]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.00489ef0
cmp dword [ebp - 0x3c], 0
jne 0x582d03
mov eax, dword [ebp + 8]
cmp dword [eax + 8], 0x4924924
je 0x58344b
lea ecx, [eax + 4]
mov dword [ebp - 0x4c], ecx
push 1
mov byte [ebp - 4], 0x31
mov dword [ebp - 0x48], 0
call fcn.004ce7f0
mov dword [ebp - 0x34], eax
lea ecx, [ebp - 0xe0]
mov dword [ebp - 0x48], eax
add eax, 8
push ecx
mov ecx, eax
mov dword [ebp - 0x2c], eax
call fcn.005741a0
mov ecx, dword [ebp + 8]
mov byte [ebp - 4], 0x32
mov edx, dword [ecx + 8]
inc edx
mov eax, edx
shr eax, 0x1f
movd xmm0, edx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x75f520]
mov eax, dword [ecx + 0x1c]
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 [ecx]
seta al
test al, al
je 0x582ced
push edx
call fcn.004cdfd0
mov ecx, dword [ebp + 8]
push eax
call fcn.004ce060
push dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x11c]
push dword [ebp - 0x2c]
push eax
call fcn.00489ef0
mov ecx, dword [ebp + 8]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x3c], eax
jmp 0x582cf0
mov edx, dword [ebp - 0x40]
push dword [ebp - 0x34]
mov dword [ebp - 0x48], 0
push edx
push dword [ebp - 0x10]
call fcn.004ce260
lea ecx, [ebp - 0xc8]
call fcn.00484b50
lea ecx, [ebp - 0xe0]
call fcn.00484b50
lea ecx, [ebp - 0xf8]
mov byte [ebp - 4], 0
call fcn.00484b50
mov eax, dword [esi]
mov esi, eax
cmp eax, dword [ebp - 0x1c]
jne 0x582a60
mov ecx, dword [ebp - 0x24]
mov eax, dword [edi]
mov edi, eax
cmp eax, ecx
jne 0x582a50
mov esi, dword [ebp - 0x44]
mov eax, dword [esi + 0x50]
mov dword [ebp - 0x24], eax
mov edi, dword [eax]
cmp edi, eax
je 0x5830bd
mov ecx, eax
nop dword [eax]
mov eax, dword [edi + 0x24]
mov dword [ebp - 0x1c], eax
mov esi, dword [eax]
cmp esi, eax
je 0x5830ae
movsd xmm0, qword [esi + 0x20]
lea ecx, [esi + 8]
sub esp, 8
mov dword [ebp - 0x10], ecx
movsd qword [ebp - 0x38], xmm0
movsd qword [esp], xmm0
push 0x76743c
call fcn.00506900
add esp, 0xc
mov dword [ebp - 0x2c], eax
lea ecx, [ebp - 0xc8]
push 0
push eax
call fcn.004d1c20
or dword [ebp - 0x14], 0x10000
lea ecx, [ebp - 0xc8]
cmp dword [ebp - 0xb4], 0x10
movsd xmm0, qword [ebp - 0x38]
cmovae ecx, dword [ebp - 0xc8]
sub esp, 8
mov eax, dword [ebp - 0x2c]
inc eax
movsd qword [esp], xmm0
push 0x76743c
push eax
push ecx
call fcn.004d3e20
add esp, 0x14
cmp dword [esi + 0x1c], 0x10
lea eax, [esi + 8]
mov ecx, dword [eax + 0x10]
mov byte [ebp - 4], 0x33
mov dword [ebp - 0x18], ecx
jb 0x582df9
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
cmp ecx, 0x10
jae 0x582e11
movups xmm0, xmmword [eax]
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x68], 0xf
movups xmmword [ebp - 0x7c], xmm0
jmp 0x582e51
mov eax, ecx
mov ecx, bind
or eax, 0xf
cmp eax, 0x7fffffff
cmova eax, ecx
lea ecx, [ebp - 0x7c]
mov dword [ebp - 0x2c], eax
inc eax
push eax
call fcn.00486a30
mov ecx, dword [ebp - 0x18]
inc ecx
mov dword [ebp - 0x7c], 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 - 0x6c], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x68], eax
cmp dword [edi + 0x1c], 0x10
lea ecx, [edi + 8]
mov edx, dword [ecx + 0x10]
mov eax, ecx
mov byte [ebp - 4], 0x34
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x10], ecx
jb 0x582e6e
mov eax, dword [ecx]
mov dword [ebp - 0x10], eax
cmp edx, 0x10
jae 0x582e81
movups xmm0, xmmword [eax]
mov ecx, 0xf
movups xmmword [ebp - 0x64], xmm0
jmp 0x582eba
mov eax, edx
mov ecx, bind
or eax, 0xf
cmp eax, 0x7fffffff
cmova eax, ecx
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x2c], eax
inc eax
push eax
call fcn.00486a30
mov ecx, dword [ebp - 0x18]
inc ecx
mov dword [ebp - 0x64], eax
push ecx
push dword [ebp - 0x10]
push eax
call fcn.00704c30
mov edx, dword [ebp - 0x18]
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x54], edx
mov eax, bind
mov byte [ebp - 4], 0x36
sub eax, edx
cmp eax, 1
jb 0x58345a
push 1
push 0x766e24
cmp ecx, 0x10
lea eax, [ebp - 0x64]
push edx
cmovae eax, dword [ebp - 0x64]
lea ecx, [ebp - 0x98]
push eax
lea eax, [ebp - 0x64]
push eax
push dword [ebp + 8]
call fcn.004f1ef0
or dword [ebp - 0x14], 0x40000
lea eax, [ebp - 0x7c]
mov byte [ebp - 4], 0x37
push eax
lea eax, [ebp - 0x98]
push eax
lea eax, [ebp - 0xf8]
push eax
call fcn.004d3f70
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0x98]
add esp, 0xc
or eax, 0x20000
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x20], eax
call fcn.00484b50
lea ecx, [ebp - 0x64]
call fcn.00484b50
lea ecx, [ebp - 0x7c]
call fcn.00484b50
lea eax, [ebp - 0xc8]
push eax
lea eax, [ebp - 0xf8]
push eax
lea ecx, [ebp - 0x14c]
call fcn.004cca10
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x14c]
push eax
mov byte [ebp - 4], 0x39
call fcn.00489650
mov ecx, dword [ebp + 8]
push eax
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.00489ef0
cmp dword [ebp - 0x3c], 0
jne 0x58306e
mov eax, dword [ebp + 8]
cmp dword [eax + 8], 0x4924924
je 0x58344b
lea ecx, [eax + 4]
mov dword [ebp - 0x4c], ecx
push 1
mov byte [ebp - 4], 0x3a
mov dword [ebp - 0x48], 0
call fcn.004ce7f0
mov dword [ebp - 0x34], eax
lea ecx, [ebp - 0x14c]
mov dword [ebp - 0x48], eax
add eax, 8
push ecx
mov ecx, eax
mov dword [ebp - 0x2c], eax
call fcn.005741a0
mov ecx, dword [ebp + 8]
mov byte [ebp - 4], 0x3b
mov edx, dword [ecx + 8]
inc edx
mov eax, edx
shr eax, 0x1f
movd xmm0, edx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x75f520]
mov eax, dword [ecx + 0x1c]
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 [ecx]
seta al
test al, al
je 0x583058
push edx
call fcn.004cdfd0
mov ecx, dword [ebp + 8]
push eax
call fcn.004ce060
push dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x11c]
push dword [ebp - 0x2c]
push eax
call fcn.00489ef0
mov ecx, dword [ebp + 8]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x3c], eax
jmp 0x58305b
mov edx, dword [ebp - 0x40]
push dword [ebp - 0x34]
mov dword [ebp - 0x48], 0
push edx
push dword [ebp - 0x10]
call fcn.004ce260
lea ecx, [ebp - 0x134]
call fcn.00484b50
lea ecx, [ebp - 0x14c]
call fcn.00484b50
lea ecx, [ebp - 0xf8]
call fcn.00484b50
lea ecx, [ebp - 0xc8]
mov byte [ebp - 4], 0
call fcn.00484b50
mov eax, dword [esi]
mov esi, eax
cmp eax, dword [ebp - 0x1c]
jne 0x582d70
mov ecx, dword [ebp - 0x24]
mov eax, dword [edi]
mov edi, eax
cmp eax, ecx
jne 0x582d60
mov esi, dword [ebp - 0x44]
mov ecx, dword [esi + 0x90]
mov dword [ebp - 0x24], ecx
mov eax, dword [ecx]
mov dword [ebp - 0x28], eax
cmp eax, ecx
je 0x583424
mov edx, ecx
lea ecx, [eax + 8]
mov dword [ebp - 0x2c], ecx
mov ecx, dword [eax + 0x24]
mov dword [ebp - 0x44], ecx
mov edi, dword [ecx]
cmp edi, ecx
je 0x583415
nop dword [eax + eax]
mov al, byte [edi + 0x20]
lea ecx, [edi + 8]
mov dword [ebp - 0x10], ecx
mov byte [ebp - 0x7d], al
push dword [0xa91410]
mov byte [ebp - 4], 0x3c
call fcn.005174e0
mov esi, eax
add esp, 4
mov dword [ebp - 0x34], esi
cmp byte [ebp - 0x7d], 0
mov ecx, 0x75d2fc
mov eax, 0x75d304
mov byte [ebp - 4], 0x3d
cmove eax, ecx
lea ecx, [ebp - 0xc8]
push eax
call fcn.00483930
mov eax, dword [ebp - 0x14]
or eax, 0x80000
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x20], eax
push esi
mov byte [ebp - 4], 0x3e
call fcn.005174e0
mov ecx, dword [edi + 0x18]
lea eax, [edi + 8]
add esp, 4
mov byte [ebp - 4], 0x3c
cmp dword [eax + 0x14], 0x10
mov dword [ebp - 0x18], ecx
jb 0x583167
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
cmp ecx, 0x10
jae 0x58317f
movups xmm0, xmmword [eax]
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x68], 0xf
movups xmmword [ebp - 0x7c], xmm0
jmp 0x5831bc
mov esi, ecx
mov eax, bind
or esi, 0xf
lea ecx, [ebp - 0x7c]
cmp esi, 0x7fffffff
cmova esi, eax
lea eax, [esi + 1]
push eax
call fcn.00486a30
mov ecx, dword [ebp - 0x18]
inc ecx
mov dword [ebp - 0x7c], 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 - 0x6c], eax
mov dword [ebp - 0x68], esi
mov edx, dword [ebp - 0x2c]
mov eax, edx
mov byte [ebp - 4], 0x3f
mov dword [ebp - 0x10], edx
cmp dword [edx + 0x14], 0x10
mov ecx, dword [edx + 0x10]
mov dword [ebp - 0x18], ecx
jb 0x5831d9
mov eax, dword [edx]
mov dword [ebp - 0x10], eax
cmp ecx, 0x10
jae 0x5831ec
movups xmm0, xmmword [eax]
mov esi, 0xf
movups xmmword [ebp - 0x64], xmm0
jmp 0x583222
mov esi, ecx
mov eax, bind
or esi, 0xf
lea ecx, [ebp - 0x64]
cmp esi, 0x7fffffff
cmova esi, eax
lea eax, [esi + 1]
push eax
call fcn.00486a30
mov ecx, dword [ebp - 0x18]
inc ecx
mov dword [ebp - 0x64], eax
push ecx
push dword [ebp - 0x10]
push eax
call fcn.00704c30
mov ecx, dword [ebp - 0x18]
add esp, 0xc
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x54], ecx
mov eax, bind
mov byte [ebp - 4], 0x41
sub eax, ecx
cmp eax, 1
jb 0x58345a
push 1
push 0x766e24
push ecx
cmp esi, 0x10
lea eax, [ebp - 0x64]
lea ecx, [ebp - 0x98]
cmovae eax, dword [ebp - 0x64]
push eax
lea eax, [ebp - 0x64]
push eax
push dword [ebp + 8]
call fcn.004f1ef0
mov esi, dword [ebp - 0x14]
or esi, 0x200000
mov dword [ebp - 0x20], esi
lea eax, [ebp - 0x7c]
mov byte [ebp - 4], 0x42
push eax
lea eax, [ebp - 0x98]
push eax
lea eax, [ebp - 0xf8]
push eax
call fcn.004d3f70
add esp, 0xc
lea ecx, [ebp - 0x98]
or esi, 0x100000
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x20], esi
call fcn.00484b50
lea ecx, [ebp - 0x64]
call fcn.00484b50
lea ecx, [ebp - 0x7c]
call fcn.00484b50
lea eax, [ebp - 0xc8]
push eax
lea eax, [ebp - 0xf8]
push eax
lea ecx, [ebp - 0x14c]
call fcn.004cca10
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x14c]
push eax
mov ecx, esi
mov byte [ebp - 4], 0x44
call fcn.00489650
push eax
mov dword [ebp - 0x10], eax
mov ecx, esi
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.00489ef0
cmp dword [ebp - 0x3c], 0
jne 0x5833d3
cmp dword [esi + 8], 0x4924924
je 0x58344b
lea ecx, [esi + 4]
mov dword [ebp - 0x4c], ecx
push 1
mov byte [ebp - 4], 0x45
mov dword [ebp - 0x48], 0
call fcn.004ce7f0
mov dword [ebp - 0x1c], eax
lea ecx, [ebp - 0x14c]
mov dword [ebp - 0x48], eax
add eax, 8
push ecx
mov ecx, eax
mov dword [ebp - 0x34], eax
call fcn.005741a0
mov ecx, dword [esi + 8]
inc ecx
mov byte [ebp - 4], 0x46
mov eax, ecx
shr eax, 0x1f
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x75f520]
mov eax, dword [esi + 0x1c]
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 [esi]
seta al
test al, al
je 0x5833bb
push ecx
mov ecx, esi
call fcn.004cdfd0
push eax
mov ecx, esi
call fcn.004ce060
push dword [ebp - 0x10]
lea eax, [ebp - 0x11c]
mov ecx, esi
push dword [ebp - 0x34]
push eax
call fcn.00489ef0
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x3c], eax
jmp 0x5833be
mov ecx, dword [ebp - 0x40]
push dword [ebp - 0x1c]
mov dword [ebp - 0x48], 0
push ecx
push dword [ebp - 0x10]
mov ecx, esi
call fcn.004ce260
lea ecx, [ebp - 0x14c]
call fcn.004b3720
lea ecx, [ebp - 0xf8]
call fcn.00484b50
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0xc8]
and eax, 0xfff7ffff
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x20], eax
call fcn.00484b50
mov eax, dword [edi]
mov edi, eax
cmp eax, dword [ebp - 0x44]
jne 0x5830f0
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
mov ecx, dword [eax]
mov eax, ecx
mov dword [ebp - 0x28], ecx
cmp ecx, edx
jne 0x5830d5
push dword [ebp - 0x114]
mov dword [ebp - 4], 0x47
call fcn.005174e0
mov ecx, dword [ebp - 0xc]
add esp, 4
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
push str.unordered_map_set_too_long
call fcn.006ee17a
call fcn.0070f5b4
call fcn.00486890
int3