Function at 0x5a45e0
Capabilities:
Encrypt data using speck
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30c
mov eax, dword [0x671330]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
push esi
mov dword [ebp - 0xd0], esi
mov ebx, dword [esi]
mov edi, dword [esi + 4]
mov dword [ebp - 0x110], edi
mov dword [ebp - 0xcc], edi
mov al, byte [ebx + 0x42]
mov byte [ebp - 0x114], al
mov eax, dword [esi + 8]
mov dword [ebp - 0xdc], eax
xor eax, eax
mov dword [ebp - 0x14c], eax
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x134], eax
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0x118], ebx
mov byte [ebp - 0x121], 0
mov dword [ebp - 0x16c], 0
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0x168], 0
mov dword [ebp - 0x138], eax
call fcn.005a4500
add esp, 4
cmp dword [esi + 0x50], 7
je 0x5a65a5
mov dword [esi + 0x50], 0
mov dword [esi + 0x90], 0
mov dword [esi + 0x94], 0
mov dword [esi + 0x14], 0
cmp dword [ebx + 0xf8], 0
mov dword [ebx + 0x184], 0
jne 0x5aa0ff
cmp dword [ebx + 0x130], 0
je 0x5a46de
mov ecx, dword [ebx + 0x138]
xor edx, edx
mov eax, dword [esi + 0x84]
div ecx
sub ecx, edx
mov dword [ebp - 0x168], ecx
mov eax, dword [esi + 0x4c]
mov ecx, 4
mov dword [ebp - 0x1c4], 0x3e00
lea eax, [eax + eax*4]
lea edi, [edi + eax*4]
xor eax, eax
inc eax
mov dword [ebp - 0xcc], edi
mov dword [ebp - 0xd4], eax
mov al, byte [edi]
movzx edx, al
mov byte [ebp - 0xe1], al
mov dword [ebp - 0x104], edx
cmp edx, 0x9e
ja case.0x5a4722.111
jmp dword [edx*4 + 0x5aa2ac]
mov ebx, dword [ebp - 0xcc]
mov eax, dword [ebx + 4]
mov ebx, dword [ebp - 0xdc]
lea esi, [eax + eax*4]
mov eax, 0x66666667
mov word [ebx + esi*8 + 8], cx
mov ecx, dword [ebp - 0xcc]
sub ecx, dword [ebp - 0x110]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ebx + esi*8], eax
mov dword [ebx + esi*8 + 4], edx
mov edi, dword [ebp - 0xcc]
mov eax, dword [edi + 8]
mov ecx, dword [ebp - 0x110]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edi, [ecx + eax*4]
jmp 0x5a4c48
mov ebx, dword [ebp - 0xcc]
mov edx, dword [ebp - 0x110]
mov eax, dword [ebx + 4]
mov ebx, dword [ebp - 0xdc]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + ecx*8]
lea eax, [eax + eax*4]
lea edi, [edx + eax*4]
mov eax, 0x80
mov word [ebx + ecx*8 + 8], ax
add edi, 0x14
mov ebx, dword [ebp - 0x118]
lea ecx, [eax - 0x7c]
mov eax, dword [ebp - 0xd4]
jmp 0x5a46f8
mov ebx, dword [ebp - 0xcc]
mov edi, dword [ebp - 0xcc]
mov eax, dword [ebx + 4]
lea ecx, [eax + eax*4]
mov eax, ebx
mov ebx, dword [ebp - 0xdc]
mov eax, dword [eax + 0xc]
dec eax
cdq
mov dword [ebx + ecx*8], eax
mov eax, 4
mov dword [ebx + ecx*8 + 4], edx
mov word [ebx + ecx*8 + 8], ax
cmp dword [edi + 8], 0
jne 0x5a476b
mov ebx, dword [ebp - 0x118]
mov ecx, eax
mov eax, dword [ebp - 0xd4]
add edi, 0x14
jmp 0x5a46f8
mov ebx, dword [ebp - 0xcc]
mov edx, dword [ebp - 0x110]
mov eax, dword [ebx + 4]
mov ebx, dword [ebp - 0xdc]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + ecx*8]
lea eax, [eax + eax*4]
mov eax, dword [edx + eax*4 + 8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edi, [edx + eax*4]
mov eax, 0x80
mov word [ebx + ecx*8 + 8], ax
add edi, 0x14
mov ebx, dword [ebp - 0x118]
lea ecx, [eax - 0x7c]
mov eax, dword [ebp - 0xd4]
jmp 0x5a46f8
mov ebx, dword [ebp - 0xcc]
mov edi, dword [ebp - 0x110]
mov eax, dword [ebx + 4]
sub ebx, edi
lea esi, [eax + eax*4]
mov eax, dword [ebp - 0xdc]
mov word [eax + esi*8 + 8], cx
mov ecx, dword [eax + esi*8]
mov eax, 0x66666667
imul ebx
mov ebx, dword [ebp - 0xdc]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ebx + esi*8], eax
lea eax, [ecx + ecx*4]
mov dword [ebx + esi*8 + 4], edx
lea edi, [edi + eax*4]
jmp 0x5a4c48
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
je 0x5a4c4e
mov ecx, edi
mov eax, 0x66666667
sub ecx, dword [ebp - 0x110]
imul ecx
sar edx, 3
mov edi, edx
shr edi, 0x1f
add edi, edx
mov edx, dword [ebp - 0xcc]
cmp dword [edx + 4], 0
jne 0x5a9b62
mov ecx, dword [esi + 0xb8]
test ecx, ecx
je 0x5a9b62
mov eax, dword [ecx + 4]
dec dword [esi + 0xc0]
mov dword [esi + 0xb8], eax
mov eax, dword [esi + 0x64]
add dword [ebx + 0x5c], eax
push ecx
mov dword [ebx + 0x58], eax
call fcn.005aabb0
mov ecx, eax
add esp, 4
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x134], eax
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0xcc]
cmp dword [eax + 8], 4
jne 0x5a4946
mov eax, dword [esi + 4]
lea ecx, [ecx + ecx*4]
mov ecx, dword [eax + ecx*4 + 8]
dec ecx
mov edx, dword [esi + 4]
mov eax, dword [esi + 8]
mov ebx, dword [ebp - 0x118]
mov dword [ebp - 0xdc], eax
lea eax, [ecx + ecx*4]
lea edi, [edx + eax*4]
mov dword [ebp - 0x110], edx
mov eax, dword [ebp - 0xd4]
mov ecx, 4
add edi, 0x14
jmp 0x5a46f8
push dword [ebp - 0xcc]
push esi
call fcn.005736d0
mov ecx, eax
add esp, 8
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 4]
cdq
mov dword [ecx + 4], edx
mov dword [ecx], eax
mov edi, dword [ebp - 0xcc]
mov ecx, 4
mov eax, dword [ebp - 0xd4]
add edi, 0x14
mov ebx, dword [ebp - 0x118]
jmp 0x5a46f8
push dword [ebp - 0xcc]
push esi
call fcn.005736d0
mov edi, dword [ebp - 0xcc]
mov edx, eax
mov eax, dword [ebp - 0xcc]
add esp, 8
mov ebx, dword [ebp - 0x118]
add edi, 0x14
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov ecx, 4
mov dword [edx + 4], eax
mov eax, dword [ebp - 0xd4]
jmp 0x5a46f8
push dword [ebp - 0xcc]
push esi
call fcn.005736d0
mov edi, dword [ebp - 0xcc]
mov ecx, eax
mov ebx, dword [ebp - 0x118]
mov eax, 8
add esp, 8
add edi, 0x14
mov word [ecx + 8], ax
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 0x10]
movsd xmm0, qword [eax]
mov eax, dword [ebp - 0xd4]
movsd qword [ecx], xmm0
mov ecx, 4
jmp 0x5a46f8
push edi
push esi
call fcn.005736d0
mov esi, eax
mov eax, dword [ebp - 0xcc]
mov edi, dword [eax + 0x10]
push edi
mov byte [eax], 0x4d
call fcn.0059f710
mov ecx, dword [ebp - 0xcc]
add esp, 0xc
cmp byte [ebp - 0x114], 1
mov dword [ecx + 4], eax
je 0x5a4adf
push 0
push 1
push 0xffffffffffffffff
push edi
push esi
call fcn.005ac470
mov dword [ebp - 0xd8], eax
movzx eax, byte [ebp - 0x114]
push eax
push esi
call fcn.005a3ab0
add esp, 0x1c
test eax, eax
jne 0x5a659f
mov dword [esi + 0x18], eax
mov eax, 0x800
or word [esi + 8], ax
mov eax, dword [ebp - 0xcc]
cmp byte [eax + 1], 0xff
jne 0x5a4ac9
push dword [eax + 0x10]
push ebx
call fcn.00586280
mov eax, dword [ebp - 0xcc]
add esp, 8
mov ecx, dword [ebp - 0xcc]
mov byte [eax + 1], 0xff
mov eax, dword [esi + 0x10]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0xc]
mov dword [ecx + 4], eax
mov eax, dword [ecx + 4]
mov esi, dword [ebp - 0xd0]
cmp eax, dword [ebx + 0x60]
jg 0x5a9e9c
mov ebx, dword [ebp - 0xcc]
push ebx
push esi
call fcn.005736d0
mov ecx, eax
mov edi, ebx
mov eax, 0xa02
add esp, 8
mov word [ecx + 8], ax
mov eax, dword [ebx + 0x10]
mov dword [ecx + 0x10], eax
mov eax, ebx
mov eax, dword [eax + 4]
mov dword [ecx + 0xc], eax
mov al, byte [ebp - 0x114]
mov byte [ecx + 0xa], al
mov eax, dword [edi + 0xc]
test eax, eax
jle 0x5a4c4e
mov ebx, dword [ebp - 0xdc]
lea esi, [eax + eax*4]
movzx eax, byte [edi + 3]
cdq
cmp dword [ebx + esi*8], eax
jne 0x5a4c48
cmp dword [ebx + esi*8 + 4], edx
mov esi, dword [ebp - 0xd0]
jne 0x5a4c4e
mov ebx, dword [ebp - 0x118]
mov eax, 0xa10
mov word [ecx + 8], ax
add edi, 0x14
mov eax, dword [ebp - 0xd4]
mov ecx, 4
jmp 0x5a46f8
push dword [ebp - 0xcc]
push esi
call fcn.005736d0
mov ecx, dword [ebp - 0xcc]
mov esi, eax
mov eax, dword [ebp - 0xcc]
add esp, 8
mov edi, dword [ecx + 0xc]
sub edi, dword [ecx + 8]
mov ecx, 1
cmp dword [eax + 4], 0
mov eax, 0x101
cmovne ecx, eax
movzx ebx, cx
mov word [esi + 8], bx
test edi, edi
jle 0x5a4c42
nop dword [eax]
add esi, 0x28
push esi
call fcn.005ac370
dec edi
mov word [esi + 8], bx
add esp, 4
test edi, edi
jg 0x5a4bc0
jmp 0x5a4c42
mov eax, dword [edi + 4]
mov edx, 0xff7f
mov ebx, dword [ebp - 0xdc]
lea ecx, [eax + eax*4]
mov ax, word [ebx + ecx*8 + 8]
and ax, dx
or ax, 1
add edi, 0x14
mov word [ebx + ecx*8 + 8], ax
mov ecx, 4
mov eax, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0x118]
jmp 0x5a46f8
push dword [ebp - 0xcc]
push esi
call fcn.005736d0
mov esi, eax
mov eax, dword [ebp - 0xcc]
push 0
push 0
push dword [eax + 4]
push dword [eax + 0x10]
push esi
call fcn.005ac470
add esp, 0x1c
mov al, byte [ebp - 0x114]
mov byte [esi + 0xa], al
mov edi, dword [ebp - 0xcc]
mov esi, dword [ebp - 0xd0]
mov ecx, 4
mov eax, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0x118]
add edi, 0x14
jmp 0x5a46f8
mov eax, dword [edi + 4]
mov esi, dword [esi + 0x3c]
add esi, 0xffffffd8
lea ecx, [eax + eax*4]
lea esi, [esi + ecx*8]
push esi
call fcn.005ac7b0
add esp, 4
test eax, eax
jne 0x5a9e96
push dword [ebp - 0xcc]
push dword [ebp - 0xd0]
call fcn.005736d0
push 0x800
push esi
push eax
call fcn.005ac690
add esp, 0x14
jmp 0x5a4c42
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
push edi
push esi
call fcn.005ac190
mov eax, 0x1000
add esp, 8
test word [esi + 8], ax
je 0x5a4cfc
push esi
call fcn.005ac110
add esp, 4
test eax, eax
jne 0x5a659f
add edi, 0x28
add esi, 0x28
sub dword [ebp - 0xec], 1
jne 0x5a4cd6
jmp 0x5a4c42
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
nop dword [eax]
push 0x1000
push edi
push esi
call fcn.005ac690
mov eax, 0x1000
add esp, 0xc
test word [esi + 8], ax
je 0x5a4d6b
push esi
call fcn.005ac110
add esp, 4
test eax, eax
jne 0x5a659f
mov ecx, dword [ebp - 0xec]
mov eax, ecx
dec ecx
mov dword [ebp - 0xec], ecx
test eax, eax
je 0x5a4c42
add esi, 0x28
add edi, 0x28
jmp 0x5a4d40
mov ebx, dword [ebp - 0xcc]
push 0x1000
mov eax, dword [ebx + 4]
mov ebx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push eax
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push eax
call fcn.005ac690
mov edi, dword [ebp - 0xcc]
add esp, 0xc
mov eax, dword [ebp - 0xd4]
mov ecx, 4
mov ebx, dword [ebp - 0x118]
add edi, 0x14
jmp 0x5a46f8
mov ebx, dword [ebp - 0xcc]
mov eax, dword [ebx + 4]
mov ebx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
push dword [ebx + eax*8 + 4]
push dword [ebx + eax*8]
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push eax
call fcn.005ac330
mov edi, dword [ebp - 0xcc]
add esp, 0xc
mov eax, dword [ebp - 0xd4]
mov ecx, 4
mov ebx, dword [ebp - 0x118]
add edi, 0x14
jmp 0x5a46f8
mov eax, dword [edi + 4]
mov edx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0xf8], ecx
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
movzx edx, word [ecx + 8]
mov al, byte [edi + 8]
or al, dl
test al, 1
je 0x5a4e7a
push esi
call fcn.005ac370
add esp, 4
jmp 0x5a4c42
test edx, 0x4000
je 0x5a4e93
push ecx
call fcn.005abdb0
add esp, 4
test eax, eax
jne 0x5a659f
mov eax, 0x4000
test word [edi + 8], ax
je 0x5a4eaf
push edi
call fcn.005abdb0
add esp, 4
test eax, eax
jne 0x5a659f
mov eax, dword [ebp - 0xf8]
test byte [eax + 8], 0x12
jne 0x5a4ed4
push 0
push dword [ebp - 0x114]
push eax
call fcn.005ac6e0
add esp, 0xc
test eax, eax
jne 0x5a659f
test byte [edi + 8], 0x12
jne 0x5a4ef3
push 0
push dword [ebp - 0x114]
push edi
call fcn.005ac6e0
add esp, 0xc
test eax, eax
jne 0x5a659f
mov eax, dword [ebp - 0xf8]
mov eax, dword [eax + 0xc]
add eax, dword [edi + 0xc]
cdq
mov dword [ebp - 0x108], eax
mov ecx, edx
mov eax, dword [ebx + 0x60]
cdq
cmp ecx, edx
jg 0x5a9e96
mov ecx, dword [ebp - 0x108]
jl 0x5a4f24
cmp ecx, eax
ja 0x5a9e96
xor eax, eax
cmp esi, edi
sete al
push eax
lea eax, [ecx + 2]
push eax
push esi
call fcn.005abf10
add esp, 0xc
test eax, eax
jne 0x5a659f
mov ax, word [esi + 8]
mov ecx, 0x3e00
and ax, cx
or ax, 2
mov word [esi + 8], ax
cmp esi, edi
je 0x5a4f6a
push dword [edi + 0xc]
push dword [edi + 0x10]
push dword [esi + 0x10]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [ebp - 0xf8]
push dword [eax + 0xc]
push dword [eax + 0x10]
mov eax, dword [esi + 0x10]
add eax, dword [edi + 0xc]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esi + 0x10]
add esp, 0xc
mov ecx, dword [ebp - 0x108]
mov byte [ecx + eax], 0
mov eax, dword [esi + 0x10]
mov byte [eax + ecx + 1], 0
mov eax, 0x200
or word [esi + 8], ax
mov dword [esi + 0xc], ecx
jmp 0x5a4c39
mov ebx, dword [ebp - 0xcc]
mov esi, dword [ebp - 0xdc]
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
push eax
mov dword [ebp - 0xe0], eax
call fcn.00572f20
movzx eax, ax
mov dword [ebp - 0x10c], eax
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
push eax
mov dword [ebp - 0x11c], eax
call fcn.00572f20
mov edx, dword [ebp - 0xe0]
mov ecx, ebx
movzx eax, ax
add esp, 8
mov dword [ebp - 0xec], eax
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea ebx, [esi + eax*8]
mov esi, dword [ebp - 0x11c]
mov dword [ebp - 0xe8], ebx
mov al, byte [esi + 8]
or al, byte [edx + 8]
test al, 1
jne 0x5a52ac
mov al, byte [ebp - 0xec]
and al, byte [ebp - 0x10c]
test al, 4
je 0x5a518d
mov eax, edx
mov byte [ebp - 0xe1], 1
mov edx, dword [eax]
mov esi, dword [eax + 4]
mov eax, dword [ebp - 0x11c]
mov edi, dword [eax]
mov ebx, dword [eax + 4]
movzx eax, byte [ecx]
add eax, 0xffffffd1
mov dword [ebp - 0x148], edi
mov dword [ebp - 0x144], ebx
cmp eax, 3
ja case.default.0x5a5069
jmp dword [eax*4 + 0x5aa528]
push esi
push edx
lea eax, [ebp - 0x148]
push eax
call fcn.0057dd00
add esp, 0xc
test eax, eax
je 0x5a515d
mov ebx, dword [ebp - 0xe8]
mov esi, dword [ebp - 0x11c]
mov edx, dword [ebp - 0xe0]
push edx
call fcn.005acea0
fstp qword [ebp - 0x100]
push esi
call fcn.005acea0
mov eax, dword [ebp - 0xcc]
add esp, 8
fstp qword [ebp - 0xf4]
movzx eax, byte [eax]
add eax, 0xffffffd1
cmp eax, 3
ja case.default.0x5a50cb
jmp dword [eax*4 + 0x5aa538]
push esi
push edx
lea eax, [ebp - 0x148]
push eax
call fcn.0059f730
add esp, 0xc
test eax, eax
jne 0x5a5089
jmp 0x5a515d
push esi
push edx
lea eax, [ebp - 0x148]
push eax
call fcn.00593970
add esp, 0xc
test eax, eax
jne 0x5a5089
jmp 0x5a515d
mov eax, edx
or eax, esi
je 0x5a52ac
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
jne 0x5a5123
test edi, edi
jne 0x5a5123
cmp ebx, 0x80000000
je 0x5a5089
push esi
push edx
push ebx
push edi
call fcn.00544760
jmp 0x5a5151
mov eax, edx
or eax, esi
je 0x5a52ac
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
jne 0x5a5148
mov edx, 1
xor esi, esi
push esi
push edx
push ebx
push edi
call fcn.005449f0
mov dword [ebp - 0x144], edx
mov dword [ebp - 0x148], eax
mov ecx, dword [ebp - 0xe8]
mov edx, 0x3e00
mov eax, dword [ebp - 0x148]
mov dword [ecx], eax
mov eax, dword [ebp - 0x144]
mov dword [ecx + 4], eax
mov ax, word [ecx + 8]
and ax, dx
or ax, 4
mov word [ecx + 8], ax
jmp 0x5a4c42
mov byte [ebp - 0xe1], 0
jmp 0x5a509b
movsd xmm1, qword [ebp - 0xf4]
addsd xmm1, qword [ebp - 0x100]
jmp 0x5a5251
movsd xmm1, qword [ebp - 0xf4]
subsd xmm1, qword [ebp - 0x100]
jmp 0x5a5251
movsd xmm1, qword [ebp - 0xf4]
mulsd xmm1, qword [ebp - 0x100]
jmp 0x5a5251
movsd xmm0, qword [ebp - 0x100]
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x5a52ac
movsd xmm1, qword [ebp - 0xf4]
divsd xmm1, xmm0
jmp 0x5a5251
movsd xmm0, qword [ebp - 0x100]
call fcn.005c628f
movsd xmm0, qword [ebp - 0xf4]
mov esi, eax
mov edi, edx
call fcn.005c628f
mov ecx, eax
mov dword [ebp - 0x144], edx
mov eax, esi
mov dword [ebp - 0x148], ecx
or eax, edi
je 0x5a52ac
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x5a523e
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push ecx
call fcn.005449f0
mov ecx, eax
call fcn.005c63e0
movaps xmm1, xmm0
sub esp, 8
movsd qword [esp], xmm1
call fcn.00591f70
add esp, 8
test eax, eax
jne 0x5a52ac
mov ax, word [ebx + 8]
mov ecx, 0x3e00
and ax, cx
movsd qword [ebx], xmm1
or ax, 8
mov word [ebx + 8], ax
mov eax, dword [ebp - 0xec]
or al, byte [ebp - 0x10c]
test al, 8
jne 0x5a4c42
cmp byte [ebp - 0xe1], 0
jne 0x5a4c42
push ebx
call fcn.005ab390
add esp, 4
jmp 0x5a4c42
mov ecx, dword [ebp - 0xe8]
push ecx
call fcn.005ac370
add esp, 4
jmp 0x5a4c42
mov eax, dword [edi + 4]
test eax, eax
je case.0x5a4722.111
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
push 0
push 0
lea eax, [ecx + eax*8]
push eax
call fcn.005ac330
mov eax, dword [ebp - 0xd4]
add esp, 0xc
mov ebx, dword [ebp - 0x118]
mov ecx, 4
add edi, 0x14
jmp 0x5a46f8
movzx eax, byte [edi + 3]
mov dword [ebp - 0xf0], eax
push 0
lea eax, [eax*4 + 0x1c]
push eax
push ebx
call fcn.00586310
mov esi, eax
add esp, 0xc
test esi, esi
je 0x5a659f
mov ecx, dword [ebp - 0xcc]
mov edi, dword [ebp - 0xcc]
mov dword [esi], 0
mov eax, dword [ecx + 0x10]
sub ecx, dword [ebp - 0x110]
mov dword [esi + 4], eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0xd0]
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 0xf0]
mov byte [esi + 0x1a], al
mov word [edi], 0xeb59
mov dword [edi + 0x10], esi
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0xdc]
mov esi, dword [edi + 0x10]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov dword [ebp - 0xf0], edi
cmp dword [esi], edi
je 0x5a53d2
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi], edi
js 0x5a53d2
mov ebx, dword [ebp - 0xcc]
lea edx, [ecx + 7]
mov edi, dword [ebp - 0xdc]
lea edx, [esi + edx*4]
nop dword [eax]
mov eax, dword [ebx + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [edx + 4], eax
jns 0x5a53b0
mov ebx, dword [ebp - 0x118]
mov edi, dword [ebp - 0xf0]
mov ecx, dword [esi]
mov edx, 0x3e00
mov ax, word [ecx + 8]
and ax, dx
or ax, 1
mov word [ecx + 8], ax
lea eax, [esi + 0x1c]
mov ecx, dword [ebp - 0x134]
mov byte [esi + 0x19], 0
mov dword [ebx + 0x20], ecx
mov ecx, dword [ebp - 0x138]
mov dword [ebx + 0x24], ecx
mov ecx, dword [esi + 4]
push eax
movzx eax, byte [esi + 0x1a]
push eax
mov eax, dword [ecx + 0xc]
push esi
call eax
mov eax, dword [ebx + 0x20]
add esp, 0xc
cmp byte [esi + 0x19], 0
mov dword [ebp - 0x134], eax
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0x138], eax
je 0x5a5484
cmp dword [esi + 0x14], 0
je 0x5a5455
push dword [esi]
call fcn.0054f9c0
push eax
push 0x601fb0
push dword [ebp - 0xd0]
call fcn.005a4570
mov eax, dword [esi + 0x14]
add esp, 0x10
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xcc]
push dword [eax + 4]
mov eax, dword [ebp - 0xd0]
push dword [esi + 0x10]
add eax, 0xd4
push eax
push ebx
call fcn.005a43d0
mov eax, dword [ebp - 0xd8]
add esp, 0x10
test eax, eax
jne 0x5a9c4a
test byte [edi + 8], 0x12
je 0x5a4c42
movzx eax, byte [ebp - 0x114]
push eax
push dword [esi]
call fcn.005a3ab0
push dword [esi]
call fcn.005ac7b0
mov esi, dword [ebp - 0xd0]
add esp, 0xc
test eax, eax
jne 0x5a9e9c
mov edi, dword [ebp - 0xcc]
lea ecx, [eax + 4]
mov eax, dword [ebp - 0xd4]
add edi, 0x14
mov ebx, dword [ebp - 0x118]
jmp 0x5a46f8
mov ebx, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [ebx + 8]
mov ebx, ecx
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edx, [ebx + eax*8]
mov al, byte [ecx + 8]
or al, byte [edi + 8]
mov dword [ebp - 0xf0], edx
test al, 1
je 0x5a5539
push edx
call fcn.005ac370
mov edi, dword [ebp - 0xcc]
add esp, 4
mov eax, dword [ebp - 0xd4]
mov ecx, 4
mov ebx, dword [ebp - 0x118]
add edi, 0x14
jmp 0x5a46f8
push ecx
call fcn.005ab2e0
mov ebx, eax
mov esi, edx
push edi
mov dword [ebp - 0x1cc], ebx
mov dword [ebp - 0x1c8], esi
call fcn.005ab2e0
mov edi, eax
add esp, 8
mov eax, dword [ebp - 0xcc]
mov cl, byte [eax]
cmp cl, 0x2b
jne 0x5a5570
and ebx, edi
and esi, edx
jmp 0x5a55fa
cmp cl, 0x2c
jne 0x5a557b
or ebx, edi
or esi, edx
jmp 0x5a55fa
mov eax, edi
or eax, edx
je 0x5a55fa
test edx, edx
jg 0x5a55af
jl 0x5a558b
test edi, edi
jae 0x5a55a4
mov al, 0x5b
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x5a55af
jg 0x5a559d
cmp edi, 0xffffffc0
jbe 0x5a55af
neg edi
adc edx, 0
neg edx
test edx, edx
jl 0x5a55d1
jg 0x5a55af
cmp edi, 0x40
jb 0x5a55d1
test esi, esi
jg 0x5a55c8
jl 0x5a55b9
test ebx, ebx
jae 0x5a55c8
cmp cl, 0x2d
je 0x5a55c8
or eax, 0xffffffff
cdq
mov ebx, eax
mov esi, edx
jmp 0x5a55fa
xor eax, eax
cdq
mov ebx, eax
mov esi, edx
jmp 0x5a55fa
movq xmm1, qword [ebp - 0x1cc]
movd xmm0, edi
cmp cl, 0x2d
jne 0x5a561e
psllq xmm1, xmm0
movq qword [ebp - 0x100], xmm1
mov ebx, dword [ebp - 0x100]
mov esi, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0xf0]
mov edx, 0x3e00
mov ax, word [ecx + 8]
and ax, dx
mov dword [ecx], ebx
or ax, 4
mov dword [ecx + 4], esi
mov word [ecx + 8], ax
jmp 0x5a4c42
psrlq xmm1, xmm0
movq qword [ebp - 0x100], xmm1
test esi, esi
jg 0x5a55ee
jl 0x5a5634
test ebx, ebx
jae 0x5a55ee
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, edi
or edx, 0xffffffff
call fcn.005c5fb0
mov ebx, dword [ebp - 0x100]
mov esi, dword [ebp - 0xfc]
or ebx, eax
or esi, edx
jmp 0x5a55fa
mov ebx, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
push esi
call fcn.005ac0e0
mov eax, ebx
add esp, 4
mov eax, dword [eax + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp 0x5a4c42
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 8]
test al, 4
jne 0x5a56d7
test al, 8
jne 0x5a56b2
test al, 2
je 0x5a56bb
push 1
push esi
call fcn.0055de40
add esp, 8
jmp 0x5a56bb
push esi
call fcn.005ab390
add esp, 4
movzx eax, word [esi + 8]
test al, 4
jne 0x5a56d7
cmp dword [edi + 8], 0
jne 0x5a476b
mov eax, 0x14
jmp 0x5a9c4a
and eax, 0x3e00
or eax, 4
mov word [esi + 8], ax
jmp 0x5a4c48
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 4
lea eax, [ecx + eax*8]
je 0x5a4c4e
push eax
call fcn.005ac290
mov eax, dword [ebp - 0xd4]
add esp, 4
mov ebx, dword [ebp - 0x118]
mov ecx, 4
add edi, 0x14
jmp 0x5a46f8
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x4000
test word [esi + 8], ax
je 0x5a574f
push esi
call fcn.005abdb0
add esp, 4
mov dword [ebp - 0xd8], eax
jmp 0x5a5759
mov dword [ebp - 0xd8], 0
mov eax, dword [ebp - 0xcc]
push dword [ebp - 0x114]
movzx eax, byte [eax + 8]
push eax
push esi
call fcn.005abc50
add esp, 0xc
mov eax, dword [ebp - 0xd8]
mov esi, dword [ebp - 0xd0]
test eax, eax
jne 0x5a9c50
mov edi, dword [ebp - 0xcc]
lea ecx, [eax + 4]
mov eax, dword [ebp - 0xd4]
add edi, 0x14
mov ebx, dword [ebp - 0x118]
jmp 0x5a46f8
mov ebx, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, ebx
movzx ebx, word [edx + 8]
mov dword [ebp - 0xe0], edx
mov dword [ebp - 0x11c], ebx
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
movzx esi, word [ecx + eax*8 + 8]
lea edi, [ecx + eax*8]
mov ecx, esi
mov dword [ebp - 0xec], edi
or ecx, ebx
mov dword [ebp - 0xe8], esi
test cl, 1
je 0x5a5868
mov edi, dword [ebp - 0xcc]
mov al, byte [edi + 3]
test al, al
jns 0x5a5830
mov eax, esi
and eax, ebx
test al, 1
je 0x5a581a
test esi, 0x100
jne 0x5a581a
mov edi, dword [ebp - 0xec]
xor ecx, ecx
mov ebx, edx
jmp 0x5a59b1
mov edi, dword [ebp - 0xec]
mov ecx, 1
mov ebx, dword [ebp - 0xe0]
jmp 0x5a59b1
test al, 0x20
je 0x5a585b
mov eax, dword [edi + 8]
mov ebx, 0x3e00
mov edx, dword [ebp - 0xdc]
lea ecx, [eax + eax*4]
mov ax, word [edx + ecx*8 + 8]
and ax, bx
or ax, 1
mov word [edx + ecx*8 + 8], ax
jmp 0x5a4c48
test al, 0x10
jne 0x5a476b
jmp 0x5a4c48
mov eax, dword [ebp - 0xcc]
mov al, byte [eax + 3]
and al, 0x47
cmp al, 0x43
jl 0x5a58c1
test cl, 2
je 0x5a5957
mov al, byte [ebp - 0x11c]
and al, 0xe
cmp al, 2
jne 0x5a58a1
push 0
push edx
call fcn.0055de40
movzx esi, word [edi + 8]
add esp, 8
mov dword [ebp - 0xe8], esi
mov al, byte [ebp - 0xe8]
and al, 0xe
cmp al, 2
jne 0x5a5957
push 0
push edi
call fcn.0055de40
add esp, 8
jmp 0x5a5957
cmp al, 0x42
jne 0x5a5957
mov al, byte [ebp - 0x11c]
test al, 2
jne 0x5a5918
test al, 0xc
je 0x5a5918
push 1
push dword [ebp - 0x114]
push edx
call fcn.005ac6e0
mov eax, dword [ebp - 0xe0]
mov ecx, 0x7e00
movzx esi, word [edi + 8]
add esp, 0xc
mov dword [ebp - 0xe8], esi
mov ax, word [eax + 8]
xor ax, word [ebp - 0x11c]
and ax, cx
xor word [ebp - 0x11c], ax
mov ebx, dword [ebp - 0x11c]
mov al, byte [ebp - 0xe8]
test al, 2
jne 0x5a5957
test al, 0xc
je 0x5a5957
push 1
push dword [ebp - 0x114]
push edi
call fcn.005ac6e0
mov ax, word [edi + 8]
mov ecx, 0x7e00
xor ax, word [ebp - 0xe8]
add esp, 0xc
and ax, cx
xor word [ebp - 0xe8], ax
mov esi, dword [ebp - 0xe8]
test ebx, 0x4000
je 0x5a5979
push dword [ebp - 0xe0]
call fcn.005abdb0
add esp, 4
and ebx, 0xbfff
mov dword [ebp - 0x11c], ebx
test esi, 0x4000
je 0x5a5996
push edi
call fcn.005abdb0
add esp, 4
and esi, 0xbfff
mov dword [ebp - 0xe8], esi
mov eax, dword [ebp - 0xcc]
mov ebx, dword [ebp - 0xe0]
push dword [eax + 0x10]
push ebx
push edi
call fcn.00593800
add esp, 0xc
mov ecx, eax
mov eax, dword [ebp - 0xcc]
movzx eax, byte [eax]
add eax, 0xffffffdc
cmp eax, 4
ja case.default.0x5a59c2
jmp dword [eax*4 + 0x5aa548]
xor edx, edx
test ecx, ecx
sete dl
jmp 0x5a59fd
xor edx, edx
test ecx, ecx
setne dl
jmp 0x5a59fd
xor edx, edx
test ecx, ecx
sets dl
jmp 0x5a59fd
xor edx, edx
test ecx, ecx
setle dl
jmp 0x5a59fd
xor edx, edx
test ecx, ecx
setg dl
jmp 0x5a59fd
xor edx, edx
test ecx, ecx
setns dl
movzx eax, word [ebp - 0x11c]
mov word [ebx + 8], ax
movzx eax, word [ebp - 0xe8]
mov word [edi + 8], ax
mov edi, dword [ebp - 0xcc]
test byte [edi + 3], 0x20
je 0x5a5a50
mov eax, dword [edi + 8]
mov ebx, dword [ebp - 0xdc]
lea esi, [eax + eax*4]
mov eax, 0x3e00
mov cx, word [ebx + esi*8 + 8]
and cx, ax
mov eax, edx
cdq
or cx, 4
mov word [ebx + esi*8 + 8], cx
mov dword [ebx + esi*8], eax
mov dword [ebx + esi*8 + 4], edx
jmp 0x5a4c48
test edx, edx
jne 0x5a476b
jmp 0x5a4c48
mov eax, dword [edi + 0x10]
mov ebx, dword [ebp - 0x118]
add eax, 4
mov dword [ebp - 0x14c], eax
add edi, 0x14
mov eax, dword [ebp - 0xd4]
jmp 0x5a46f8
test byte [edi + 3], 1
mov eax, 0
mov ebx, dword [ebp - 0x14c]
mov ecx, dword [edi + 4]
cmove ebx, eax
mov eax, dword [edi + 0xc]
xor esi, esi
mov edx, dword [edi + 0x10]
mov dword [ebp - 0xec], ecx
mov ecx, dword [edi + 8]
mov dword [ebp - 0x14c], ebx
mov dword [ebp - 0x10c], eax
mov dword [ebp - 0xf8], edx
mov dword [ebp - 0xf0], ecx
test eax, eax
jle 0x5a5b4b
lea edi, [edx + 0x14]
test ebx, ebx
je 0x5a5acf
mov ecx, dword [ebx + esi*4]
jmp 0x5a5ad1
mov ecx, esi
mov eax, dword [edx + 0x10]
mov edx, dword [ebp - 0xdc]
push dword [edi]
movzx ebx, byte [eax + esi]
mov eax, dword [ebp - 0xf0]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
push eax
mov eax, dword [ebp - 0xec]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
push eax
call fcn.00593800
add esp, 0xc
mov dword [ebp - 0x16c], eax
test eax, eax
jne 0x5a5b39
mov edx, dword [ebp - 0xf8]
inc esi
mov ebx, dword [ebp - 0x14c]
add edi, 4
cmp esi, dword [ebp - 0x10c]
jl 0x5a5ac6
mov edi, dword [ebp - 0xcc]
mov dword [ebp - 0x14c], eax
jmp 0x5a4c48
test ebx, ebx
je 0x5a5b45
neg eax
mov dword [ebp - 0x16c], eax
mov edi, dword [ebp - 0xcc]
xor eax, eax
mov dword [ebp - 0x14c], eax
jmp 0x5a4c48
mov eax, dword [ebp - 0x16c]
mov ebx, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0x110]
test eax, eax
jns 0x5a5b93
mov eax, dword [ebx + 4]
mov ebx, dword [ebp - 0x118]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edi, [ecx + eax*4]
mov eax, dword [ebp - 0xd4]
mov ecx, 4
add edi, 0x14
jmp 0x5a46f8
jne 0x5a5bba
mov eax, dword [ebx + 8]
mov ebx, dword [ebp - 0x118]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edi, [ecx + eax*4]
mov eax, dword [ebp - 0xd4]
mov ecx, 4
add edi, 0x14
jmp 0x5a46f8
mov eax, dword [ebx + 0xc]
mov ebx, dword [ebp - 0x118]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edi, [ecx + eax*4]
mov eax, dword [ebp - 0xd4]
mov ecx, 4
add edi, 0x14
jmp 0x5a46f8
mov ebx, dword [ebp - 0xcc]
mov edi, dword [ebp - 0xdc]
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 1
lea eax, [edi + eax*8]
je 0x5a5c02
mov esi, 2
jmp 0x5a5c18
push eax
call fcn.005ab2e0
add esp, 4
or eax, edx
je 0x5a5c16
mov esi, 1
jmp 0x5a5c18
xor esi, esi
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 1
lea eax, [edi + eax*8]
je 0x5a5c2f
mov eax, 2
jmp 0x5a5c45
push eax
call fcn.005ab2e0
add esp, 4
or eax, edx
je 0x5a5c43
mov eax, 1
jmp 0x5a5c45
xor eax, eax
cmp byte [ebx], 0x1c
lea eax, [eax + esi*2]
jne 0x5a5c57
movzx edx, byte [esi + eax + 0x5fd470]
jmp 0x5a5c5f
movzx edx, byte [esi + eax + 0x5fd47c]
mov eax, dword [ebp - 0xcc]
mov edi, dword [ebp - 0xcc]
mov esi, dword [ebp - 0xd0]
mov eax, dword [eax + 0xc]
lea ecx, [eax + eax*4]
cmp edx, 2
jne 0x5a5cb1
mov edx, dword [ebp - 0xdc]
mov ebx, 0x3e00
mov ax, word [edx + ecx*8 + 8]
and ax, bx
mov ebx, dword [ebp - 0x118]
or ax, 1
add edi, 0x14
mov word [edx + ecx*8 + 8], ax
mov ecx, 4
mov eax, dword [ebp - 0xd4]
jmp 0x5a46f8
mov ebx, dword [ebp - 0xdc]
mov eax, edx
cdq
mov dword [ebx + ecx*8], eax
mov ax, word [ebx + ecx*8 + 8]
mov dword [ebx + ecx*8 + 4], edx
mov edx, 0x3e00
and ax, dx
or ax, 4
add edi, 0x14
mov word [ebx + ecx*8 + 8], ax
mov ecx, 4
mov eax, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0x118]
jmp 0x5a46f8
mov ebx, dword [ebp - 0xcc]
mov eax, dword [ebx + 4]
mov ebx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
push esi
call fcn.005ac370
add esp, 4
test byte [edi + 8], 1
jne 0x5a4c42
mov eax, 4
push edi
mov word [esi + 8], ax
call fcn.005ab2e0
add esp, 4
or eax, edx
jne 0x5a5d4d
mov eax, 1
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x5a4c42
xor eax, eax
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x5a4c42
mov ebx, dword [ebp - 0xcc]
mov eax, dword [ebx + 4]
mov ebx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
push esi
call fcn.005ac370
add esp, 4
test byte [edi + 8], 1
jne 0x5a4c42
mov eax, 4
push edi
mov word [esi + 8], ax
call fcn.005ab2e0
not eax
not edx
add esp, 4
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x5a4c42
mov eax, dword [esi + 0xd0]
mov ecx, dword [edi + 4]
cmp byte [eax + ecx], 0
jne 0x5a476b
mov ebx, dword [ebp - 0x118]
add edi, 0x14
mov byte [eax + ecx], 1
mov ecx, 4
mov eax, dword [ebp - 0xd4]
jmp 0x5a46f8
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea eax, [ecx + eax*8]
je 0x5a5dfc
mov ecx, dword [edi + 0xc]
jmp 0x5a5e36
push eax
call fcn.005acea0
fstp qword [ebp - 0x100]
movsd xmm0, qword [ebp - 0x100]
add esp, 4
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
xor ecx, ecx
test ah, 0x44
mov eax, 1
cmovp ecx, eax
cmp byte [edi], 0x16
jne 0x5a5e36
xor eax, eax
test ecx, ecx
sete al
mov ecx, eax
test ecx, ecx
jne 0x5a476b
mov eax, dword [ebp - 0xd4]
mov ecx, 4
mov ebx, dword [ebp - 0x118]
add edi, 0x14
jmp 0x5a46f8
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
jne 0x5a476b
mov eax, dword [ebp - 0xd4]
mov ecx, 4
mov ebx, dword [ebp - 0x118]
add edi, 0x14
jmp 0x5a46f8
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
je 0x5a476b
mov eax, dword [ebp - 0xd4]
mov ecx, 4
mov ebx, dword [ebp - 0x118]
add edi, 0x14
jmp 0x5a46f8
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 8]
mov dword [ebp - 0x12c], eax
lea eax, [ebp - 0x12c]
push eax
lea eax, [ebp - 0x130]
push eax
call fcn.005a42f0
add esp, 8
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x5a9c50
mov eax, dword [ebp - 0xcc]
mov edi, dword [ebp - 0x130]
mov ecx, dword [ebp - 0xdc]
mov ebx, dword [ebp - 0xd0]
mov eax, dword [eax + 0xc]
mov esi, dword [edi + 0x54]
mov edx, dword [edi + 0x14]
mov dword [ebp - 0xe8], esi
lea eax, [eax + eax*4]
mov dword [ebp - 0xec], edx
lea ecx, [ecx + eax*8]
mov eax, dword [edi + 0x40]
cmp eax, dword [ebx + 0x48]
mov ebx, dword [ebp - 0x118]
mov dword [ebp - 0x11c], ecx
je 0x5a6037
cmp byte [edi + 2], 0
je 0x5a5f6f
cmp byte [edi], 3
jne 0x5a52b2
mov ecx, dword [ebp - 0xdc]
lea eax, [edx + edx*4]
mov esi, dword [ecx + eax*8 + 0xc]
mov dword [edi + 0x48], esi
mov dword [edi + 0x44], esi
mov eax, dword [ecx + eax*8 + 0x10]
mov dword [edi + 0x50], eax
jmp 0x5a5fb8
push edx
call fcn.0056e280
mov edx, dword [ebp - 0xec]
add esp, 4
mov eax, dword [edx + 0x1c]
mov dword [edi + 0x44], eax
movsx eax, byte [edx + 0x44]
mov ecx, dword [edx + 0x18]
mov eax, dword [edx + eax*4 + 0x78]
mov esi, dword [eax + 0x3c]
movzx eax, word [edx + 0x20]
sub esi, ecx
cmp eax, esi
mov dword [edi + 0x50], ecx
cmovb esi, eax
mov eax, dword [edi + 0x44]
cmp eax, esi
ja 0x5a5fac
mov dword [edi + 0x48], eax
jmp 0x5a5fb8
cmp eax, dword [ebx + 0x60]
ja 0x5a9e96
mov dword [edi + 0x48], esi
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 0x48]
mov dword [edi + 0x40], eax
mov ecx, dword [edi + 0x50]
mov al, byte [ecx]
cmp al, 0x80
jae 0x5a5fdd
movzx ecx, al
mov eax, 1
mov dword [ebp - 0x18c], ecx
jmp 0x5a5ff6
lea eax, [ebp - 0x18c]
push eax
push ecx
call fcn.0058ffa0
mov ecx, dword [ebp - 0x18c]
add esp, 8
movzx eax, al
movzx eax, al
mov dword [edi + 0x4c], eax
xor eax, eax
mov word [edi + 0x12], ax
mov eax, dword [ebp - 0xe8]
mov dword [eax], ecx
cmp esi, ecx
jae 0x5a6133
mov dword [edi + 0x50], 0
mov dword [edi + 0x48], 0
cmp ecx, 0x18003
ja 0x5a9c3d
cmp ecx, dword [edi + 0x44]
ja 0x5a9c3d
mov esi, eax
movzx eax, word [edi + 0x12]
mov ecx, dword [ebp - 0x12c]
cmp eax, ecx
jg 0x5a62a4
mov eax, dword [edi + 0x4c]
cmp eax, dword [esi]
jae 0x5a6281
mov edx, dword [edi + 0x50]
mov dword [ebp - 0x108], edx
test edx, edx
jne 0x5a60b5
xorps xmm0, xmm0
lea eax, [ebp - 0x2c4]
push eax
xor eax, eax
movq qword [ebp - 0x2a4], xmm0
movups xmmword [ebp - 0x2c4], xmm0
movups xmmword [ebp - 0x2b4], xmm0
cmp byte [edi + 4], al
sete al
push eax
push dword [esi]
push edx
push dword [ebp - 0xec]
call fcn.005abea0
add esp, 0x14
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x5a9c4a
mov edx, dword [ebp - 0x2b4]
mov dword [ebp - 0x108], edx
movzx eax, word [edi + 0x12]
mov ecx, dword [ebp - 0x130]
mov dword [ebp - 0xf0], eax
mov dword [ebp - 0x104], 0
mov edi, dword [esi + eax*4]
mov esi, dword [ecx + 0x4c]
add esi, edx
mov edx, dword [ebp - 0xe8]
mov edx, dword [edx]
add edx, dword [ebp - 0x108]
add eax, 0x16
mov dword [ebp - 0x10c], edx
lea eax, [ecx + eax*4]
mov dword [ebp - 0xf8], eax
nop word [eax + eax]
movzx ecx, byte [esi]
mov dword [ebp - 0xe0], ecx
mov dword [ebp - 0x158], ecx
cmp ecx, 0x80
jae 0x5a6145
movzx eax, cl
inc esi
movzx eax, byte [eax + 0x5fd3c0]
cdq
add edi, eax
adc dword [ebp - 0x104], edx
mov edx, dword [ebp - 0x104]
jmp 0x5a617d
test ecx, ecx
je 0x5a6035
mov edx, dword [edi + 0x50]
mov esi, eax
jmp 0x5a60af
lea eax, [ebp - 0x158]
push eax
push esi
call fcn.0058ffa0
mov ecx, dword [ebp - 0x158]
movzx eax, al
push ecx
add esi, eax
mov dword [ebp - 0xe0], ecx
call fcn.005ad920
mov edx, dword [ebp - 0x104]
add esp, 0xc
add edi, eax
adc edx, 0
mov dword [ebp - 0x104], edx
mov eax, dword [ebp - 0xf8]
mov ebx, dword [ebp - 0xe8]
add dword [ebp - 0xf8], 4
mov dword [eax], ecx
mov eax, dword [ebp - 0xf0]
inc eax
mov dword [ebp - 0xf0], eax
mov dword [ebx + eax*4], edi
mov ebx, dword [ebp - 0x118]
cmp eax, dword [ebp - 0x12c]
jg 0x5a61be
cmp esi, dword [ebp - 0x10c]
jb 0x5a6100
jmp 0x5a61c6
cmp esi, dword [ebp - 0x10c]
jb 0x5a61ef
cmp esi, dword [ebp - 0x10c]
ja 0x5a9cb0
mov ebx, dword [ebp - 0x130]
cmp edi, dword [ebx + 0x44]
mov ebx, dword [ebp - 0x118]
jne 0x5a9cb0
test edx, edx
jne 0x5a9cb0
mov ebx, dword [ebp - 0x130]
mov ebx, dword [ebx + 0x44]
mov dword [ebp - 0xf0], ebx
mov ebx, dword [ebp - 0x118]
test edx, edx
ja 0x5a9cb0
jb 0x5a621a
cmp edi, dword [ebp - 0xf0]
ja 0x5a9cb0
mov edi, dword [ebp - 0x130]
sub esi, dword [ebp - 0x108]
mov word [edi + 0x12], ax
mov dword [edi + 0x4c], esi
cmp dword [edi + 0x50], 0
jne 0x5a6248
lea eax, [ebp - 0x2c4]
push eax
call fcn.005ac300
mov ecx, dword [ebp - 0xe0]
add esp, 4
mov esi, dword [ebp - 0xe8]
movzx eax, word [edi + 0x12]
cmp eax, dword [ebp - 0x12c]
jg 0x5a62b4
mov eax, dword [ebp - 0xcc]
cmp byte [eax + 1], 0xf8
jne 0x5a6291
push 0x800
push dword [eax + 0x10]
push dword [ebp - 0x11c]
call fcn.005ac690
add esp, 0xc
jmp 0x5a4c42
xor ecx, ecx
mov dword [ebp - 0xe0], ecx
mov dword [ebp - 0x158], ecx
jmp 0x5a624e
push dword [ebp - 0x11c]
call fcn.005ac370
add esp, 4
jmp 0x5a4c42
mov ecx, dword [edi + ecx*4 + 0x58]
mov dword [ebp - 0xe0], ecx
mov dword [ebp - 0x158], ecx
mov edx, dword [ebp - 0x11c]
mov eax, 0x2460
test word [edx + 8], ax
je 0x5a62da
push edx
call fcn.005ac370
mov ecx, dword [ebp - 0xe0]
add esp, 4
mov edx, dword [ebp - 0x11c]
mov ebx, dword [ebp - 0x12c]
mov eax, dword [edi + 0x48]
cmp eax, dword [esi + ebx*4 + 4]
mov ebx, dword [ebp - 0x118]
jb 0x5a6394
mov eax, dword [ebp - 0x12c]
mov edi, dword [edi + 0x50]
add edi, dword [esi + eax*4]
cmp ecx, 0xc
jae 0x5a6314
push edx
push ecx
push edi
call fcn.005ad5c0
add esp, 0xc
jmp 0x5a4c42
mov al, byte [ebp - 0x114]
lea esi, [ecx - 0xc]
shr esi, 1
mov byte [edx + 0xa], al
mov dword [edx + 0xc], esi
lea eax, [esi + 2]
cmp dword [edx + 0x18], eax
jge 0x5a6352
push 0
push eax
mov ecx, 1
push edx
mov word [edx + 8], cx
call fcn.005abf10
add esp, 0xc
test eax, eax
jne 0x5a659f
mov edx, dword [ebp - 0x11c]
jmp 0x5a6358
mov eax, dword [edx + 0x14]
mov dword [edx + 0x10], eax
push esi
push edi
push dword [edx + 0x10]
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [ebp - 0x11c]
add esp, 0xc
mov eax, dword [ecx + 0x10]
mov byte [esi + eax], 0
mov eax, dword [ecx + 0x10]
mov byte [esi + eax + 1], 0
mov eax, dword [ebp - 0xe0]
and eax, 1
mov ax, word [eax*2 + 0x5fd488]
mov word [ecx + 8], ax
jmp 0x5a4c42
mov al, byte [ebp - 0x114]
mov byte [edx + 0xa], al
mov eax, dword [ebp - 0xcc]
mov al, byte [eax + 3]
test al, 0xc0
je 0x5a63b8
cmp ecx, 0xc
jb 0x5a63b4
test cl, 1
je 0x5a63cd
test al, al
js 0x5a63cd
push ecx
call fcn.005ad920
mov edx, eax
add esp, 4
test edx, edx
jne 0x5a63e1
mov edx, dword [ebp - 0x11c]
push edx
push ecx
push 0x684460
call fcn.005ad5c0
add esp, 0xc
jmp 0x5a4c42
mov esi, dword [ebp - 0x11c]
xor eax, eax
cmp byte [edi + 4], al
mov ecx, dword [ebp - 0x12c]
push esi
sete al
push eax
mov eax, dword [ebp - 0xe8]
push edx
push dword [eax + ecx*4]
push dword [ebp - 0xec]
call fcn.005abea0
add esp, 0x14
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x5a9c4a
mov eax, dword [ebp - 0xe0]
push esi
push eax
push dword [esi + 0x10]
call fcn.005ad5c0
mov eax, 0xefff
add esp, 0xc
and word [esi + 8], ax
jmp 0x5a4c42
mov eax, dword [edi + 4]
mov esi, dword [edi + 0x10]
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov al, byte [esi]
mov byte [ebp - 0x150], al
test al, al
je 0x5a4c42
push dword [ebp - 0x114]
lea esi, [esi + 1]
push dword [ebp - 0x150]
push edi
call fcn.0055ddd0
mov al, byte [esi]
add esp, 0xc
add edi, 0x28
mov byte [ebp - 0x150], al
test al, al
jne 0x5a6460
jmp 0x5a4c42
mov esi, dword [edi + 0x10]
xor eax, eax
mov dword [ebp - 0xe8], eax
xorps xmm0, xmm0
mov eax, dword [edi + 4]
mov edi, dword [ebp - 0xdc]
movlpd qword [ebp - 0x100], xmm0
movlpd qword [ebp - 0x120], xmm0
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0xe0], ecx
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*8]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xd0]
movzx edx, byte [eax + 0x5c]
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0xf0], edx
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [ebp - 0x10c], eax
test esi, esi
je 0x5a652d
mov bl, byte [esi]
mov edi, ecx
push dword [ebp - 0x114]
push ebx
push edi
call fcn.0055ddd0
mov bl, byte [esi + 1]
lea esi, [esi + 1]
add esp, 0xc
add edi, 0x28
test bl, bl
jne 0x5a6504
mov ebx, dword [ebp - 0x118]
mov edx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0xfc]
mov esi, dword [ebp - 0xec]
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0x100]
mov dword [ebp - 0x108], eax
mov eax, dword [ebp - 0x11c]
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0x120]
mov dword [ebp - 0x11c], eax
lea eax, [ebp - 0x170]
push eax
push edx
push esi
call fcn.005ad7d0
mov edi, eax
add esp, 0xc
mov eax, 0x4000
mov dword [esi + 0x1c], edi
test word [esi + 8], ax
je 0x5a65fd
mov ecx, dword [ebp - 0x108]
or ecx, dword [ebp - 0x104]
je 0x5a65e6
push esi
call fcn.005abdb0
add esp, 4
test eax, eax
je 0x5a65fd
mov esi, dword [ebp - 0xd0]
cmp byte [ebx + 0x45], 0
jne 0x5a65ce
cmp byte [ebx + 0x46], 0
jne 0x5a65ce
cmp dword [ebx + 0xa8], 0
mov byte [ebx + 0x45], 1
jle 0x5a65c8
mov dword [ebx + 0xf8], 1
inc dword [ebx + 0x100]
push str.out_of_memory
push esi
call fcn.005a4570
add esp, 8
mov eax, 7
jmp 0x5a9c50
mov ecx, dword [esi]
mov eax, ecx
cdq
add dword [ebp - 0x11c], eax
adc dword [ebp - 0xf8], edx
sub dword [ebp - 0x170], ecx
mov eax, dword [ebp - 0x108]
add eax, dword [ebp - 0x170]
mov dword [ebp - 0x108], eax
adc dword [ebp - 0x104], 0
cmp edi, 0x7f
ja 0x5a6622
mov eax, 1
jmp 0x5a662d
push 0
push edi
call fcn.005a35f0
add esp, 8
mov ecx, dword [ebp - 0xe8]
add ecx, eax
mov dword [ebp - 0xe8], ecx
cmp esi, dword [ebp - 0xe0]
je 0x5a6651
mov edx, dword [ebp - 0xf0]
sub esi, 0x28
jmp 0x5a6563
cmp ecx, 0x7e
jle 0x5a6685
mov eax, ecx
cdq
push edx
push eax
call fcn.005a35f0
mov esi, eax
mov eax, dword [ebp - 0xe8]
add eax, esi
mov dword [ebp - 0xe8], eax
cdq
push edx
push eax
call fcn.005a35f0
mov ecx, dword [ebp - 0xe8]
add esp, 0x10
cmp esi, eax
jge 0x5a668c
inc ecx
mov dword [ebp - 0xe8], ecx
mov eax, ecx
cdq
mov ecx, eax
mov eax, edx
mov edi, ecx
mov dword [ebp - 0xfc], ecx
add edi, dword [ebp - 0x108]
mov ecx, eax
mov esi, edi
mov dword [ebp - 0xf0], eax
adc ecx, dword [ebp - 0x104]
add esi, dword [ebp - 0x11c]
mov eax, dword [ebx + 0x60]
adc ecx, dword [ebp - 0xf8]
cdq
mov dword [ebp - 0x108], edi
cmp ecx, edx
jg 0x5a9e96
jl 0x5a66d9
cmp esi, eax
ja 0x5a9e96
push edi
mov edi, dword [ebp - 0x10c]
push edi
call fcn.005abd10
add esp, 8
test eax, eax
jne 0x5a659f
mov ecx, dword [ebp - 0xe8]
mov edi, dword [edi + 0x10]
cmp ecx, 0x80
jae 0x5a670b
mov byte [edi], cl
mov eax, 1
jmp 0x5a6720
push dword [ebp - 0xf0]
push dword [ebp - 0xfc]
push edi
call fcn.00599930
add esp, 0xc
mov ebx, dword [ebp - 0xe0]
movzx esi, al
nop dword [eax]
mov ebx, dword [ebx + 0x1c]
cmp ebx, 0x80
jae 0x5a6745
mov byte [esi + edi], bl
mov eax, 1
jmp 0x5a6754
push 0
lea eax, [esi + edi]
push ebx
push eax
call fcn.00599930
add esp, 0xc
movzx eax, al
add esi, eax
mov eax, dword [ebp - 0xe8]
push ebx
mov ebx, dword [ebp - 0xe0]
add eax, edi
push ebx
push eax
call fcn.005ad760
add dword [ebp - 0xe8], eax
add ebx, 0x28
add esp, 0xc
mov dword [ebp - 0xe0], ebx
cmp ebx, dword [ebp - 0xec]
jbe 0x5a6730
mov edx, dword [ebp - 0x10c]
mov eax, dword [ebp - 0x108]
mov ecx, dword [ebp - 0x11c]
mov dword [edx + 0xc], eax
mov eax, 0x10
mov word [edx + 8], ax
mov eax, ecx
or eax, dword [ebp - 0xf8]
je 0x5a67bc
mov eax, 0x4010
mov dword [edx], ecx
mov word [edx + 8], ax
mov byte [edx + 0xa], 1
jmp 0x5a4c42
mov ecx, dword [edi + 4]
xorps xmm0, xmm0
mov eax, dword [esi + 0x38]
movlpd qword [ebp - 0x1d4], xmm0
mov eax, dword [eax + ecx*4]
lea ecx, [ebp - 0x1d4]
push ecx
push dword [eax + 0x14]
call fcn.00580ee0
add esp, 8
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x5a9c50
push dword [ebp - 0xcc]
push esi
call fcn.005736d0
mov ecx, dword [ebp - 0x1d4]
add esp, 8
mov edi, dword [ebp - 0xcc]
mov ebx, dword [ebp - 0x118]
add edi, 0x14
mov dword [eax], ecx
mov ecx, dword [ebp - 0x1d0]
mov dword [eax + 4], ecx
mov ecx, 4
mov eax, dword [ebp - 0xd4]
jmp 0x5a46f8
mov eax, dword [edi + 4]
mov esi, dword [edi + 0x10]
mov dword [ebp - 0x104], eax
test eax, eax
jne 0x5a6918
cmp dword [ebx + 0xa4], eax
jg 0x5a9cd5
push esi
call fcn.0059f710
mov ecx, dword [ebx + 0x1b4]
add ecx, dword [ebx + 0x1b0]
push ecx
push 0
push ebx
mov dword [ebp - 0xf0], eax
call fcn.005af150
add esp, 0x10
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x5a9c4a
mov eax, dword [ebp - 0xf0]
add eax, 0x21
push 0
push eax
push ebx
call fcn.00586310
add esp, 0xc
mov dword [ebp - 0xfc], eax
test eax, eax
je 0x5a4c48
mov ecx, dword [ebp - 0xf0]
lea edx, [eax + 0x20]
inc ecx
mov dword [eax], edx
push ecx
push esi
push edx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
cmp byte [ebx + 0x43], 0
je 0x5a68d4
mov byte [ebx + 0x43], 0
mov byte [ebx + 0x4b], 1
jmp 0x5a68da
inc dword [ebx + 0x1b0]
mov ecx, dword [ebp - 0xfc]
mov eax, dword [ebx + 0x1a8]
mov dword [ecx + 0x18], eax
mov eax, dword [ebx + 0x1b8]
mov dword [ebx + 0x1a8], ecx
mov dword [ecx + 8], eax
mov eax, dword [ebx + 0x1bc]
mov dword [ecx + 0xc], eax
mov eax, dword [ebx + 0x1c0]
mov dword [ecx + 0x10], eax
mov eax, dword [ebx + 0x1c4]
mov dword [ecx + 0x14], eax
jmp 0x5a4c48
mov edi, dword [ebx + 0x1a8]
xor ecx, ecx
mov dword [ebp - 0xe0], ecx
test edi, edi
je 0x5a694c
nop word [eax + eax]
push esi
push dword [edi]
call fcn.0059f6a0
add esp, 8
test eax, eax
je 0x5a6957
inc dword [ebp - 0xe0]
mov edi, dword [edi + 0x18]
test edi, edi
jne 0x5a6930
push esi
push str.no_such_savepoint:__s
jmp 0x5a9e60
cmp dword [ebx + 0xa4], 0
mov edx, dword [ebp - 0x104]
jle 0x5a696f
cmp edx, 1
je 0x5a9cf3
cmp dword [edi + 0x18], 0
jne 0x5a69d0
cmp byte [ebx + 0x4b], 0
je 0x5a69d0
mov dword [ebp - 0xec], 1
cmp edx, 1
jne 0x5a69da
mov esi, dword [ebp - 0xd0]
push edx
push esi
call fcn.005a3c50
add esp, 8
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x5aa265
push esi
mov byte [ebx + 0x43], 1
call fcn.005aadd0
add esp, 4
cmp eax, 5
je 0x5a9cfa
mov byte [ebx + 0x4b], 0
mov eax, dword [esi + 0x50]
mov dword [ebp - 0xd8], eax
jmp 0x5a6ae4
mov dword [ebp - 0xec], 0
mov eax, dword [ebx + 0x1b0]
sub eax, dword [ebp - 0xe0]
dec eax
mov dword [ebp - 0xe0], eax
cmp edx, 2
jne 0x5a6a6c
mov ecx, dword [ebx + 0x18]
shr ecx, 1
and ecx, 1
mov dword [ebp - 0xf0], 0
cmp dword [ebx + 0x14], 0
mov dword [ebp - 0x10c], ecx
jle 0x5a6a76
xor eax, eax
test ecx, ecx
sete al
xor esi, esi
mov dword [ebp - 0xfc], eax
nop
push eax
mov eax, dword [ebx + 0x10]
push 0x204
push dword [eax + esi + 4]
call fcn.005833b0
add esp, 0xc
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x5a9c4a
mov eax, dword [ebp - 0xf0]
add esi, 0x10
inc eax
cmp eax, dword [ebx + 0x14]
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp - 0xfc]
jl 0x5a6a20
mov eax, dword [ebp - 0xe0]
mov edx, dword [ebp - 0x104]
jmp 0x5a6a76
mov dword [ebp - 0x10c], 0
cmp dword [ebx + 0x14], 0
mov dword [ebp - 0xf0], 0
jle 0x5a6ac8
xor esi, esi
push eax
mov eax, dword [ebx + 0x10]
push edx
push dword [eax + esi + 4]
call fcn.00582e90
add esp, 0xc
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x5a9c4a
mov eax, dword [ebp - 0xf0]
add esi, 0x10
mov edx, dword [ebp - 0x104]
inc eax
cmp eax, dword [ebx + 0x14]
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp - 0xe0]
jl 0x5a6a88
cmp dword [ebp - 0x10c], 0
je 0x5a6ae4
push ebx
call fcn.00588040
push ebx
call fcn.0059a200
add esp, 8
or dword [ebx + 0x18], 2
cmp dword [ebx + 0x1a8], edi
je 0x5a6b51
nop dword [eax]
cmp dword [ebx + 0x1c8], 0
mov ecx, dword [ebx + 0x1a8]
mov eax, dword [ecx + 0x18]
mov dword [ebx + 0x1a8], eax
je 0x5a6b14
push ecx
push ebx
call fcn.00570a50
add esp, 8
jmp 0x5a6b43
cmp ecx, dword [ebx + 0x120]
jb 0x5a6b3a
cmp ecx, dword [ebx + 0x124]
jae 0x5a6b3a
mov eax, dword [ebx + 0x11c]
mov dword [ecx], eax
dec dword [ebx + 0x108]
mov dword [ebx + 0x11c], ecx
jmp 0x5a6b43
push ecx
call fcn.00556b90
add esp, 4
dec dword [ebx + 0x1b0]
cmp dword [ebx + 0x1a8], edi
jne 0x5a6af0
mov esi, dword [ebp - 0x104]
cmp esi, 1
jne 0x5a6b84
mov eax, dword [edi + 0x18]
push edi
push ebx
mov dword [ebx + 0x1a8], eax
call fcn.00586280
add esp, 8
cmp dword [ebp - 0xec], 0
jne 0x5a5773
dec dword [ebx + 0x1b0]
jmp 0x5a6bba
cmp dword [ebp - 0xec], 0
mov eax, dword [edi + 8]
mov dword [ebx + 0x1b8], eax
mov eax, dword [edi + 0xc]
mov dword [ebx + 0x1bc], eax
mov eax, dword [edi + 0x10]
mov dword [ebx + 0x1c0], eax
mov eax, dword [edi + 0x14]
mov dword [ebx + 0x1c4], eax
je 0x5a6bba
cmp esi, 2
jne 0x5a5773
mov ecx, dword [ebp - 0xe0]
push ecx
push esi
push ebx
call fcn.005af150
add esp, 0xc
mov dword [ebp - 0xd8], eax
jmp 0x5a5779
mov edx, dword [edi + 8]
test edx, edx
je 0x5a6bea
test dword [ebx + 0x18], 0x4000000
jne 0x5a9d31
mov ecx, dword [edi + 4]
mov eax, dword [ebx + 0x10]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
test esi, esi
je 0x5a6cfb
push edx
push esi
call fcn.00580650
add esp, 8
mov dword [ebp - 0xd8], eax
cmp al, 5
je 0x5a9d3b
test eax, eax
jne 0x5a9c4a
mov eax, dword [ebp - 0xcc]
cmp dword [eax + 8], 0
je 0x5a6cc6
mov edi, dword [ebp - 0xd0]
test byte [edi + 0x60], 0x10
je 0x5a6cc6
cmp byte [ebx + 0x43], 0
je 0x5a6c4d
cmp dword [ebx + 0xa0], 1
jle 0x5a6cc6
cmp dword [edi + 0x70], 0
jne 0x5a6c68
mov eax, dword [ebx + 0x1b0]
inc dword [ebx + 0x1b4]
add eax, dword [ebx + 0x1b4]
mov dword [edi + 0x70], eax
mov eax, dword [edi + 0x70]
dec eax
push eax
push 0
push ebx
call fcn.005af150
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0xd8], ecx
test ecx, ecx
jne 0x5a6c96
push dword [edi + 0x70]
push esi
call fcn.005805f0
add esp, 8
mov dword [ebp - 0xd8], eax
mov eax, dword [ebx + 0x1b8]
mov dword [edi + 0xa0], eax
mov eax, dword [ebx + 0x1bc]
mov dword [edi + 0xa4], eax
mov eax, dword [ebx + 0x1c0]
mov dword [edi + 0xa8], eax
mov eax, dword [ebx + 0x1c4]
mov dword [edi + 0xac], eax
lea eax, [ebp - 0x1a8]
push eax
push 1
push esi
call fcn.00581630
mov eax, dword [ebp - 0xcc]
add esp, 0xc
mov esi, dword [ebp - 0x1a8]
mov edi, dword [ebp - 0xcc]
mov ecx, dword [eax + 4]
mov eax, dword [ebx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax + 4]
jmp 0x5a6d05
xor esi, esi
xor eax, eax
mov dword [ebp - 0x1a8], esi
cmp byte [edi + 3], 0
je 0x5a6d1d
cmp esi, dword [edi + 0xc]
jne 0x5a9d6f
cmp eax, dword [edi + 0x10]
jne 0x5a9d6f
mov eax, dword [ebp - 0xd8]
mov esi, dword [ebp - 0xd0]
test eax, eax
jne 0x5a9c50
mov ebx, dword [ebp - 0x118]
lea ecx, [eax + 4]
mov eax, dword [ebp - 0xd4]
add edi, 0x14
jmp 0x5a46f8
mov ecx, dword [edi + 4]
lea eax, [ebp - 0x1ac]
push eax
mov eax, dword [ebx + 0x10]
add ecx, ecx
push dword [edi + 0xc]
push dword [eax + ecx*8 + 4]
call fcn.00581630
push dword [ebp - 0xcc]
push esi
call fcn.005736d0
mov ecx, eax
add esp, 0x14
mov eax, dword [ebp - 0x1ac]
jmp 0x5a4991
mov esi, dword [edi + 4]
push dword [edi + 0xc]
shl esi, 4
add esi, dword [ebx + 0x10]
push dword [edi + 8]
push dword [esi + 4]
call fcn.005835c0
mov dword [ebp - 0xd8], eax
add esp, 0xc
mov eax, dword [edi + 8]
cmp eax, 1
jne 0x5a6db5
mov ecx, dword [esi + 0xc]
mov eax, dword [edi + 0xc]
mov dword [ecx], eax
or dword [ebx + 0x18], 2
jmp 0x5a6dc3
cmp eax, 2
jne 0x5a6dc3
mov ecx, dword [esi + 0xc]
mov al, byte [edi + 0xc]
mov byte [ecx + 0x4c], al
cmp dword [edi + 4], 1
jne 0x5a6dde
push ebx
call fcn.00588040
mov esi, dword [ebp - 0xd0]
add esp, 4
and dword [esi + 0x58], 0xfffffffe
jmp 0x5a6de4
mov esi, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xd8]
test eax, eax
jne 0x5a9c50
mov ebx, dword [ebp - 0x118]
lea ecx, [eax + 4]
mov eax, dword [ebp - 0xd4]
add edi, 0x14
jmp 0x5a46f8
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x38]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x5a6e22
mov eax, dword [esi + 0xc]
cmp eax, dword [edi + 8]
je 0x5a6f6b
mov esi, dword [ebp - 0xd0]
mov al, byte [ebp - 0xe1]
test byte [esi + 0x58], 1
jne 0x5a9dc1
mov esi, dword [edi + 0xc]
mov ecx, esi
mov edx, dword [edi + 8]
shl ecx, 4
add ecx, dword [ebx + 0x10]
mov dword [ebp - 0x10c], 0
mov dword [ebp - 0xf0], 0
mov dword [ebp - 0xf8], edx
mov ebx, dword [ecx + 4]
mov dword [ebp - 0x108], ebx
mov ebx, dword [ebp - 0x118]
mov dword [ebp - 0xfc], esi
cmp al, 0x68
jne 0x5a6ea5
mov eax, dword [ecx + 0xc]
movzx edx, byte [edi + 3]
mov ecx, dword [ebp - 0xd0]
and edx, 8
or edx, 4
mov al, byte [eax + 0x4c]
mov dword [ebp - 0xec], edx
mov edx, dword [ebp - 0xf8]
cmp al, byte [ecx + 0x5c]
jae 0x5a6eaf
mov byte [ecx + 0x5c], al
jmp 0x5a6eaf
mov dword [ebp - 0xec], 0
test byte [edi + 3], 0x10
je 0x5a6ed8
mov ecx, dword [ebp - 0xdc]
lea eax, [edx + edx*4]
lea esi, [ecx + eax*8]
push esi
call fcn.005ac0e0
mov eax, dword [esi]
add esp, 4
mov esi, dword [ebp - 0xfc]
mov dword [ebp - 0xf8], eax
mov al, byte [edi + 1]
cmp al, 0xfa
jne 0x5a6ef4
mov eax, dword [edi + 0x10]
mov dword [ebp - 0xf0], eax
movzx ecx, word [eax + 8]
movzx eax, word [eax + 6]
add ecx, eax
jmp 0x5a6f03
cmp al, 0xf2
jne 0x5a6efd
mov ecx, dword [edi + 0x10]
jmp 0x5a6f03
mov ecx, dword [ebp - 0x10c]
push 0
push esi
push ecx
push dword [edi + 4]
push dword [ebp - 0xd0]
call fcn.0055cdc0
mov esi, eax
add esp, 0x14
test esi, esi
je 0x5a659f
push dword [esi + 0x14]
mov edi, dword [ebp - 0xf0]
mov eax, dword [ebp - 0xf8]
or dword [esi + 8], 4
push edi
push dword [ebp - 0xec]
mov byte [esi + 2], 1
push eax
push dword [ebp - 0x108]
mov dword [esi + 0xc], eax
call fcn.005810f0
mov dword [ebp - 0xd8], eax
add esp, 0x14
mov eax, dword [ebp - 0xcc]
mov dword [esi + 0x1c], edi
cmp byte [eax + 1], 0xfa
setne al
mov byte [esi + 4], al
mov eax, dword [ebp - 0xcc]
mov cl, byte [eax + 3]
mov eax, dword [esi + 0x14]
and cl, 3
mov byte [eax + 0x43], cl
jmp 0x5a5773
push 0
push 0xffffffffffffffff
push dword [edi + 8]
push dword [edi + 4]
push esi
call fcn.0055cdc0
mov esi, eax
add esp, 0x14
test esi, esi
je 0x5a659f
mov eax, dword [ebp - 0xcc]
lea edi, [esi + 0x18]
or dword [esi + 8], 1
mov byte [esi + 2], 1
push 0x41e
movzx eax, byte [eax + 3]
or eax, 5
push eax
push edi
push ebx
push 0
push dword [ebx]
call fcn.005825c0
add esp, 0x18
test eax, eax
jne 0x5a9c4a
push 1
push dword [edi]
call fcn.00580650
add esp, 8
test eax, eax
jne 0x5a9c4a
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0xfc], ecx
test ecx, ecx
je 0x5a7048
movzx eax, byte [eax + 3]
or eax, 2
push eax
lea eax, [ebp - 0x1b0]
push eax
push dword [edi]
call fcn.005810a0
add esp, 0xc
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x5a7042
push dword [esi + 0x14]
mov eax, dword [ebp - 0xfc]
push eax
push 4
push dword [ebp - 0x1b0]
mov dword [esi + 0x1c], eax
push dword [edi]
call fcn.005810f0
add esp, 0x14
mov dword [ebp - 0xd8], eax
mov byte [esi + 4], 0
jmp 0x5a7065
push dword [esi + 0x14]
push 0
push 4
push 1
push dword [edi]
call fcn.005810f0
add esp, 0x14
mov dword [ebp - 0xd8], eax
mov byte [esi + 4], 1
test eax, eax
jne 0x5a9c4a
mov edi, dword [ebp - 0xcc]
cmp byte [edi + 3], 8
setne al
shl eax, 2
xor eax, dword [esi + 8]
and eax, 4
xor dword [esi + 8], eax
jmp 0x5a4c48
push 1
push 0xffffffffffffffff
push dword [edi + 8]
push dword [edi + 4]
push esi
call fcn.0055cdc0
mov edx, eax
add esp, 0x14
test edx, edx
je 0x5a65a5
mov eax, dword [ebp - 0xcc]
push edx
mov ecx, dword [eax + 0x10]
mov dword [edx + 0x1c], ecx
push dword [eax + 0xc]
push ebx
call fcn.005adbf0
add esp, 0xc
mov dword [ebp - 0xd8], eax
jmp 0x5a577f
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x38]
mov edx, dword [eax + ecx*4]
mov edi, dword [edx + 0x28]
mov ecx, edi
mov esi, dword [edx + 0x2c]
add ecx, 1
mov eax, esi
mov dword [edx + 0x28], ecx
adc eax, 0
or edi, esi
mov edi, dword [ebp - 0xcc]
mov dword [edx + 0x2c], eax
je 0x5a476b
jmp 0x5a4c48
push 3
push 0xffffffffffffffff
push dword [edi + 0xc]
push dword [edi + 4]
push esi
call fcn.0055cdc0
add esp, 0x14
test eax, eax
je 0x5a65a5
mov ecx, dword [ebp - 0xcc]
mov byte [eax + 2], 1
mov ecx, dword [ecx + 8]
mov dword [eax + 0x14], ecx
mov byte [eax + 4], 1
jmp 0x5a4997
mov ebx, dword [ebp - 0xcc]
mov eax, dword [esi + 0x38]
mov ecx, dword [ebx + 4]
push dword [eax + ecx*4]
push esi
call fcn.005aac40
mov eax, ebx
add esp, 8
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov dword [eax + ecx*4], 0
jmp 0x5a4997
mov ecx, dword [edi + 4]
xor edi, edi
mov eax, dword [esi + 0x38]
mov dword [ebp - 0xfc], edi
mov esi, dword [eax + ecx*4]
cmp byte [esi + 4], 0
mov byte [esi + 2], 0
je 0x5a7250
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xdc]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov al, byte [edi + 8]
and al, 0xe
cmp al, 2
jne 0x5a71a6
push 0
push edi
call fcn.0055de40
add esp, 8
push edi
call fcn.005ab2e0
movzx ecx, word [edi + 8]
add esp, 4
mov dword [ebp - 0xf0], eax
mov dword [ebp - 0xec], edx
test cl, 4
jne 0x5a7202
test cl, 8
je 0x5a4765
mov ecx, eax
call fcn.005c63e0
movsd xmm1, qword [edi]
comisd xmm0, xmm1
jbe 0x5a71eb
mov eax, dword [ebp - 0x104]
test al, 1
jne 0x5a7202
dec eax
jmp 0x5a71fc
comisd xmm1, xmm0
jbe 0x5a7202
mov eax, dword [ebp - 0x104]
test al, 1
je 0x5a7202
inc eax
mov dword [ebp - 0x104], eax
mov edi, dword [ebp - 0xf0]
lea eax, [ebp - 0x128]
push eax
push 0
push dword [ebp - 0xec]
push edi
push 0
push dword [esi + 0x14]
call fcn.005820d0
mov dword [ebp - 0xd8], eax
add esp, 0x18
mov eax, dword [ebp - 0xec]
mov dword [esi + 0x34], eax
mov eax, dword [ebp - 0xd8]
mov dword [esi + 0x30], edi
test eax, eax
jne 0x5a9c4a
mov edi, dword [ebp - 0xfc]
jmp 0x5a72fb
mov eax, dword [esi + 0x14]
mov ecx, dword [ebp - 0xcc]
test byte [eax + 0x43], 2
mov eax, 1
cmovne edi, eax
mov eax, dword [esi + 0x1c]
mov dword [ebp - 0x1e4], eax
mov ax, word [ecx + 0x10]
mov word [ebp - 0x1dc], ax
lea eax, [edx - 1]
test al, 1
sete al
lea eax, [eax*2 - 1]
mov byte [ebp - 0x1da], al
mov eax, dword [ecx + 0xc]
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, 0x4000
mov dword [ebp - 0x1e0], eax
test word [eax + 8], cx
je 0x5a72b7
push eax
call fcn.005abdb0
add esp, 4
lea eax, [ebp - 0x128]
mov byte [ebp - 0x1d6], 0
push eax
push 0
push 0
push 0
lea eax, [ebp - 0x1e4]
push eax
push dword [esi + 0x14]
call fcn.005820d0
add esp, 0x18
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x5a9c4a
test edi, edi
je 0x5a72fb
cmp byte [ebp - 0x1d6], al
je 0x5a7392
mov eax, dword [ebp - 0x104]
mov byte [esi + 3], 0
mov dword [esi + 0x40], 0
mov ecx, dword [ebp - 0x128]
cmp eax, 0x19
jl 0x5a7349
test ecx, ecx
js 0x5a732e
jne 0x5a7322
cmp eax, 0x1a
je 0x5a732e
mov dword [ebp - 0x128], 0
jmp 0x5a739f
lea eax, [ebp - 0x128]
mov dword [ebp - 0x128], 0
push eax
push dword [esi + 0x14]
call fcn.00582540
jmp 0x5a7381
test ecx, ecx
jg 0x5a7368
jne 0x5a7354
cmp eax, 0x17
je 0x5a7368
mov eax, dword [esi + 0x14]
xor ecx, ecx
cmp byte [eax + 0x42], 1
setne cl
mov dword [ebp - 0x128], ecx
jmp 0x5a7392
lea eax, [ebp - 0x128]
mov dword [ebp - 0x128], 0
push eax
push dword [esi + 0x14]
call fcn.00582cc0
add esp, 8
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x5a9c4a
cmp dword [ebp - 0x128], 0
jne 0x5a4765
mov esi, dword [ebp - 0xd0]
test edi, edi
mov eax, dword [ebp - 0xd4]
mov ecx, 4
mov edi, dword [ebp - 0xcc]
je 0x5a4c59
mov ebx, dword [ebp - 0x118]
add edi, 0x14
add edi, 0x14
jmp 0x5a46f8
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x38]
mov dword [ebp - 0x190], 0
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xf0], edx
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0xfc], ecx
cmp dword [eax + 0x10], 0
jle 0x5a7479
mov eax, dword [edx + 0x1c]
xor edi, edi
mov dword [ebp - 0x204], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x200], ecx
mov dx, word [eax + 0x10]
xor eax, eax
mov word [ebp - 0x1fc], dx
cmp ax, dx
jae 0x5a7471
xor esi, esi
mov ebx, 0x4000
nop
test word [esi + ecx + 8], bx
lea eax, [esi + ecx]
je 0x5a7460
push eax
call fcn.005abdb0
mov dx, word [ebp - 0x1fc]
add esp, 4
mov ecx, dword [ebp - 0x200]
inc edi
movzx eax, dx
add esi, 0x28
cmp edi, eax
jl 0x5a7440
mov ebx, dword [ebp - 0x118]
lea edi, [ebp - 0x204]
jmp 0x5a74d3
lea eax, [ebp - 0x190]
push eax
push 0xb7
lea eax, [ebp - 0xbc]
push eax
push dword [edx + 0x1c]
call fcn.005a3a30
mov edi, eax
add esp, 0x10
test edi, edi
je 0x5a65a5
mov esi, dword [ebp - 0xfc]
mov eax, 0x4000
test word [esi + 8], ax
je 0x5a74bb
push esi
call fcn.005abdb0
add esp, 4
mov eax, dword [ebp - 0xf0]
push edi
push dword [esi + 0x10]
push dword [esi + 0xc]
push dword [eax + 0x1c]
call fcn.005ad3f0
add esp, 0x10
mov eax, dword [ebp - 0xcc]
xor esi, esi
mov byte [edi + 0xa], 0
cmp byte [eax], 0x1d
jne 0x5a7508
movzx edx, word [edi + 8]
xor ecx, ecx
test edx, edx
jle 0x5a7508
mov eax, dword [edi + 4]
add eax, 8
test byte [eax], 1
jne 0x5a7503
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x5a74f4
jmp 0x5a7508
mov esi, 1
lea eax, [ebp - 0x1b4]
push eax
push 0
push 0
push 0
push edi
mov edi, dword [ebp - 0xf0]
push dword [edi + 0x14]
call fcn.005820d0
push dword [ebp - 0x190]
mov dword [ebp - 0xd8], eax
push ebx
call fcn.00586280
mov eax, dword [ebp - 0xd8]
add esp, 0x20
test eax, eax
jne 0x5a9c4a
mov eax, dword [ebp - 0x1b4]
xor ecx, ecx
test eax, eax
mov dword [edi + 0x20], eax
mov al, 1
mov byte [edi + 3], 0
sete cl
mov dword [edi + 0x40], 0
sub al, cl
mov byte [edi + 2], al
mov edi, dword [ebp - 0xcc]
cmp byte [edi], 0x1f
jne 0x5a7581
test ecx, ecx
jne 0x5a476b
jmp 0x5a4c48
test esi, esi
jne 0x5a476b
test ecx, ecx
je 0x5a476b
jmp 0x5a4c48
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 8]
test al, 4
jne 0x5a75d5
test al, 8
jne 0x5a75c2
test al, 2
je 0x5a75cb
push 1
push esi
call fcn.0055de40
add esp, 8
jmp 0x5a75cb
push esi
call fcn.005ab390
add esp, 4
test byte [esi + 8], 4
je 0x5a476b
mov esi, dword [ebp - 0xd0]
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x38]
mov dword [ebp - 0x194], 0
mov ebx, dword [eax + ecx*4]
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xdc]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
mov esi, dword [ecx + eax*8]
mov edi, dword [ecx + eax*8 + 4]
lea eax, [ebp - 0x194]
push eax
push 0
push edi
push esi
push 0
push dword [ebx + 0x14]
call fcn.005820d0
mov dword [ebp - 0xd8], eax
add esp, 0x18
mov eax, dword [ebp - 0x194]
mov dword [ebx + 0x34], edi
mov edi, dword [ebp - 0xcc]
mov dword [ebx + 0x30], esi
mov word [ebx + 2], 0
mov dword [ebx + 0x40], 0
mov dword [ebx + 0x20], eax
test eax, eax
je 0x5a766c
cmp dword [edi + 8], 0
jne 0x5a476b
push 0x13d3b
call fcn.00584f40
mov ebx, eax
add esp, 4
mov dword [ebp - 0xd8], ebx
jmp 0x5a7672
mov ebx, dword [ebp - 0xd8]
mov esi, dword [ebp - 0xd0]
test ebx, ebx
je 0x5a4c4e
mov ebx, dword [ebp - 0x118]
mov eax, dword [ebp - 0xd8]
jmp 0x5a9c50
mov ebx, dword [ebp - 0xcc]
push ebx
push esi
call fcn.005736d0
mov ecx, dword [esi + 0x38]
add esp, 8
mov edx, dword [ebx + 4]
mov edx, dword [ecx + edx*4]
mov ecx, dword [edx + 0x28]
mov dword [eax], ecx
mov ecx, dword [edx + 0x2c]
mov dword [eax + 4], ecx
mov eax, ebx
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + ecx*4]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
jmp 0x5a4997
xorps xmm0, xmm0
mov dword [ebp - 0x15c], 0
push edi
push esi
movlpd qword [ebp - 0x140], xmm0
call fcn.005736d0
mov ecx, dword [esi + 0x38]
add esp, 8
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0xcc]
mov edx, dword [eax + 4]
mov eax, dword [ecx + edx*4]
mov dword [ebp - 0xe0], eax
test byte [eax + 8], 2
jne 0x5a779e
lea ecx, [ebp - 0x15c]
push ecx
push dword [eax + 0x14]
call fcn.00581f40
add esp, 8
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x5a9c50
cmp dword [ebp - 0x15c], eax
je 0x5a774e
mov edi, 1
xor esi, esi
mov dword [ebp - 0x140], edi
mov dword [ebp - 0x13c], esi
jmp 0x5a77aa
mov eax, dword [ebp - 0xe0]
push dword [eax + 0x14]
call fcn.005819e0
mov esi, edx
add esp, 4
mov dword [ebp - 0x13c], esi
mov edi, eax
mov dword [ebp - 0x140], edi
cmp esi, 0x7fffffff
jl 0x5a778a
jg 0x5a777e
cmp edi, 0xffffffff
jb 0x5a778a
mov eax, dword [ebp - 0xe0]
or dword [eax + 8], 2
jmp 0x5a77aa
add edi, 1
mov dword [ebp - 0x140], edi
adc esi, 0
mov dword [ebp - 0x13c], esi
jmp 0x5a77aa
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x140]
mov ecx, dword [ebp - 0xcc]
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x5a7858
mov eax, dword [ebp - 0xd0]
mov edx, dword [eax + 0xb8]
test edx, edx
je 0x5a77e6
mov eax, dword [edx + 4]
test eax, eax
je 0x5a77db
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x5a77d2
mov eax, dword [edx + 0x10]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*8]
jmp 0x5a77f2
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0xdc]
lea eax, [ecx + eax*8]
push eax
mov dword [ebp - 0xf0], eax
call fcn.005ac0e0
mov eax, dword [ebp - 0xf0]
add esp, 4
mov ecx, dword [eax]
mov edx, dword [eax + 4]
cmp ecx, 0xffffffff
jne 0x5a781d
cmp edx, 0x7fffffff
je 0x5a78ea
mov ebx, dword [ebp - 0xe0]
test byte [ebx + 8], 2
mov ebx, dword [ebp - 0x118]
jne 0x5a78ea
add ecx, 1
adc edx, 0
cmp esi, edx
jg 0x5a7853
jl 0x5a7843
cmp edi, ecx
jae 0x5a7853
mov edi, ecx
mov esi, edx
mov dword [ebp - 0x140], edi
mov dword [ebp - 0x13c], esi
mov dword [eax], edi
mov dword [eax + 4], esi
mov eax, dword [ebp - 0xe0]
test byte [eax + 8], 2
je 0x5a78fa
mov dword [ebp - 0xf0], 0
lea eax, [ebp - 0x140]
push eax
push 8
call fcn.00556f50
mov esi, dword [ebp - 0x13c]
lea eax, [ebp - 0x15c]
mov edi, dword [ebp - 0x140]
and esi, 0x3fffffff
push eax
mov eax, dword [ebp - 0xe0]
add edi, 1
push 0
adc esi, 0
mov dword [ebp - 0x140], edi
push esi
push edi
push 0
push dword [eax + 0x14]
mov dword [ebp - 0x13c], esi
call fcn.005820d0
add esp, 0x20
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x5a9c4a
cmp dword [ebp - 0x15c], eax
jne 0x5a78f4
mov eax, dword [ebp - 0xf0]
inc eax
mov dword [ebp - 0xf0], eax
cmp eax, 0x64
jl 0x5a7872
mov eax, 0xd
jmp 0x5a9c4a
mov eax, dword [ebp - 0xe0]
mov byte [eax + 3], 0
mov dword [eax + 0x40], 0
mov eax, dword [ebp - 0xfc]
mov dword [eax], edi
mov dword [eax + 4], esi
jmp 0x5a4c42
cmp byte [ebp - 0xe1], 0x72
mov eax, dword [edi + 8]
mov dword [ebp - 0xf0], 0
lea eax, [eax + eax*4]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov edx, dword [eax + ecx*4]
mov ecx, dword [ebp - 0xcc]
mov dword [ebp - 0xf8], edx
mov eax, dword [ecx + 0xc]
jne 0x5a7964
mov edi, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
mov esi, dword [edi + eax*8]
mov edi, dword [edi + eax*8 + 4]
jmp 0x5a796f
cdq
mov edi, edx
mov esi, eax
mov edx, dword [ebp - 0xf8]
cmp byte [ecx + 1], 0xec
mov dword [ebp - 0x218], edi
mov dword [ebp - 0x21c], esi
jne 0x5a79c4
cmp dword [ebx + 0xdc], 0
je 0x5a79c4
movsx ecx, byte [edx + 1]
mov eax, dword [ebx + 0x10]
add ecx, ecx
mov edx, dword [eax + ecx*8]
mov eax, 0x12
mov ecx, dword [ebp - 0xcc]
mov dword [ebp - 0x108], edx
mov edx, dword [ecx + 0x10]
test byte [ecx + 3], 4
mov dword [ebp - 0x10c], edx
mov edx, 0x17
cmovne eax, edx
mov dword [ebp - 0xf0], eax
jmp 0x5a79d8
mov dword [ebp - 0x10c], 0
mov dword [ebp - 0x108], 0
test byte [ecx + 3], 1
je 0x5a79e7
mov eax, dword [ebp - 0xd0]
inc dword [eax + 0x64]
test byte [ecx + 3], 2
je 0x5a79ff
mov dword [ebp - 0x134], esi
mov dword [ebp - 0x138], edi
mov dword [ebx + 0x20], esi
mov dword [ebx + 0x24], edi
mov eax, dword [ebp - 0xec]
mov edx, dword [ebp - 0xdc]
movzx edx, word [edx + eax*8 + 8]
test dl, 1
je 0x5a7a2b
mov dword [ebp - 0x214], 0
mov dword [ebp - 0x210], 0
jmp 0x5a7a51
mov ebx, dword [ebp - 0xdc]
mov eax, dword [ebx + eax*8 + 0x10]
mov dword [ebp - 0x214], eax
mov eax, dword [ebp - 0xec]
mov eax, dword [ebx + eax*8 + 0xc]
mov ebx, dword [ebp - 0x118]
mov dword [ebp - 0x210], eax
mov al, byte [ecx + 3]
mov byte [ebp - 0xe1], al
test al, 0x10
je 0x5a7a69
mov ecx, dword [ebp - 0xf8]
mov ecx, dword [ecx + 0x20]
jmp 0x5a7a6b
xor ecx, ecx
test edx, 0x4000
je 0x5a7a90
mov eax, dword [ebp - 0xec]
mov edx, dword [ebp - 0xdc]
mov eax, dword [edx + eax*8]
mov dword [ebp - 0x20c], eax
mov al, byte [ebp - 0xe1]
jmp 0x5a7a9a
mov dword [ebp - 0x20c], 0
movzx eax, al
shr eax, 3
push ecx
and eax, 1
mov dword [ebp - 0x224], 0
push eax
lea eax, [ebp - 0x224]
push eax
mov eax, dword [ebp - 0xf8]
push dword [eax + 0x14]
call fcn.005817e0
mov dword [ebp - 0xd8], eax
add esp, 0x10
mov eax, dword [ebp - 0xf8]
mov byte [eax + 3], 0
mov dword [eax + 0x40], 0
mov eax, dword [ebp - 0xd8]
test eax, eax
jne 0x5a9c4a
mov eax, dword [ebx + 0xdc]
test eax, eax
je 0x5a4c42
mov ecx, dword [ebp - 0xf0]
test ecx, ecx
je 0x5a4c42
mov edx, dword [ebp - 0x10c]
push edi
push esi
push dword [edx]
push dword [ebp - 0x108]
push ecx
push dword [ebx + 0xd8]
call eax
add esp, 0x18
jmp 0x5a4c42
mov eax, dword [edi + 8]
mov ecx, dword [edi + 4]
mov dword [ebp - 0xfc], eax
mov eax, dword [esi + 0x38]
mov esi, dword [eax + ecx*4]
mov eax, dword [ebp - 0xcc]
cmp byte [eax + 1], 0xec
jne 0x5a7b90
cmp dword [ebx + 0xdc], 0
je 0x5a7b90
movsx ecx, byte [esi + 1]
mov eax, dword [ebx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8]
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp - 0xcc]
test byte [eax + 3], 2
mov edi, dword [eax + 0x10]
je 0x5a7b9c
cmp byte [esi + 4], 0
je 0x5a7b9c
push dword [esi + 0x14]
call fcn.005819e0
mov dword [esi + 0x30], eax
add esp, 4
mov eax, dword [ebp - 0xcc]
mov dword [esi + 0x34], edx
jmp 0x5a7b9c
mov dword [ebp - 0xf0], 0
xor edi, edi
movzx eax, byte [eax + 3]
push eax
push dword [esi + 0x14]
call fcn.005811b0
add esp, 8
mov dword [ebp - 0xd8], eax
mov dword [esi + 0x40], 0
test eax, eax
jne 0x5a9c4a
test byte [ebp - 0xfc], 1
je 0x5a4c42
mov eax, dword [ebp - 0xd0]
inc dword [eax + 0x64]
mov eax, dword [ebx + 0xdc]
test eax, eax
je 0x5a4c42
test byte [edi + 0x2a], 0x20
jne 0x5a4c42
push dword [esi + 0x34]
push dword [esi + 0x30]
push dword [edi]
push dword [ebp - 0xf0]
push 9
push dword [ebx + 0xd8]
call eax
add esp, 0x18
jmp 0x5a4c42
mov eax, dword [esi + 0x64]
add dword [ebx + 0x5c], eax
add edi, 0x14
mov dword [ebx + 0x58], eax
mov eax, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0x118]
mov dword [esi + 0x64], 0
jmp 0x5a46f8
mov eax, dword [esi + 0x38]
mov ecx, dword [edi + 4]
mov edx, dword [ebp - 0xdc]
mov dword [ebp - 0x198], 0
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
lea edx, [ebp - 0x198]
push edx
mov edx, dword [ebp - 0xcc]
push dword [edx + 0x10]
push eax
push ecx
call fcn.005adb00
add esp, 0x10
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x5a9c50
mov edi, dword [ebp - 0xcc]
cmp dword [ebp - 0x198], eax
jne 0x5a476b
mov ebx, dword [ebp - 0x118]
lea ecx, [eax + 4]
mov eax, dword [ebp - 0xd4]
add edi, 0x14
jmp 0x5a46f8
mov eax, dword [edi + 8]
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [ebp - 0xcc]
push edx
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
push dword [eax + ecx*4]
call fcn.005ae060
add esp, 8
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x5a9c50
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax + 0xc]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x40], 0
jmp 0x5a4997
mov eax, dword [edi + 8]
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xfc], eax
mov edi, dword [eax + 0x14]
push edi
mov dword [ebp - 0xf0], edi
call fcn.0056e280
mov edi, dword [edi + 0x1c]
add esp, 4
cmp edi, dword [ebx + 0x60]
ja 0x5a9e96
mov eax, 0x20
cmp edi, eax
cmova eax, edi
push eax
push esi
call fcn.005abd10
add esp, 8
test eax, eax
jne 0x5a659f
mov ax, word [esi + 8]
mov ecx, 0x3e00
and ax, cx
mov dword [esi + 0xc], edi
or ax, 0x10
mov word [esi + 8], ax
mov eax, dword [ebp - 0xfc]
cmp byte [eax + 4], 0
jne 0x5a7d9b
push 0
push dword [esi + 0x10]
push edi
push 0
push dword [ebp - 0xf0]
call fcn.0055bfb0
add esp, 0x14
jmp 0x5a7daf
push dword [esi + 0x10]
push edi
push 0
push dword [ebp - 0xf0]
call fcn.00581170
add esp, 0x10
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x5a9c4a
mov byte [esi + 0xa], 1
jmp 0x5a4c42
push edi
push esi
call fcn.005736d0
mov ecx, dword [ebp - 0xcc]
add esp, 8
mov edi, eax
mov edx, dword [ecx + 4]
mov ecx, dword [esi + 0x38]
mov esi, dword [ecx + edx*4]
cmp byte [esi + 2], 0
je 0x5a7df5
mov eax, 1
mov word [edi + 8], ax
jmp 0x5a4c42
cmp byte [esi + 3], 0
je 0x5a7e23
mov ecx, dword [esi + 0x30]
mov dword [ebp - 0x17c], ecx
mov eax, dword [esi + 0x34]
mov esi, dword [ebp - 0xd0]
mov dword [ebp - 0x178], eax
mov dword [edi], ecx
mov eax, dword [ebp - 0x178]
mov dword [edi + 4], eax
jmp 0x5a4997
cmp byte [esi], 2
jne 0x5a7e76
mov ecx, dword [esi + 0x14]
lea edx, [ebp - 0x17c]
push edx
push ecx
mov esi, dword [ecx]
mov eax, dword [esi]
mov eax, dword [eax + 0x30]
call eax
push esi
mov esi, dword [ebp - 0xd0]
push esi
mov dword [ebp - 0xd8], eax
call fcn.005aef20
mov eax, dword [ebp - 0xd8]
add esp, 0x10
test eax, eax
jne 0x5a9c50
mov ecx, dword [ebp - 0x17c]
mov dword [edi], ecx
mov eax, dword [ebp - 0x178]
mov dword [edi + 4], eax
jmp 0x5a4997
push esi
call fcn.005a4350
add esp, 4
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x5a9c4a
cmp byte [esi + 2], al
je 0x5a7ea0
mov eax, 1
mov word [edi + 8], ax
jmp 0x5a4c42
push dword [esi + 0x14]
call fcn.005819e0
mov esi, dword [ebp - 0xd0]
mov ecx, eax
mov dword [ebp - 0x178], edx
add esp, 4
mov dword [ebp - 0x17c], ecx
mov dword [edi], ecx
mov eax, dword [ebp - 0x178]
mov dword [edi + 4], eax
jmp 0x5a4997
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + ecx*4]
cmp byte [eax], 0
mov byte [eax + 2], 1
mov dword [eax + 0x40], 0
jne 0x5a4c4e
push dword [eax + 0x14]
call fcn.005808b0
mov eax, dword [ebp - 0xd4]
add esp, 4
mov ebx, dword [ebp - 0x118]
mov ecx, 4
add edi, 0x14
jmp 0x5a46f8
mov eax, dword [esi + 0x38]
mov ecx, dword [edi + 4]
mov dword [ebp - 0x1a4], 0
mov esi, dword [eax + ecx*4]
lea eax, [ebp - 0x1a4]
push eax
push dword [esi + 0x14]
call fcn.00581f40
mov ecx, dword [ebp - 0x1a4]
add esp, 8
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xcc]
mov byte [esi + 2], cl
mov byte [esi + 3], 0
mov dword [esi + 0x40], 0
mov eax, dword [eax + 0xc]
mov dword [esi + 0x20], eax
mov eax, dword [ebp - 0xd8]
test eax, eax
jne 0x5a9c4a
mov edi, dword [ebp - 0xcc]
cmp dword [edi + 8], eax
jle 0x5a4c48
test ecx, ecx
jne 0x5a476b
jmp 0x5a4c48
inc dword [esi + 0x7c]
mov eax, dword [esi + 0x38]
mov ecx, dword [edi + 4]
mov dword [ebp - 0x174], 1
mov esi, dword [eax + ecx*4]
lea eax, [ebp - 0x174]
push eax
cmp byte [esi], 1
jne 0x5a7faf
push esi
call fcn.005adff0
jmp 0x5a7fc2
push dword [esi + 0x14]
call fcn.00581580
mov byte [esi + 3], 0
mov dword [esi + 0x40], 0
add esp, 8
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x5a9c4a
mov eax, dword [ebp - 0x174]
mov byte [esi + 2], al
test eax, eax
jne 0x5a476b
jmp 0x5a4c48
mov eax, dword [esi + 0x38]
mov ecx, dword [edi + 4]
mov esi, dword [eax + ecx*4]
lea eax, [ebp - 0x160]
push eax
push esi
push ebx
mov dword [ebp - 0x160], 0
call fcn.005addc0
add esp, 0xc
jmp 0x5a804f
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x38]
cmp dword [eax + ecx*4], 0
je 0x5a4c4e
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0xcc]
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x160], eax
lea eax, [ebp - 0x160]
push eax
push dword [esi + 0x14]
mov eax, dword [ecx + 0x10]
call eax
mov edi, dword [ebp - 0xcc]
add esp, 8
mov dword [ebp - 0xd8], eax
mov dword [esi + 0x40], 0
test eax, eax
jne 0x5a9c4a
cmp dword [ebp - 0x160], eax
jne 0x5a808e
mov ecx, dword [ebp - 0xd0]
mov edi, dword [ebp - 0xcc]
mov byte [esi + 2], al
mov eax, dword [ebp - 0xcc]
movzx eax, byte [eax + 3]
inc dword [ecx + eax*4 + 0x74]
jmp case.0x5a4722.13
mov byte [esi + 2], 1
jmp 0x5a9810
mov eax, dword [esi + 0x38]
mov ecx, dword [edi + 4]
mov edx, dword [ebp - 0xdc]
mov edi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0xcc]
test byte [ecx + 3], 1
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
je 0x5a80c4
mov eax, dword [ebp - 0xd0]
inc dword [eax + 0x64]
mov eax, 0x4000
test word [esi + 8], ax
je 0x5a80e6
push esi
call fcn.005abdb0
add esp, 4
test eax, eax
jne 0x5a9c4a
mov ecx, dword [ebp - 0xcc]
cmp byte [ecx], 0x7c
jne 0x5a8100
push esi
push edi
call fcn.005ae110
add esp, 8
mov dword [ebp - 0xd8], eax
jmp 0x5a5779
test byte [ecx + 3], 0x10
mov eax, dword [esi + 0xc]
cdq
mov dword [ebp - 0x26c], eax
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x268], edx
mov dword [ebp - 0x274], eax
mov dword [ebp - 0x260], 0
mov dword [ebp - 0x25c], 0
mov dword [ebp - 0x264], 0
je 0x5a8142
mov eax, dword [edi + 0x20]
jmp 0x5a8144
xor eax, eax
push eax
push dword [ecx + 0xc]
lea eax, [ebp - 0x274]
push eax
push dword [edi + 0x14]
call fcn.005817e0
add esp, 0x10
mov dword [edi + 0x40], 0
mov dword [ebp - 0xd8], eax
jmp 0x5a5779
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0xcc]
mov eax, dword [esi + 0x1c]
mov edi, dword [esi + 0x14]
mov dword [ebp - 0x244], eax
mov ax, word [ecx + 0xc]
mov word [ebp - 0x23c], ax
mov eax, dword [ecx + 8]
mov ecx, dword [ebp - 0xdc]
mov byte [ebp - 0x23a], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x240], eax
lea eax, [ebp - 0x1b8]
push eax
push 0
push 0
push 0
lea eax, [ebp - 0x244]
push eax
push edi
call fcn.005820d0
add esp, 0x18
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x5a9c4a
cmp dword [ebp - 0x1b8], eax
jne 0x5a81fa
push 4
push edi
call fcn.005811b0
add esp, 8
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x5a9c4a
mov dword [esi + 0x40], 0
jmp 0x5a4c42
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x38]
mov esi, dword [eax + ecx*4]
push esi
call fcn.005a4350
add esp, 4
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x5a9c4a
cmp byte [esi + 2], al
jne 0x5a82e5
lea eax, [ebp - 0x1a0]
xorps xmm0, xmm0
push eax
push dword [esi + 0x14]
movlpd qword [ebp - 0x1a0], xmm0
push ebx
call fcn.005ab190
add esp, 0xc
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x5a9c4a
mov eax, dword [ebp - 0xcc]
cmp byte [eax], 0x7f
jne 0x5a82a1
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x1a0]
mov dword [ecx + 0x30], eax
mov eax, dword [ebp - 0x19c]
mov dword [ecx + 0x34], eax
mov eax, dword [ebp - 0xcc]
mov word [ecx + 2], 0x100
mov eax, dword [eax + 0x10]
mov dword [ecx + 0x3c], eax
mov dword [ecx + 0x38], esi
jmp 0x5a4c42
mov esi, dword [ebp - 0xd0]
push eax
push esi
call fcn.005736d0
mov ecx, dword [ebp - 0x1a0]
add esp, 8
mov edi, dword [ebp - 0xcc]
mov ebx, dword [ebp - 0x118]
add edi, 0x14
mov dword [eax], ecx
mov ecx, dword [ebp - 0x19c]
mov dword [eax + 4], ecx
mov ecx, 4
mov word [eax + 8], cx
mov eax, dword [ebp - 0xd4]
jmp 0x5a46f8
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xdc]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.005ac370
add esp, 4
jmp 0x5a4c42
mov eax, dword [esi + 0x38]
mov ecx, dword [edi + 4]
cmp byte [ebp - 0xe1], 0x3b
mov edx, dword [ebp - 0xdc]
mov dword [ebp - 0x154], 0
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x1c]
mov dword [ebp - 0x254], eax
mov eax, dword [ebp - 0xcc]
mov ax, word [eax + 0x10]
mov word [ebp - 0x24c], ax
sbb al, al
mov byte [ebp - 0x24a], al
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp - 0x250], eax
lea eax, [ebp - 0x154]
push eax
lea eax, [ebp - 0x254]
push eax
push ecx
push ebx
call fcn.005ab0c0
mov edi, dword [ebp - 0xcc]
add esp, 0x10
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x154]
test byte [edi], 1
je 0x5a8392
neg eax
jmp 0x5a8393
inc eax
mov ecx, dword [ebp - 0xd8]
mov dword [ebp - 0x154], eax
test ecx, ecx
jne 0x5a9e3f
test eax, eax
jg 0x5a476b
mov eax, dword [ebp - 0xd4]
mov ecx, 4
mov ebx, dword [ebp - 0x118]
add edi, 0x14
jmp 0x5a46f8
push edi
push esi
call fcn.005736d0
mov esi, eax
add esp, 8
mov eax, 1
mov word [esi + 8], ax
mov ecx, dword [ebx + 0xac]
inc ecx
cmp dword [ebx + 0xa0], ecx
jg 0x5a9dcb
mov eax, dword [ebp - 0xcc]
lea edx, [ebp - 0x180]
push edx
mov dword [ebp - 0x180], 0
mov ecx, dword [eax + 0xc]
push dword [eax + 4]
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0xf0], ecx
add ecx, ecx
push dword [eax + ecx*8 + 4]
call fcn.005814c0
mov ecx, dword [ebp - 0x180]
add esp, 0xc
mov dword [ebp - 0xd8], eax
mov eax, 4
mov word [esi + 8], ax
mov eax, ecx
cdq
mov dword [esi], eax
mov eax, dword [ebp - 0xd8]
mov dword [esi + 4], edx
test eax, eax
jne 0x5a9c4a
test ecx, ecx
je 0x5a4c42
mov eax, dword [ebp - 0xcc]
push dword [eax + 4]
push ecx
push dword [ebp - 0xf0]
push ebx
call fcn.0059a8e0
mov al, byte [ebp - 0xf0]
add esp, 0x10
inc al
mov byte [ebp - 0x121], al
jmp 0x5a4c42
xor ecx, ecx
mov dword [ebp - 0x184], 0
cmp dword [edi + 0xc], ecx
lea eax, [ebp - 0x184]
cmove eax, ecx
push eax
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax + 8]
push dword [eax + 4]
mov eax, dword [ebx + 0x10]
add ecx, ecx
push dword [eax + ecx*8 + 4]
call fcn.005808d0
mov edi, dword [ebp - 0xcc]
add esp, 0xc
mov dword [ebp - 0xd8], eax
cmp dword [edi + 0xc], 0
je 0x5a84fa
mov eax, dword [ebp - 0x184]
add dword [esi + 0x64], eax
mov ecx, dword [edi + 0xc]
test ecx, ecx
jle 0x5a84f4
mov ebx, dword [ebp - 0xdc]
lea ecx, [ecx + ecx*4]
cdq
add dword [ebx + ecx*8], eax
mov eax, ebx
mov ebx, dword [ebp - 0x118]
adc dword [eax + ecx*8 + 4], edx
mov eax, dword [ebp - 0xd8]
test eax, eax
jne 0x5a9c50
mov ebx, dword [ebp - 0x118]
lea ecx, [eax + 4]
mov eax, dword [ebp - 0xd4]
add edi, 0x14
jmp 0x5a46f8
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + ecx*4]
cmp byte [eax], 1
jne 0x5a854c
push dword [eax + 0x14]
push ebx
call fcn.005ade40
mov eax, dword [ebp - 0xd4]
add esp, 8
mov ebx, dword [ebp - 0x118]
mov ecx, 4
add edi, 0x14
jmp 0x5a46f8
mov eax, dword [eax + 0x14]
push 0
push dword [eax + 0x34]
push dword [eax]
call fcn.005808d0
add esp, 0xc
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x5a9c50
mov ebx, dword [ebp - 0x118]
lea ecx, [eax + 4]
mov eax, dword [ebp - 0xd4]
add edi, 0x14
jmp 0x5a46f8
push edi
push esi
call fcn.005736d0
mov esi, eax
mov dword [ebp - 0x188], 0
mov eax, dword [ebp - 0xcc]
xor ecx, ecx
mov edx, dword [eax + 4]
shl edx, 4
add edx, dword [ebx + 0x10]
cmp byte [eax], 0x86
lea eax, [ebp - 0x188]
setne cl
inc ecx
push ecx
push eax
push dword [edx + 4]
call fcn.005810a0
add esp, 0x14
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x5a9c4a
mov eax, dword [ebp - 0x188]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x5a4c42
mov edx, dword [edi + 4]
mov eax, str.sqlite_master
cmp edx, 1
mov dword [ebp - 0x22c], edx
mov ecx, str.sqlite_temp_master
mov dword [ebp - 0x234], ebx
cmovne ecx, eax
lea eax, [esi + 0x2c]
mov dword [ebp - 0x230], eax
add edx, edx
mov eax, dword [ebp - 0xcc]
push dword [eax + 0x10]
mov eax, dword [ebx + 0x10]
push ecx
push dword [eax + edx*8]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push ebx
call fcn.005933c0
mov esi, eax
add esp, 0x14
test esi, esi
je 0x5a9ddf
push 0
lea eax, [ebp - 0x234]
mov byte [ebx + 0x99], 1
push eax
push fcn.005909d0
push esi
push ebx
mov dword [ebp - 0x228], 0
call fcn.00552620
test eax, eax
push esi
cmove eax, dword [ebp - 0x228]
push ebx
mov dword [ebp - 0xd8], eax
call fcn.00586280
mov ecx, dword [ebp - 0xd8]
add esp, 0x1c
mov byte [ebx + 0x99], 0
test ecx, ecx
jne 0x5a9de9
jmp 0x5a4c42
push dword [edi + 4]
push ebx
call fcn.0057e940
add esp, 8
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x5a9c50
mov ebx, dword [ebp - 0x118]
lea ecx, [eax + 4]
mov eax, dword [ebp - 0xd4]
add edi, 0x14
jmp 0x5a46f8
push dword [edi + 0x10]
push dword [edi + 4]
push ebx
call fcn.005a0430
mov eax, dword [ebp - 0xd4]
add esp, 0xc
mov ebx, dword [ebp - 0x118]
mov ecx, 4
add edi, 0x14
jmp 0x5a46f8
push dword [edi + 0x10]
push dword [edi + 4]
push ebx
call fcn.005a0380
mov eax, dword [ebp - 0xd4]
add esp, 0xc
mov ebx, dword [ebp - 0x118]
mov ecx, 4
add edi, 0x14
jmp 0x5a46f8
push dword [edi + 0x10]
push dword [edi + 4]
push ebx
call fcn.005a04a0
mov eax, dword [ebp - 0xd4]
add esp, 0xc
mov ebx, dword [ebp - 0x118]
mov ecx, 4
add edi, 0x14
jmp 0x5a46f8
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0xdc]
lea edi, [eax + eax*4]
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0xfc], eax
lea eax, [ebp - 0x1bc]
push eax
push dword [ecx + edi*8]
mov eax, dword [ebp - 0xcc]
push dword [eax + 8]
movzx ecx, byte [eax + 3]
push dword [eax + 0x10]
mov eax, dword [ebx + 0x10]
add ecx, ecx
push dword [eax + ecx*8 + 4]
call fcn.00581a00
mov ecx, dword [ebp - 0xdc]
mov esi, dword [ebp - 0x1bc]
mov dword [ebp - 0xf0], eax
mov eax, esi
cdq
sub dword [ecx + edi*8], eax
sbb dword [ecx + edi*8 + 4], edx
mov edi, dword [ebp - 0xfc]
push edi
call fcn.005ac370
add esp, 0x18
test esi, esi
je 0x5a87cd
mov eax, dword [ebp - 0xf0]
test eax, eax
je 0x5a659f
push fcn.00556b90
push 1
push 0xffffffffffffffff
push eax
push edi
call fcn.005ac470
add esp, 0x14
movzx eax, byte [ebp - 0x114]
push eax
push edi
call fcn.005a3ab0
add esp, 8
jmp 0x5a4c42
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x20
lea esi, [ecx + eax*8]
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 8]
lea edi, [eax + eax*4]
jne 0x5a8818
push esi
call fcn.005ac3a0
add esp, 4
test byte [esi + 8], 0x20
je 0x5a659f
mov ebx, dword [ebp - 0xdc]
push dword [ebx + edi*8 + 4]
push dword [ebx + edi*8]
push dword [esi]
call fcn.0059aa20
add esp, 0xc
jmp 0x5a4c42
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x20
lea esi, [ecx + eax*8]
je 0x5a8894
lea eax, [ebp - 0x1ec]
push eax
push dword [esi]
call fcn.0059aac0
add esp, 8
test eax, eax
je 0x5a8894
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xdc]
push dword [ebp - 0x1e8]
mov eax, dword [eax + 0xc]
push dword [ebp - 0x1ec]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.005ac330
mov edi, dword [ebp - 0xcc]
add esp, 0xc
jmp 0x5a9810
push esi
call fcn.005ac370
add esp, 4
jmp case.0x5a4722.13
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x20
lea esi, [ecx + eax*8]
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 0xc]
lea edi, [eax + eax*4]
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0xf0], eax
jne 0x5a88ec
push esi
call fcn.005ac3a0
add esp, 4
test byte [esi + 8], 0x20
je 0x5a659f
mov eax, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0xdc]
test eax, eax
je 0x5a8918
push dword [ebx + edi*8 + 4]
push dword [ebx + edi*8]
push eax
push dword [esi]
call fcn.0059ab20
add esp, 0x10
test eax, eax
jne 0x5a4765
mov eax, dword [ebp - 0xf0]
test eax, eax
js 0x5a4c42
jmp 0x5a881e
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0xdc]
mov edx, dword [edi + 0x10]
mov dword [ebp - 0xf0], edx
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0xf8], ecx
cmp byte [eax + 3], 0
je 0x5a8976
mov eax, dword [esi + 0xb8]
mov ecx, dword [edx + 0x14]
test eax, eax
je 0x5a8970
nop word [eax + eax]
cmp dword [eax + 0x1c], ecx
je 0x5a4997
mov eax, dword [eax + 4]
test eax, eax
jne 0x5a8960
mov ecx, dword [ebp - 0xf8]
mov eax, dword [esi + 0xc0]
cmp eax, dword [ebx + 0x88]
jge 0x5a9e0c
test byte [ecx + 8], 0x40
jne 0x5a8b48
mov ecx, dword [edx + 0xc]
mov esi, dword [edx + 8]
add esi, ecx
test ecx, ecx
jne 0x5a899f
inc esi
lea eax, [esi + 2]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*2]
mov eax, dword [edx + 0x10]
lea eax, [eax + ecx*4]
cdq
push edx
push eax
push ebx
call fcn.005863f0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x5a659f
push dword [ebp - 0xf8]
call fcn.005ac300
mov eax, dword [ebp - 0xf8]
mov ecx, 0x40
add esp, 4
mov word [eax + 8], cx
mov dword [eax], edi
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xcc]
sub ecx, dword [ebp - 0x110]
mov dword [edi], eax
mov eax, dword [ebp - 0xf0]
mov dword [edi + 0x40], esi
mov eax, dword [eax + 0xc]
mov dword [edi + 0x44], eax
mov eax, 0x66666667
imul ecx
mov ecx, dword [ebp - 0xd0]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0xf0]
mov dword [edi + 0x30], eax
mov eax, dword [ecx + 8]
mov dword [edi + 0x10], eax
mov eax, dword [ecx + 0x1c]
mov dword [edi + 0x38], eax
mov eax, dword [ecx + 0x38]
mov dword [edi + 0x18], eax
mov eax, dword [ecx + 0x24]
mov dword [edi + 0x2c], eax
mov eax, dword [ecx + 4]
mov dword [edi + 8], eax
mov eax, dword [ecx + 0x20]
mov dword [edi + 0x34], eax
mov eax, dword [edx + 0x14]
mov dword [edi + 0x1c], eax
mov eax, dword [ecx + 0xd0]
mov dword [edi + 0x14], eax
mov eax, dword [ecx + 0xcc]
mov dword [edi + 0x3c], eax
lea eax, [esi + 2]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
lea eax, [edi + 0x50]
cmp eax, ecx
je 0x5a8a8e
mov esi, 0x80
nop word [eax + eax]
mov word [eax + 8], si
mov dword [eax + 0x20], ebx
add eax, 0x28
cmp eax, ecx
jne 0x5a8a80
mov esi, dword [ebp - 0xd0]
inc dword [esi + 0xc0]
lea ebx, [edi + 0x50]
mov eax, dword [esi + 0xb8]
mov dword [edi + 4], eax
mov eax, dword [ebp - 0x134]
mov dword [edi + 0x20], eax
mov eax, dword [ebp - 0x138]
mov dword [edi + 0x24], eax
mov eax, dword [esi + 0x64]
mov dword [edi + 0x48], eax
mov eax, dword [esi]
mov dword [ebp - 0xdc], ebx
mov eax, dword [eax + 0x58]
mov dword [edi + 0x4c], eax
mov eax, dword [esi + 0xd4]
mov dword [edi + 0x28], eax
mov dword [esi + 0xd4], 0
mov dword [esi + 0x64], 0
mov dword [esi + 0xb8], edi
mov dword [esi + 8], ebx
mov eax, dword [edi + 0x40]
mov dword [esi + 0x1c], eax
movzx eax, word [edi + 0x44]
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0x1c]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov dword [esi + 0x38], ecx
mov ebx, dword [edx]
mov dword [esi + 4], ebx
mov eax, dword [edx + 4]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x24]
mov dword [ebp - 0x110], ebx
lea ecx, [ecx + eax*4]
mov dword [esi + 0xd0], ecx
mov eax, dword [edx + 0x10]
lea edx, [ebx - 0x14]
push eax
push 0
push ecx
mov dword [esi + 0xcc], eax
mov dword [ebp - 0xcc], edx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
jmp 0x5a4997
mov edi, dword [ecx]
jmp 0x5a8a94
push dword [ebp - 0xcc]
push esi
call fcn.005736d0
mov esi, eax
mov eax, dword [ebp - 0xd0]
push 0x1000
mov eax, dword [eax + 0xb8]
mov ecx, dword [eax + 0x30]
lea edx, [ecx + ecx*4]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0x10]
mov ecx, dword [ecx + edx*4 + 4]
mov edx, dword [ebp - 0xcc]
add ecx, dword [edx + 4]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*8]
push eax
push esi
call fcn.005ac690
add esp, 0x14
jmp 0x5a4c42
test dword [ebx + 0x18], 0x2000000
mov eax, dword [edi + 8]
cdq
je 0x5a8bc9
add dword [ebx + 0x1c0], eax
mov eax, dword [ebp - 0xd4]
adc dword [ebx + 0x1c4], edx
add edi, 0x14
mov ebx, dword [ebp - 0x118]
jmp 0x5a46f8
cmp dword [edi + 4], 0
je 0x5a8bef
add dword [ebx + 0x1b8], eax
mov eax, dword [ebp - 0xd4]
adc dword [ebx + 0x1bc], edx
add edi, 0x14
mov ebx, dword [ebp - 0x118]
jmp 0x5a46f8
add dword [esi + 0x98], eax
mov eax, dword [ebp - 0xd4]
adc dword [esi + 0x9c], edx
add edi, 0x14
mov ebx, dword [ebp - 0x118]
jmp 0x5a46f8
cmp dword [edi + 4], 0
je 0x5a8c4d
mov eax, dword [ebx + 0x1b8]
or eax, dword [ebx + 0x1bc]
jne case.0x5a4722.111
mov eax, dword [ebx + 0x1c0]
or eax, dword [ebx + 0x1c4]
je 0x5a476b
mov eax, dword [ebp - 0xd4]
add edi, 0x14
mov ebx, dword [ebp - 0x118]
jmp 0x5a46f8
mov eax, dword [esi + 0x98]
or eax, dword [esi + 0x9c]
jmp 0x5a8c21
mov edx, dword [esi + 0xb8]
test edx, edx
je 0x5a8c93
mov eax, dword [edx + 4]
test eax, eax
je 0x5a8c79
nop dword [eax]
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x5a8c70
mov eax, dword [ebp - 0xcc]
mov ebx, dword [ebp - 0xdc]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
lea edi, [eax + ecx*8]
jmp 0x5a8ca8
mov edx, dword [ebp - 0xcc]
mov ebx, dword [ebp - 0xdc]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
push edi
call fcn.005ac0e0
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
push esi
call fcn.005ac0e0
mov ecx, dword [esi + 4]
add esp, 8
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x5a4c42
jl 0x5a8cde
cmp dword [edi], eax
jae 0x5a4c42
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x5a4c42
mov eax, dword [edi + 4]
mov edx, dword [ebp - 0xdc]
lea esi, [eax + eax*4]
mov ebx, dword [edx + esi*8 + 4]
mov ecx, dword [edx + esi*8]
test ebx, ebx
jl 0x5a4c48
jg 0x5a8d0d
test ecx, ecx
je 0x5a4c48
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 0xc]
cdq
sub ecx, eax
sbb ebx, edx
mov edx, dword [ebp - 0xdc]
mov dword [edx + esi*8], ecx
mov dword [edx + esi*8 + 4], ebx
jmp 0x5a4765
mov ebx, dword [ebp - 0xcc]
push ebx
push dword [ebp - 0xd0]
mov eax, dword [ebx + 4]
lea esi, [eax + eax*4]
mov eax, dword [ebx + 0xc]
lea edi, [eax + eax*4]
call fcn.005736d0
mov ecx, dword [ebp - 0xdc]
add esp, 8
mov ebx, eax
mov edx, dword [ecx + esi*8]
mov esi, dword [ecx + esi*8 + 4]
test esi, esi
jg 0x5a8d76
jl 0x5a8d67
test edx, edx
jne 0x5a8d76
or eax, 0xffffffff
or ecx, eax
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp 0x5a4c42
mov eax, dword [ecx + edi*8]
mov ecx, dword [ecx + edi*8 + 4]
test ecx, ecx
jl 0x5a8d87
jg 0x5a8d9e
test eax, eax
jne 0x5a8d9e
xorps xmm0, xmm0
movlpd qword [ebp - 0x100], xmm0
mov ecx, dword [ebp - 0xfc]
mov eax, dword [ebp - 0x100]
add eax, edx
mov dword [ebx], eax
adc ecx, esi
mov dword [ebx + 4], ecx
jmp 0x5a4c42
mov eax, dword [edi + 4]
mov edx, dword [ebp - 0xdc]
lea ebx, [eax + eax*4]
mov ecx, dword [edx + ebx*8]
mov eax, ecx
mov esi, dword [edx + ebx*8 + 4]
or eax, esi
je 0x5a4c48
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 0xc]
cdq
sub ecx, eax
sbb esi, edx
mov edx, dword [ebp - 0xdc]
mov dword [edx + ebx*8], ecx
mov dword [edx + ebx*8 + 4], esi
jmp 0x5a4765
mov eax, dword [edi + 4]
mov ebx, dword [ebp - 0xdc]
lea ecx, [eax + eax*4]
add dword [ebx + ecx*8], 0xffffffff
mov eax, dword [ebx + ecx*8]
adc dword [ebx + ecx*8 + 4], 0xffffffff
or eax, dword [ebx + ecx*8 + 4]
je 0x5a476b
mov eax, dword [ebp - 0xd4]
mov ecx, 4
mov ebx, dword [ebp - 0x118]
add edi, 0x14
jmp 0x5a46f8
movzx eax, byte [edi + 3]
mov dword [ebp - 0xfc], eax
push 0
lea eax, [eax*4 + 0x1c]
push eax
push ebx
call fcn.00586310
mov esi, eax
add esp, 0xc
test esi, esi
je 0x5a659f
mov eax, dword [ebp - 0xcc]
mov edi, dword [ebp - 0xcc]
mov dword [esi + 8], 0
mov ecx, dword [eax + 0x10]
mov dword [esi + 4], ecx
mov ecx, eax
sub ecx, dword [ebp - 0x110]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0xd0]
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 0xfc]
mov byte [esi + 0x1a], al
mov word [edi], 0xeb93
mov dword [edi + 0x10], esi
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0xdc]
mov esi, dword [edi + 0x10]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0xfc], eax
cmp dword [esi + 8], eax
je 0x5a8efd
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi + 8], eax
js 0x5a8efd
mov ebx, dword [ebp - 0xcc]
lea edx, [ecx + 7]
mov edi, dword [ebp - 0xdc]
lea edx, [esi + edx*4]
mov eax, dword [ebx + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [edx + 4], eax
jns 0x5a8ed5
mov ebx, dword [ebp - 0x118]
mov edi, dword [ebp - 0xcc]
mov eax, dword [ebp - 0xfc]
inc dword [eax + 0xc]
mov eax, 1
mov word [ebp - 0x304], ax
lea eax, [ebp - 0x30c]
mov dword [ebp - 0x2ec], ebx
mov dword [ebp - 0x2f4], 0
mov ecx, dword [esi + 4]
mov dword [esi], eax
lea eax, [esi + 0x1c]
push eax
movzx eax, byte [esi + 0x1a]
push eax
mov word [esi + 0x18], 0
mov eax, dword [ecx + 0xc]
push esi
call eax
add esp, 0xc
cmp byte [esi + 0x19], 0
je 0x5a8f91
cmp dword [esi + 0x14], 0
je 0x5a8f74
lea eax, [ebp - 0x30c]
push eax
call fcn.0054f9c0
push eax
push 0x601fb0
push dword [ebp - 0xd0]
call fcn.005a4570
mov eax, dword [esi + 0x14]
add esp, 0x10
mov dword [ebp - 0xd8], eax
lea eax, [ebp - 0x30c]
push eax
call fcn.005ac300
mov eax, dword [ebp - 0xd8]
add esp, 4
test eax, eax
jne 0x5a9c4a
cmp byte [esi + 0x18], 0
je 0x5a4c48
mov eax, dword [edi - 0x10]
test eax, eax
je 0x5a4c48
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
push 0
push 1
lea eax, [ecx + eax*8]
push eax
call fcn.005ac330
add esp, 0xc
jmp 0x5a4c48
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [ebp - 0xcc]
push dword [eax + 0x10]
push esi
call fcn.005abe10
add esp, 8
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x5a9e24
movzx eax, byte [ebp - 0x114]
push eax
push esi
call fcn.005a3ab0
push esi
jmp 0x5a549f
lea eax, [ebp - 0xc0]
mov dword [ebp - 0xc8], 0
push eax
lea eax, [ebp - 0xc4]
mov dword [ebp - 0xc0], 0xffffffff
push eax
push dword [edi + 8]
mov dword [ebp - 0xc4], 0xffffffff
push dword [edi + 4]
push ebx
call fcn.00583740
add esp, 0x14
mov dword [ebp - 0xd8], eax
test eax, eax
je 0x5a9069
cmp eax, 5
jne 0x5a9c50
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0xc8], 1
mov eax, dword [ebp - 0xcc]
xor esi, esi
mov ecx, dword [ebp - 0xdc]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [ebp + esi*4 - 0xc8]
cdq
push edx
push eax
push edi
call fcn.005ac330
inc esi
add esp, 0xc
add edi, 0x28
cmp esi, 3
jl 0x5a9080
jmp 0x5a4c42
push edi
push esi
call fcn.005736d0
mov ecx, dword [ebx + 0x10]
add esp, 8
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp - 0xcc]
mov edx, dword [eax + 4]
mov esi, dword [eax + 0xc]
add edx, edx
cmp esi, 0xffffffff
mov eax, dword [ecx + edx*8 + 4]
mov dword [ebp - 0xfc], eax
mov ecx, dword [eax + 4]
mov edi, dword [ecx]
movzx ecx, byte [edi + 5]
cmove esi, ecx
mov dword [ebp - 0xe0], ecx
cmp byte [edi + 0x11], 3
jae 0x5a90fd
mov eax, dword [edi + 0x44]
cmp dword [eax], 0
je 0x5a90ff
cmp dword [edi + 0x54], 0
jl 0x5a90ff
jg 0x5a90fd
cmp dword [edi + 0x50], 0
jbe 0x5a90ff
mov esi, ecx
cmp byte [edi + 0x10], 0
mov eax, 0x6091d8
jne 0x5a9110
mov eax, dword [edi + 0xb0]
cmp esi, 5
jne 0x5a9142
push eax
call fcn.0059f710
add esp, 4
test eax, eax
je 0x5a912f
push edi
call fcn.00595ff0
add esp, 4
test eax, eax
jne 0x5a913c
mov eax, dword [ebp - 0xe0]
mov esi, eax
jmp 0x5a91c8
mov ecx, dword [ebp - 0xe0]
cmp esi, ecx
je 0x5a91c2
cmp ecx, 5
je 0x5a9150
cmp esi, 5
jne 0x5a91c2
cmp byte [ebx + 0x43], 0
je 0x5a9e4a
cmp dword [ebx + 0xa0], 1
jg 0x5a9e4a
cmp ecx, 5
jne 0x5a918b
push edi
call fcn.00594750
add esp, 4
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x5a91d3
push esi
push edi
call fcn.00595990
add esp, 8
jmp 0x5a91a4
cmp ecx, 4
jne 0x5a919b
push 2
push edi
call fcn.00595990
add esp, 8
cmp dword [ebp - 0xd8], 0
jne 0x5a91d3
xor eax, eax
cmp esi, 5
sete al
inc eax
push eax
push dword [ebp - 0xfc]
call fcn.00583330
add esp, 8
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xe0]
cmp dword [ebp - 0xd8], 0
je 0x5a91db
jmp 0x5a91d9
mov eax, dword [ebp - 0xe0]
mov esi, eax
push esi
push edi
call fcn.00595990
mov esi, dword [ebp - 0xf0]
add esp, 8
mov ecx, 0xa02
mov word [esi + 8], cx
cmp eax, 6
jne 0x5a91fd
xor eax, eax
jmp 0x5a9204
mov eax, dword [eax*4 + 0x5fd4e4]
push eax
mov dword [esi + 0x10], eax
call fcn.0059f710
mov dword [esi + 0xc], eax
movzx eax, byte [ebp - 0x114]
push eax
push esi
mov byte [esi + 0xa], 1
call fcn.005a3ab0
mov eax, dword [ebp - 0xd8]
add esp, 0xc
mov esi, dword [ebp - 0xd0]
test eax, eax
jne 0x5a9c50
jmp 0x5a4997
lea eax, [esi + 0x2c]
push ebx
push eax
call fcn.0059b270
add esp, 8
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x5a9c50
mov ebx, dword [ebp - 0x118]
lea ecx, [eax + 4]
mov eax, dword [ebp - 0xd4]
add edi, 0x14
jmp 0x5a46f8
mov ecx, dword [edi + 4]
mov eax, dword [ebx + 0x10]
add ecx, ecx
push dword [eax + ecx*8 + 4]
call fcn.005816e0
add esp, 4
mov dword [ebp - 0xd8], eax
test eax, eax
je 0x5a4c4e
cmp eax, 0x65
jne 0x5a9c50
mov eax, dword [edi + 8]
mov ecx, dword [ebp - 0x110]
mov dword [ebp - 0xd8], 0
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edi, [ecx + eax*4]
jmp 0x5a4c48
cmp dword [edi + 4], 0
jne 0x5a92df
push ebx
call fcn.00588040
mov eax, dword [ebp - 0xd4]
add esp, 4
mov ebx, dword [ebp - 0x118]
add edi, 0x14
jmp 0x5a46f8
or dword [esi + 0x58], 1
add edi, 0x14
mov eax, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0x118]
jmp 0x5a46f8
mov al, byte [edi + 0xc]
mov byte [ebp - 0x1c0], al
test al, al
jne 0x5a9311
test dword [ebx + 0x18], 0x4000
jne case.0x5a4722.111
mov eax, dword [ebp - 0xcc]
push dword [ebp - 0x1c0]
mov ecx, dword [eax + 4]
push dword [eax + 8]
mov eax, dword [ebx + 0x10]
add ecx, ecx
push dword [eax + ecx*8 + 4]
call fcn.00582000
add esp, 0xc
mov dword [ebp - 0xd8], eax
test eax, eax
je 0x5a4997
cmp al, 6
jne 0x5a9c50
mov eax, dword [ebp - 0xcc]
push dword [eax + 0x10]
push str.database_table_is_locked:__s
push esi
call fcn.005a4570
mov eax, dword [ebp - 0xd8]
add esp, 0xc
jmp 0x5a9c50
mov esi, dword [edi + 0x10]
push esi
push ebx
call fcn.005ae630
add esp, 8
mov dword [ebp - 0xd8], eax
test esi, esi
je 0x5a6d23
push dword [esi + 8]
mov esi, dword [ebp - 0xd0]
push esi
call fcn.005aef20
mov eax, dword [ebp - 0xd8]
add esp, 8
jmp 0x5a6d29
mov eax, dword [edi + 8]
xorps xmm0, xmm0
mov ecx, dword [ebp - 0xdc]
movq qword [ebp - 0x27c], xmm0
movups xmmword [ebp - 0x29c], xmm0
lea eax, [eax + eax*4]
mov dword [ebp - 0x27c], ebx
lea eax, [ecx + eax*8]
push eax
lea eax, [ebp - 0x29c]
push eax
movups xmmword [ebp - 0x28c], xmm0
call fcn.005abd40
mov dword [ebp - 0xd8], eax
lea eax, [ebp - 0x29c]
push eax
call fcn.0054f9c0
add esp, 0xc
test eax, eax
je 0x5a941b
lea ecx, [esi + 0x2c]
push ecx
push eax
mov eax, dword [ebp - 0xcc]
push dword [eax + 4]
push ebx
call fcn.005ae8a0
mov edi, dword [ebp - 0xcc]
add esp, 0x10
mov dword [ebp - 0xd8], eax
lea eax, [ebp - 0x29c]
push eax
call fcn.005ac300
mov eax, dword [ebp - 0xd8]
add esp, 4
test eax, eax
jne 0x5a9c50
mov ebx, dword [ebp - 0x118]
lea ecx, [eax + 4]
mov eax, dword [ebp - 0xd4]
add edi, 0x14
jmp 0x5a46f8
inc dword [ebx + 0xac]
push dword [edi + 0x10]
push dword [edi + 4]
push ebx
call fcn.005ae980
dec dword [ebx + 0xac]
add esp, 0xc
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x5a9c50
mov ebx, dword [ebp - 0x118]
lea ecx, [eax + 4]
mov eax, dword [ebp - 0xd4]
add edi, 0x14
jmp 0x5a46f8
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x164], 0
mov esi, dword [eax + 8]
test esi, esi
je 0x5a9e8c
mov edi, dword [esi]
test edi, edi
je 0x5a9e8c
lea eax, [ebp - 0x164]
push eax
mov eax, dword [edi + 0x18]
push esi
call eax
push esi
push dword [ebp - 0xd0]
mov dword [ebp - 0xd8], eax
call fcn.005aef20
mov eax, dword [ebp - 0xd8]
add esp, 0x10
test eax, eax
jne 0x5a9c4a
mov eax, dword [ebp - 0x164]
push 2
push 0xffffffffffffffff
push 0
mov dword [eax], esi
mov eax, dword [ebp - 0xcc]
push dword [eax + 4]
push dword [ebp - 0xd0]
call fcn.0055cdc0
add esp, 0x14
test eax, eax
je 0x5a9e79
mov ecx, dword [ebp - 0x164]
mov dword [eax + 0x14], ecx
inc dword [esi + 4]
jmp 0x5a4c42
mov eax, dword [edi + 0xc]
mov edi, dword [ebp - 0xd0]
mov esi, dword [ebp - 0xdc]
add esi, 0x28
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xcc]
lea esi, [esi + edx*8]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x38]
mov edi, dword [edi + 0xc]
movd xmm0, esi
mov dword [ebp - 0xf0], esi
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov esi, dword [esi]
mov dword [ebp - 0x104], eax
pshufd xmm3, xmm0, 0
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x10c], eax
mov eax, dword [eax]
mov dword [ebp - 0x108], eax
mov eax, dword [eax]
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + edx*8]
mov dword [ebp - 0xec], eax
test esi, esi
jle 0x5a964d
cmp esi, 8
jb 0x5a962f
cmp dword [0x683e54], 2
jl 0x5a962f
movaps xmm2, xmmword [0x605d60]
mov eax, esi
and eax, 0x80000007
jns 0x5a95bd
dec eax
or eax, 0xfffffff8
inc eax
movaps xmm1, xmmword [str.____]
mov edx, esi
sub edx, eax
mov dword [ebp - 0xfc], edx
mov edx, edi
mov ebx, dword [ebp - 0xfc]
nop word [eax + eax]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm0, xmm0, 0
lea edx, [edx + 0x20]
paddd xmm0, xmm2
add ecx, 8
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x20], xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x10], xmm0
cmp ecx, ebx
jl 0x5a95e0
mov ebx, dword [ebp - 0x118]
cmp ecx, esi
jge 0x5a964d
mov edx, dword [ebp - 0xf0]
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [edi + ecx*4], eax
inc ecx
add eax, 0x28
cmp ecx, esi
jl 0x5a9642
mov eax, dword [ebp - 0xcc]
push edi
mov edi, dword [ebp - 0xf8]
push esi
push dword [eax + 0x10]
mov esi, dword [ebp - 0x10c]
push dword [ebp - 0xec]
mov eax, dword [edi + 0x20]
push esi
call eax
push dword [ebp - 0x108]
mov dword [ebp - 0xd8], eax
push dword [ebp - 0xd0]
call fcn.005aef20
mov eax, dword [ebp - 0xd8]
add esp, 0x1c
test eax, eax
jne 0x5a9c4a
mov eax, dword [edi + 0x28]
push esi
call eax
mov ecx, dword [ebp - 0x104]
add esp, 4
mov byte [ecx + 2], 0
test eax, eax
jne 0x5a4765
jmp 0x5a4c42
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x38]
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xdc]
cmp byte [edx + 2], 0
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
je 0x5a96ea
push edi
call fcn.005ac370
add esp, 4
jmp 0x5a4997
mov eax, dword [edx + 0x14]
xorps xmm0, xmm0
mov esi, dword [eax]
mov ecx, dword [esi]
movups xmmword [ebp - 0x2e4], xmm0
mov dword [ebp - 0x2e4], edi
movups xmmword [ebp - 0x2d4], xmm0
mov ax, word [edi + 8]
and ax, word [ebp - 0x1c4]
or ax, 1
mov word [edi + 8], ax
mov eax, dword [ebp - 0xcc]
push dword [eax + 8]
lea eax, [ebp - 0x2e4]
push eax
push dword [edx + 0x14]
mov eax, dword [ecx + 0x2c]
call eax
push esi
mov esi, dword [ebp - 0xd0]
push esi
mov dword [ebp - 0xd8], eax
call fcn.005aef20
mov eax, dword [ebp - 0x2d0]
test eax, eax
mov ecx, dword [ebp - 0xd8]
cmovne ecx, eax
movzx eax, byte [ebp - 0x114]
push eax
push edi
mov dword [ebp - 0xd8], ecx
call fcn.005a3ab0
push edi
call fcn.005ac7b0
add esp, 0x20
test eax, eax
jne 0x5a9e9c
mov eax, dword [ebp - 0xd8]
test eax, eax
jne 0x5a9c50
jmp 0x5a4997
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xfc], eax
cmp byte [eax + 2], 0
jne 0x5a4c4e
mov eax, dword [eax + 0x14]
push eax
mov esi, dword [eax]
mov ecx, dword [esi]
mov dword [ebp - 0xf0], ecx
mov eax, dword [ecx + 0x24]
call eax
push esi
mov esi, dword [ebp - 0xd0]
push esi
mov dword [ebp - 0xd8], eax
call fcn.005aef20
mov eax, dword [ebp - 0xd8]
add esp, 0xc
test eax, eax
jne 0x5a9c50
mov eax, dword [ebp - 0xfc]
push dword [eax + 0x14]
mov eax, dword [ebp - 0xf0]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x5a9810
mov edi, dword [edi + 8]
mov ecx, dword [ebp - 0x110]
dec edi
lea edi, [edi + edi*4]
lea edi, [ecx + edi*4]
mov dword [ebp - 0xcc], edi
cmp dword [ebx + 0xf8], 0
jne 0x5aa0f9
mov ecx, dword [ebx + 0x130]
mov eax, dword [ebp - 0xd4]
test ecx, ecx
je 0x5a9b49
cmp eax, dword [ebp - 0x168]
jb 0x5a9b49
mov esi, dword [ebx + 0x138]
xor edx, edx
div esi
push dword [ebx + 0x134]
sub esi, edx
add esi, dword [ebp - 0xd4]
mov dword [ebp - 0x168], esi
call ecx
mov esi, dword [ebp - 0xd0]
add esp, 4
test eax, eax
jne 0x5a9ee5
mov ebx, dword [ebp - 0x118]
lea ecx, [eax + 4]
mov eax, dword [ebp - 0xd4]
add edi, 0x14
jmp 0x5a46f8
mov eax, dword [edi + 0x10]
mov ecx, dword [ebp - 0xdc]
push 1
mov esi, dword [eax + 8]
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
push edi
call fcn.005a3ab0
add esp, 8
test eax, eax
jne 0x5a9c4a
mov eax, dword [esi]
push dword [edi + 0x10]
push esi
mov eax, dword [eax + 0x4c]
call eax
push esi
mov esi, dword [ebp - 0xd0]
push esi
mov dword [ebp - 0xd8], eax
call fcn.005aef20
and dword [esi + 0x58], 0xfffffffe
add esp, 0x10
mov eax, dword [ebp - 0xd8]
test eax, eax
jne 0x5a9c50
jmp 0x5a4997
mov eax, dword [edi + 0x10]
mov eax, dword [eax + 8]
mov dword [ebp - 0xfc], eax
test eax, eax
je 0x5a9eb4
mov eax, dword [eax]
mov dword [ebp - 0xf0], eax
test eax, eax
je 0x5a9eb4
cmp dword [eax + 0x34], 0
mov edx, dword [edi + 8]
je case.0x5a4722.111
mov al, byte [ebx + 0x4a]
mov ecx, dword [ebp - 0xdc]
mov esi, dword [esi + 0xc]
mov byte [ebp - 0xe1], al
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test edx, edx
jle 0x5a994b
nop dword [eax]
mov dword [esi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x5a9940
mov eax, dword [ebp - 0xcc]
mov al, byte [eax + 3]
mov byte [ebx + 0x4a], al
lea eax, [ebp - 0x1f4]
push eax
mov eax, dword [ebp - 0xf0]
push esi
mov esi, dword [ebp - 0xfc]
push edx
mov eax, dword [eax + 0x34]
push esi
call eax
mov dword [ebp - 0xd8], eax
mov al, byte [ebp - 0xe1]
push esi
mov esi, dword [ebp - 0xd0]
push esi
mov byte [ebx + 0x4a], al
call fcn.005aef20
mov eax, dword [ebp - 0xcc]
add esp, 0x18
cmp dword [ebp - 0xd8], 0
jne 0x5a99c4
cmp dword [eax + 4], 0
je 0x5a99c4
mov ecx, dword [ebp - 0x1f4]
mov edx, dword [ebp - 0x1f0]
mov dword [ebp - 0x134], ecx
mov dword [ebp - 0x138], edx
mov dword [ebx + 0x20], ecx
mov dword [ebx + 0x24], edx
mov ecx, dword [ebp - 0xd8]
cmp cl, 0x13
jne 0x5a9a1e
mov eax, dword [eax + 0x10]
cmp byte [eax + 0x10], 0
je 0x5a9a1e
mov edi, dword [ebp - 0xcc]
mov al, byte [edi + 3]
cmp al, 4
jne 0x5a9a08
mov eax, dword [ebp - 0xd4]
mov ecx, 4
mov ebx, dword [ebp - 0x118]
add edi, 0x14
mov dword [ebp - 0xd8], 0
jmp 0x5a46f8
cmp al, 5
jne 0x5a9a16
mov eax, 2
mov byte [esi + 0x56], al
jmp 0x5a9a27
movzx eax, al
mov byte [esi + 0x56], al
jmp 0x5a9a27
inc dword [esi + 0x64]
mov edi, dword [ebp - 0xcc]
mov eax, dword [ebp - 0xd8]
test eax, eax
jne 0x5a9c50
mov ebx, dword [ebp - 0x118]
lea ecx, [eax + 4]
mov eax, dword [ebp - 0xd4]
add edi, 0x14
jmp 0x5a46f8
push edi
push esi
call fcn.005736d0
mov ecx, dword [ebp - 0xcc]
add esp, 8
mov edx, dword [ecx + 4]
mov ecx, dword [ebx + 0x10]
add edx, edx
mov ecx, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + 0x30]
mov dword [eax], ecx
mov dword [eax + 4], 0
jmp 0x5a4997
push edi
push esi
call fcn.005736d0
mov ecx, dword [ebx + 0x10]
mov edi, eax
mov eax, dword [ebp - 0xcc]
add esp, 8
mov edx, dword [eax + 4]
add edx, edx
mov esi, dword [ecx + edx*8 + 4]
xor ecx, ecx
mov edx, dword [eax + 0xc]
test edx, edx
je 0x5a9aae
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x30]
cmp ecx, edx
cmovb ecx, edx
push ecx
push esi
call fcn.00582070
cdq
add esp, 8
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x5a4c42
mov cl, byte [ebx + 0x4c]
test cl, 0x81
je 0x5a9b28
test byte [esi + 0x58], 2
jne 0x5a9b28
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x5a9ae2
mov eax, dword [esi + 0xb0]
test eax, eax
je 0x5a9b28
push eax
push esi
test cl, cl
jns 0x5a9b15
mov edi, dword [ebx + 0xb8]
call fcn.005aa560
mov esi, eax
push esi
push dword [ebx + 0xbc]
call edi
push esi
call fcn.00556b90
mov edi, dword [ebp - 0xcc]
add esp, 0x14
mov esi, dword [ebp - 0xd0]
jmp 0x5a9b28
push dword [ebx + 0xbc]
mov eax, dword [ebx + 0xb8]
push 1
call eax
add esp, 0x10
cmp dword [edi + 8], 0
je 0x5a4c4e
mov eax, dword [edi + 8]
mov ecx, dword [ebp - 0x110]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edi, [ecx + eax*4]
jmp 0x5a4c48
mov esi, dword [ebp - 0xd0]
mov ecx, 4
mov ebx, dword [ebp - 0x118]
add edi, 0x14
jmp 0x5a46f8
mov ecx, dword [edx + 4]
mov dword [esi + 0x50], ecx
mov al, byte [edx + 8]
mov byte [esi + 0x56], al
mov dword [esi + 0x4c], edi
test ecx, ecx
je 0x5a9c05
mov al, byte [edx + 3]
test al, al
je 0x5a9bc8
movzx eax, al
push dword [eax*4 + 0x5fd45c]
push str._s_constraint_failed
push esi
call fcn.005a4570
mov esi, dword [ebp - 0xcc]
add esp, 0xc
mov eax, dword [esi + 0x10]
test eax, eax
je 0x5a9bdf
push eax
mov eax, dword [ebp - 0xd0]
push dword [eax + 0x2c]
push str._z:__s
push ebx
call fcn.005933c0
mov ecx, dword [ebp - 0xd0]
add esp, 0x10
mov dword [ecx + 0x2c], eax
jmp 0x5a9bdf
push dword [edx + 0x10]
push 0x601fb0
push esi
call fcn.005a4570
mov esi, dword [ebp - 0xcc]
add esp, 0xc
mov eax, dword [ebp - 0xd0]
push dword [eax + 0x2c]
push dword [eax + 0xb0]
push edi
push str.abort_at__d_in___s_:__s
push dword [esi + 4]
call fcn.0055a850
mov esi, dword [ebp - 0xd0]
add esp, 0x14
push esi
call fcn.005aadd0
add esp, 4
mov dword [ebp - 0xd8], eax
cmp eax, 5
jne 0x5a9c21
mov dword [esi + 0x50], eax
jmp 0x5aa265
cmp dword [esi + 0x50], 0
mov eax, 0x65
mov ecx, 1
cmovne eax, ecx
mov dword [ebp - 0xd8], eax
jmp 0x5aa265
push 0x136e1
call fcn.00584f40
add esp, 4
mov esi, dword [ebp - 0xd0]
cmp byte [ebx + 0x45], 0
mov ecx, 7
cmovne eax, ecx
cmp dword [esi + 0x2c], 0
mov dword [ebp - 0xd8], eax
jne 0x5aa174
cmp eax, 0xc0a
je 0x5aa174
mov ecx, dword [ebp - 0xd8]
mov eax, str.unknown_error
cmp ecx, 0x204
je 0x5aa15a
movzx ecx, cl
cmp ecx, 0x1a
ja 0x5aa15f
mov ecx, dword [ecx*4 + 0x5ff520]
test ecx, ecx
je 0x5aa15f
mov eax, ecx
jmp 0x5aa15f
mov eax, dword [ebp - 0x130]
cmp dword [eax + 0x50], 0
jne 0x5a9ccb
lea eax, [ebp - 0x2c4]
push eax
call fcn.005ac300
add esp, 4
push 0x1371c
jmp 0x5a9c42
push str.cannot_open_savepoint___SQL_statements_in_progress
mov esi, dword [ebp - 0xd0]
push esi
call fcn.005a4570
add esp, 8
mov eax, 5
jmp 0x5a9c50
push str.cannot_release_savepoint___SQL_statements_in_progress
jmp 0x5a9cda
mov ecx, dword [ebp - 0xcc]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x110]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x4c], eax
mov eax, 5
mov byte [ebx + 0x43], 0
mov dword [ebp - 0xd8], eax
mov dword [esi + 0x50], eax
jmp 0x5aa265
mov eax, 8
jmp 0x5a9c50
mov ecx, dword [ebp - 0xcc]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x110]
mov esi, dword [ebp - 0xd0]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x4c], eax
mov eax, dword [ebp - 0xd8]
mov dword [esi + 0x50], eax
jmp 0x5aa265
mov edi, dword [ebp - 0xd0]
push dword [edi + 0x2c]
push ebx
call fcn.00586280
push str.database_schema_has_changed
push ebx
call fcn.005865b0
mov dword [edi + 0x2c], eax
add esp, 0x10
mov eax, dword [ebp - 0xcc]
mov edx, dword [eax + 4]
mov ecx, edx
mov eax, dword [ebx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
cmp dword [eax], esi
je 0x5a9db1
push edx
push ebx
call fcn.0059a290
add esp, 8
mov esi, edi
mov eax, 0x11
or dword [esi + 0x58], 1
jmp 0x5a9c50
mov eax, 0x204
jmp 0x5a9c50
mov esi, dword [ebp - 0xd0]
mov eax, 6
mov byte [esi + 0x56], 2
jmp 0x5a9c50
mov dword [ebp - 0xd8], 7
push ebx
call fcn.0059a200
mov eax, dword [ebp - 0xd8]
add esp, 4
mov esi, dword [ebp - 0xd0]
cmp eax, 7
je 0x5a65a5
jmp 0x5a9c50
push str.too_many_levels_of_trigger_recursion
push esi
call fcn.005a4570
add esp, 8
mov eax, 1
jmp 0x5a9c50
push esi
call fcn.0054f9c0
mov esi, dword [ebp - 0xd0]
push eax
push 0x601fb0
push esi
call fcn.005a4570
add esp, 0x10
mov eax, dword [ebp - 0xd8]
jmp 0x5a9c50
cmp esi, 5
mov eax, str.into
mov ecx, str.out_of
cmovne eax, ecx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
mov esi, dword [ebp - 0xd0]
push esi
call fcn.005a4570
add esp, 0xc
mov eax, 1
jmp 0x5a9c50
push dword [ebp - 0x164]
mov eax, dword [edi + 0x1c]
call eax
add esp, 4
jmp 0x5a659f
mov eax, 6
jmp 0x5a9c4a
mov esi, dword [ebp - 0xd0]
push str.string_or_blob_too_big
push esi
call fcn.005a4570
add esp, 8
mov eax, 0x12
jmp 0x5a9c50
mov eax, 6
jmp 0x5a9c50
mov eax, dword [ebx + 0x130]
test eax, eax
je 0x5a9eef
mov ecx, dword [ebp - 0xd4]
cmp ecx, dword [ebp - 0x168]
jb 0x5a9eef
push dword [ebx + 0x134]
call eax
add esp, 4
test eax, eax
je 0x5a9eef
mov eax, 9
jmp 0x5a9c50
push 0
push esi
call fcn.005a3c50
add esp, 8
test eax, eax
jne 0x5a9c50
push 1
push esi
call fcn.005a4120
mov eax, dword [esi + 0x48]
xor edi, edi
mov ecx, dword [ebp - 0xcc]
add eax, 2
mov edx, dword [ebp - 0xdc]
or eax, 1
mov dword [esi + 0x48], eax
add esp, 8
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x14], esi
cmp dword [ecx + 8], edi
jle 0x5a9f74
nop
mov eax, 0x1000
test word [esi + 8], ax
je 0x5a9f5c
push esi
call fcn.005ac110
add esp, 4
test eax, eax
jne 0x5a659f
push esi
call fcn.005ac1e0
mov eax, dword [ebp - 0xcc]
inc edi
add esp, 4
add esi, 0x28
cmp edi, dword [eax + 8]
jl 0x5a9f40
cmp byte [ebx + 0x45], 0
jne 0x5a659f
test byte [ebx + 0x4c], 4
mov esi, dword [ebp - 0xd0]
je 0x5a9fa0
mov eax, dword [ebx + 0xb8]
push 0
push esi
push dword [ebx + 0xbc]
push 4
call eax
add esp, 0x10
mov ecx, dword [ebp - 0xcc]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x110]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
inc eax
add eax, edx
mov dword [esi + 0x4c], eax
mov eax, 0x64
mov dword [ebp - 0xd8], eax
jmp 0x5aa265
mov ecx, dword [edi + 4]
movzx eax, byte [ebx + 0x43]
mov edx, dword [edi + 8]
mov dword [ebp - 0x150], ecx
cmp ecx, eax
je 0x5aa0b9
test edx, edx
je 0x5aa001
push 0x204
push ebx
call fcn.0059a730
add esp, 8
mov byte [ebx + 0x43], 1
jmp 0x5aa048
test ecx, ecx
je 0x5aa026
cmp dword [ebx + 0xa4], 0
jle 0x5aa026
push str.cannot_commit_transaction___SQL_statements_in_progress
push esi
call fcn.005a4570
add esp, 8
mov eax, 5
jmp 0x5a9c50
push 1
push esi
call fcn.005a3c50
add esp, 8
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x5aa265
mov eax, dword [ebp - 0x150]
mov byte [ebx + 0x43], al
push esi
call fcn.005aadd0
add esp, 4
cmp eax, 5
jne 0x5aa094
mov ecx, dword [ebp - 0xcc]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x110]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x4c], eax
mov al, 1
sub al, byte [ebp - 0x150]
mov byte [ebx + 0x43], al
mov eax, 5
mov dword [ebp - 0xd8], eax
mov dword [esi + 0x50], eax
jmp 0x5aa265
push ebx
call fcn.00583b80
add esp, 4
mov eax, 1
cmp dword [esi + 0x50], 0
mov ecx, 0x65
cmove eax, ecx
mov dword [ebp - 0xd8], eax
jmp 0x5aa265
test ecx, ecx
jne 0x5aa0d6
mov eax, str.cannot_start_a_transaction_within_a_transaction
push eax
push esi
call fcn.005a4570
add esp, 8
mov eax, 1
jmp 0x5a9c50
test edx, edx
mov ecx, str.cannot_commit___no_transaction_is_active
mov eax, str.cannot_rollback___no_transaction_is_active
cmove eax, ecx
push eax
push esi
call fcn.005a4570
add esp, 8
mov eax, 1
jmp 0x5a9c50
mov esi, dword [ebp - 0xd0]
xor ecx, ecx
mov eax, str.unknown_error
cmp byte [ebx + 0x45], cl
sete cl
lea ecx, [ecx*2 + 7]
mov dword [ebp - 0xd8], ecx
mov dword [esi + 0x50], ecx
cmp ecx, 0x204
je 0x5aa13b
movzx ecx, cl
cmp ecx, 0x1a
ja 0x5aa140
mov ecx, dword [ecx*4 + 0x5ff520]
test ecx, ecx
je 0x5aa140
mov eax, ecx
jmp 0x5aa140
mov eax, str.abort_due_to_ROLLBACK
push eax
push 0x601fb0
push esi
call fcn.005a4570
mov eax, dword [ebp - 0xd8]
add esp, 0xc
jmp 0x5a9c50
mov eax, str.abort_due_to_ROLLBACK
push eax
push 0x601fb0
push esi
call fcn.005a4570
mov eax, dword [ebp - 0xd8]
add esp, 0xc
mov dword [esi + 0x50], eax
cmp eax, 0xc0a
je 0x5aa1a5
movzx eax, al
cmp eax, 0xe
je 0x5aa18b
cmp eax, 0xa
jne 0x5aa1a5
mov eax, dword [ebx]
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x5aa1a0
push 0
push 0
push eax
call ecx
add esp, 0xc
jmp 0x5aa1a2
xor eax, eax
mov dword [ebx + 0x3c], eax
mov ecx, dword [ebp - 0xcc]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x110]
push dword [esi + 0x2c]
imul ecx
push dword [esi + 0xb0]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.statement_aborts_at__d:___s___s
push dword [ebp - 0xd8]
call fcn.0055a850
push esi
call fcn.005aadd0
add esp, 0x18
cmp dword [ebp - 0xd8], 0xc0a
jne 0x5aa21a
cmp byte [ebx + 0x45], 0
jne 0x5aa21a
cmp byte [ebx + 0x46], 0
jne 0x5aa21a
cmp dword [ebx + 0xa8], 0
mov byte [ebx + 0x45], 1
jle 0x5aa214
mov dword [ebx + 0xf8], 1
inc dword [ebx + 0x100]
mov cl, byte [ebp - 0x121]
mov eax, 1
mov dword [ebp - 0xd8], eax
test cl, cl
je 0x5aa265
mov eax, dword [ebx + 0x10]
movzx esi, cl
dec esi
mov ecx, esi
add ecx, ecx
push dword [eax + ecx*8 + 0xc]
call fcn.0059b710
add esp, 4
cmp esi, 1
je 0x5aa259
mov eax, dword [ebx + 0x10]
push dword [eax + 0x1c]
call fcn.0059b710
add esp, 4
mov esi, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0x134]
mov dword [ebx + 0x20], ecx
mov ecx, dword [ebp - 0x138]
mov dword [ebx + 0x24], ecx
mov ecx, dword [ebp - 0xd4]
add dword [esi + 0x84], ecx
cmp dword [esi + 0x6c], 0
je 0x5aa298
push esi
call fcn.005b76d0
mov eax, dword [ebp - 0xd8]
add esp, 4
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00544286
mov esp, ebp
pop ebp
ret