Function at 0x57b040
Capabilities:
Encrypt data using speck
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x250
mov eax, dword [0x88bba0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
push esi
mov dword [ebp - 0x14], esi
mov edi, dword [esi]
mov ebx, dword [esi + 0x58]
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x1c], ebx
mov al, byte [edi + 0x46]
mov byte [ebp - 0x6c], al
mov eax, dword [esi + 0x5c]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x64], edi
mov byte [ebp - 0x6d], 0
mov dword [ebp - 0x84], 0
mov dword [ebp - 0xa4], 0
mov dword [ebp - 0x20], eax
call fcn.0057af50
add esp, 4
cmp dword [esi + 0x28], 7
je 0x57c9a5
mov dword [esi + 0x38], 0
mov dword [esi + 0x3c], 0
mov dword [esi + 0x68], 0
cmp dword [edi + 0x100], 0
mov dword [edi + 0x180], 0
jne 0x57f789
mov eax, dword [esi + 0x24]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*4]
mov eax, dword [0x8a4054]
mov al, byte [ebx]
mov ecx, 4
inc dword [ebp - 0xa4]
movzx edx, al
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0x21], al
mov dword [ebp - 0x38], edx
cmp edx, 0xa6
ja case.0x57b107.83
jmp dword [edx*4 + 0x5801e4]
mov eax, dword [ebx + 4]
mov edi, dword [ebp - 0x20]
lea esi, [eax + eax*4]
mov eax, 0x66666667
mov word [edi + esi*8 + 8], cx
mov ecx, ebx
sub ecx, dword [ebp - 0x5c]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [edi + esi*8], eax
mov dword [edi + esi*8 + 4], edx
mov esi, dword [ebp - 0x14]
mov eax, dword [ebx + 8]
mov ebx, dword [ebp - 0x5c]
mov edi, dword [ebp - 0x64]
add ebx, 0xffffffec
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*4]
add ebx, 0x14
jmp 0x57b0e2
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x5c]
mov edi, dword [ebp - 0x64]
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*8]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*4]
mov eax, 0x80
mov word [edx + ecx*8 + 8], ax
add ebx, 0x14
jmp 0x57b0e2
mov eax, dword [ebx + 4]
mov edi, dword [ebp - 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0xc]
dec eax
cdq
mov dword [edi + ecx*8], eax
mov eax, 4
mov dword [edi + ecx*8 + 4], edx
mov word [edi + ecx*8 + 8], ax
cmp dword [ebx + 8], 0
jne 0x57b13d
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x5c]
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*8]
lea eax, [eax + eax*4]
mov eax, dword [edi + eax*4 + 8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea ebx, [edi + eax*4]
mov edi, dword [ebp - 0x64]
mov eax, 0x80
add ebx, 0x14
mov word [edx + ecx*8 + 8], ax
jmp 0x57b0e2
mov eax, dword [ebx + 4]
mov edi, dword [ebp - 0x20]
lea esi, [eax + eax*4]
mov eax, dword [ebp - 0x5c]
sub dword [ebp - 0x1c], eax
mov eax, 0x66666667
imul dword [ebp - 0x1c]
mov word [edi + esi*8 + 8], cx
mov ecx, dword [edi + esi*8]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [edi + esi*8], eax
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0x5c]
mov dword [edi + esi*8 + 4], edx
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 0x64]
lea ebx, [ecx + eax*4]
add ebx, 0x14
jmp 0x57b0e2
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x20]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
je case.0x57b107.83
mov ecx, ebx
mov eax, 0x66666667
sub ecx, dword [ebp - 0x5c]
mov ebx, dword [ebp - 0x14]
imul ecx
sar edx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
mov edx, dword [ebp - 0x1c]
cmp dword [edx + 4], 0
jne 0x57fbdf
mov ecx, dword [ebx + 0xc4]
test ecx, ecx
je 0x57fbdf
mov eax, dword [ecx + 4]
mov esi, ebx
push ecx
dec dword [esi + 0xcc]
mov dword [esi + 0xc4], eax
mov eax, dword [esi + 0x2c]
add dword [edi + 0x60], eax
mov dword [edi + 0x5c], eax
call fcn.00580a40
mov ebx, dword [ebp - 0x1c]
add esp, 4
cmp dword [ebx + 8], 4
jne 0x57b2a9
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
mov eax, dword [eax + ecx*4 + 8]
dec eax
mov edx, dword [esi + 0x58]
lea eax, [eax + eax*4]
mov ecx, dword [esi + 0x5c]
mov edi, dword [ebp - 0x64]
mov dword [ebp - 0x5c], edx
lea ebx, [edx + eax*4]
mov dword [ebp - 0x20], ecx
add ebx, 0x14
jmp 0x57b0e2
push ebx
push esi
call fcn.00549dd0
mov edi, dword [ebp - 0x64]
mov ecx, eax
mov eax, dword [ebx + 4]
add esp, 8
cdq
add ebx, 0x14
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x57b0e2
push ebx
push esi
call fcn.00549dd0
mov ecx, dword [ebx + 0x10]
mov edx, eax
mov edi, dword [ebp - 0x64]
add esp, 8
add ebx, 0x14
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
jmp 0x57b0e2
push ebx
push esi
call fcn.00549dd0
mov edi, dword [ebp - 0x64]
mov ecx, eax
mov eax, 8
add esp, 8
mov word [ecx + 8], ax
mov eax, dword [ebx + 0x10]
add ebx, 0x14
movsd xmm0, qword [eax]
movsd qword [ecx], xmm0
jmp 0x57b0e2
push ebx
push esi
call fcn.00549dd0
mov eax, dword [ebp - 0x1c]
push dword [eax + 0x10]
mov byte [eax], 0x45
call fcn.005763d0
mov ebx, dword [ebp - 0x1c]
add esp, 0xc
mov dword [ebx + 4], eax
cmp eax, dword [edi + 0x64]
jg 0x57f6fa
push ebx
push esi
call fcn.00549dd0
mov ecx, eax
add esp, 8
mov eax, 0xa02
mov word [ecx + 8], ax
mov eax, dword [ebx + 0x10]
mov dword [ecx + 0x10], eax
mov eax, dword [ebx + 4]
mov dword [ecx + 0xc], eax
mov al, byte [ebp - 0x6c]
mov byte [ecx + 0xa], al
mov eax, dword [ebx + 0xc]
test eax, eax
jle case.0x57b107.83
mov edi, dword [ebp - 0x20]
lea esi, [eax + eax*4]
movzx eax, word [ebx + 2]
cdq
cmp dword [edi + esi*8], eax
jne 0x57c6d7
cmp dword [edi + esi*8 + 4], edx
mov esi, dword [ebp - 0x14]
jne case.0x57b107.83
mov edi, dword [ebp - 0x64]
mov eax, 0xa10
mov word [ecx + 8], ax
add ebx, 0x14
jmp 0x57b0e2
push ebx
push esi
call fcn.00549dd0
mov ecx, dword [ebp - 0x1c]
add esp, 8
mov ebx, dword [ebp - 0x1c]
mov edx, 0x101
lea esi, [eax + 0xc]
mov edi, dword [ecx + 0xc]
sub edi, dword [ecx + 8]
mov ecx, 1
cmp dword [ebx + 4], 0
mov dword [esi], 0
cmovne ecx, edx
movzx ecx, cx
mov dword [ebp - 0x30], ecx
mov word [eax + 8], cx
test edi, edi
jle 0x57c6d7
mov ebx, ecx
lea esi, [esi + 0x28]
lea eax, [esi - 0xc]
push eax
call fcn.00582190
dec edi
mov word [esi - 4], bx
add esp, 4
mov dword [esi], 0
test edi, edi
jg 0x57b407
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x14]
add ebx, 0x14
mov edi, dword [ebp - 0x64]
jmp 0x57b0e2
mov eax, dword [ebx + 4]
mov edi, 0xff61
mov edx, dword [ebp - 0x20]
lea ecx, [eax + eax*4]
mov ax, word [edx + ecx*8 + 8]
and ax, di
mov edi, dword [ebp - 0x64]
or ax, 1
add ebx, 0x14
mov word [edx + ecx*8 + 8], ax
jmp 0x57b0e2
push ebx
push esi
call fcn.00549dd0
mov esi, eax
mov eax, dword [ebp - 0x1c]
push 0
push 0
push dword [eax + 4]
push dword [eax + 0x10]
push esi
call fcn.00582290
mov al, byte [ebp - 0x6c]
add esp, 0x1c
mov ebx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x64]
add ebx, 0x14
mov byte [esi + 0xa], al
mov esi, dword [ebp - 0x14]
jmp 0x57b0e2
mov eax, dword [ebx + 4]
mov esi, dword [esi + 0x74]
add esi, 0xffffffd8
lea ecx, [eax + eax*4]
lea esi, [esi + ecx*8]
push esi
call fcn.005825a0
add esp, 4
test eax, eax
jne 0x57f6f7
mov eax, dword [ebx + 8]
mov ecx, dword [ebp - 0x20]
push 0x800
push esi
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.005824a0
mov esi, dword [ebp - 0x14]
add esp, 0xc
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov eax, dword [ebx + 8]
mov dword [ebp - 0x2c], ecx
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
lea ecx, [ecx]
push ecx
push esi
call fcn.00581f40
mov eax, 0x1000
add esp, 8
test word [esi + 8], ax
je 0x57b526
push esi
call fcn.00581ee0
add esp, 4
test eax, eax
jne 0x57c9a2
mov ecx, dword [ebp - 0x2c]
add esi, 0x28
add ecx, 0x28
dec dword [ebp - 0x4c]
mov dword [ebp - 0x2c], ecx
jne 0x57b500
mov esi, dword [ebp - 0x14]
add ebx, 0x14
mov edi, dword [ebp - 0x64]
jmp 0x57b0e2
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
push 0x1000
push ecx
push esi
mov dword [ebp - 0x4c], ecx
call fcn.005824a0
mov eax, 0x1000
add esp, 0xc
test word [esi + 8], ax
je 0x57b58e
push esi
call fcn.00581ee0
add esp, 4
test eax, eax
jne 0x57c9a2
mov ecx, dword [ebp - 0x2c]
mov eax, ecx
dec ecx
mov dword [ebp - 0x2c], ecx
test eax, eax
je 0x57c6d7
mov ecx, dword [ebp - 0x4c]
add esi, 0x28
add ecx, 0x28
jmp 0x57b560
mov eax, dword [ebx + 4]
mov edi, dword [ebp - 0x20]
push 0x1000
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
push eax
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
push eax
call fcn.005824a0
mov edi, dword [ebp - 0x64]
add esp, 0xc
add ebx, 0x14
jmp 0x57b0e2
mov eax, dword [ebx + 4]
mov edi, dword [ebp - 0x20]
lea eax, [eax + eax*4]
push dword [edi + eax*8 + 4]
push dword [edi + eax*8]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
push eax
call fcn.00582150
mov edi, dword [ebp - 0x64]
add esp, 0xc
add ebx, 0x14
jmp 0x57b0e2
mov eax, dword [ebx + 4]
mov esi, dword [ebp - 0x20]
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
mov eax, dword [ebx + 8]
mov dword [ebp - 0x4c], edx
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x40], ecx
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
movzx eax, word [edx + 8]
mov dword [ebp - 0x30], eax
mov al, byte [ecx + 8]
or al, byte [ebp - 0x30]
test al, 1
je 0x57b652
push esi
call fcn.00582190
mov esi, dword [ebp - 0x14]
add esp, 4
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
movzx eax, word [edx + 8]
test eax, 0x4000
je 0x57b671
push edx
call fcn.00581b70
add esp, 4
test eax, eax
jne 0x57c9a2
mov ecx, dword [ebp - 0x40]
mov eax, 0x4000
test word [ecx + 8], ax
je 0x57b68d
push ecx
call fcn.00581b70
add esp, 4
test eax, eax
jne 0x57c9a2
mov eax, dword [ebp - 0x4c]
test byte [eax + 8], 0x12
jne 0x57b6ac
push 0
push dword [ebp - 0x6c]
push eax
call fcn.005824f0
add esp, 0xc
test eax, eax
jne 0x57c9a2
mov eax, dword [ebp - 0x40]
test byte [eax + 8], 0x12
jne 0x57b6ce
push 0
push dword [ebp - 0x6c]
push eax
call fcn.005824f0
add esp, 0xc
test eax, eax
jne 0x57c9a2
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x4c]
mov eax, dword [eax + 0xc]
add eax, dword [ecx + 0xc]
cdq
mov dword [ebp - 0x38], eax
mov ecx, edx
mov eax, dword [edi + 0x64]
cdq
cmp ecx, edx
jg 0x57f6f7
mov ecx, dword [ebp - 0x38]
jl 0x57b6f6
cmp ecx, eax
ja 0x57f6f7
xor eax, eax
cmp esi, dword [ebp - 0x40]
sete al
push eax
lea eax, [ecx + 2]
push eax
push esi
call fcn.00581d10
add esp, 0xc
test eax, eax
jne 0x57c9a2
mov ax, word [esi + 8]
mov ecx, 0x3e00
mov edi, dword [ebp - 0x40]
and ax, cx
or ax, 2
mov word [esi + 8], ax
cmp esi, edi
je 0x57b740
push dword [edi + 0xc]
push dword [edi + 0x10]
push dword [esi + 0x10]
call fcn.007224a0
add esp, 0xc
mov eax, dword [ebp - 0x4c]
push dword [eax + 0xc]
push dword [eax + 0x10]
mov eax, dword [edi + 0xc]
add eax, dword [esi + 0x10]
push eax
call fcn.007224a0
mov eax, dword [esi + 0x10]
add esp, 0xc
mov ecx, dword [ebp - 0x38]
mov edi, dword [ebp - 0x64]
mov byte [ecx + eax], 0
mov eax, dword [esi + 0x10]
mov byte [ecx + eax + 1], 0
mov eax, 0x200
or word [esi + 8], ax
add ebx, 0x14
mov al, byte [ebp - 0x6c]
mov dword [esi + 0xc], ecx
mov byte [esi + 0xa], al
mov esi, dword [ebp - 0x14]
jmp 0x57b0e2
mov eax, dword [ebx + 4]
mov esi, dword [ebp - 0x20]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
push eax
mov dword [ebp - 0x28], eax
call fcn.00549660
movzx eax, ax
mov dword [ebp - 0x4c], eax
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
push eax
mov dword [ebp - 0x3c], eax
call fcn.00549660
mov ecx, dword [ebp - 0x1c]
add esp, 8
mov edx, dword [ebp - 0x28]
movzx eax, ax
mov dword [ebp - 0x2c], eax
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov esi, dword [ebp - 0x3c]
mov dword [ebp - 0x60], edi
mov ax, word [esi + 8]
or ax, word [edx + 8]
movzx ebx, ax
mov al, byte [ebp - 0x2c]
and al, byte [ebp - 0x4c]
test al, 4
je 0x57b939
mov eax, edx
mov byte [ebp - 0x21], 1
mov edx, dword [eax]
mov esi, dword [eax + 4]
mov eax, dword [ebp - 0x3c]
mov ebx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x88], eax
movzx eax, byte [ecx]
add eax, 0xffffffa8
mov dword [ebp - 0x8c], ebx
cmp eax, 3
ja case.default.0x57b81f
jmp dword [eax*4 + 0x580480]
push esi
push edx
lea eax, [ebp - 0x8c]
push eax
call fcn.005538c0
add esp, 0xc
test eax, eax
je 0x57b903
mov esi, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x28]
push edx
call fcn.00582790
fstp qword [ebp - 0x58]
push esi
call fcn.00582790
mov ebx, dword [ebp - 0x1c]
add esp, 8
fstp qword [ebp - 0x34]
movzx eax, byte [ebx]
add eax, 0xffffffa8
cmp eax, 3
ja case.default.0x57b86c
jmp dword [eax*4 + 0x580490]
push esi
push edx
lea eax, [ebp - 0x8c]
push eax
call fcn.005763f0
add esp, 0xc
test eax, eax
jne 0x57b83f
jmp 0x57b903
push esi
push edx
lea eax, [ebp - 0x8c]
push eax
call fcn.0056ad90
add esp, 0xc
test eax, eax
jne 0x57b83f
jmp 0x57b903
mov eax, edx
or eax, esi
je 0x57ba48
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
mov eax, dword [ebp - 0x38]
jne 0x57b8c6
test ebx, ebx
jne 0x57b8c6
cmp eax, 0x80000000
je 0x57b83f
push esi
push edx
push eax
push ebx
call fcn.007235e0
jmp 0x57b8f7
mov eax, edx
or eax, esi
je 0x57ba48
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
jne 0x57b8eb
mov edx, 1
xor esi, esi
mov eax, dword [ebp - 0x38]
push esi
push edx
push eax
push ebx
call fcn.00728a20
mov dword [ebp - 0x88], edx
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x8c]
mov ecx, 0x3e00
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x14]
mov dword [edi], eax
mov eax, dword [ebp - 0x88]
mov dword [edi + 4], eax
mov ax, word [edi + 8]
and ax, cx
or ax, 4
add ebx, 0x14
mov word [edi + 8], ax
mov edi, dword [ebp - 0x64]
jmp 0x57b0e2
test bl, 1
jne 0x57ba48
mov byte [ebp - 0x21], 0
jmp 0x57b845
movsd xmm1, qword [ebp - 0x34]
addsd xmm1, qword [ebp - 0x58]
jmp 0x57b9ed
movsd xmm1, qword [ebp - 0x34]
subsd xmm1, qword [ebp - 0x58]
jmp 0x57b9ed
movsd xmm1, qword [ebp - 0x34]
mulsd xmm1, qword [ebp - 0x58]
jmp 0x57b9ed
movsd xmm0, qword [ebp - 0x58]
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x57ba4b
movsd xmm1, qword [ebp - 0x34]
divsd xmm1, xmm0
jmp 0x57b9ed
movsd xmm0, qword [ebp - 0x58]
call fcn.00724d1f
movsd xmm0, qword [ebp - 0x34]
mov esi, eax
mov edi, edx
call fcn.00724d1f
mov ecx, eax
mov dword [ebp - 0x88], edx
mov eax, esi
mov dword [ebp - 0x8c], ecx
or eax, edi
je 0x57ba4b
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x57b9d6
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push ecx
call fcn.00728a20
mov ecx, eax
call fcn.00724ebf
mov edi, dword [ebp - 0x60]
movapd xmm1, xmm0
sub esp, 8
movsd qword [esp], xmm1
call fcn.00569360
add esp, 8
test eax, eax
jne 0x57ba4b
mov ax, word [edi + 8]
mov ecx, 0x3e00
and ax, cx
movsd qword [edi], xmm1
or ax, 8
mov word [edi + 8], ax
mov eax, dword [ebp - 0x2c]
or al, byte [ebp - 0x4c]
test al, 8
jne 0x57c6d7
cmp byte [ebp - 0x21], 0
jne 0x57c6d7
push edi
call fcn.005811b0
mov esi, dword [ebp - 0x14]
add esp, 4
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
mov ebx, dword [ebp - 0x1c]
push dword [ebp - 0x60]
call fcn.00582190
mov esi, dword [ebp - 0x14]
add esp, 4
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
mov eax, dword [ebx + 4]
test eax, eax
je case.0x57b107.83
mov ecx, dword [ebp - 0x20]
lea eax, [eax + eax*4]
push 0
push 0
lea eax, [ecx + eax*8]
push eax
call fcn.00582150
mov edi, dword [ebp - 0x64]
add esp, 0xc
add ebx, 0x14
jmp 0x57b0e2
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x20]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov al, byte [ecx + 8]
or al, byte [edi + 8]
mov dword [ebp - 0x30], edx
test al, 1
je 0x57bacf
push edx
call fcn.00582190
mov edi, dword [ebp - 0x64]
add esp, 4
add ebx, 0x14
jmp 0x57b0e2
push ecx
call fcn.00581160
mov esi, edx
mov dword [ebp - 0x40], eax
push edi
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xe4], esi
call fcn.00581160
mov cl, byte [ebx]
add esp, 8
mov edi, eax
cmp cl, 0x54
jne 0x57bb04
mov ecx, dword [ebp - 0x40]
and ecx, edi
and esi, edx
jmp 0x57bbc9
cmp cl, 0x55
jne 0x57bb15
mov ecx, dword [ebp - 0x40]
or ecx, edi
or esi, edx
jmp 0x57bbc9
mov eax, edi
or eax, edx
je 0x57bbc6
test edx, edx
jg 0x57bb4d
jl 0x57bb29
test edi, edi
jae 0x57bb42
mov al, 0xad
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x57bb4d
jg 0x57bb3b
cmp edi, 0xffffffc0
jbe 0x57bb4d
neg edi
adc edx, 0
neg edx
test edx, edx
jl 0x57bb71
jg 0x57bb4d
cmp edi, 0x40
jb 0x57bb71
test esi, esi
jg 0x57bb68
jl 0x57bb59
cmp dword [ebp - 0x40], 0
jae 0x57bb68
cmp cl, 0x56
je 0x57bb68
or eax, 0xffffffff
cdq
mov ecx, eax
mov esi, edx
jmp 0x57bbc9
xor eax, eax
cdq
mov ecx, eax
mov esi, edx
jmp 0x57bbc9
movq xmm1, qword [ebp - 0xe8]
movd xmm0, edi
cmp cl, 0x56
jne 0x57bb93
psllq xmm1, xmm0
movq qword [ebp - 0x58], xmm1
mov esi, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x58]
jmp 0x57bbc9
psrlq xmm1, xmm0
movq qword [ebp - 0x58], xmm1
test esi, esi
jg 0x57bb8b
jl 0x57bba8
cmp dword [ebp - 0x40], 0
jae 0x57bb8b
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, edi
or edx, 0xffffffff
call fcn.007279e0
mov ecx, dword [ebp - 0x58]
mov esi, dword [ebp - 0x54]
or ecx, eax
or esi, edx
jmp 0x57bbc9
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x30]
mov edi, dword [ebp - 0x64]
mov ax, word [edx + 8]
mov dword [edx], ecx
mov ecx, 0x3e00
and ax, cx
mov dword [edx + 4], esi
mov esi, dword [ebp - 0x14]
or ax, 4
mov word [edx + 8], ax
add ebx, 0x14
jmp 0x57b0e2
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x20]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
push esi
call fcn.00581e70
mov eax, dword [ebx + 8]
add esp, 4
mov edi, dword [ebp - 0x64]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
add ebx, 0x14
mov esi, dword [ebp - 0x14]
jmp 0x57b0e2
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x20]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 8]
test al, 4
jne 0x57bc70
test al, 8
jne 0x57bc48
test al, 2
je 0x57bc51
push 1
push esi
call fcn.00532e30
add esp, 8
jmp 0x57bc51
push esi
call fcn.005811b0
add esp, 4
movzx eax, word [esi + 8]
test al, 4
jne 0x57bc70
cmp dword [ebx + 8], 0
mov esi, dword [ebp - 0x14]
jne 0x57b13d
mov ebx, 0x14
jmp 0x58009d
mov edi, dword [ebp - 0x64]
and eax, 0x3e00
or eax, 4
add ebx, 0x14
mov word [esi + 8], ax
mov esi, dword [ebp - 0x14]
jmp 0x57b0e2
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x20]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 4
lea eax, [ecx + eax*8]
je case.0x57b107.83
push eax
call fcn.005820b0
mov edi, dword [ebp - 0x64]
add esp, 4
add ebx, 0x14
jmp 0x57b0e2
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x20]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x4000
test word [esi + 8], ax
je 0x57bcda
push esi
call fcn.00581b70
add esp, 4
mov dword [ebp - 0x18], eax
jmp 0x57bce1
mov dword [ebp - 0x18], 0
push dword [ebp - 0x6c]
movzx eax, byte [ebx + 8]
push eax
push esi
call fcn.00581a00
add esp, 0xc
mov esi, dword [ebp - 0x14]
cmp dword [ebp - 0x18], 0
jne 0x57fe22
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x20]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
movzx edx, word [ecx + eax*8 + 8]
lea esi, [ecx + eax*8]
movzx eax, word [edi + 8]
mov ecx, edx
or ecx, eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x3c], edx
test cl, 1
je 0x57bdbe
movzx eax, word [ebx + 2]
test al, al
jns 0x57bd6d
mov al, dl
and al, byte [ebp - 0x44]
test al, 1
je 0x57be27
test edx, 0x100
jne 0x57be27
movzx eax, byte [ebx]
xor ecx, ecx
movzx edx, byte [eax + 0x7babbc]
jmp 0x57be36
test al, 0x20
je 0x57bda8
mov eax, dword [ebx + 8]
mov esi, 0x3e00
mov edx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x64]
mov dword [ebp - 0x84], 1
lea ecx, [eax + eax*4]
mov ax, word [edx + ecx*8 + 8]
and ax, si
mov esi, dword [ebp - 0x14]
or ax, 1
add ebx, 0x14
mov word [edx + ecx*8 + 8], ax
jmp 0x57b0e2
test al, 0x10
jne 0x57b13a
mov esi, dword [ebp - 0x14]
add ebx, 0x14
mov edi, dword [ebp - 0x64]
jmp 0x57b0e2
mov al, byte [ebx + 2]
and al, 0x47
cmp al, 0x43
jl 0x57becc
test cl, 2
je 0x57bdff
mov al, byte [ebp - 0x44]
and al, 0xe
cmp al, 2
jne 0x57bdeb
push 0
push edi
call fcn.00532e30
movzx eax, word [esi + 8]
add esp, 8
mov dword [ebp - 0x3c], eax
mov al, byte [ebp - 0x3c]
and al, 0xe
cmp al, 2
jne 0x57bdff
push 0
push esi
call fcn.00532e30
add esp, 8
mov al, byte [edi + 8]
and al, byte [esi + 8]
test al, 4
je 0x57bf2a
mov edx, dword [edi + 4]
mov ecx, dword [esi]
mov eax, dword [edi]
cmp dword [esi + 4], edx
jl 0x57beba
jg 0x57be27
cmp ecx, eax
jbe 0x57bea7
mov ecx, 1
movzx eax, byte [ebx]
movzx edx, byte [eax + 0x7babc4]
movzx eax, word [ebp - 0x44]
mov word [edi + 8], ax
movzx eax, word [ebp - 0x3c]
mov word [esi + 8], ax
movzx eax, word [ebx + 2]
test al, 0x20
je 0x57bf61
mov eax, dword [ebx + 8]
mov dword [ebp - 0x84], ecx
lea esi, [eax + eax*4]
movzx eax, word [ebx + 2]
test al, 8
je 0x57be76
xor eax, eax
cmp byte [ebx], 0x35
sete al
cmp eax, edx
je 0x57c6d7
mov edi, dword [ebp - 0x20]
mov eax, 0x3e00
mov cx, word [edi + esi*8 + 8]
and cx, ax
mov eax, edx
or cx, 4
cdq
mov word [edi + esi*8 + 8], cx
add ebx, 0x14
mov dword [edi + esi*8], eax
mov dword [edi + esi*8 + 4], edx
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 0x64]
jmp 0x57b0e2
cmp dword [esi + 4], edx
jg 0x57bd5c
jl 0x57beba
cmp ecx, eax
jae 0x57bd5c
movzx eax, byte [ebx]
or ecx, 0xffffffff
movzx edx, byte [eax + 0x7babb4]
jmp 0x57be36
cmp al, 0x42
jne 0x57bf2a
mov al, byte [ebp - 0x44]
test al, 2
jne 0x57befd
test al, 0xc
je 0x57befd
push 1
push dword [ebp - 0x6c]
push edi
call fcn.005824f0
mov ax, word [edi + 8]
mov ecx, 0x3e00
xor ax, word [ebp - 0x44]
add esp, 0xc
and ax, cx
xor word [ebp - 0x44], ax
mov al, byte [ebp - 0x3c]
test al, 2
jne 0x57bf2a
test al, 0xc
je 0x57bf2a
push 1
push dword [ebp - 0x6c]
push esi
call fcn.005824f0
mov ax, word [esi + 8]
mov ecx, 0x3e00
xor ax, word [ebp - 0x3c]
add esp, 0xc
and ax, cx
xor word [ebp - 0x3c], ax
push dword [ebx + 0x10]
push edi
push esi
call fcn.0056abf0
mov ecx, eax
add esp, 0xc
test ecx, ecx
jns 0x57bf4c
movzx eax, byte [ebx]
movzx edx, byte [eax + 0x7babb4]
jmp 0x57be36
jne 0x57be2c
movzx eax, byte [ebx]
movzx edx, byte [eax + 0x7babbc]
jmp 0x57be36
mov esi, dword [ebp - 0x14]
test edx, edx
jne 0x57b13d
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
cmp dword [ebp - 0x84], 0
jne 0x57b13d
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
test byte [ebx + 2], 1
jne 0x57bf99
xor eax, eax
jmp 0x57bf9f
mov eax, dword [ebx - 4]
add eax, 4
mov esi, dword [ebx + 4]
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 0x10]
mov dword [ebp - 0x48], esi
mov esi, dword [ebx + 8]
mov dword [ebp - 0x30], esi
xor esi, esi
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x38], edx
test ecx, ecx
jle 0x57c6d7
lea edi, [edx + 0x14]
test eax, eax
je 0x57bfd0
mov ecx, dword [eax + esi*4]
jmp 0x57bfd2
mov ecx, esi
mov eax, dword [edx + 0x10]
mov edx, dword [ebp - 0x20]
push dword [edi]
movzx eax, byte [eax + esi]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x30]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
push eax
mov eax, dword [ebp - 0x48]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
push eax
call fcn.0056abf0
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0x84], ecx
test ecx, ecx
jne 0x57c02a
mov eax, dword [ebp - 0x2c]
inc esi
mov edx, dword [ebp - 0x38]
add edi, 4
cmp esi, dword [ebp - 0x4c]
jl 0x57bfc7
mov esi, dword [ebp - 0x14]
add ebx, 0x14
mov edi, dword [ebp - 0x64]
jmp 0x57b0e2
cmp dword [ebp - 0x60], 0
mov esi, dword [ebp - 0x14]
je case.0x57b107.83
mov edi, dword [ebp - 0x64]
neg ecx
mov dword [ebp - 0x84], ecx
add ebx, 0x14
jmp 0x57b0e2
mov edi, dword [ebp - 0x84]
test edi, edi
jns 0x57c06e
mov eax, dword [ebx + 4]
mov ebx, dword [ebp - 0x5c]
mov edi, dword [ebp - 0x64]
add ebx, 0xffffffec
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*4]
add ebx, 0x14
jmp 0x57b0e2
jne 0x57c08a
mov eax, dword [ebx + 8]
mov ebx, dword [ebp - 0x5c]
mov edi, dword [ebp - 0x64]
add ebx, 0xffffffec
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*4]
add ebx, 0x14
jmp 0x57b0e2
mov eax, dword [ebx + 0xc]
mov ebx, dword [ebp - 0x5c]
mov edi, dword [ebp - 0x64]
add ebx, 0xffffffec
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*4]
add ebx, 0x14
jmp 0x57b0e2
mov eax, dword [ebx + 4]
mov edi, dword [ebp - 0x20]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 1
lea eax, [edi + eax*8]
je 0x57c0be
mov esi, 2
jmp 0x57c0d4
push eax
call fcn.00581160
add esp, 4
or eax, edx
je 0x57c0d2
mov esi, 1
jmp 0x57c0d4
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 0x57c0eb
mov eax, 2
jmp 0x57c101
push eax
call fcn.00581160
add esp, 4
or eax, edx
je 0x57c0ff
mov eax, 1
jmp 0x57c101
xor eax, eax
cmp byte [ebx], 0x2c
lea eax, [eax + esi*2]
jne 0x57c113
movzx edx, byte [esi + eax + 0x7baf84]
jmp 0x57c11b
movzx edx, byte [esi + eax + 0x7bb010]
mov eax, dword [ebx + 0xc]
mov esi, dword [ebp - 0x14]
lea ecx, [eax + eax*4]
cmp edx, 2
jne 0x57c14a
mov ax, word [edi + ecx*8 + 8]
mov edx, 0x3e00
and ax, dx
or ax, 1
add ebx, 0x14
mov word [edi + ecx*8 + 8], ax
mov edi, dword [ebp - 0x64]
jmp 0x57b0e2
mov eax, edx
cdq
mov dword [edi + ecx*8], eax
mov ax, word [edi + ecx*8 + 8]
mov dword [edi + ecx*8 + 4], edx
mov edx, 0x3e00
and ax, dx
or ax, 4
add ebx, 0x14
mov word [edi + ecx*8 + 8], ax
mov edi, dword [ebp - 0x64]
jmp 0x57b0e2
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x20]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
push esi
call fcn.00582190
add esp, 4
test byte [edi + 8], 1
jne 0x57c6d7
mov eax, 4
push edi
mov word [esi + 8], ax
call fcn.00581160
add esp, 4
or eax, edx
jne 0x57c1cc
mov edi, dword [ebp - 0x64]
mov eax, 1
cdq
add ebx, 0x14
mov dword [esi], eax
mov dword [esi + 4], edx
mov esi, dword [ebp - 0x14]
jmp 0x57b0e2
mov edi, dword [ebp - 0x64]
xor eax, eax
cdq
add ebx, 0x14
mov dword [esi], eax
mov dword [esi + 4], edx
mov esi, dword [ebp - 0x14]
jmp 0x57b0e2
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x20]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
push esi
call fcn.00582190
add esp, 4
test byte [edi + 8], 1
jne 0x57c6d7
mov eax, 4
push edi
mov word [esi + 8], ax
call fcn.00581160
mov edi, dword [ebp - 0x64]
not eax
not edx
mov dword [esi], eax
add esp, 4
mov dword [esi + 4], edx
mov esi, dword [ebp - 0x14]
add ebx, 0x14
jmp 0x57b0e2
mov esi, dword [esi + 0xc4]
test esi, esi
je 0x57c29b
mov eax, dword [ebp - 0x14]
mov ecx, ebx
mov esi, dword [esi + 0x18]
sub ecx, dword [eax + 0x58]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, ecx
and ecx, 7
shr edx, 3
mov dword [ebp - 0x30], edx
mov al, byte [edx + esi]
mov byte [ebp - 0x21], al
mov eax, 1
shl eax, cl
test byte [ebp - 0x21], al
jne 0x57b13a
mov edi, dword [ebp - 0x64]
mov al, 1
shl al, cl
or al, byte [ebp - 0x21]
mov byte [edx + esi], al
mov esi, dword [ebp - 0x14]
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 4]
mov dword [ebx + 4], eax
add ebx, 0x14
jmp 0x57b0e2
mov esi, dword [ebp - 0x14]
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 4]
cmp eax, dword [ebx + 4]
je 0x57b13d
mov eax, dword [esi + 0x58]
mov edi, dword [ebp - 0x64]
mov eax, dword [eax + 4]
mov dword [ebx + 4], eax
add ebx, 0x14
jmp 0x57b0e2
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x20]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea eax, [ecx + eax*8]
je 0x57c2d9
mov ecx, dword [ebx + 0xc]
jmp 0x57c30e
push eax
call fcn.00582790
fstp qword [ebp - 0x58]
movsd xmm0, qword [ebp - 0x58]
add esp, 4
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x57c2fe
mov ecx, 1
jmp 0x57c300
xor ecx, ecx
cmp byte [ebx], 0x16
jne 0x57c30e
xor eax, eax
test ecx, ecx
sete al
mov ecx, eax
test ecx, ecx
jne 0x57b13d
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x20]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
jne 0x57b13d
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x20]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
je 0x57b13d
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x70]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 2], 0
je case.0x57b107.83
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x20]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.00582190
add esp, 4
jmp 0x57b13d
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x70]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x68], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0x78], eax
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x68]
push eax
call fcn.0057acb0
mov esi, eax
add esp, 8
mov dword [ebp - 0x18], esi
test esi, esi
jne 0x580097
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x68]
mov edi, dword [ebp - 0x14]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [edx + 0x1c]
mov esi, dword [edx + 0x48]
cmp eax, dword [edi + 0x20]
mov edi, dword [ebp - 0x64]
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x44], esi
je 0x57c4ce
cmp byte [edx + 2], 0
je 0x57c428
cmp byte [edx], 3
jne 0x57c411
mov eax, dword [edx + 0x20]
lea esi, [edx + 0x54]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + ecx*8 + 0xc]
mov dword [esi], eax
mov dword [edx + 0x50], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + ecx*8 + 0x10]
mov dword [edx + 0x4c], eax
jmp 0x57c45c
push ecx
call fcn.00582190
mov esi, dword [ebp - 0x14]
add esp, 4
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
mov esi, dword [edx + 0x28]
push esi
call fcn.005441b0
mov ecx, dword [ebp - 0x68]
mov eax, dword [esi + 0x24]
mov dword [ecx + 0x50], eax
add ecx, 0x54
push ecx
push esi
call fcn.00558840
mov edx, dword [ebp - 0x68]
add esp, 0xc
mov dword [edx + 0x4c], eax
mov eax, dword [edx + 0x50]
cmp eax, dword [edi + 0x64]
ja 0x57f6f7
lea esi, [edx + 0x54]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x20]
mov dword [edx + 0x1c], eax
mov ecx, dword [edx + 0x4c]
mov al, byte [ecx]
cmp al, 0x80
jae 0x57c47d
mov ecx, dword [ebp - 0x44]
movzx eax, al
mov dword [ecx], eax
mov eax, 1
jmp 0x57c492
push dword [ebp - 0x44]
push ecx
call fcn.00566e10
mov edx, dword [ebp - 0x68]
add esp, 8
mov ecx, dword [ebp - 0x44]
movzx eax, al
movzx eax, al
mov dword [edx + 0x30], eax
xor eax, eax
mov word [edx + 0x3a], ax
mov eax, dword [esi]
cmp eax, dword [ecx]
jae 0x57c59b
mov dword [edx + 0x4c], 0
mov dword [esi], 0
mov esi, dword [ebp - 0x44]
mov eax, dword [esi]
cmp eax, 0x18003
ja 0x57c67f
cmp eax, dword [edx + 0x50]
ja 0x57c67f
movzx eax, word [edx + 0x3a]
mov ecx, dword [ebp - 0x78]
cmp eax, ecx
jg 0x57c701
mov eax, dword [edx + 0x30]
cmp eax, dword [esi]
jae 0x57c6a4
mov eax, dword [edx + 0x4c]
mov dword [ebp - 0x38], eax
test eax, eax
jne 0x57c53a
xorps xmm0, xmm0
lea eax, [ebp - 0x1b8]
push eax
movdqu xmmword [ebp - 0x1b8], xmm0
movdqu xmmword [ebp - 0x1a8], xmm0
movq qword [ebp - 0x198], xmm0
push dword [esi]
push 0
push dword [edx + 0x28]
call fcn.00581ca0
add esp, 0x10
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x580097
mov eax, dword [ebp - 0x1a8]
mov edx, dword [ebp - 0x68]
mov dword [ebp - 0x38], eax
movzx ecx, word [edx + 0x3a]
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x40], 0
mov eax, dword [esi + ecx*4]
mov esi, dword [edx + 0x30]
add esi, dword [ebp - 0x38]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [eax]
add eax, dword [ebp - 0x38]
mov dword [ebp - 0x4c], eax
lea eax, [ecx + 0x16]
lea eax, [edx + eax*4]
mov dword [ebp - 0x2c], eax
jmp 0x57c570
movzx ecx, byte [esi]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x9c], ecx
cmp ecx, 0x80
jae 0x57c5a3
movzx eax, cl
inc esi
movzx eax, byte [eax + 0x7baf90]
cdq
add dword [ebp - 0x60], eax
adc dword [ebp - 0x40], edx
mov edx, dword [ebp - 0x60]
jmp 0x57c5d3
mov eax, dword [edx + 0x4c]
mov esi, dword [ebp - 0x44]
jmp 0x57c537
lea eax, [ebp - 0x9c]
push eax
push esi
call fcn.00566e10
mov ecx, dword [ebp - 0x9c]
movzx eax, al
push ecx
add esi, eax
mov dword [ebp - 0x28], ecx
call fcn.00583270
mov edx, dword [ebp - 0x60]
add esp, 0xc
add edx, eax
mov dword [ebp - 0x60], edx
adc dword [ebp - 0x40], 0
mov eax, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x44]
add dword [ebp - 0x2c], 4
mov dword [eax], ecx
mov eax, dword [ebp - 0x48]
inc eax
mov dword [ebp - 0x48], eax
mov dword [edi + eax*4], edx
mov edi, dword [ebp - 0x64]
cmp eax, dword [ebp - 0x78]
jg 0x57c5fc
cmp esi, dword [ebp - 0x4c]
jb 0x57c570
jmp 0x57c601
cmp esi, dword [ebp - 0x4c]
jb 0x57c617
cmp esi, dword [ebp - 0x4c]
ja 0x57c630
mov edi, dword [ebp - 0x68]
cmp edx, dword [edi + 0x50]
mov edi, dword [ebp - 0x64]
jne 0x57c630
cmp dword [ebp - 0x40], 0
jne 0x57c630
cmp dword [ebp - 0x40], 0
mov edi, dword [ebp - 0x68]
mov edi, dword [edi + 0x50]
mov dword [ebp - 0x30], edi
mov edi, dword [ebp - 0x64]
jb 0x57c63d
ja 0x57c630
cmp edx, dword [ebp - 0x30]
jbe 0x57c63d
mov eax, dword [ebp - 0x44]
cmp dword [eax], 0
jne 0x57c667
mov esi, dword [ebp - 0x4c]
xor eax, eax
mov edx, dword [ebp - 0x68]
sub esi, dword [ebp - 0x38]
mov word [edx + 0x3a], ax
mov dword [edx + 0x30], esi
cmp dword [edx + 0x4c], 0
jne 0x57c6af
lea eax, [ebp - 0x1b8]
push eax
call fcn.00582120
mov ecx, dword [ebp - 0x28]
add esp, 4
mov edx, dword [ebp - 0x68]
jmp 0x57c6af
mov eax, dword [ebp - 0x68]
cmp dword [eax + 0x4c], 0
jne 0x57c67f
lea eax, [ebp - 0x1b8]
push eax
call fcn.00582120
add esp, 4
mov edx, dword [ebp - 0x5c]
mov eax, dword [edx + 0xc]
test eax, eax
jle 0x57fca0
mov esi, dword [ebp - 0x14]
lea eax, [eax + eax*4]
mov edi, dword [ebp - 0x64]
lea ebx, [edx - 0x14]
lea ebx, [ebx + eax*4]
add ebx, 0x14
jmp 0x57b0e2
xor ecx, ecx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x9c], ecx
movzx eax, word [edx + 0x3a]
cmp eax, dword [ebp - 0x78]
jg 0x57c70e
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 1], 0xf5
jne 0x57c6e5
push 0x800
push dword [eax + 0x10]
push dword [ebp - 0x3c]
call fcn.005824a0
add esp, 0xc
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
push dword [ebp - 0x3c]
call fcn.00582190
mov ebx, dword [ebp - 0x1c]
add esp, 4
mov esi, dword [ebp - 0x14]
add ebx, 0x14
mov edi, dword [ebp - 0x64]
jmp 0x57b0e2
mov ecx, dword [edx + ecx*4 + 0x58]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x9c], ecx
mov eax, dword [ebp - 0x3c]
mov esi, 0x2460
test word [eax + 8], si
mov esi, dword [ebp - 0x44]
je 0x57c72e
push eax
call fcn.00582190
mov ecx, dword [ebp - 0x28]
add esp, 4
mov edx, dword [ebp - 0x68]
mov edi, dword [ebp - 0x78]
mov eax, dword [edx + 0x54]
cmp eax, dword [esi + edi*4 + 4]
mov edi, dword [ebp - 0x64]
jb 0x57c7ec
mov eax, dword [edx + 0x4c]
mov edx, dword [ebp - 0x78]
add eax, dword [esi + edx*4]
mov dword [ebp - 0x30], eax
cmp ecx, 0xc
jae 0x57c76a
push dword [ebp - 0x3c]
push ecx
push eax
call fcn.00582ef0
mov esi, dword [ebp - 0x14]
add esp, 0xc
add ebx, 0x14
jmp 0x57b0e2
mov al, byte [ebp - 0x6c]
lea esi, [ecx - 0xc]
mov ecx, dword [ebp - 0x3c]
shr esi, 1
mov byte [ecx + 0xa], al
lea eax, [esi + 2]
mov dword [ecx + 0xc], esi
cmp dword [ecx + 0x18], eax
jge 0x57c7a5
push 0
push eax
mov edx, 1
push ecx
mov word [ecx + 8], dx
call fcn.00581d10
add esp, 0xc
test eax, eax
jne 0x57c9a2
mov ecx, dword [ebp - 0x3c]
jmp 0x57c7ab
mov eax, dword [ecx + 0x14]
mov dword [ecx + 0x10], eax
push esi
push dword [ebp - 0x30]
push dword [ecx + 0x10]
call fcn.007224a0
mov ecx, dword [ebp - 0x3c]
add esp, 0xc
mov edi, dword [ebp - 0x64]
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 - 0x28]
mov esi, dword [ebp - 0x14]
and eax, 1
add ebx, 0x14
mov ax, word [eax*2 + 0x7bb4d0]
mov word [ecx + 8], ax
jmp 0x57b0e2
mov eax, dword [ebp - 0x3c]
mov dl, byte [ebp - 0x6c]
mov byte [eax + 0xa], dl
movzx eax, word [ebx + 2]
mov edx, dword [ebp - 0x68]
test al, 0xc0
je 0x57c80e
cmp ecx, 0xc
jb 0x57c80a
test cl, 1
je 0x57c81b
test al, al
js 0x57c81b
push ecx
call fcn.00583270
add esp, 4
test eax, eax
jne 0x57c83a
push dword [ebp - 0x3c]
push ecx
push 0x89e9f0
call fcn.00582ef0
mov esi, dword [ebp - 0x14]
add esp, 0xc
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
push dword [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x78]
push dword [esi + eax*4]
push dword [edx + 0x28]
call fcn.00581ca0
mov esi, eax
add esp, 0x10
mov dword [ebp - 0x18], esi
test esi, esi
jne 0x580097
mov esi, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x28]
push esi
push eax
push dword [esi + 0x10]
call fcn.00582ef0
mov edi, dword [ebp - 0x64]
add esp, 0xc
mov eax, 0xefff
and word [esi + 8], ax
add ebx, 0x14
mov esi, dword [ebp - 0x14]
jmp 0x57b0e2
mov eax, dword [ebx + 4]
mov esi, dword [ebx + 0x10]
mov ecx, dword [ebp - 0x20]
lea eax, [eax + eax*4]
mov bl, byte [esi]
lea edi, [ecx + eax*8]
push dword [ebp - 0x6c]
push ebx
push edi
call fcn.00532dc0
mov bl, byte [esi + 1]
lea esi, [esi + 1]
add esp, 0xc
add edi, 0x28
test bl, bl
jne 0x57c897
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x14]
add ebx, 0x14
mov edi, dword [ebp - 0x64]
jmp 0x57b0e2
mov ecx, dword [ebp - 0x20]
xor eax, eax
mov dword [ebp - 0x44], eax
xorps xmm0, xmm0
mov eax, dword [ebx + 4]
mov edi, dword [ebp - 0x20]
mov esi, dword [ebx + 0x10]
movlpd qword [ebp - 0x58], xmm0
movlpd qword [ebp - 0x50], xmm0
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [ebx + 8]
mov dword [ebp - 0x2c], ecx
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x14]
movzx edx, byte [eax + 0x8f]
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x48], edx
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov edi, dword [ebp - 0x64]
mov dword [ebp - 0x30], eax
test esi, esi
je 0x57c940
mov bl, byte [esi]
mov edi, ecx
lea esp, [esp]
push dword [ebp - 0x6c]
push ebx
push edi
call fcn.00532dc0
mov bl, byte [esi + 1]
lea esi, [esi + 1]
add esp, 0xc
add edi, 0x28
test bl, bl
jne 0x57c920
mov edi, dword [ebp - 0x64]
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x54]
mov esi, dword [ebp - 0x3c]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x40], eax
jmp 0x57c960
lea eax, [ebp - 0xa8]
push eax
push edx
push esi
call fcn.00583120
mov ecx, 0x4000
mov dword [ebp - 0x4c], eax
add esp, 0xc
test word [esi + 8], cx
je 0x57c9fa
test eax, eax
jne 0x57c98d
mov eax, 0xa
mov dword [ebp - 0x4c], eax
jmp 0x57c9fa
mov eax, dword [ebp - 0x38]
or eax, dword [ebp - 0x60]
je 0x57c9e6
push esi
call fcn.00581b70
add esp, 4
test eax, eax
je 0x57c9f7
mov esi, dword [ebp - 0x14]
cmp byte [edi + 0x49], 0
jne 0x57c9ce
cmp byte [edi + 0x4a], 0
jne 0x57c9ce
cmp dword [edi + 0xac], 0
mov byte [edi + 0x49], 1
jle 0x57c9c8
mov dword [edi + 0x100], 1
inc dword [edi + 0x108]
push str.out_of_memory
push esi
call fcn.0057afd0
add esp, 8
mov ebx, 7
jmp 0x58009d
mov ecx, dword [esi]
mov eax, ecx
cdq
add dword [ebp - 0x40], eax
adc dword [ebp - 0x28], edx
sub dword [ebp - 0xa8], ecx
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x38]
add ecx, dword [ebp - 0xa8]
mov dword [ebp - 0x38], ecx
adc dword [ebp - 0x60], 0
cmp eax, 0x7f
ja 0x57ca16
mov ecx, 1
jmp 0x57ca26
push 0
push eax
call fcn.0057a1f0
mov ecx, eax
add esp, 8
mov eax, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x44]
add edx, ecx
mov dword [esi + 0x1c], eax
mov dword [ebp - 0x44], edx
cmp esi, dword [ebp - 0x2c]
je 0x57ca41
mov edx, dword [ebp - 0x48]
sub esi, 0x28
jmp 0x57c960
cmp edx, 0x7e
jle 0x57ca6c
mov eax, edx
cdq
push edx
push eax
call fcn.0057a1f0
mov esi, eax
mov eax, dword [ebp - 0x44]
add eax, esi
mov dword [ebp - 0x44], eax
cdq
push edx
push eax
call fcn.0057a1f0
mov edx, dword [ebp - 0x44]
add esp, 0x10
cmp esi, eax
jge 0x57ca70
inc edx
mov dword [ebp - 0x44], edx
mov eax, edx
cdq
mov ecx, eax
mov eax, edx
mov edx, ecx
mov dword [ebp - 0x54], ecx
add edx, dword [ebp - 0x38]
mov ecx, eax
mov esi, edx
mov dword [ebp - 0x4c], eax
adc ecx, dword [ebp - 0x60]
add esi, dword [ebp - 0x40]
mov eax, dword [edi + 0x64]
adc ecx, dword [ebp - 0x28]
mov dword [ebp - 0x48], edx
cdq
cmp ecx, edx
jg 0x57f6f7
jl 0x57caa8
cmp esi, eax
ja 0x57f6f7
push dword [ebp - 0x48]
mov esi, dword [ebp - 0x30]
push esi
call fcn.00581ac0
add esp, 8
test eax, eax
jne 0x57c9a2
mov ecx, dword [ebp - 0x44]
mov edi, dword [esi + 0x10]
cmp ecx, 0x80
jae 0x57cad6
mov byte [edi], cl
mov eax, 1
jmp 0x57cae5
push dword [ebp - 0x4c]
push dword [ebp - 0x54]
push edi
call fcn.00570620
add esp, 0xc
mov ebx, dword [ebp - 0x2c]
movzx esi, al
jmp 0x57caf0
mov eax, dword [ebx + 0x1c]
mov dword [ebp - 0x54], eax
cmp eax, 0x80
jae 0x57cb07
mov byte [esi + edi], al
mov eax, 1
jmp 0x57cb16
push 0
push eax
lea eax, [esi + edi]
push eax
call fcn.00570620
add esp, 0xc
push dword [ebp - 0x54]
movzx eax, al
add esi, eax
mov eax, dword [ebp - 0x44]
add eax, edi
push ebx
push eax
call fcn.005830b0
add dword [ebp - 0x44], eax
add ebx, 0x28
add esp, 0xc
cmp ebx, dword [ebp - 0x3c]
jbe 0x57caf0
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x40]
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x14]
mov dword [edx + 0xc], eax
mov eax, 0x10
mov word [edx + 8], ax
mov eax, ecx
or eax, dword [ebp - 0x28]
je case.0x57b107.83
mov edi, dword [ebp - 0x64]
mov eax, 0x4010
mov dword [edx], ecx
add ebx, 0x14
mov word [edx + 8], ax
jmp 0x57b0e2
mov ecx, dword [ebx + 4]
xorps xmm0, xmm0
mov eax, dword [esi + 0x70]
movlpd qword [ebp - 0x100], xmm0
mov eax, dword [eax + ecx*4]
lea ecx, [ebp - 0x100]
push ecx
push dword [eax + 0x28]
call fcn.00556a50
mov esi, eax
add esp, 8
mov dword [ebp - 0x18], esi
test esi, esi
mov esi, dword [ebp - 0x14]
jne 0x57fe22
push ebx
push esi
call fcn.00549dd0
mov ecx, dword [ebp - 0x100]
add esp, 8
mov edi, dword [ebp - 0x64]
add ebx, 0x14
mov dword [eax], ecx
mov ecx, dword [ebp - 0xfc]
mov dword [eax + 4], ecx
jmp 0x57b0e2
mov ecx, dword [ebx + 4]
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x2c], eax
test ecx, ecx
jne 0x57cca6
cmp dword [edi + 0xa8], ecx
jg 0x57fcb4
push eax
call fcn.005763d0
mov ecx, dword [edi + 0x1b0]
add ecx, dword [edi + 0x1ac]
push ecx
push 0
push edi
mov dword [ebp - 0x30], eax
call fcn.00584cf0
mov esi, eax
add esp, 0x10
mov dword [ebp - 0x18], esi
test esi, esi
jne 0x580097
mov eax, dword [ebp - 0x30]
add eax, 0x21
push esi
push eax
push edi
call fcn.0055bdf0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x57c6d7
mov ecx, dword [ebp - 0x30]
lea edx, [esi + 0x20]
inc ecx
mov dword [esi], edx
push ecx
push dword [ebp - 0x2c]
push edx
call fcn.007224a0
add esp, 0xc
cmp byte [edi + 0x47], 0
je 0x57cc5f
mov byte [edi + 0x47], 0
mov byte [edi + 0x4f], 1
jmp 0x57cc65
inc dword [edi + 0x1ac]
mov eax, dword [edi + 0x1a4]
add ebx, 0x14
mov dword [esi + 0x18], eax
mov eax, dword [edi + 0x1b8]
mov dword [edi + 0x1a4], esi
mov dword [esi + 8], eax
mov eax, dword [edi + 0x1bc]
mov dword [esi + 0xc], eax
mov eax, dword [edi + 0x1c0]
mov dword [esi + 0x10], eax
mov eax, dword [edi + 0x1c4]
mov edi, dword [ebp - 0x64]
mov dword [esi + 0x14], eax
mov esi, dword [ebp - 0x14]
jmp 0x57b0e2
mov esi, dword [edi + 0x1a4]
xor ecx, ecx
mov dword [ebp - 0x28], ecx
push eax
test esi, esi
je 0x57fd18
push dword [esi]
call fcn.00576360
add esp, 8
test eax, eax
je 0x57ccd3
inc dword [ebp - 0x28]
mov esi, dword [esi + 0x18]
mov eax, dword [ebp - 0x2c]
jmp 0x57ccb1
cmp dword [edi + 0xa8], 0
mov edx, dword [ebp - 0x40]
jle 0x57cce8
cmp edx, 1
je 0x57fccc
cmp dword [esi + 0x18], 0
jne 0x57cd41
cmp byte [edi + 0x4f], 0
je 0x57cd41
mov dword [ebp - 0x2c], 1
cmp edx, 1
jne 0x57cd48
push edx
push dword [ebp - 0x14]
call fcn.0057a8a0
add esp, 8
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x5801af
push dword [ebp - 0x14]
mov byte [edi + 0x47], 1
call fcn.00580c30
add esp, 4
cmp eax, 5
je 0x57fce7
mov eax, dword [ebp - 0x14]
mov byte [edi + 0x4f], 0
mov eax, dword [eax + 0x28]
mov dword [ebp - 0x18], eax
jmp 0x57ce30
mov dword [ebp - 0x2c], 0
mov eax, dword [edi + 0x1ac]
sub eax, dword [ebp - 0x28]
dec eax
mov dword [ebp - 0x28], eax
cmp edx, 2
jne 0x57cdc2
mov ecx, dword [edi + 0x18]
and ecx, 1
mov dword [ebp - 0x30], 0
cmp dword [edi + 0x14], 0
mov dword [ebp - 0x4c], ecx
jle 0x57cdc9
xor eax, eax
test ecx, ecx
sete al
xor ecx, ecx
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x48], ecx
nop
push eax
mov eax, dword [edi + 0x10]
push 0x204
push dword [ecx + eax + 4]
call fcn.00558ff0
mov edx, eax
add esp, 0xc
mov dword [ebp - 0x18], edx
test edx, edx
jne 0x580097
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x48]
inc eax
add ecx, 0x10
mov dword [ebp - 0x30], eax
cmp eax, dword [edi + 0x14]
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x48], ecx
jl 0x57cd80
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x40]
jmp 0x57cdc9
mov dword [ebp - 0x4c], 0
cmp dword [edi + 0x14], 0
mov dword [ebp - 0x30], 0
jle 0x57ce17
xor ecx, ecx
mov dword [ebp - 0x48], ecx
jmp 0x57cde0
push eax
mov eax, dword [edi + 0x10]
push edx
push dword [ecx + eax + 4]
call fcn.00558ac0
add esp, 0xc
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x580097
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x48]
inc eax
mov edx, dword [ebp - 0x40]
add ecx, 0x10
cmp eax, dword [edi + 0x14]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x48], ecx
jl 0x57cde0
cmp dword [ebp - 0x4c], 0
je 0x57ce30
push edi
call fcn.0055dd80
push edi
call fcn.00570f30
add esp, 8
or dword [edi + 0x18], 1
cmp dword [edi + 0x1a4], esi
je 0x57ce9b
jmp 0x57ce40
cmp dword [edi + 0x1c8], 0
mov ecx, dword [edi + 0x1a4]
mov eax, dword [ecx + 0x18]
mov dword [edi + 0x1a4], eax
je 0x57ce64
push ecx
push edi
call fcn.00547160
add esp, 8
jmp 0x57ce8d
cmp ecx, dword [edi + 0x128]
jb 0x57ce84
cmp ecx, dword [edi + 0x12c]
jae 0x57ce84
mov eax, dword [edi + 0x124]
mov dword [ecx], eax
mov dword [edi + 0x124], ecx
jmp 0x57ce8d
push ecx
call fcn.0052c640
add esp, 4
dec dword [edi + 0x1ac]
cmp dword [edi + 0x1a4], esi
jne 0x57ce40
mov ecx, dword [ebp - 0x40]
cmp ecx, 1
jne 0x57ceeb
mov eax, dword [esi + 0x18]
push esi
push edi
mov dword [edi + 0x1a4], eax
call fcn.0055bd40
add esp, 8
cmp dword [ebp - 0x2c], 0
jne 0x57cf1a
dec dword [edi + 0x1ac]
mov ecx, dword [ebp - 0x28]
push ecx
push dword [ebp - 0x40]
push edi
call fcn.00584cf0
mov esi, dword [ebp - 0x14]
add esp, 0xc
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x57fe22
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
cmp dword [ebp - 0x2c], 0
mov eax, dword [esi + 8]
mov dword [edi + 0x1b8], eax
mov eax, dword [esi + 0xc]
mov dword [edi + 0x1bc], eax
mov eax, dword [esi + 0x10]
mov dword [edi + 0x1c0], eax
mov eax, dword [esi + 0x14]
mov dword [edi + 0x1c4], eax
je 0x57cec2
cmp ecx, 2
je 0x57cec2
cmp dword [ebp - 0x18], 0
mov esi, dword [ebp - 0x14]
jne 0x57fe22
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
mov edx, dword [ebx + 8]
test edx, edx
je 0x57cf46
test dword [edi + 0x1c], 0x100000
jne 0x57fd22
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x10]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
test esi, esi
je 0x57d028
push edx
push esi
call fcn.00556260
add esp, 8
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x57fd2c
cmp dword [ebx + 8], eax
je 0x57cfff
mov ecx, dword [ebp - 0x14]
test byte [ecx + 0x94], 0x40
je 0x57cfff
cmp byte [edi + 0x47], al
je 0x57cf92
cmp dword [edi + 0xa4], 1
jle 0x57cfff
cmp dword [ecx + 0x30], 0
jne 0x57cfad
mov eax, dword [edi + 0x1ac]
inc dword [edi + 0x1b0]
add eax, dword [edi + 0x1b0]
mov dword [ecx + 0x30], eax
mov eax, dword [ecx + 0x30]
dec eax
push eax
push 0
push edi
call fcn.00584cf0
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x57cfd8
mov eax, dword [ebp - 0x14]
push dword [eax + 0x30]
push esi
call fcn.00556200
add esp, 8
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x14]
mov eax, dword [edi + 0x1b8]
mov dword [ecx + 0x48], eax
mov eax, dword [edi + 0x1bc]
mov dword [ecx + 0x4c], eax
mov eax, dword [edi + 0x1c0]
mov dword [ecx + 0x50], eax
mov eax, dword [edi + 0x1c4]
mov dword [ecx + 0x54], eax
lea eax, [ebp - 0xd8]
push eax
push 1
push esi
call fcn.005570d0
mov ecx, dword [ebx + 4]
add esp, 0xc
mov eax, dword [edi + 0x10]
add ecx, ecx
mov esi, dword [ebp - 0xd8]
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax + 4]
jmp 0x57d032
xor esi, esi
xor eax, eax
mov dword [ebp - 0xd8], esi
cmp word [ebx + 2], 0
je 0x57d04b
cmp esi, dword [ebx + 0xc]
jne 0x57fd5f
cmp eax, dword [ebx + 0x10]
jne 0x57fd5f
cmp dword [ebp - 0x18], 0
mov esi, dword [ebp - 0x14]
jne 0x57fe22
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
mov ecx, dword [ebx + 4]
lea eax, [ebp - 0x108]
push eax
mov eax, dword [edi + 0x10]
add ecx, ecx
push dword [ebx + 0xc]
push dword [eax + ecx*8 + 4]
call fcn.005570d0
push ebx
push esi
call fcn.00549dd0
mov edi, dword [ebp - 0x64]
mov ecx, eax
mov eax, dword [ebp - 0x108]
add esp, 0x14
cdq
add ebx, 0x14
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x57b0e2
mov esi, dword [ebx + 4]
push dword [ebx + 0xc]
shl esi, 4
add esi, dword [edi + 0x10]
push dword [ebx + 8]
push dword [esi + 4]
call fcn.00559130
mov dword [ebp - 0x18], eax
add esp, 0xc
mov eax, dword [ebx + 8]
cmp eax, 1
jne 0x57d0d4
mov ecx, dword [esi + 0xc]
mov eax, dword [ebx + 0xc]
mov dword [ecx], eax
or dword [edi + 0x18], 1
jmp 0x57d0e2
cmp eax, 2
jne 0x57d0e2
mov ecx, dword [esi + 0xc]
mov al, byte [ebx + 0xc]
mov byte [ecx + 0x4c], al
cmp dword [ebx + 4], 1
jne 0x57bcf2
push edi
call fcn.0055dd80
mov esi, dword [ebp - 0x14]
add esp, 4
and dword [esi + 0x94], 0xfffffffe
jmp 0x57bcf5
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x70]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x57d11d
mov eax, dword [esi + 0x34]
cmp eax, dword [ebx + 8]
je 0x57d220
mov esi, dword [ebp - 0x14]
mov al, byte [ebp - 0x21]
test byte [esi + 0x94], 1
jne 0x57fdae
mov esi, dword [ebx + 0xc]
mov ecx, esi
mov edx, dword [ebx + 8]
shl ecx, 4
add ecx, dword [edi + 0x10]
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x4c], edx
mov edi, dword [ecx + 4]
mov dword [ebp - 0x38], edi
mov edi, dword [ebp - 0x64]
mov dword [ebp - 0x54], esi
cmp al, 0x6a
jne 0x57d188
mov eax, dword [ecx + 0xc]
movzx edx, word [ebx + 2]
mov ecx, dword [ebp - 0x14]
and edx, 8
or edx, 4
mov al, byte [eax + 0x4c]
mov dword [ebp - 0x30], edx
mov edx, dword [ebp - 0x4c]
cmp al, byte [ecx + 0x8f]
jae 0x57d18f
mov byte [ecx + 0x8f], al
jmp 0x57d18f
mov dword [ebp - 0x30], 0
test byte [ebx + 2], 0x10
je 0x57d1af
mov ecx, dword [ebp - 0x20]
lea eax, [edx + edx*4]
lea esi, [ecx + eax*8]
push esi
call fcn.00581e70
mov eax, dword [esi]
add esp, 4
mov esi, dword [ebp - 0x54]
mov dword [ebp - 0x4c], eax
mov al, byte [ebx + 1]
cmp al, 0xf7
jne 0x57d1c2
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x2c], eax
movzx eax, word [eax + 8]
jmp 0x57d1ce
cmp al, 0xfd
jne 0x57d1cb
mov eax, dword [ebx + 0x10]
jmp 0x57d1ce
mov eax, dword [ebp - 0x48]
push 0
push esi
push eax
push dword [ebx + 4]
push dword [ebp - 0x14]
call fcn.00531b80
mov esi, eax
add esp, 0x14
test esi, esi
je 0x57c9a2
push dword [esi + 0x28]
mov eax, dword [ebp - 0x4c]
push dword [ebp - 0x2c]
or dword [esi + 8], 4
push dword [ebp - 0x30]
mov byte [esi + 2], 1
push eax
push dword [ebp - 0x38]
mov dword [esi + 0x34], eax
call fcn.00556c20
mov dword [ebp - 0x18], eax
add esp, 0x14
mov eax, dword [ebp - 0x2c]
mov dword [esi + 0x2c], eax
cmp byte [ebx + 1], 0xf7
setne al
mov byte [esi + 4], al
mov eax, dword [esi + 0x28]
mov cl, byte [ebx + 2]
mov esi, dword [ebp - 0x14]
and cl, 3
cmp dword [ebp - 0x18], 0
mov byte [eax + 3], cl
jne 0x57fe22
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
mov eax, dword [esi + 0x70]
mov ecx, dword [ebx + 8]
push 0
push 0xffffffffffffffff
mov esi, dword [eax + ecx*4]
movsx eax, word [esi + 0x38]
push eax
push dword [ebx + 4]
push dword [ebp - 0x14]
call fcn.00531b80
mov edx, eax
add esp, 0x14
test edx, edx
je 0x57c9a2
push dword [edx + 0x28]
or dword [edx + 8], 1
mov byte [edx + 2], 1
mov ecx, dword [esi + 0x2c]
push ecx
mov dword [edx + 0x2c], ecx
mov al, byte [esi + 4]
push 4
mov byte [edx + 4], al
push 1
push dword [esi + 0xc]
call fcn.00556c20
mov esi, dword [ebp - 0x14]
add esp, 0x14
mov edi, dword [ebp - 0x64]
add ebx, 0x14
mov dword [ebp - 0x18], eax
jmp 0x57b0e2
push 0
push 0xffffffffffffffff
push dword [ebx + 8]
push dword [ebx + 4]
push esi
call fcn.00531b80
mov esi, eax
add esp, 0x14
test esi, esi
je 0x57c9a2
or dword [esi + 8], 1
lea ecx, [esi + 0xc]
mov byte [esi + 2], 1
movzx eax, word [ebx + 2]
push 0x41e
or eax, 5
push eax
push ecx
push edi
push 0
push dword [edi]
call fcn.005580f0
mov ebx, eax
add esp, 0x18
test ebx, ebx
jne 0x58009a
push 1
push dword [esi + 0xc]
call fcn.00556260
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x58009a
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x54], ecx
mov dword [esi + 0x2c], ecx
test ecx, ecx
je 0x57d361
movzx eax, word [eax + 2]
or eax, 2
push eax
lea eax, [ebp - 0xf0]
push eax
push dword [esi + 0xc]
call fcn.00556bd0
mov ebx, eax
add esp, 0xc
mov dword [ebp - 0x18], ebx
test ebx, ebx
jne 0x57d35b
push dword [esi + 0x28]
push dword [ebp - 0x54]
push 4
push dword [ebp - 0xf0]
push dword [esi + 0xc]
call fcn.00556c20
mov ebx, eax
add esp, 0x14
mov dword [ebp - 0x18], ebx
mov byte [esi + 4], 0
jmp 0x57d37e
push dword [esi + 0x28]
push 0
push 4
push 1
push dword [esi + 0xc]
call fcn.00556c20
mov ebx, eax
mov byte [esi + 4], 1
add esp, 0x14
mov dword [ebp - 0x18], ebx
test ebx, ebx
jne 0x58009a
mov ebx, dword [ebp - 0x1c]
xor eax, eax
mov edi, dword [ebp - 0x64]
cmp word [ebx + 2], 8
setne al
shl eax, 2
xor eax, dword [esi + 8]
and eax, 4
xor dword [esi + 8], eax
add ebx, 0x14
mov esi, dword [ebp - 0x14]
jmp 0x57b0e2
push 1
push 0xffffffffffffffff
push dword [ebx + 8]
push dword [ebx + 4]
push esi
call fcn.00531b80
mov edx, eax
add esp, 0x14
test edx, edx
je 0x57c9a5
mov eax, dword [ebp - 0x1c]
push edx
mov ecx, dword [eax + 0x10]
mov dword [edx + 0x2c], ecx
push dword [eax + 0xc]
push edi
call fcn.00583580
mov ebx, eax
add esp, 0xc
mov dword [ebp - 0x18], ebx
test ebx, ebx
jne 0x58009d
mov ebx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
mov eax, dword [esi + 0x70]
mov ecx, dword [ebx + 4]
mov edx, dword [eax + ecx*4]
mov edi, dword [edx + 0x10]
mov ecx, edi
mov esi, dword [edx + 0x14]
add ecx, 1
mov eax, esi
mov dword [edx + 0x10], ecx
adc eax, 0
or edi, esi
mov esi, dword [ebp - 0x14]
mov dword [edx + 0x14], eax
je 0x57b13d
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
push 3
push 0xffffffffffffffff
push dword [ebx + 0xc]
push dword [ebx + 4]
push esi
call fcn.00531b80
add esp, 0x14
test eax, eax
je 0x57c9a5
mov edi, dword [ebp - 0x64]
mov byte [eax + 2], 1
mov ecx, dword [ebx + 8]
add ebx, 0x14
mov dword [eax + 0x20], ecx
mov byte [eax + 4], 1
mov dword [eax + 0x28], 0x8804e8
jmp 0x57b0e2
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x70]
push dword [eax + ecx*4]
push esi
call fcn.00580ac0
mov ecx, dword [ebx + 4]
add esp, 8
mov eax, dword [esi + 0x70]
add ebx, 0x14
mov edi, dword [ebp - 0x64]
mov dword [eax + ecx*4], 0
jmp 0x57b0e2
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x70]
mov esi, dword [eax + ecx*4]
xor ecx, ecx
mov dword [ebp - 0x40], ecx
mov byte [esi + 2], cl
cmp byte [esi + 4], cl
je 0x57d5a7
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x20]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov al, byte [ecx + 8]
and al, 0xe
mov dword [ebp - 0x2c], ecx
cmp al, 2
jne 0x57d4d5
push 0
push ecx
call fcn.00532e30
mov ecx, dword [ebp - 0x2c]
add esp, 8
push ecx
call fcn.00581160
mov ecx, dword [ebp - 0x2c]
add esp, 4
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x60], edx
movzx ecx, word [ecx + 8]
test cl, 4
jne 0x57d528
test cl, 8
je 0x57b13a
mov ecx, eax
call fcn.00724ebf
mov eax, dword [ebp - 0x2c]
movsd xmm1, qword [eax]
comisd xmm0, xmm1
jbe 0x57d517
mov eax, dword [ebp - 0x38]
test al, 1
je 0x57d528
dec eax
jmp 0x57d525
comisd xmm1, xmm0
jbe 0x57d528
mov eax, dword [ebp - 0x38]
test al, 1
jne 0x57d528
inc eax
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x74]
push eax
push 0
push dword [ebp - 0x60]
push dword [ebp - 0x4c]
push 0
push dword [esi + 0x28]
call fcn.00557b40
mov ecx, dword [ebp - 0x4c]
add esp, 0x18
mov dword [esi + 0x40], ecx
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x18], eax
mov dword [esi + 0x44], ecx
test eax, eax
jne 0x580097
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x74]
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
cmp eax, 0x1a
jl 0x57d682
test ecx, ecx
js 0x57d642
jne 0x57d585
cmp eax, 0x1b
je 0x57d642
mov dword [ebp - 0x74], 0
cmp dword [ebp - 0x40], 0
mov esi, dword [ebp - 0x14]
je case.0x57b107.83
mov edi, dword [ebp - 0x64]
add ebx, 0x14
add ebx, 0x14
jmp 0x57b0e2
mov eax, dword [esi + 0x28]
test byte [eax + 3], 2
mov eax, 1
cmovne ecx, eax
mov eax, dword [esi + 0x2c]
mov dword [ebp - 0x118], eax
test dl, 1
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp - 0x1c]
mov byte [ebp - 0x10a], 0
mov ax, word [ecx + 0x10]
mov word [ebp - 0x110], ax
sete al
lea eax, [eax*2 - 1]
mov byte [ebp - 0x10e], al
mov eax, dword [ecx + 0xc]
mov ecx, dword [ebp - 0x20]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x114], eax
lea eax, [ebp - 0x74]
push eax
push 0
push 0
push 0
lea eax, [ebp - 0x118]
push eax
push dword [esi + 0x28]
call fcn.00557b40
mov ebx, eax
add esp, 0x18
mov dword [ebp - 0x18], ebx
test ebx, ebx
jne 0x58009a
mov ebx, dword [ebp - 0x1c]
cmp dword [ebp - 0x40], eax
je 0x57d558
cmp byte [ebp - 0x10a], al
jne 0x57d558
mov ecx, dword [ebp - 0x74]
jmp 0x57d69b
push 0
push dword [esi + 0x28]
mov dword [ebp - 0x74], 0
call fcn.005580a0
mov ecx, eax
add esp, 8
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x57d58c
mov esi, dword [ebp - 0x14]
cmp ecx, 0x65
jne 0x57fe22
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x74], 1
jmp 0x57b13d
test ecx, ecx
jg 0x57d6a8
jne 0x57d68d
cmp eax, 0x18
je 0x57d6a8
mov eax, dword [esi + 0x28]
xor ecx, ecx
cmp byte [eax], 1
setne cl
mov dword [ebp - 0x74], ecx
test ecx, ecx
jne 0x57b13a
jmp 0x57d58c
push 0
push dword [esi + 0x28]
mov dword [ebp - 0x74], 0
call fcn.00558880
jmp 0x57d653
mov eax, dword [esi + 0x70]
mov ecx, dword [ebx + 4]
mov edx, dword [ebp - 0x20]
mov ebx, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x30], ebx
cmp dword [ecx + 0x10], 0
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
jle 0x57d706
mov eax, dword [ebx + 0x2c]
lea ebx, [ebp - 0x168]
mov dword [ebp - 0x168], eax
mov ax, word [ecx + 0x10]
mov word [ebp - 0x160], ax
xor eax, eax
mov dword [ebp - 0x164], esi
mov esi, dword [ebp - 0x30]
mov dword [ebp - 0x48], eax
jmp 0x57d752
mov eax, 0x4000
test word [esi + 8], ax
je 0x57d722
push esi
call fcn.00581b70
add esp, 4
test eax, eax
jne 0x57c9a2
push dword [ebx + 0x2c]
call fcn.0057a610
mov ebx, eax
add esp, 4
mov dword [ebp - 0x48], ebx
test ebx, ebx
je 0x57c9a2
push ebx
push dword [esi + 0x10]
push dword [esi + 0xc]
mov esi, dword [ebp - 0x30]
push dword [esi + 0x2c]
call fcn.00582d00
mov ecx, dword [ebp - 0x1c]
add esp, 0x10
mov byte [ebx + 0xa], 0
cmp byte [ecx], 0x1c
mov dword [ebp - 0x30], 0
jne 0x57d788
movzx edx, word [ebx + 8]
xor ecx, ecx
test edx, edx
jle 0x57d788
mov eax, dword [ebx + 4]
add eax, 8
test byte [eax], 1
jne 0x57d781
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x57d772
jmp 0x57d788
mov dword [ebp - 0x30], 1
lea eax, [ebp - 0x104]
push eax
push 0
push 0
push 0
push ebx
push dword [esi + 0x28]
call fcn.00557b40
mov ebx, eax
add esp, 0x18
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x18], ebx
test eax, eax
je 0x57d7b7
push eax
push edi
call fcn.0055bda0
add esp, 8
test ebx, ebx
jne 0x58009a
mov eax, dword [ebp - 0x104]
xor ecx, ecx
test eax, eax
mov dword [esi + 0x20], eax
mov byte [esi + 3], bl
mov al, 1
mov dword [esi + 0x1c], ebx
sete cl
mov ebx, dword [ebp - 0x1c]
sub al, cl
mov byte [esi + 2], al
mov esi, dword [ebp - 0x14]
cmp byte [ebx], 0x1e
jne 0x57d7fa
test ecx, ecx
jne 0x57b13d
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
cmp dword [ebp - 0x30], 0
jne 0x57b13d
test ecx, ecx
je 0x57b13d
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
mov eax, dword [ebx + 0xc]
mov edi, dword [ebp - 0x20]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
movzx eax, word [esi + 8]
test al, 4
jne 0x57d858
test al, 8
jne 0x57d840
test al, 2
je 0x57d849
push 1
push esi
call fcn.00532e30
add esp, 8
jmp 0x57d849
push esi
call fcn.005811b0
add esp, 4
test byte [esi + 8], 4
mov esi, dword [ebp - 0x14]
je 0x57b13d
jmp 0x57d860
mov esi, dword [ebp - 0x14]
jmp 0x57d860
mov edi, dword [ebp - 0x20]
mov eax, dword [esi + 0x70]
mov ecx, dword [ebx + 4]
mov dword [ebp - 0xc4], 0
mov ebx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
mov esi, dword [edi + eax*8]
mov edi, dword [edi + eax*8 + 4]
lea eax, [ebp - 0xc4]
push eax
push 0
push edi
push esi
push 0
push dword [ebx + 0x28]
call fcn.00557b40
mov dword [ebp - 0x18], eax
add esp, 0x18
mov eax, dword [ebp - 0xc4]
mov dword [ebx + 0x40], esi
mov dword [ebx + 0x44], edi
mov word [ebx + 2], 0
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x20], eax
mov ebx, dword [ebp - 0x1c]
test eax, eax
je 0x57d8df
cmp dword [ebx + 8], 0
jne 0x57b13a
push 0x148e4
call fcn.0055aa90
mov ecx, eax
add esp, 4
mov dword [ebp - 0x18], ecx
jmp 0x57d8e2
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
test ecx, ecx
je case.0x57b107.83
mov edi, dword [ebp - 0x64]
mov ebx, dword [ebp - 0x18]
jmp 0x58009d
push ebx
push esi
call fcn.00549dd0
mov edx, dword [ebx + 4]
add esp, 8
mov ecx, dword [esi + 0x70]
mov ebx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x64]
mov edx, dword [ecx + edx*4]
mov ecx, dword [edx + 0x10]
mov dword [eax], ecx
mov ecx, dword [edx + 0x14]
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x70]
mov eax, dword [eax + ecx*4]
add dword [eax + 0x10], 1
adc dword [eax + 0x14], 0
add ebx, 0x14
jmp 0x57b0e2
xorps xmm0, xmm0
mov dword [ebp - 0x94], 0
push ebx
push esi
movlpd qword [ebp - 0x80], xmm0
call fcn.00549dd0
mov edx, dword [ebx + 4]
add esp, 8
mov ecx, dword [esi + 0x70]
mov dword [ebp - 0x54], eax
mov edx, dword [ecx + edx*4]
mov dword [ebp - 0x3c], edx
test byte [edx + 8], 2
jne 0x57d9e2
lea eax, [ebp - 0x94]
push eax
push dword [edx + 0x28]
call fcn.005579f0
add esp, 8
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x57fe22
cmp dword [ebp - 0x94], eax
je 0x57d9a0
mov edx, dword [ebp - 0x3c]
mov eax, 1
xor esi, esi
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], esi
jmp 0x57d9e8
mov eax, dword [ebp - 0x3c]
push dword [eax + 0x28]
call fcn.005575a0
mov esi, edx
mov dword [ebp - 0x28], eax
add esp, 4
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], esi
cmp esi, 0x7fffffff
jl 0x57d9d1
jg 0x57d9c8
cmp eax, 0xffffffff
jb 0x57d9d1
mov edx, dword [ebp - 0x3c]
or dword [edx + 8], 2
jmp 0x57d9eb
mov edx, dword [ebp - 0x3c]
add eax, 1
mov dword [ebp - 0x80], eax
adc esi, 0
mov dword [ebp - 0x7c], esi
jmp 0x57d9e8
mov esi, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x57da91
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0xc4]
test edx, edx
je 0x57da24
mov eax, dword [edx + 4]
test eax, eax
je 0x57da19
lea ebx, [ebx]
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x57da10
mov eax, dword [edx + 0x10]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*8]
jmp 0x57da2d
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0x20]
lea eax, [ecx + eax*8]
push eax
mov dword [ebp - 0x30], eax
call fcn.00581e70
mov ecx, dword [ebp - 0x30]
add esp, 4
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x4c], edx
cmp eax, 0xffffffff
jne 0x57da55
cmp edx, 0x7fffffff
je 0x57db02
mov edx, dword [ebp - 0x3c]
test byte [edx + 8], 2
jne 0x57db02
add eax, 1
mov dword [ebp - 0x30], eax
adc dword [ebp - 0x4c], 0
cmp esi, dword [ebp - 0x4c]
jg 0x57da89
jl 0x57da7e
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x30]
jae 0x57da8c
mov eax, dword [ebp - 0x30]
mov esi, dword [ebp - 0x4c]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], esi
jmp 0x57da8c
mov eax, dword [ebp - 0x28]
mov dword [ecx], eax
mov dword [ecx + 4], esi
test byte [edx + 8], 2
je 0x57db12
mov dword [ebp - 0x30], 0
mov edi, edi
lea eax, [ebp - 0x80]
push eax
push 8
call fcn.0052ca90
mov esi, dword [ebp - 0x7c]
lea ecx, [ebp - 0x94]
mov eax, dword [ebp - 0x80]
and esi, 0x3fffffff
add eax, 1
push ecx
push 0
adc esi, 0
mov dword [ebp - 0x28], eax
push esi
push eax
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x3c]
push 0
mov dword [ebp - 0x7c], esi
push dword [eax + 0x28]
call fcn.00557b40
mov ecx, eax
add esp, 0x20
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x580097
cmp dword [ebp - 0x94], eax
jne 0x57db0c
mov eax, dword [ebp - 0x30]
inc eax
mov dword [ebp - 0x30], eax
cmp eax, 0x64
jl 0x57daa0
mov ebx, 0xd
jmp 0x58009a
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x54]
add ebx, 0x14
mov edi, dword [ebp - 0x64]
mov byte [edx + 3], 0
mov dword [edx + 0x1c], 0
mov dword [ecx + 4], esi
mov esi, dword [ebp - 0x14]
mov dword [ecx], eax
jmp 0x57b0e2
cmp byte [ebp - 0x21], 0x75
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x70]
mov ebx, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x38], ebx
mov eax, dword [ecx + 0xc]
jne 0x57db66
mov edx, dword [ebp - 0x20]
lea eax, [eax + eax*4]
mov esi, dword [edx + eax*8]
mov edx, dword [edx + eax*8 + 4]
jmp 0x57db69
cdq
mov esi, eax
cmp byte [ecx + 1], 0xfa
mov dword [ebp - 0x184], edx
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x188], esi
jne 0x57dba1
cmp dword [edi + 0xe0], 0
je 0x57dba1
movsx ecx, byte [ebx + 1]
mov eax, dword [edi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8]
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x4c], eax
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x48], eax
jmp 0x57dbaf
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x4c], 0
test byte [ecx + 2], 1
je 0x57dbbb
mov eax, dword [ebp - 0x14]
inc dword [eax + 0x2c]
test byte [ecx + 2], 0x20
je 0x57dbc7
mov dword [edi + 0x20], esi
mov dword [edi + 0x24], edx
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x20]
movzx ecx, word [ecx + 2]
mov eax, dword [eax + edx*8 + 0x10]
mov dword [ebp - 0x180], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + edx*8 + 0xc]
mov dword [ebp - 0x174], eax
test cl, 0x10
je 0x57dbf5
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x30], eax
jmp 0x57dbfc
mov dword [ebp - 0x30], 0
mov eax, dword [ebp - 0x20]
mov edi, 0x4000
test word [eax + edx*8 + 8], di
mov edi, dword [ebp - 0x64]
je 0x57dc19
mov eax, dword [eax + edx*8]
mov dword [ebp - 0x170], eax
jmp 0x57dc23
mov dword [ebp - 0x170], 0
push dword [ebp - 0x30]
and ecx, 0xa
mov dword [ebp - 0x190], 0
push ecx
lea eax, [ebp - 0x190]
push eax
push dword [ebx + 0x28]
call fcn.00557280
mov ebx, eax
add esp, 0x10
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x18], ebx
mov byte [eax + 3], 0
mov dword [eax + 0x1c], 0
test ebx, ebx
jne 0x58009a
mov eax, dword [ebp - 0x48]
test eax, eax
je 0x57c6d4
push dword [ebp - 0x2c]
mov ecx, 0x17
push esi
push dword [eax]
mov eax, dword [ebp - 0x1c]
push dword [ebp - 0x4c]
test byte [eax + 2], 4
mov eax, 0x12
cmovne eax, ecx
push eax
push dword [edi + 0xdc]
mov eax, dword [edi + 0xe0]
call eax
mov ebx, dword [ebp - 0x1c]
add esp, 0x18
mov esi, dword [ebp - 0x14]
add ebx, 0x14
mov edi, dword [ebp - 0x64]
jmp 0x57b0e2
cmp byte [ebx + 1], 0xfa
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x54], eax
mov eax, dword [esi + 0x70]
mov esi, dword [eax + ecx*4]
jne 0x57dcfe
cmp dword [edi + 0xe0], 0
je 0x57dcfe
movsx ecx, byte [esi + 1]
mov eax, dword [edi + 0x10]
add ecx, ecx
test byte [ebx + 2], 2
mov eax, dword [eax + ecx*8]
mov dword [ebp - 0x48], eax
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x30], eax
je 0x57dd0a
cmp byte [esi + 4], 0
je 0x57dd0a
push dword [esi + 0x28]
call fcn.005575a0
add esp, 4
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], edx
jmp 0x57dd0a
xor eax, eax
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x30], eax
movzx eax, byte [ebx + 2]
push eax
push dword [esi + 0x28]
call fcn.00556ca0
add esp, 8
mov dword [ebp - 0x18], eax
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
test eax, eax
jne 0x580097
test byte [ebp - 0x54], 1
je 0x57c6d7
mov eax, dword [ebp - 0x14]
inc dword [eax + 0x2c]
mov ecx, dword [edi + 0xe0]
test ecx, ecx
je 0x57fafd
mov eax, dword [ebp - 0x30]
test byte [eax + 0x24], 0x20
jne 0x57c6d7
push dword [esi + 0x44]
push dword [esi + 0x40]
push dword [eax]
push dword [ebp - 0x48]
push 9
push dword [edi + 0xdc]
call ecx
mov esi, dword [ebp - 0x14]
add esp, 0x18
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
mov eax, dword [esi + 0x2c]
add dword [edi + 0x60], eax
add ebx, 0x14
mov dword [edi + 0x5c], eax
mov edi, dword [ebp - 0x64]
mov dword [esi + 0x2c], 0
jmp 0x57b0e2
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x70]
mov edx, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x1c]
mov dword [ebp - 0xb4], 0
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
lea edx, [ebp - 0xb4]
push edx
push dword [ebx + 0x10]
push eax
push ecx
call fcn.005834b0
add esp, 0x10
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x57fe22
cmp dword [ebp - 0xb4], eax
jne 0x57b13d
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
mov eax, dword [ebx + 8]
mov ecx, dword [ebp - 0x20]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [ebp - 0x1c]
push edx
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x70]
push dword [eax + ecx*4]
call fcn.00583a20
mov ebx, eax
add esp, 8
mov dword [ebp - 0x18], ebx
test ebx, ebx
jne 0x58009d
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x64]
mov ecx, dword [eax + 0xc]
mov eax, dword [esi + 0x70]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x1c], ebx
mov ebx, dword [ebp - 0x1c]
add ebx, 0x14
jmp 0x57b0e2
push ebx
push esi
call fcn.00549dd0
mov esi, eax
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x70]
mov ecx, dword [ecx + edx*4]
mov ebx, dword [ecx + 0x28]
push ebx
call fcn.005441b0
mov eax, dword [ebx + 0x24]
add esp, 0xc
cmp eax, dword [edi + 0x64]
ja 0x57f6f7
push esi
push eax
push 0
push ebx
call fcn.00581ca0
mov ebx, eax
add esp, 0x10
mov dword [ebp - 0x18], ebx
test ebx, ebx
jne 0x58009a
mov ebx, dword [ebp - 0x1c]
cmp dword [ebx + 0xc], eax
jne 0x57c6d7
mov eax, 0x1000
test word [esi + 8], ax
je 0x57c6d7
push esi
call fcn.00581ee0
mov esi, dword [ebp - 0x14]
add esp, 4
test eax, eax
jne 0x57c9a5
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
push ebx
push esi
call fcn.00549dd0
mov edx, dword [ebx + 4]
add esp, 8
mov ecx, dword [esi + 0x70]
mov dword [ebp - 0x30], eax
mov esi, dword [ecx + edx*4]
cmp byte [esi + 2], 0
je 0x57defc
mov esi, dword [ebp - 0x14]
mov ecx, 1
mov edi, dword [ebp - 0x64]
add ebx, 0x14
mov word [eax + 8], cx
jmp 0x57b0e2
cmp byte [esi + 3], 0
je 0x57df30
mov ecx, dword [esi + 0x40]
add ebx, 0x14
mov edx, dword [ebp - 0x30]
mov edi, dword [ebp - 0x64]
mov dword [ebp - 0xb0], ecx
mov eax, dword [esi + 0x44]
mov esi, dword [ebp - 0x14]
mov dword [ebp - 0xac], eax
mov dword [edx], ecx
mov eax, dword [ebp - 0xac]
mov dword [edx + 4], eax
jmp 0x57b0e2
cmp byte [esi], 2
jne 0x57df82
mov ecx, dword [esi + 0x28]
lea edx, [ebp - 0xb0]
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 - 0x14]
push esi
mov dword [ebp - 0x18], eax
call fcn.00584a80
add esp, 0x10
cmp dword [ebp - 0x18], 0
jne 0x57fe22
mov edx, dword [ebp - 0x30]
add ebx, 0x14
mov ecx, dword [ebp - 0xb0]
mov edi, dword [ebp - 0x64]
mov dword [edx], ecx
mov eax, dword [ebp - 0xac]
mov dword [edx + 4], eax
jmp 0x57b0e2
push esi
call fcn.0057ad10
add esp, 4
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x580097
cmp byte [esi + 2], al
je 0x57dfb5
mov edx, dword [ebp - 0x30]
mov eax, 1
mov esi, dword [ebp - 0x14]
add ebx, 0x14
mov edi, dword [ebp - 0x64]
mov word [edx + 8], ax
jmp 0x57b0e2
push dword [esi + 0x28]
call fcn.005575a0
mov esi, dword [ebp - 0x14]
mov ecx, eax
mov edi, dword [ebp - 0x64]
add esp, 4
mov dword [ebp - 0xac], edx
add ebx, 0x14
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0xb0], ecx
mov dword [edx], ecx
mov eax, dword [ebp - 0xac]
mov dword [edx + 4], eax
jmp 0x57b0e2
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x70]
mov eax, dword [eax + ecx*4]
cmp byte [eax], 0
mov byte [eax + 2], 1
mov dword [eax + 0x1c], 0
jne case.0x57b107.83
push dword [eax + 0x28]
call fcn.005564f0
mov edi, dword [ebp - 0x64]
add esp, 4
add ebx, 0x14
jmp 0x57b0e2
cmp byte [ebp - 0x21], 0x7e
mov eax, dword [esi + 0x70]
mov ecx, dword [ebx + 4]
mov dword [ebp - 0xb8], 0
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 0x28]
jne 0x57e049
mov dword [esi + 0x20], 0xffffffff
cmp byte [eax], 1
je 0x57c6d7
lea ecx, [ebp - 0xb8]
push ecx
push eax
call fcn.005579f0
mov ecx, dword [ebp - 0xb8]
add esp, 8
mov byte [esi + 2], cl
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
mov esi, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x57fe22
cmp dword [ebx + 8], eax
jle case.0x57b107.83
test ecx, ecx
jne 0x57b13d
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
mov eax, dword [esi + 0x70]
mov ecx, dword [ebx + 4]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x28]
lea eax, [ebp - 0xc0]
push eax
push esi
call fcn.00557020
add esp, 8
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x580097
cmp dword [ebp - 0xc0], eax
jne 0x57b13a
push esi
call fcn.00558a50
add esp, 4
test edx, edx
jl 0x57c6d7
jg 0x57e0e5
test eax, eax
jb 0x57c6d7
push edx
push eax
call fcn.0056a6b0
mov esi, dword [ebp - 0x14]
add esp, 8
cwde
cmp eax, dword [ebx + 0xc]
jge case.0x57b107.83
mov dword [ebp - 0xc0], 1
jmp 0x57b13d
inc dword [esi + 0xa8]
mov eax, dword [esi + 0x70]
mov ecx, dword [ebx + 4]
mov dword [ebp - 0xa0], 1
mov esi, dword [eax + ecx*4]
lea eax, [ebp - 0xa0]
push eax
cmp byte [esi], 1
jne 0x57e138
push esi
call fcn.005839b0
jmp 0x57e14b
push dword [esi + 0x28]
call fcn.00557020
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
mov ecx, eax
add esp, 8
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x580097
mov eax, dword [ebp - 0xa0]
mov byte [esi + 2], al
mov esi, dword [ebp - 0x14]
test eax, eax
jne 0x57b13d
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x70]
mov ecx, dword [eax + ecx*4]
push ecx
push edi
mov dword [ebp - 0x30], ecx
call fcn.00583730
mov esi, eax
mov dword [ebp - 0x18], esi
jmp 0x57e1c6
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x70]
cmp dword [eax + ecx*4], 0
je case.0x57b107.83
mov eax, dword [esi + 0x70]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x30], ecx
push dword [eax + 0xc]
mov eax, dword [eax + 0x10]
push dword [ecx + 0x28]
call eax
mov ebx, dword [ebp - 0x1c]
mov esi, eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x30]
add esp, 8
mov dword [eax + 0x1c], 0
test esi, esi
jne 0x57e1f4
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x1c]
mov byte [eax + 2], 0
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 2]
inc dword [ecx + eax*4 + 0xa0]
jmp case.0x57b107.13
cmp esi, 0x65
jne 0x580097
mov dword [ebp - 0x18], 0
mov byte [eax + 2], 1
jmp 0x57f779
mov eax, dword [esi + 0x70]
mov ecx, dword [ebx + 4]
mov edx, dword [ebp - 0x20]
mov ebx, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x30], ebx
test byte [ecx + 2], 1
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
je 0x57e234
mov eax, dword [ebp - 0x14]
inc dword [eax + 0x2c]
mov eax, 0x4000
test word [esi + 8], ax
je 0x57e258
push esi
call fcn.00581b70
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x58009a
mov ecx, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x30]
cmp byte [ecx], 0x7f
jne 0x57e26b
push esi
push ebx
call fcn.00583ad0
add esp, 8
mov ebx, eax
jmp 0x57e2d3
mov eax, dword [esi + 0xc]
cdq
mov dword [ebp - 0x220], eax
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x228], eax
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x21c], edx
mov edx, dword [ebp - 0x20]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp - 0x214], eax
mov ax, word [ecx + 0x10]
mov word [ebp - 0x210], ax
movzx eax, word [ecx + 2]
test al, 0x10
je 0x57e2ae
mov ecx, dword [ebx + 0x20]
jmp 0x57e2b0
xor ecx, ecx
push ecx
and eax, 0xa
push eax
lea eax, [ebp - 0x228]
push eax
push dword [ebx + 0x28]
call fcn.00557280
mov ebx, eax
add esp, 0x10
mov eax, dword [ebp - 0x30]
mov dword [eax + 0x1c], 0
mov esi, dword [ebp - 0x14]
mov dword [ebp - 0x18], ebx
test ebx, ebx
jne 0x58009d
mov ebx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x70]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
mov dword [ebp - 0x148], eax
mov ax, word [ecx + 0xc]
mov word [ebp - 0x140], ax
mov eax, dword [ecx + 8]
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x54], edx
mov byte [ebp - 0x13e], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x144], eax
lea eax, [ebp - 0xf8]
push eax
push 0
push 0
push 0
lea eax, [ebp - 0x148]
push eax
push edx
call fcn.00557b40
mov ebx, eax
add esp, 0x18
mov dword [ebp - 0x18], ebx
test ebx, ebx
jne 0x58009a
cmp dword [ebp - 0xf8], eax
jne 0x57e37a
push 4
push dword [ebp - 0x54]
call fcn.00556ca0
mov ebx, eax
add esp, 8
mov dword [ebp - 0x18], ebx
test ebx, ebx
jne 0x58009a
mov ebx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x64]
add ebx, 0x14
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
mov esi, dword [ebp - 0x14]
jmp 0x57b0e2
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x70]
mov esi, dword [eax + ecx*4]
push esi
call fcn.0057ad10
mov ebx, eax
add esp, 4
mov dword [ebp - 0x18], ebx
test ebx, ebx
jne 0x58009a
cmp byte [esi + 2], al
jne 0x57e461
lea eax, [ebp - 0xcc]
xorps xmm0, xmm0
push eax
push dword [esi + 0x28]
movlpd qword [ebp - 0xcc], xmm0
push edi
call fcn.00581000
mov ebx, eax
add esp, 0xc
mov dword [ebp - 0x18], ebx
test ebx, ebx
jne 0x58009a
mov eax, dword [ebp - 0x1c]
cmp byte [eax], 0x82
jne 0x57e435
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x64]
add ebx, 0x14
mov eax, dword [eax + 0x70]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebp - 0xcc]
mov dword [ecx + 0x40], eax
mov eax, dword [ebp - 0xc8]
mov dword [ecx + 0x44], eax
mov eax, dword [ebp - 0x1c]
mov word [ecx + 2], 0x100
mov eax, dword [eax + 0x10]
mov dword [ecx + 0x24], esi
mov esi, dword [ebp - 0x14]
mov dword [ecx + 0x18], eax
jmp 0x57b0e2
mov esi, dword [ebp - 0x14]
push eax
push esi
call fcn.00549dd0
mov ecx, dword [ebp - 0xcc]
add esp, 8
mov ebx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x64]
add ebx, 0x14
mov dword [eax], ecx
mov ecx, dword [ebp - 0xc8]
mov dword [eax + 4], ecx
jmp 0x57b0e2
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.00582190
mov ebx, dword [ebp - 0x1c]
add esp, 4
mov esi, dword [ebp - 0x14]
add ebx, 0x14
mov edi, dword [ebp - 0x64]
jmp 0x57b0e2
mov eax, dword [esi + 0x70]
mov ecx, dword [ebx + 4]
cmp byte [ebp - 0x21], 0x28
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x90], 0
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x2c]
mov dword [ebp - 0x158], eax
mov eax, dword [ebp - 0x1c]
mov ax, word [eax + 0x10]
mov word [ebp - 0x150], ax
sbb al, al
mov byte [ebp - 0x14e], al
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp - 0x154], eax
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x158]
push eax
push ecx
push edi
call fcn.00580f30
mov ebx, dword [ebp - 0x1c]
add esp, 0x10
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x90]
test byte [ebx], 1
jne 0x57e502
neg eax
jmp 0x57e503
inc eax
cmp dword [ebp - 0x18], 0
mov dword [ebp - 0x90], eax
jne 0x57fe22
test eax, eax
jg 0x57b13d
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
push ebx
push esi
call fcn.00549dd0
mov esi, eax
add esp, 8
mov eax, 1
mov word [esi + 8], ax
mov ecx, dword [edi + 0xb0]
inc ecx
cmp dword [edi + 0xa4], ecx
jg 0x57fdb8
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0xbc]
push edx
mov dword [ebp - 0xbc], 0
mov ecx, dword [eax + 0xc]
push dword [eax + 4]
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x54], ecx
add ecx, ecx
push dword [eax + ecx*8 + 4]
call fcn.00556fb0
mov ecx, dword [ebp - 0xbc]
add esp, 0xc
mov dword [ebp - 0x18], eax
mov eax, 4
mov ebx, dword [ebp - 0x18]
mov word [esi + 8], ax
mov eax, ecx
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
test ebx, ebx
jne 0x58009a
test ecx, ecx
je 0x57c6d4
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x54]
push dword [eax + 4]
push ecx
push ebx
push edi
call fcn.005716d0
mov esi, dword [ebp - 0x14]
mov al, bl
mov ebx, dword [ebp - 0x1c]
add esp, 0x10
mov edi, dword [ebp - 0x64]
add al, 1
mov byte [ebp - 0x6d], al
add ebx, 0x14
jmp 0x57b0e2
xor ecx, ecx
mov dword [ebp - 0xd4], 0
cmp dword [ebx + 0xc], ecx
lea eax, [ebp - 0xd4]
cmove eax, ecx
push eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 8]
push dword [eax + 4]
mov eax, dword [edi + 0x10]
add ecx, ecx
push dword [eax + ecx*8 + 4]
call fcn.00556510
mov ebx, dword [ebp - 0x1c]
add esp, 0xc
mov dword [ebp - 0x18], eax
cmp dword [ebx + 0xc], 0
je 0x57e637
mov eax, dword [ebp - 0xd4]
add dword [esi + 0x2c], eax
mov ecx, dword [ebx + 0xc]
test ecx, ecx
jle 0x57e637
mov edi, dword [ebp - 0x20]
lea ecx, [ecx + ecx*4]
cdq
add dword [edi + ecx*8], eax
mov eax, edi
mov edi, dword [ebp - 0x64]
adc dword [eax + ecx*8 + 4], edx
cmp dword [ebp - 0x18], 0
jne 0x57fe22
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x70]
mov eax, dword [eax + ecx*4]
cmp byte [eax], 1
jne 0x57e671
push dword [eax + 0x28]
push edi
call fcn.005837c0
mov edi, dword [ebp - 0x64]
add esp, 8
add ebx, 0x14
jmp 0x57b0e2
mov eax, dword [eax + 0x28]
push 0
push dword [eax + 0x3c]
push dword [eax + 8]
call fcn.00556510
add esp, 0xc
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x57fe22
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
push ebx
push esi
call fcn.00549dd0
mov esi, eax
mov dword [ebp - 0xd0], 0
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 4]
push dword [eax + 0xc]
shl ecx, 4
lea eax, [ebp - 0xd0]
add ecx, dword [edi + 0x10]
push eax
push dword [ecx + 4]
call fcn.00556bd0
mov ebx, eax
add esp, 0x14
mov dword [ebp - 0x18], ebx
test ebx, ebx
jne 0x58009a
mov eax, dword [ebp - 0xd0]
mov ebx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x64]
add ebx, 0x14
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
mov esi, dword [ebp - 0x14]
jmp 0x57b0e2
inc byte [edi + 0x52]
push 0
push 0
push 0
push dword [ebx + 0x10]
push edi
call fcn.00527820
dec byte [edi + 0x52]
add esp, 0x14
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x57fe22
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
mov ecx, dword [ebx + 4]
lea eax, [esi + 0x6c]
mov dword [ebp - 0x124], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x120], ecx
add ecx, ecx
mov dword [ebp - 0x128], edi
push dword [eax + 0x10]
mov eax, dword [edi + 0x10]
push str.sqlite_master
push dword [eax + ecx*8]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push edi
call fcn.0056a820
mov esi, eax
add esp, 0x14
test esi, esi
je 0x57fdcc
push 0
lea eax, [ebp - 0x128]
mov byte [edi + 0x9d], 1
push eax
push fcn.00567bb0
push esi
push edi
mov dword [ebp - 0x11c], 0
call fcn.00527820
test eax, eax
push esi
cmove eax, dword [ebp - 0x11c]
push edi
mov dword [ebp - 0x18], eax
call fcn.0055bda0
mov ebx, dword [ebp - 0x18]
add esp, 0x1c
mov byte [edi + 0x9d], 0
test ebx, ebx
jne 0x57fdd6
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x14]
add ebx, 0x14
mov edi, dword [ebp - 0x64]
jmp 0x57b0e2
push dword [ebx + 4]
push edi
call fcn.00554510
add esp, 8
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x57fe22
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
push dword [ebx + 0x10]
push dword [ebx + 4]
push edi
call fcn.00577030
mov edi, dword [ebp - 0x64]
add esp, 0xc
add ebx, 0x14
jmp 0x57b0e2
push dword [ebx + 0x10]
push dword [ebx + 4]
push edi
call fcn.00576f90
mov edi, dword [ebp - 0x64]
add esp, 0xc
add ebx, 0x14
jmp 0x57b0e2
push dword [ebx + 0x10]
push dword [ebx + 4]
push edi
call fcn.005770a0
mov edi, dword [ebp - 0x64]
add esp, 0xc
add ebx, 0x14
jmp 0x57b0e2
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebx + 0x10]
lea esi, [eax + eax*4]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0xec]
push eax
mov eax, dword [edx + esi*8]
inc eax
push eax
mov eax, dword [ebp - 0x1c]
push dword [eax + 8]
lea eax, [ecx + 4]
push eax
mov eax, dword [ebp - 0x1c]
movzx ecx, word [eax + 2]
mov eax, dword [edi + 0x10]
add ecx, ecx
push dword [eax + ecx*8 + 4]
call fcn.005575c0
push dword [ebp - 0x30]
mov ebx, eax
call fcn.00582190
mov eax, dword [ebp - 0xec]
add esp, 0x18
test eax, eax
je 0x57c6d4
test ebx, ebx
je 0x57c9a2
mov edi, dword [ebp - 0x20]
dec eax
push fcn.0052c640
push 1
cdq
sub dword [edi + esi*8], eax
push 0xffffffffffffffff
sbb dword [edi + esi*8 + 4], edx
push ebx
push dword [ebp - 0x30]
call fcn.00582290
mov ebx, dword [ebp - 0x1c]
add esp, 0x14
mov esi, dword [ebp - 0x14]
add ebx, 0x14
mov edi, dword [ebp - 0x64]
jmp 0x57b0e2
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x20]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x20
lea esi, [ecx + eax*8]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 8]
lea ebx, [eax + eax*4]
jne 0x57e902
push esi
call fcn.005821c0
add esp, 4
test byte [esi + 8], 0x20
je 0x57c9a2
mov edi, dword [ebp - 0x20]
push dword [edi + ebx*8 + 4]
push dword [edi + ebx*8]
push dword [esi]
call fcn.00571810
mov ebx, dword [ebp - 0x1c]
add esp, 0xc
mov esi, dword [ebp - 0x14]
add ebx, 0x14
mov edi, dword [ebp - 0x64]
jmp 0x57b0e2
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x20]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x20
lea esi, [ecx + eax*8]
je 0x57e97b
lea eax, [ebp - 0x130]
push eax
push dword [esi]
call fcn.005718b0
add esp, 8
test eax, eax
je 0x57e97b
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
push dword [ebp - 0x12c]
mov eax, dword [eax + 0xc]
push dword [ebp - 0x130]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.00582150
mov ebx, dword [ebp - 0x1c]
add esp, 0xc
jmp 0x57f779
push esi
call fcn.00582190
add esp, 4
jmp case.0x57b107.13
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x20]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x20
lea esi, [ecx + eax*8]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0xc]
lea ebx, [eax + eax*4]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x30], eax
jne 0x57e9c4
push esi
call fcn.005821c0
add esp, 4
test byte [esi + 8], 0x20
je 0x57c9a2
mov eax, dword [ebp - 0x30]
mov edi, dword [ebp - 0x20]
test eax, eax
je 0x57e9ea
push dword [edi + ebx*8 + 4]
push dword [edi + ebx*8]
push eax
push dword [esi]
call fcn.00571910
add esp, 0x10
test eax, eax
jne 0x57ed7a
mov eax, dword [ebp - 0x30]
test eax, eax
js 0x57c6d4
jmp 0x57e905
cmp word [ebx + 2], 0
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebx + 0x10]
mov edx, dword [ebp - 0x14]
lea eax, [eax + eax*4]
mov dword [ebp - 0x38], esi
lea ecx, [ecx + eax*8]
mov dword [ebp - 0x4c], ecx
je 0x57ea34
mov eax, dword [edx + 0xc4]
mov ecx, dword [esi + 0x14]
test eax, eax
je 0x57ea31
cmp dword [eax + 0x1c], ecx
je 0x57fbd2
mov eax, dword [eax + 4]
test eax, eax
jne 0x57ea21
mov ecx, dword [ebp - 0x4c]
mov eax, dword [edx + 0xcc]
cmp eax, dword [edi + 0x8c]
jge 0x57fdf0
test byte [ecx + 8], 0x40
jne 0x57ebe5
mov ecx, dword [esi + 0xc]
mov esi, dword [esi + 8]
add esi, ecx
test ecx, ecx
jne 0x57ea5d
inc esi
lea eax, [esi + 2]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*2]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
lea eax, [eax + ecx*4]
cdq
push edx
push eax
push edi
call fcn.0055bed0
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x57c9a2
push dword [ebp - 0x4c]
call fcn.00582120
mov eax, dword [ebp - 0x4c]
mov ecx, 0x40
add esp, 4
mov word [eax + 8], cx
mov dword [eax], ebx
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
sub ecx, dword [ebp - 0x5c]
mov dword [ebx], eax
mov eax, dword [ebp - 0x38]
mov dword [ebx + 0x3c], esi
mov eax, dword [eax + 0xc]
mov dword [ebx + 0x40], eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x14]
mov dword [ebx + 0x30], eax
mov eax, dword [edx + 0x5c]
mov dword [ebx + 0x10], eax
mov eax, dword [edx + 0x18]
mov dword [ebx + 0x38], eax
mov eax, dword [edx + 0x70]
mov dword [ebx + 0x14], eax
mov eax, dword [edx + 0x1c]
mov dword [ebx + 0x2c], eax
mov eax, dword [edx + 0x58]
mov dword [ebx + 8], eax
mov eax, dword [edx + 0x88]
mov dword [ebx + 0x34], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov dword [ebx + 0x1c], eax
lea eax, [esi + 2]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
lea eax, [ebx + 0x50]
cmp eax, ecx
je 0x57eb2e
mov esi, 0x80
lea ecx, [ecx]
mov word [eax + 8], si
mov dword [eax + 0x20], edi
add eax, 0x28
cmp eax, ecx
jne 0x57eb20
mov esi, dword [ebp - 0x38]
inc dword [edx + 0xcc]
mov eax, dword [edx + 0xc4]
mov dword [ebx + 4], eax
mov eax, dword [edi + 0x20]
mov dword [ebx + 0x20], eax
mov eax, dword [edi + 0x24]
lea edi, [ebx + 0x50]
mov dword [ebx + 0x24], eax
mov eax, dword [edx + 0x2c]
mov dword [ebx + 0x44], eax
mov eax, dword [edx]
mov dword [ebp - 0x20], edi
mov eax, dword [eax + 0x5c]
mov dword [ebx + 0x48], eax
mov eax, dword [edx + 0xd8]
mov dword [ebx + 0x28], eax
mov dword [edx + 0xd8], 0
mov dword [edx + 0x2c], 0
mov dword [edx + 0xc4], ebx
mov dword [edx + 0x5c], edi
mov eax, dword [ebx + 0x3c]
mov dword [edx + 0x18], eax
movzx eax, word [ebx + 0x40]
mov dword [edx + 0x1c], eax
mov eax, dword [edx + 0x18]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
mov dword [edx + 0x70], ecx
mov eax, dword [esi + 0xc]
lea ecx, [ecx + eax*4]
mov dword [ebx + 0x18], ecx
mov eax, dword [esi + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
push 0
push ecx
call fcn.00723180
mov eax, dword [ebp - 0x14]
add esp, 0xc
mov edx, dword [esi]
mov edi, dword [ebp - 0x64]
mov dword [ebp - 0x5c], edx
mov dword [eax + 0x58], edx
mov eax, dword [esi + 4]
lea ebx, [edx - 0x14]
mov esi, dword [ebp - 0x14]
add ebx, 0x14
mov dword [esi + 0x88], eax
jmp 0x57b0e2
mov ebx, dword [ecx]
jmp 0x57eb31
push ebx
push esi
call fcn.00549dd0
mov esi, eax
mov eax, dword [ebp - 0x14]
push 0x1000
mov eax, dword [eax + 0xc4]
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]
add ecx, dword [ebx + 4]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*8]
push eax
push esi
call fcn.005824a0
mov esi, dword [ebp - 0x14]
add esp, 0x14
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
test dword [edi + 0x1c], 0x80000
mov eax, dword [ebx + 8]
cdq
je 0x57ec58
add dword [edi + 0x1c0], eax
adc dword [edi + 0x1c4], edx
add ebx, 0x14
mov edi, dword [ebp - 0x64]
jmp 0x57b0e2
cmp dword [ebx + 4], 0
je 0x57ec75
add dword [edi + 0x1b8], eax
adc dword [edi + 0x1bc], edx
add ebx, 0x14
mov edi, dword [ebp - 0x64]
jmp 0x57b0e2
add dword [esi + 0x40], eax
mov edi, dword [ebp - 0x64]
adc dword [esi + 0x44], edx
add ebx, 0x14
jmp 0x57b0e2
cmp dword [ebx + 4], 0
je 0x57ec9a
mov eax, dword [edi + 0x1b8]
or eax, dword [edi + 0x1bc]
jmp 0x57eca0
mov eax, dword [esi + 0x40]
or eax, dword [esi + 0x44]
jne case.0x57b107.83
mov eax, dword [edi + 0x1c0]
or eax, dword [edi + 0x1c4]
je 0x57b13d
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
mov edx, dword [esi + 0xc4]
test edx, edx
je 0x57eceb
mov eax, dword [edx + 4]
test eax, eax
je 0x57ecdd
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x57ecd4
mov eax, dword [ebx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
lea edi, [eax + ecx*8]
jmp 0x57ecf7
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x20]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
push edi
call fcn.00581e70
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
push esi
call fcn.00581e70
mov ecx, dword [esi + 4]
add esp, 8
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x57c6d4
jl 0x57ed2d
cmp dword [edi], eax
jae 0x57c6d4
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x14]
add ebx, 0x14
mov dword [edi], eax
mov dword [edi + 4], ecx
mov edi, dword [ebp - 0x64]
jmp 0x57b0e2
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x20]
lea esi, [eax + eax*4]
mov edi, dword [edx + esi*8 + 4]
mov ecx, dword [edx + esi*8]
test edi, edi
jl 0x57c6d7
jg 0x57ed65
test ecx, ecx
je 0x57c6d7
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0xc]
cdq
sub ecx, eax
sbb edi, edx
mov edx, dword [ebp - 0x20]
mov dword [edx + esi*8], ecx
mov dword [edx + esi*8 + 4], edi
mov ebx, dword [ebp - 0x1c]
jmp 0x57b13a
mov eax, dword [ebx + 4]
push dword [ebp - 0x1c]
push dword [ebp - 0x14]
lea esi, [eax + eax*4]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0xc]
lea ebx, [eax + eax*4]
call fcn.00549dd0
mov edx, dword [ebp - 0x20]
add esp, 8
mov edi, eax
mov ecx, dword [edx + esi*8 + 4]
mov eax, dword [edx + esi*8]
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0xdc], ecx
test ecx, ecx
jl 0x57ee17
jg 0x57edc1
test eax, eax
je 0x57ee17
mov ecx, dword [edx + ebx*8 + 4]
mov eax, dword [edx + ebx*8]
test ecx, ecx
jl 0x57edd2
jg 0x57ede0
test eax, eax
jne 0x57ede0
xorps xmm0, xmm0
movlpd qword [ebp - 0x58], xmm0
mov ecx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x58]
push ecx
push eax
lea eax, [ebp - 0xe0]
push eax
call fcn.005538c0
add esp, 0xc
test eax, eax
jne 0x57ee17
mov eax, dword [ebp - 0xe0]
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x14]
add ebx, 0x14
mov dword [edi], eax
mov eax, dword [ebp - 0xdc]
mov dword [edi + 4], eax
mov edi, dword [ebp - 0x64]
jmp 0x57b0e2
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x14]
add ebx, 0x14
mov dword [edi], 0xffffffff
mov dword [edi + 4], 0xffffffff
mov edi, dword [ebp - 0x64]
jmp 0x57b0e2
mov eax, dword [ebx + 4]
mov edi, dword [ebp - 0x20]
lea esi, [eax + eax*4]
mov ecx, dword [edi + esi*8]
mov eax, ecx
mov edx, dword [edi + esi*8 + 4]
or eax, edx
je 0x57c6d7
test edx, edx
jl 0x57b13a
jg 0x57ee61
test ecx, ecx
je 0x57b13a
sub ecx, 1
mov dword [edi + esi*8], ecx
sbb edx, 0
jmp 0x57b136
mov eax, dword [ebx + 4]
mov edi, dword [ebp - 0x20]
lea ecx, [eax + eax*4]
mov edx, dword [edi + ecx*8 + 4]
mov eax, dword [edi + ecx*8]
cmp edx, 0x80000000
jl 0x57ee9a
jg 0x57ee8d
test eax, eax
je 0x57ee9a
sub eax, 1
mov dword [edi + ecx*8], eax
sbb edx, 0
mov dword [edi + ecx*8 + 4], edx
mov eax, dword [edi + ecx*8]
or eax, dword [edi + ecx*8 + 4]
je 0x57b13d
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
movzx ebx, word [ebx + 2]
push 0
lea eax, [ebx*4 + 0x1c]
push eax
push edi
call fcn.0055bdf0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x57c9a2
mov eax, dword [ebp - 0x1c]
mov dword [esi + 8], 0
mov ecx, dword [eax + 0x10]
mov dword [esi + 4], ecx
mov ecx, eax
sub ecx, dword [ebp - 0x5c]
mov eax, 0x66666667
imul ecx
mov byte [esi + 0x1a], bl
mov ebx, dword [ebp - 0x1c]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0x14]
mov dword [esi + 0xc], eax
mov word [ebx], 0xf096
mov dword [ebx + 0x10], esi
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebx + 0x10]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x54], eax
cmp dword [esi + 8], eax
je 0x57ef5d
movzx ecx, byte [esi + 0x1a]
dec ecx
mov dword [esi + 8], eax
js 0x57ef5d
mov ebx, dword [ebp - 0x20]
lea edx, [ecx + 7]
lea edx, [esi + edx*4]
lea ebx, [ebx]
mov eax, dword [ebp - 0x1c]
lea edx, [edx - 4]
mov eax, dword [eax + 8]
add eax, ecx
dec ecx
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [edx + 4], eax
jns 0x57ef40
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x54]
inc dword [eax + 0xc]
mov eax, 1
mov word [ebp - 0x248], ax
lea eax, [ebp - 0x250]
mov dword [ebp - 0x230], edi
mov dword [ebp - 0x238], 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 0x57efe7
cmp dword [esi + 0x14], 0
je 0x57efce
lea eax, [ebp - 0x250]
push eax
call fcn.005251b0
push eax
push 0x7a13f4
push dword [ebp - 0x14]
call fcn.0057afd0
mov eax, dword [esi + 0x14]
add esp, 0x10
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x250]
push eax
call fcn.00582120
add esp, 4
cmp dword [ebp - 0x18], 0
jne 0x580097
cmp byte [esi + 0x18], 0
je 0x57c6d7
mov eax, dword [ebx - 0x10]
test eax, eax
je 0x57c6d7
mov ecx, dword [ebp - 0x20]
lea eax, [eax + eax*4]
push 0
push 1
lea eax, [ecx + eax*8]
push eax
call fcn.00582150
mov esi, dword [ebp - 0x14]
add esp, 0xc
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x20]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [ebp - 0x1c]
push dword [eax + 0x10]
push esi
call fcn.00581bd0
add esp, 8
mov dword [ebp - 0x18], eax
push esi
test eax, eax
jne 0x57fe0b
call fcn.005825a0
mov esi, dword [ebp - 0x14]
add esp, 4
test eax, eax
jne 0x57f6fa
mov ebx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
lea eax, [ebp - 8]
mov dword [ebp - 0x10], 0
push eax
lea eax, [ebp - 0xc]
mov dword [ebp - 8], 0xffffffff
push eax
push dword [ebx + 8]
mov dword [ebp - 0xc], 0xffffffff
push dword [ebx + 4]
push edi
call fcn.005592c0
mov ebx, eax
add esp, 0x14
mov dword [ebp - 0x18], ebx
test ebx, ebx
je 0x57f0b4
cmp ebx, 5
jne 0x58009d
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x10], 1
mov eax, dword [ebp - 0x1c]
xor esi, esi
mov ecx, dword [ebp - 0x20]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [ebp + esi*4 - 0x10]
cdq
push edx
push eax
push edi
call fcn.00582150
inc esi
add esp, 0xc
add edi, 0x28
cmp esi, 3
jl 0x57f0c5
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x14]
add ebx, 0x14
mov edi, dword [ebp - 0x64]
jmp 0x57b0e2
push ebx
push esi
call fcn.00549dd0
mov ecx, dword [edi + 0x10]
add esp, 8
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x1c]
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 - 0x54], eax
mov ecx, dword [eax + 4]
mov ebx, dword [ecx]
movzx ecx, byte [ebx + 5]
cmove esi, ecx
mov dword [ebp - 0x28], ecx
cmp byte [ebx + 0x10], 3
jae 0x57f13f
mov eax, dword [ebx + 0x40]
cmp dword [eax], 0
je 0x57f141
cmp dword [ebx + 0x4c], 0
jl 0x57f141
jg 0x57f13f
cmp dword [ebx + 0x48], 0
jbe 0x57f141
mov esi, ecx
cmp byte [ebx + 0xf], 0
mov eax, 0x799e88
jne 0x57f152
mov eax, dword [ebx + 0xa8]
cmp esi, 5
jne 0x57f17e
push eax
call fcn.005763d0
add esp, 4
test eax, eax
je 0x57f171
push ebx
call fcn.0056d070
add esp, 4
test eax, eax
jne 0x57f17b
mov ecx, dword [ebp - 0x28]
mov esi, ecx
jmp 0x57f1fb
mov ecx, dword [ebp - 0x28]
cmp esi, ecx
je 0x57f1f8
cmp ecx, 5
je 0x57f18c
cmp esi, 5
jne 0x57f1f8
cmp byte [edi + 0x47], 0
je 0x57fe2a
cmp dword [edi + 0xa4], 1
jg 0x57fe2a
cmp ecx, 5
jne 0x57f1c5
push edi
push ebx
call fcn.0056bc70
add esp, 8
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x57f204
push esi
push ebx
call fcn.0056cb10
add esp, 8
jmp 0x57f1db
cmp ecx, 4
jne 0x57f1d5
push 2
push ebx
call fcn.0056cb10
add esp, 8
cmp dword [ebp - 0x18], 0
jne 0x57f204
xor eax, eax
cmp esi, 5
sete al
inc eax
push eax
push dword [ebp - 0x54]
call fcn.00558f70
mov ecx, dword [ebp - 0x28]
add esp, 8
mov dword [ebp - 0x18], eax
jmp 0x57f1fe
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x57f209
jmp 0x57f207
mov ecx, dword [ebp - 0x28]
mov esi, ecx
push esi
push ebx
call fcn.0056cb10
mov ebx, dword [ebp - 0x30]
add esp, 8
mov ecx, 0xa02
mov word [ebx + 8], cx
cmp eax, 6
jne 0x57f228
xor eax, eax
jmp 0x57f22f
mov eax, dword [eax*4 + 0x7b8478]
push eax
mov dword [ebx + 0x10], eax
call fcn.005763d0
add esp, 4
mov dword [ebx + 0xc], eax
mov byte [ebx + 0xa], 1
mov esi, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x18]
test ebx, ebx
jne 0x58009d
mov ebx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
push dword [ebx + 4]
lea eax, [esi + 0x6c]
push edi
push eax
call fcn.00571f90
add esp, 0xc
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x57fe22
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x10]
add ecx, ecx
push dword [eax + ecx*8 + 4]
call fcn.00557180
mov ecx, eax
add esp, 4
mov dword [ebp - 0x18], ecx
test ecx, ecx
je case.0x57b107.83
cmp ecx, 0x65
jne 0x57fe22
mov dword [ebp - 0x18], 0
jmp 0x57b13d
cmp dword [ebx + 4], 0
jne 0x57f2d4
push edi
call fcn.0055dd80
mov edi, dword [ebp - 0x64]
add esp, 4
add ebx, 0x14
jmp 0x57b0e2
or dword [esi + 0x94], 1
add ebx, 0x14
mov edi, dword [ebp - 0x64]
jmp 0x57b0e2
mov al, byte [ebx + 0xc]
mov byte [ebp - 0xf4], al
test al, al
jne 0x57f300
test dword [edi + 0x1c], 0x400
jne case.0x57b107.83
mov eax, dword [ebp - 0x1c]
push dword [ebp - 0xf4]
mov ecx, dword [eax + 4]
push dword [eax + 8]
mov eax, dword [edi + 0x10]
add ecx, ecx
push dword [eax + ecx*8 + 4]
call fcn.00557a70
mov ebx, eax
add esp, 0xc
mov dword [ebp - 0x18], ebx
test ebx, ebx
jne 0x57fe56
mov ebx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
mov esi, dword [ebx + 0x10]
push esi
push edi
call fcn.00584100
add esp, 8
mov ecx, eax
mov dword [ebp - 0x18], ecx
test esi, esi
je 0x57f365
push dword [esi + 8]
mov esi, dword [ebp - 0x14]
push esi
call fcn.00584a80
mov ecx, dword [ebp - 0x18]
add esp, 8
jmp 0x57f368
mov esi, dword [ebp - 0x14]
test ecx, ecx
jne 0x57fe22
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
mov eax, dword [ebx + 8]
xorps xmm0, xmm0
mov ecx, dword [ebp - 0x20]
movq qword [ebp - 0x1c0], xmm0
movdqu xmmword [ebp - 0x1e0], xmm0
lea eax, [eax + eax*4]
mov dword [ebp - 0x1c0], edi
lea eax, [ecx + eax*8]
push eax
lea eax, [ebp - 0x1e0]
push eax
movdqu xmmword [ebp - 0x1d0], xmm0
call fcn.00581af0
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x1e0]
push eax
call fcn.005251b0
add esp, 0xc
test eax, eax
je 0x57f3e5
lea ecx, [esi + 0x6c]
push ecx
push eax
mov eax, dword [ebp - 0x1c]
push dword [eax + 4]
push edi
call fcn.00584370
mov ebx, dword [ebp - 0x1c]
add esp, 0x10
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x1e0]
push eax
call fcn.00582120
add esp, 4
cmp dword [ebp - 0x18], 0
jne 0x57fe22
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
inc dword [edi + 0xb0]
push dword [ebx + 0x10]
push dword [ebx + 4]
push edi
call fcn.00584450
dec dword [edi + 0xb0]
add esp, 0xc
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x57fe22
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x98], 0
mov esi, dword [eax + 8]
test esi, esi
je 0x57fe8e
mov eax, dword [esi]
mov dword [ebp - 0x54], eax
test eax, eax
je 0x57fe8e
mov eax, dword [eax + 0x18]
lea ecx, [ebp - 0x98]
push ecx
push esi
call eax
push esi
push dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
call fcn.00584a80
mov ebx, dword [ebp - 0x18]
add esp, 0x10
test ebx, ebx
jne 0x58009a
mov eax, dword [ebp - 0x98]
push 2
push 0xffffffffffffffff
push ebx
mov dword [eax], esi
mov eax, dword [ebp - 0x1c]
push dword [eax + 4]
push dword [ebp - 0x14]
call fcn.00531b80
add esp, 0x14
test eax, eax
je 0x57fe78
mov ecx, dword [ebp - 0x98]
mov ebx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x64]
mov dword [eax + 0x28], ecx
inc dword [esi + 4]
add ebx, 0x14
mov esi, dword [ebp - 0x14]
jmp 0x57b0e2
mov eax, dword [ebx + 0xc]
mov ebx, dword [ebp - 0x20]
add ebx, 0x28
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x1c]
lea ebx, [ebx + edx*8]
movd xmm0, ebx
mov dword [ebp - 0x48], ebx
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x70]
mov esi, dword [ebx]
pshufd xmm3, xmm0, 0
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [ebp - 0x60], eax
mov eax, dword [eax + 0x28]
mov dword [ebp - 0x4c], eax
mov eax, dword [eax]
mov dword [ebp - 0x38], eax
mov eax, dword [eax]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + edx*8]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x14]
mov ebx, dword [eax + 0x60]
test esi, esi
jle 0x57f5cb
cmp esi, 8
jb 0x57f5ae
cmp dword [0x8a4054], 2
jl 0x57f5ae
movdqa xmm2, xmmword [0x7c0940]
mov eax, esi
and eax, reloc.OLEAUT32.dll_VariantInit
jns 0x57f546
dec eax
or eax, 0xfffffff8
inc eax
movdqa xmm1, xmmword [0x7c0950]
mov edx, esi
sub edx, eax
mov dword [ebp - 0x54], edx
mov edx, ebx
mov edi, dword [ebp - 0x54]
lea ebx, [ebx]
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
movdqu xmmword [edx - 0x20], xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movdqu xmmword [edx - 0x10], xmm0
cmp ecx, edi
jl 0x57f560
mov edi, dword [ebp - 0x64]
cmp ecx, esi
jge 0x57f5cb
mov edx, dword [ebp - 0x48]
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov edi, edi
mov dword [ebx + ecx*4], eax
inc ecx
add eax, 0x28
cmp ecx, esi
jl 0x57f5c0
mov eax, dword [ebp - 0x1c]
push ebx
push esi
mov esi, dword [ebp - 0x4c]
push dword [eax + 0x10]
mov eax, dword [ebp - 0x30]
push dword [ebp - 0x2c]
push esi
mov eax, dword [eax + 0x20]
call eax
push dword [ebp - 0x38]
mov dword [ebp - 0x18], eax
push dword [ebp - 0x14]
call fcn.00584a80
mov ebx, dword [ebp - 0x18]
add esp, 0x1c
test ebx, ebx
jne 0x58009a
mov eax, dword [ebp - 0x30]
push esi
mov eax, dword [eax + 0x28]
call eax
mov ecx, dword [ebp - 0x60]
add esp, 4
mov byte [ecx + 2], bl
test eax, eax
je 0x57c6d4
mov ebx, dword [ebp - 0x1c]
jmp 0x57b13a
mov eax, dword [esi + 0x70]
mov ecx, dword [ebx + 4]
mov edx, dword [ebp - 0x20]
mov ebx, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x1c]
cmp byte [ebx + 2], 0
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
je 0x57f658
push esi
call fcn.00582190
mov ebx, dword [ebp - 0x1c]
add esp, 4
mov esi, dword [ebp - 0x14]
add ebx, 0x14
mov edi, dword [ebp - 0x64]
jmp 0x57b0e2
cmp word [ecx + 2], 0
xorps xmm0, xmm0
mov eax, dword [ebx + 0x28]
mov eax, dword [eax]
mov dword [ebp - 0x30], eax
mov eax, dword [eax]
movdqu xmmword [ebp - 0x200], xmm0
mov dword [ebp - 0x54], eax
movdqu xmmword [ebp - 0x1f0], xmm0
mov dword [ebp - 0x200], esi
je 0x57f69e
push esi
call fcn.00582190
mov ecx, dword [ebp - 0x1c]
add esp, 4
mov eax, 0x4001
mov dword [esi], 0
jmp 0x57f6ae
mov ax, word [esi + 8]
mov edx, 0x3e00
and ax, dx
or ax, 1
mov word [esi + 8], ax
lea eax, [ebp - 0x200]
push dword [ecx + 8]
push eax
mov eax, dword [ebp - 0x54]
push dword [ebx + 0x28]
mov eax, dword [eax + 0x2c]
call eax
push dword [ebp - 0x30]
mov dword [ebp - 0x18], eax
push dword [ebp - 0x14]
call fcn.00584a80
mov eax, dword [ebp - 0x1ec]
test eax, eax
mov ecx, dword [ebp - 0x18]
cmovne ecx, eax
push esi
mov dword [ebp - 0x18], ecx
call fcn.005825a0
add esp, 0x18
test eax, eax
je 0x57f242
mov esi, dword [ebp - 0x14]
push str.string_or_blob_too_big
push esi
call fcn.0057afd0
add esp, 8
mov ebx, 0x12
jmp 0x58009d
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x70]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x54], eax
cmp byte [eax + 2], 0
jne case.0x57b107.83
mov eax, dword [eax + 0x28]
push eax
mov esi, dword [eax]
mov ecx, dword [esi]
mov dword [ebp - 0x30], ecx
mov eax, dword [ecx + 0x24]
call eax
push esi
mov esi, dword [ebp - 0x14]
push esi
mov dword [ebp - 0x18], eax
call fcn.00584a80
add esp, 0xc
cmp dword [ebp - 0x18], 0
jne 0x57fe22
mov eax, dword [ebp - 0x54]
push dword [eax + 0x28]
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x57f779
mov eax, dword [ebx + 8]
mov ebx, dword [ebp - 0x5c]
add ebx, 0xffffffec
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*4]
mov dword [ebp - 0x1c], ebx
cmp dword [edi + 0x100], 0
mov esi, dword [ebp - 0x14]
je case.0x57b107.83
xor eax, eax
mov ecx, str.unknown_error
cmp byte [edi + 0x49], al
sete al
lea eax, [eax*2 + 7]
mov dword [ebp - 0x18], eax
mov dword [esi + 0x28], eax
cmp eax, 0x204
je 0x58007e
movzx eax, al
cmp eax, 0x1a
ja 0x580083
mov eax, dword [eax*4 + 0x7bb068]
test eax, eax
je 0x580083
mov ecx, eax
jmp 0x580083
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebp - 0x20]
push 1
mov esi, dword [eax + 8]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
push ecx
call fcn.0057a6b0
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x58009a
mov eax, dword [esi]
push dword [ecx + 0x10]
push esi
mov eax, dword [eax + 0x4c]
call eax
push esi
mov esi, dword [ebp - 0x14]
push esi
mov dword [ebp - 0x18], eax
call fcn.00584a80
add esp, 0x10
and dword [esi + 0x94], 0xfffffffe
jmp 0x57f245
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + 8]
mov dword [ebp - 0x54], eax
test eax, eax
je 0x57fe98
mov eax, dword [eax]
mov dword [ebp - 0x30], eax
test eax, eax
je 0x57fe98
cmp dword [eax + 0x34], 0
mov edx, dword [ebx + 8]
je case.0x57b107.83
mov al, byte [edi + 0x4e]
mov ecx, dword [ebp - 0x20]
mov esi, dword [esi + 0x60]
mov byte [ebp - 0x21], al
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test edx, edx
jle 0x57f872
mov dword [esi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x57f867
mov eax, dword [ebp - 0x1c]
mov al, byte [eax + 2]
mov byte [edi + 0x4e], al
lea eax, [ebp - 0x138]
push eax
mov eax, dword [ebp - 0x30]
push esi
mov esi, dword [ebp - 0x54]
push edx
mov eax, dword [eax + 0x34]
push esi
call eax
mov ebx, eax
mov al, byte [ebp - 0x21]
push esi
mov esi, dword [ebp - 0x14]
push esi
mov dword [ebp - 0x18], ebx
mov byte [edi + 0x4e], al
call fcn.00584a80
mov eax, dword [ebp - 0x1c]
add esp, 0x18
test ebx, ebx
jne 0x57f8c9
cmp dword [eax + 4], ebx
je 0x57f8c9
mov eax, dword [ebp - 0x138]
mov dword [edi + 0x20], eax
mov eax, dword [ebp - 0x134]
mov dword [edi + 0x24], eax
mov eax, dword [ebp - 0x1c]
cmp bl, 0x13
jne 0x57f907
mov eax, dword [eax + 0x10]
cmp byte [eax + 0x10], 0
je 0x57f907
mov ebx, dword [ebp - 0x1c]
movzx eax, word [ebx + 2]
cmp eax, 4
jne 0x57f8f5
mov edi, dword [ebp - 0x64]
add ebx, 0x14
mov dword [ebp - 0x18], 0
jmp 0x57b0e2
cmp eax, 5
jne 0x57f8ff
mov eax, 2
mov byte [esi + 0x8e], al
jmp 0x57f90d
inc dword [esi + 0x2c]
mov ebx, dword [ebp - 0x1c]
cmp dword [ebp - 0x18], 0
jne 0x57fe22
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
push ebx
push esi
call fcn.00549dd0
mov edx, dword [ebx + 4]
add esp, 8
mov ecx, dword [edi + 0x10]
add edx, edx
mov edi, dword [ebp - 0x64]
add ebx, 0x14
mov ecx, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + 0x2c]
mov dword [eax], ecx
mov dword [eax + 4], 0
jmp 0x57b0e2
push ebx
push esi
call fcn.00549dd0
mov ecx, dword [edi + 0x10]
mov ebx, eax
mov eax, dword [ebp - 0x1c]
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 0x57f981
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x2c]
cmp ecx, edx
cmovb ecx, edx
push ecx
push esi
call fcn.00557ae0
mov esi, dword [ebp - 0x14]
add esp, 8
mov edi, dword [ebp - 0x64]
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov ebx, dword [ebp - 0x1c]
add ebx, 0x14
jmp 0x57b0e2
movzx ebx, word [ebx + 2]
push 0
lea eax, [ebx*4 + 0x1c]
push eax
push edi
call fcn.0055bdf0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x57c9a2
mov eax, dword [ebp - 0x1c]
mov dword [esi], 0
mov ecx, dword [eax + 0x10]
mov dword [esi + 4], ecx
mov ecx, eax
sub ecx, dword [ebp - 0x5c]
mov eax, 0x66666667
imul ecx
mov byte [esi + 0x1a], bl
mov ebx, dword [ebp - 0x1c]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0x14]
mov dword [esi + 0xc], eax
add byte [ebx], 2
mov byte [ebx + 1], 0xf0
mov dword [ebx + 0x10], esi
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebx + 0x10]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov dword [ebp - 0x2c], edx
cmp dword [esi], edx
je 0x57fa4d
movzx ecx, byte [esi + 0x1a]
dec ecx
mov dword [esi], edx
js 0x57fa4d
mov ebx, dword [ebp - 0x20]
lea edx, [ecx + 7]
lea edx, [esi + edx*4]
lea esp, [esp]
mov eax, dword [ebp - 0x1c]
lea edx, [edx - 4]
mov eax, dword [eax + 8]
add eax, ecx
dec ecx
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [edx + 4], eax
jns 0x57fa30
mov ebx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x2c]
mov ax, word [edx + 8]
mov ecx, 0x3e00
and ax, cx
or ax, 1
mov word [edx + 8], ax
lea eax, [esi + 0x1c]
mov ecx, dword [esi + 4]
push eax
movzx eax, byte [esi + 0x1a]
push eax
mov byte [esi + 0x19], 0
mov eax, dword [ecx + 0xc]
push esi
call eax
add esp, 0xc
cmp byte [esi + 0x19], 0
je 0x57fad1
cmp dword [esi + 0x14], 0
je 0x57faa5
push dword [ebp - 0x2c]
call fcn.005251b0
push eax
push 0x7a13f4
push dword [ebp - 0x14]
call fcn.0057afd0
mov eax, dword [esi + 0x14]
add esp, 0x10
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x1c]
push dword [eax + 4]
push dword [esi + 0x10]
mov esi, dword [ebp - 0x14]
lea eax, [esi + 0xd8]
push eax
push edi
call fcn.0057adc0
mov ebx, dword [ebp - 0x18]
add esp, 0x10
test ebx, ebx
jne 0x58009d
mov ebx, dword [ebp - 0x1c]
jmp 0x57fad4
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2c]
test byte [eax + 8], 0x12
je case.0x57b107.83
push eax
call fcn.005825a0
add esp, 4
test eax, eax
jne 0x57f6fa
mov edi, dword [ebp - 0x64]
add ebx, 0x14
jmp 0x57b0e2
mov edi, dword [ebp - 0x64]
mov esi, eax
add ebx, 0x14
jmp 0x57b0e2
test byte [edi + 0x50], 1
je 0x57fb78
test byte [esi + 0x94], 2
jne 0x57fb78
mov eax, dword [ebx + 0x10]
test eax, eax
jne 0x57fb2a
mov eax, dword [esi + 0xbc]
test eax, eax
je 0x57fb78
cmp dword [edi + 0xac], 1
push eax
jle 0x57fb64
push str.____s
push edi
call fcn.0056a820
mov ecx, dword [edi + 0xbc]
mov esi, eax
push esi
push dword [ebp - 0x14]
push dword [edi + 0xc0]
push 1
call ecx
push esi
push edi
call fcn.0055bd40
mov esi, dword [ebp - 0x14]
add esp, 0x24
jmp 0x57fb78
mov eax, dword [edi + 0xbc]
push esi
push dword [edi + 0xc0]
push 1
call eax
add esp, 0x10
mov eax, dword [ebx + 4]
cmp eax, dword [0x8805fc]
jl 0x57fbc4
cmp byte [ebx], 0xa6
je case.0x57b107.83
mov edx, 1
cmp dword [esi + 0x88], edx
jle 0x57fbbd
mov eax, 0x14
mov edi, edi
mov ecx, dword [esi + 0x58]
cmp byte [eax + ecx], 0x14
jne 0x57fbb1
mov dword [eax + ecx + 4], 0
inc edx
add eax, 0x14
cmp edx, dword [esi + 0x88]
jl 0x57fba0
mov dword [ebx + 4], 0
inc dword [ebx + 4]
inc dword [esi + 0xb8]
jmp 0x57b13d
mov edi, dword [ebp - 0x64]
mov esi, edx
add ebx, 0x14
jmp 0x57b0e2
mov ecx, dword [edx + 4]
mov dword [ebx + 0x28], ecx
mov al, byte [edx + 8]
mov byte [ebx + 0x8e], al
mov dword [ebx + 0x24], esi
test ecx, ecx
je 0x57fc6b
movzx eax, word [edx + 2]
test ax, ax
je 0x57fc3a
push dword [eax*4 + 0x7b8ae0]
push str._s_constraint_failed
push ebx
call fcn.0057afd0
mov ebx, dword [ebp - 0x1c]
add esp, 0xc
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x57fc4e
push eax
mov eax, dword [ebp - 0x14]
push dword [eax + 0x6c]
push str._z:__s
push edi
call fcn.0056a820
mov ecx, dword [ebp - 0x14]
add esp, 0x10
mov dword [ecx + 0x6c], eax
jmp 0x57fc4e
push dword [edx + 0x10]
push 0x7a13f4
push ebx
call fcn.0057afd0
mov ebx, dword [ebp - 0x1c]
add esp, 0xc
mov eax, dword [ebp - 0x14]
push dword [eax + 0x6c]
push dword [eax + 0xbc]
push esi
push str.abort_at__d_in___s_:__s
push dword [ebx + 4]
call fcn.0052f9a0
add esp, 0x14
mov esi, dword [ebp - 0x14]
push esi
call fcn.00580c30
add esp, 4
mov dword [ebp - 0x18], eax
cmp eax, 5
jne 0x57fc87
mov dword [esi + 0x28], eax
jmp 0x5801b2
cmp dword [esi + 0x28], 0
mov eax, 0x65
mov ecx, 1
cmovne eax, ecx
mov dword [ebp - 0x18], eax
jmp 0x5801b2
push 0x142d8
call fcn.0055aa90
add esp, 4
mov ebx, eax
jmp 0x58009a
push str.cannot_open_savepoint___SQL_statements_in_progress
push esi
call fcn.0057afd0
add esp, 8
mov ebx, 5
jmp 0x58009d
mov esi, dword [ebp - 0x14]
push str.cannot_release_savepoint___SQL_statements_in_progress
push esi
call fcn.0057afd0
add esp, 8
mov ebx, 5
jmp 0x58009d
mov ecx, dword [ebp - 0x1c]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x14]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x24], eax
mov eax, 5
mov byte [edi + 0x47], 0
mov dword [ebp - 0x18], eax
mov dword [esi + 0x28], eax
jmp 0x5801b2
push str.no_such_savepoint:__s
jmp 0x57fe40
mov ebx, 8
jmp 0x58009d
mov ebx, dword [ebp - 0x18]
cmp bl, 5
jne 0x58009a
mov ecx, dword [ebp - 0x1c]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x14]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x24], eax
mov eax, ebx
mov dword [esi + 0x28], eax
jmp 0x5801b2
mov ebx, dword [ebp - 0x14]
push dword [ebx + 0x6c]
push edi
call fcn.0055bd40
push str.database_schema_has_changed
push edi
call fcn.0055c0c0
mov dword [ebx + 0x6c], eax
add esp, 0x10
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + 4]
mov ecx, edx
mov eax, dword [edi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
cmp dword [eax], esi
je 0x57fd9b
push edx
push edi
call fcn.00570fa0
add esp, 8
mov esi, ebx
mov ebx, 0x11
or dword [esi + 0x94], 1
jmp 0x58009d
mov ebx, 0x204
jmp 0x58009d
mov esi, dword [ebp - 0x14]
mov ebx, 6
mov byte [esi + 0x8e], 2
jmp 0x58009d
mov dword [ebp - 0x18], 7
mov ebx, dword [ebp - 0x18]
push edi
call fcn.00570f30
mov esi, dword [ebp - 0x14]
add esp, 4
cmp ebx, 7
je 0x57c9a5
jmp 0x58009d
mov esi, dword [ebp - 0x14]
push str.too_many_levels_of_trigger_recursion
push esi
call fcn.0057afd0
add esp, 8
mov ebx, 1
jmp 0x58009d
call fcn.005251b0
mov esi, dword [ebp - 0x14]
push eax
push 0x7a13f4
push esi
call fcn.0057afd0
add esp, 0x10
mov ebx, dword [ebp - 0x18]
jmp 0x58009d
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 - 0x14]
push esi
call fcn.0057afd0
add esp, 0xc
mov ebx, 1
jmp 0x58009d
cmp bl, 6
jne 0x58009d
mov eax, dword [ebp - 0x1c]
push dword [eax + 0x10]
push str.database_table_is_locked:__s
push esi
call fcn.0057afd0
add esp, 0xc
jmp 0x58009d
mov eax, dword [ebp - 0x54]
push dword [ebp - 0x98]
mov eax, dword [eax + 0x1c]
call eax
add esp, 4
jmp 0x57c9a2
mov ebx, 6
jmp 0x58009a
mov ebx, 6
jmp 0x58009d
push 0
push esi
call fcn.0057a8a0
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x58009d
push 1
push esi
call fcn.0057ac00
mov eax, dword [esi + 0x20]
add esp, 8
mov ecx, dword [ebp - 0x1c]
add eax, 2
mov edx, dword [ebp - 0x20]
or eax, 1
mov dword [esi + 0x20], eax
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x68], esi
cmp dword [ecx + 8], ebx
jle 0x57ff21
jmp 0x57fef0
mov eax, 0x1000
test word [esi + 8], ax
je 0x57ff0c
push esi
call fcn.00581ee0
add esp, 4
test eax, eax
jne 0x57c9a2
push esi
call fcn.00581fa0
mov eax, dword [ebp - 0x1c]
inc ebx
add esp, 4
add esi, 0x28
cmp ebx, dword [eax + 8]
jl 0x57fef0
cmp byte [edi + 0x49], 0
jne 0x57c9a2
test byte [edi + 0x50], 4
mov esi, dword [ebp - 0x14]
je 0x57ff4a
mov eax, dword [edi + 0xbc]
push 0
push esi
push dword [edi + 0xc0]
push 4
call eax
add esp, 0x10
mov ecx, dword [ebp - 0x1c]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x5c]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
inc eax
add eax, edx
mov dword [esi + 0x24], eax
mov eax, 0x64
mov dword [ebp - 0x18], eax
jmp 0x5801b2
mov ecx, dword [ebx + 4]
movzx eax, byte [edi + 0x47]
mov edx, dword [ebx + 8]
mov dword [ebp - 0x30], ecx
cmp ecx, eax
je 0x580044
test edx, edx
je 0x57ffa2
push 0x204
push edi
call fcn.00571590
mov ebx, dword [ebp - 0x30]
add esp, 8
mov byte [edi + 0x47], 1
jmp 0x57ffe3
test ecx, ecx
je 0x57ffc7
cmp dword [edi + 0xa8], 0
jle 0x57ffc7
push str.cannot_commit_transaction___SQL_statements_in_progress
push esi
call fcn.0057afd0
add esp, 8
mov ebx, 5
jmp 0x58009d
push 1
push esi
call fcn.0057a8a0
add esp, 8
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x5801b2
mov ebx, dword [ebp - 0x30]
mov byte [edi + 0x47], bl
push esi
call fcn.00580c30
add esp, 4
cmp eax, 5
jne 0x580022
mov ecx, dword [ebp - 0x1c]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x5c]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x24], eax
mov al, 1
sub al, bl
mov byte [edi + 0x47], al
mov eax, 5
mov dword [ebp - 0x18], eax
mov dword [esi + 0x28], eax
jmp 0x5801b2
push edi
call fcn.005597b0
add esp, 4
mov eax, 1
cmp dword [esi + 0x28], 0
mov ecx, 0x65
cmove eax, ecx
mov dword [ebp - 0x18], eax
jmp 0x5801b2
test ecx, ecx
jne 0x58005e
mov eax, str.cannot_start_a_transaction_within_a_transaction
push eax
push esi
call fcn.0057afd0
add esp, 8
mov ebx, 1
jmp 0x58009d
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.0057afd0
add esp, 8
mov ebx, 1
jmp 0x58009d
mov ecx, str.abort_due_to_ROLLBACK
push ecx
push 0x7a13f4
push esi
call fcn.0057afd0
mov ebx, dword [ebp - 0x18]
add esp, 0xc
jmp 0x58009d
mov ebx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
cmp byte [edi + 0x49], 0
mov eax, 7
cmovne ebx, eax
cmp dword [esi + 0x6c], 0
mov dword [ebp - 0x18], ebx
jne 0x5800f2
cmp ebx, 0xc0a
je 0x5800f2
mov eax, str.unknown_error
cmp ebx, 0x204
je 0x5800de
movzx ecx, bl
cmp ecx, 0x1a
ja 0x5800e3
mov ecx, dword [ecx*4 + 0x7bb068]
test ecx, ecx
je 0x5800e3
mov eax, ecx
jmp 0x5800e3
mov eax, str.abort_due_to_ROLLBACK
push eax
push 0x7a13f4
push esi
call fcn.0057afd0
add esp, 0xc
mov dword [esi + 0x28], ebx
cmp ebx, 0xc0a
je 0x580124
movzx eax, bl
cmp eax, 0xe
je 0x58010a
cmp eax, 0xa
jne 0x580124
mov eax, dword [edi]
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x58011f
push 0
push 0
push eax
call ecx
add esp, 0xc
jmp 0x580121
xor eax, eax
mov dword [edi + 0x40], eax
mov ecx, dword [ebp - 0x1c]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x5c]
push dword [esi + 0x6c]
imul ecx
push dword [esi + 0xbc]
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 - 0x18]
call fcn.0052f9a0
push esi
call fcn.00580c30
add esp, 0x18
cmp dword [ebp - 0x18], 0xc0a
jne 0x58018d
cmp byte [edi + 0x49], 0
jne 0x58018d
cmp byte [edi + 0x4a], 0
jne 0x58018d
cmp dword [edi + 0xac], 0
mov byte [edi + 0x49], 1
jle 0x580187
mov dword [edi + 0x100], 1
inc dword [edi + 0x108]
mov cl, byte [ebp - 0x6d]
mov eax, 1
mov dword [ebp - 0x18], eax
test cl, cl
je 0x5801b2
movzx eax, cl
dec eax
push eax
push edi
call fcn.00570fa0
mov eax, dword [ebp - 0x18]
add esp, 8
jmp 0x5801b2
mov esi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xa4]
add dword [esi + 0xb0], ecx
cmp dword [esi + 0x9c], 0
je 0x5801d3
push esi
call fcn.0058dd90
mov eax, dword [ebp - 0x18]
add esp, 4
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00722035
mov esp, ebp
pop ebp
ret