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

Disassembly:
sub esp, 0x378
push ebx
push ebp
push esi
mov esi, dword [esp + 0x388]
xor al, al
mov byte [esp + 0x63], al
xorps xmm0, xmm0
push edi
xor edi, edi
movlpd qword [esp + 0x7c], xmm0
mov ebp, dword [esi]
mov ebx, dword [esi + 0x68]
mov dword [esp + 0x44], ebx
mov dword [esp + 0x10], ebx
mov al, byte [ebp + 0x54]
mov byte [esp + 0x38], al
mov byte [esp + 0x90], al
mov eax, dword [esi + 0x58]
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], ebp
mov dword [esp + 0x58], edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x88], edi
cmp dword [esi + 0xa0], edi
je 0x57fdf8
push esi
call fcn.0057fcf0
add esp, 4
cmp dword [ebp + 0x174], edi
je 0x57fe16
mov ecx, dword [ebp + 0x17c]
xor edx, edx
mov eax, dword [esi + 0xb4]
div ecx
sub ecx, edx
xor eax, eax
jmp 0x57fe1c
or ecx, 0xffffffff
or eax, 0xffffffff
cmp dword [esi + 0x24], 7
mov dword [esp + 0x78], eax
mov dword [esp + 0x6c], ecx
je 0x588440
mov dword [esi + 0x24], edi
mov dword [esi + 0x38], edi
mov dword [esi + 0x3c], edi
mov dword [ebp + 0x1c8], edi
cmp dword [ebp + 0x128], edi
jne 0x588420
mov eax, dword [esi + 0x20]
xorps xmm0, xmm0
mov edx, dword [esp + 0x80]
movsd qword [esp + 0x94], xmm0
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*4]
mov eax, dword [esp + 0x90]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x7c]
add eax, 1
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], eax
adc edx, 0
mov dword [esp + 0x84], edx
mov dl, byte [ecx]
movzx ebx, dl
cmp ebx, 0xb8
ja case.0x57fe9a.89
jmp dword [ebx*4 + 0x5885e0]
mov edx, dword [esp + 0x10]
mov ecx, edx
mov ebx, dword [esp + 0x20]
sub ecx, dword [esp + 0x44]
mov eax, dword [edx + 4]
lea esi, [eax + eax*4]
mov eax, 4
mov word [ebx + esi*8 + 0x10], ax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ebx + esi*8], eax
mov dword [ebx + esi*8 + 4], edx
mov esi, dword [esp + 0x38c]
jmp case.0x57fe9a.9
mov eax, dword [ecx + 4]
mov ebx, dword [esp + 0x20]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 4
je 0x583c3a
mov eax, dword [ebx + eax*8]
mov ecx, dword [esp + 0x44]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*4]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
dec eax
cdq
mov dword [ebx + ecx*8], eax
mov eax, 4
mov dword [ebx + ecx*8 + 4], edx
mov word [ebx + ecx*8 + 0x10], ax
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 8], 0
jne 0x583c1a
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
mov eax, dword [edx + 4]
mov edx, dword [esp + 0x44]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + ecx*8]
lea eax, [eax + eax*4]
mov eax, dword [edx + eax*4 + 8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [edx + eax*4]
mov dword [esp + 0x10], eax
xor eax, eax
mov word [ebx + ecx*8 + 0x10], ax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
mov eax, dword [edx + 4]
sub edx, dword [esp + 0x44]
lea esi, [eax + eax*4]
mov eax, 4
mov word [ebx + esi*8 + 0x10], ax
mov eax, 0x66666667
mov ecx, dword [ebx + esi*8]
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ebx + esi*8], eax
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x44]
mov dword [ebx + esi*8 + 4], edx
lea ecx, [ecx + eax*4]
mov esi, dword [esp + 0x38c]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov eax, dword [ecx + 0xc]
mov edx, dword [esp + 0x20]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x10], 1
je 0x583c3a
mov edx, dword [esi + 0xd0]
test edx, edx
je 0x587df8
cmp dword [ecx + 4], 0
jne 0x587df8
mov eax, dword [edx + 4]
mov dword [esi + 0xd0], eax
dec dword [esi + 0xd8]
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x2c]
mov dword [ebp + 0x68], eax
mov dword [ebp + 0x6c], ecx
add dword [ebp + 0x70], eax
push edx
adc dword [ebp + 0x74], ecx
call fcn.00589060
mov ecx, dword [esp + 0x14]
add esp, 4
cmp dword [ecx + 8], 4
jne 0x58006d
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
mov eax, dword [eax + ecx*4 + 8]
dec eax
mov edx, dword [esi + 0x68]
lea eax, [eax + eax*4]
mov ecx, dword [esi + 0x58]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x44], edx
lea ecx, [edx + eax*4]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x5800de
push ecx
call fcn.0052ca40
mov ecx, eax
add esp, 4
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov eax, 4
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x580133
push edx
call fcn.0052ca40
add esp, 4
mov edx, eax
jmp 0x58013c
mov eax, 4
mov word [edx + 0x10], ax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x10]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [edx], ecx
mov ecx, dword [esp + 0x10]
mov dword [edx + 4], eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x58018a
push ecx
call fcn.0052ca40
add esp, 4
mov ecx, eax
mov eax, 8
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x10]
movsd xmm0, qword [eax]
mov eax, dword [esp + 0x1c]
movsd qword [ecx], xmm0
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x5801e1
push esi
call fcn.0052ca40
add esp, 4
mov esi, eax
jmp 0x5801ea
mov eax, 4
mov word [esi + 0x10], ax
mov edx, dword [ebx + 0x10]
test edx, edx
jne 0x5801f5
xor ecx, ecx
jmp 0x580213
mov ecx, edx
lea edi, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x580200
sub ecx, edi
mov edi, dword [esp + 0x14]
and ecx, 0x3fffffff
cmp byte [esp + 0x38], 1
mov dword [ebx + 4], ecx
je 0x5802ad
push 0
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push edx
push esi
call fcn.0058acd0
mov edi, eax
add esp, 0x18
mov dword [esp + 0x14], edi
test edi, edi
jne 0x582427
test byte [esi + 0x10], 2
mov al, byte [esp + 0x38]
jne 0x580250
mov byte [esi + 0x12], al
jmp 0x58026a
cmp byte [esi + 0x12], al
je 0x58026a
push dword [esp + 0x38]
push esi
call fcn.0058b190
add esp, 8
test eax, eax
jne 0x58233b
mov ecx, dword [esp + 0x10]
mov eax, 0x2000
mov dword [esi + 0x18], 0
or word [esi + 0x10], ax
cmp byte [ecx + 1], 0xfa
jne 0x580299
mov eax, dword [ecx + 0x10]
test eax, eax
je 0x580299
push eax
push ebp
call fcn.0054aa60
mov ecx, dword [esp + 0x18]
add esp, 8
mov ebx, dword [esp + 0x10]
mov byte [ecx + 1], 0xfa
mov eax, dword [esi + 8]
mov dword [ecx + 0x10], eax
mov ecx, dword [esi + 0xc]
mov dword [ebx + 4], ecx
mov esi, dword [esp + 0x38c]
cmp ecx, dword [ebp + 0x78]
jg 0x58242e
mov byte [ebx], 0x49
jmp 0x5802c6
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x5802e8
push ecx
call fcn.0052ca40
add esp, 4
mov ecx, eax
mov eax, 0x2202
mov word [ecx + 0x10], ax
mov eax, dword [ebx + 0x10]
mov dword [ecx + 8], eax
mov eax, dword [ebx + 4]
mov dword [ecx + 0xc], eax
mov al, byte [esp + 0x38]
mov byte [ecx + 0x12], al
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
test eax, eax
jle 0x5808e1
mov ebx, dword [esp + 0x20]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 2]
cdq
cmp dword [ebx + esi*8], eax
jne 0x5803f1
cmp dword [ebx + esi*8 + 4], edx
mov esi, dword [esp + 0x38c]
jne 0x5808e1
mov eax, 0x2210
mov word [ecx + 0x10], ax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x580385
push edx
call fcn.0052ca40
add esp, 4
mov edx, eax
jmp 0x58038e
mov eax, 4
mov word [edx + 0x10], ax
cmp dword [ebx + 4], 0
lea esi, [edx + 0x10]
mov edi, dword [ebx + 0xc]
mov eax, 1
mov ecx, dword [ebx + 8]
mov ebx, 0x101
cmovne eax, ebx
sub edi, ecx
movzx ebx, ax
mov word [esi], bx
mov dword [edx + 0xc], 0
test edi, edi
jle 0x587189
mov eax, 0x9000
test word [esi + 0x28], ax
lea esi, [esi + 0x28]
je 0x5803de
lea eax, [esi - 0x10]
push eax
call fcn.0059e840
add esp, 4
mov eax, 0x9000
dec edi
mov word [esi], bx
mov dword [esi - 4], 0
test edi, edi
jg 0x5803c4
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x38c]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov eax, dword [ecx + 4]
mov edx, 0xffc1
mov ebx, dword [esp + 0x20]
lea ecx, [eax + eax*4]
mov ax, word [ebx + ecx*8 + 0x10]
and ax, dx
or ax, 1
mov word [ebx + ecx*8 + 0x10], ax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edi, dword [esp + 0x10]
mov ebx, 0x9000
mov eax, dword [edi + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
test word [eax + ecx*8 + 0x10], bx
lea esi, [eax + ecx*8]
je 0x58046f
push esi
call fcn.0052ca40
add esp, 4
mov esi, eax
jmp 0x580478
mov eax, 4
mov word [esi + 0x10], ax
mov ecx, dword [edi + 0x10]
mov edi, dword [edi + 4]
test ecx, ecx
jne 0x5804f4
test word [esi + 0x10], bx
jne 0x58048d
cmp dword [esi + 0x18], ecx
je 0x580496
push esi
call fcn.0059e800
add esp, 4
mov eax, 0x410
mov word [esi + 0x10], ax
xor eax, eax
test edi, edi
mov dword [esi + 0xc], 0
push esi
cmovns eax, edi
mov dword [esi], eax
mov byte [esi + 0x12], 1
mov dword [esi + 8], 0
call fcn.0058a3f0
add esp, 4
test eax, eax
jne 0x58233b
mov al, byte [esp + 0x38]
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov byte [esi + 0x12], al
mov esi, dword [esp + 0x38c]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
push 0
push 0
mov eax, edi
cdq
push edx
push eax
push ecx
push esi
call fcn.0058acd0
mov al, byte [esp + 0x50]
add esp, 0x18
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov byte [esi + 0x12], al
mov esi, dword [esp + 0x38c]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
mov ebx, dword [esi + 0x64]
mov eax, dword [edx + 4]
lea edi, [eax + eax*4]
movzx eax, word [ebx + edi*8 - 0x18]
test al, 0x12
je 0x580562
mov ecx, dword [ebx + edi*8 - 0x1c]
test eax, 0x400
je 0x580555
add ecx, dword [ebx + edi*8 - 0x28]
mov eax, dword [ebx + edi*8 - 0x14]
cmp ecx, dword [eax + 0x78]
jg 0x58242e
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x580587
push esi
call fcn.0059e840
add esp, 4
movups xmm0, xmmword [ebx + edi*8 - 0x28]
mov ecx, 0xafff
movups xmmword [esi], xmm0
mov eax, dword [ebx + edi*8 - 0x18]
mov edi, dword [esp + 0x14]
mov dword [esi + 0x10], eax
and ax, cx
mov ecx, 0x2040
or ax, cx
mov ecx, dword [esp + 0x10]
mov word [esi + 0x10], ax
mov esi, dword [esp + 0x38c]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
nop dword [eax]
mov eax, 0x9000
test word [esi + 0x10], ax
jne 0x580601
cmp dword [esi + 0x18], 0
je 0x58060a
push esi
call fcn.0059e800
add esp, 4
movups xmm0, xmmword [edi]
mov eax, 1
movups xmmword [esi], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [esi + 0x10], xmm0
movq xmm0, qword [edi + 0x20]
movq qword [esi + 0x20], xmm0
mov word [edi + 0x10], ax
mov dword [edi + 0x18], 0
movzx eax, word [esi + 0x10]
test eax, 0x4000
je 0x580681
test al, 0x12
je 0x580678
test eax, 0x400
je 0x580659
push esi
call fcn.0058a3f0
add esp, 4
test eax, eax
jne 0x58233b
cmp dword [esi + 0x18], 0
je 0x580667
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x20]
je 0x580678
push esi
call fcn.0059e7b0
add esp, 4
test eax, eax
jne 0x58233b
mov eax, 0xbfff
and word [esi + 0x10], ax
add edi, 0x28
add esi, 0x28
sub ebx, 1
jne 0x5805f0
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x38c]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
mov eax, dword [edi + 4]
mov ebx, dword [edi + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x5806ef
push 0x4000
push edi
push esi
call fcn.0059d9e0
add esp, 0xc
jmp 0x58071e
movups xmm0, xmmword [edi]
movups xmmword [esi], xmm0
mov eax, dword [edi + 0x10]
mov dword [esi + 0x10], eax
mov eax, 0x2000
test word [edi + 0x10], ax
jne 0x58071e
mov ax, word [esi + 0x10]
mov ecx, 0xcfff
and ax, cx
mov ecx, 0x4000
or ax, cx
mov word [esi + 0x10], ax
movzx eax, word [esi + 0x10]
mov ecx, eax
test ecx, 0x4000
je 0x580776
test cl, 0x12
je 0x580769
test ecx, 0x400
je 0x58074a
push esi
call fcn.0058a3f0
add esp, 4
test eax, eax
jne 0x58233b
cmp dword [esi + 0x18], 0
je 0x580758
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x20]
je 0x580769
push esi
call fcn.0059e7b0
add esp, 4
test eax, eax
jne 0x58233b
mov eax, 0xbfff
and word [esi + 0x10], ax
movzx eax, word [esi + 0x10]
mov ecx, dword [esp + 0x10]
movzx eax, ax
test eax, 0x800
je 0x580793
test byte [ecx + 2], 2
je 0x580793
and eax, 0xf7ff
mov word [esi + 0x10], ax
mov eax, ebx
dec ebx
test eax, eax
je 0x5807a5
add esi, 0x28
add edi, 0x28
jmp 0x5806d3
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x38c]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edx, [ebx + eax*8]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x580812
push 0x4000
push edx
push ecx
call fcn.0059d9e0
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
movups xmm0, xmmword [edx]
mov ebx, 0x2000
movups xmmword [ecx], xmm0
mov eax, dword [edx + 0x10]
mov dword [ecx + 0x10], eax
test word [edx + 0x10], bx
jne 0x583c36
mov edx, 0xcfff
and ax, dx
mov edx, 0x4000
or ax, dx
mov word [ecx + 0x10], ax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
mov edx, dword [ebx + eax*8]
mov eax, dword [ebx + eax*8 + 4]
mov ebx, 0x9000
test word [ecx + 0x10], bx
je 0x5808a3
push eax
push edx
push ecx
call fcn.0059ffe0
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov dword [ecx], edx
mov dword [ecx + 4], eax
mov eax, 4
mov word [ecx + 0x10], ax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
push 0
push esi
call fcn.0057f400
mov edx, eax
add esp, 8
mov dword [esp + 0x14], edx
test edx, edx
jne 0x588462
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
movzx ecx, word [ebx + eax*8 + 0x10]
lea ebp, [ebx + eax*8]
mov eax, dword [edi + 8]
mov dword [esp + 0x70], ecx
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov al, byte [edi + 0x10]
or al, cl
test al, 1
je 0x58099e
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x58096f
push esi
call fcn.0059e840
add esp, 4
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x38c]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edi, dword [esp + 0x14]
mov eax, 1
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov word [esi + 0x10], ax
mov esi, dword [esp + 0x38c]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
test cl, 0x12
jne 0x5809d0
mov ebx, dword [esp + 0x68]
push 0
push ebx
push ebp
call fcn.0058b0d0
add esp, 0xc
test eax, eax
jne 0x582337
mov ax, word [ebp + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx ecx, ax
mov dword [esp + 0x70], ecx
jmp 0x580a00
test ecx, 0x400
je 0x5809fc
push ebp
call fcn.0058a3f0
add esp, 4
test eax, eax
jne 0x582337
mov ax, word [ebp + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx eax, ax
mov dword [esp + 0x70], eax
mov ebx, dword [esp + 0x68]
movzx eax, word [edi + 0x10]
mov dword [esp + 0x2c], eax
test al, 0x12
jne 0x580a1a
push 0
push ebx
push edi
call fcn.0058b0d0
add esp, 0xc
jmp 0x580a2a
test eax, 0x400
je 0x580a45
push edi
call fcn.0058a3f0
add esp, 4
test eax, eax
jne 0x582337
mov ax, word [edi + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx eax, ax
mov dword [esp + 0x2c], eax
mov ecx, dword [ebp + 0xc]
add ecx, dword [edi + 0xc]
mov eax, ecx
cdq
mov ebx, eax
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x78]
cdq
cmp dword [esp + 0x30], edx
jg 0x582427
jl 0x580a70
cmp ebx, eax
ja 0x582427
xor eax, eax
cmp esi, edi
sete al
push eax
lea eax, [ecx + 2]
push eax
push esi
call fcn.0058a620
add esp, 0xc
test eax, eax
jne 0x582337
mov ax, word [esi + 0x10]
mov ecx, 0xf242
and ax, cx
or ax, 2
mov word [esi + 0x10], ax
cmp esi, edi
je 0x580abe
push dword [edi + 0xc]
push dword [edi + 8]
push dword [esi + 8]
call fcn.00430da0
mov eax, dword [esp + 0x38]
add esp, 0xc
mov word [edi + 0x10], ax
push dword [ebp + 0xc]
mov eax, dword [esi + 8]
push dword [ebp + 8]
add eax, dword [edi + 0xc]
push eax
call fcn.00430da0
mov cl, byte [esp + 0x44]
add esp, 0xc
mov eax, dword [esp + 0x70]
mov word [ebp + 0x10], ax
cmp cl, 1
jbe 0x580aef
mov eax, dword [esp + 0x30]
and ebx, 0xfffffffe
mov dword [esp + 0x28], eax
mov eax, dword [esi + 8]
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov byte [ebx + eax], 0
mov eax, dword [esi + 8]
mov byte [eax + ebx + 1], 0
mov eax, 0x200
or word [esi + 0x10], ax
mov eax, dword [esp + 0x1c]
mov dword [esi + 0xc], ebx
mov byte [esi + 0x12], cl
mov esi, dword [esp + 0x38c]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
movzx edx, word [ecx + eax*8 + 0x10]
lea esi, [ecx + eax*8]
mov eax, dword [edi + 8]
mov ebx, edx
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea ebp, [ecx + eax*8]
mov eax, dword [edi + 0xc]
movzx ecx, word [ebp + 0x10]
mov dword [esp + 0x34], ebp
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov esi, dword [esp + 0x30]
mov dword [esp + 0x2c], eax
mov al, cl
and al, bl
test al, 4
jne 0x580bbd
or cl, bl
test cl, 1
jne 0x580f47
and edx, 0x2d
je 0x580b91
mov ebx, edx
jmp 0x580b9d
push esi
call fcn.004f3470
add esp, 4
movzx ebx, ax
mov ax, word [ebp + 0x10]
and ax, 0x2d
jne 0x580bb0
push ebp
call fcn.004f3470
add esp, 4
movzx eax, ax
and al, bl
test al, 4
je 0x580d5b
mov eax, dword [esp + 0x10]
mov ebx, dword [ebp]
mov edi, dword [esi]
mov ebp, dword [ebp + 4]
movzx eax, byte [eax]
mov esi, dword [esi + 4]
add eax, 0xffffff96
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebp
cmp eax, 3
ja case.default.0x580be6
jmp dword [eax*4 + 0x5888c4]
push esi
lea eax, [esp + 0x80]
push edi
push eax
call fcn.0053d810
add esp, 0xc
test eax, eax
jne 0x580d53
mov ebp, dword [esp + 0x80]
mov ebx, dword [esp + 0x7c]
jmp 0x580f01
test edi, edi
jne 0x580c3e
cmp esi, 0x80000000
jne 0x580c3e
test ebp, ebp
jg 0x580d53
jl 0x580c35
test ebx, ebx
jae 0x580d53
sub ebx, edi
sbb ebp, esi
jmp 0x580f01
neg edi
adc esi, 0
neg esi
jmp case.0x580be6.106
test esi, esi
jl 0x580ca4
jg 0x580c51
test edi, edi
je 0x580c9a
push esi
push edi
push closesocket
push 0xffffffffffffffff
call fcn.005b5c30
cmp ebp, edx
jg 0x580d53
jl 0x580c71
cmp ebx, eax
ja 0x580d53
push esi
push edi
push closesocket
push 0
call fcn.005b5c30
cmp ebp, edx
jg 0x580d1a
jl 0x580d53
cmp ebx, eax
jae 0x580d1a
jmp 0x580d53
test esi, esi
jg 0x580d1a
jl 0x580ca4
test edi, edi
jae 0x580d1a
test ebp, ebp
jl 0x580cd9
jg 0x580cae
test ebx, ebx
je 0x580ccf
push ebp
push ebx
push closesocket
push 0
call fcn.005b5c30
cmp esi, edx
jg 0x580d1a
jl 0x580d53
cmp edi, eax
jae 0x580d1a
jmp 0x580d53
test ebp, ebp
jg 0x580d1a
jl 0x580cd9
test ebx, ebx
jae 0x580d1a
test edi, edi
jne 0x580ce5
cmp esi, 0x80000000
je 0x580d53
test ebx, ebx
jne 0x580cf1
cmp ebp, 0x80000000
je 0x580d53
push esi
push edi
push closesocket
push 1
call fcn.005b5c30
mov ecx, ebx
neg ecx
mov dword [esp + 0x24], ecx
mov ecx, ebp
adc ecx, 0
neg ecx
cmp ecx, edx
jg 0x580d53
jl 0x580d1a
cmp dword [esp + 0x24], eax
ja 0x580d53
push esi
push edi
push ebp
push ebx
call fcn.005b5500
jmp 0x580efd
mov eax, edi
or eax, esi
je 0x580f47
mov eax, edi
and eax, esi
cmp eax, 0xffffffff
jne 0x580ed3
test ebx, ebx
jne 0x580ed3
cmp ebp, 0x80000000
jne 0x580ed3
mov ebp, dword [esp + 0x34]
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x30]
movzx eax, word [ebx + 0x10]
test al, 8
je 0x580d7c
movsd xmm0, qword [ebx]
movsd qword [esp + 0x24], xmm0
movsd xmm0, qword [esp + 0x94]
jmp 0x580dd2
test al, 0x24
je 0x580d9b
mov edx, dword [ebx + 4]
mov ecx, dword [ebx]
call fcn.005b5ab0
movsd qword [esp + 0x24], xmm0
movsd xmm0, qword [esp + 0x94]
jmp 0x580dd2
test al, 0x12
je 0x580dc3
push ebx
call fcn.00528e60
fstp qword [esp + 0x28]
movsd xmm0, qword [esp + 0x28]
add esp, 4
movsd qword [esp + 0x24], xmm0
movsd xmm0, qword [esp + 0x94]
jmp 0x580dd2
movsd xmm0, qword [esp + 0x94]
movsd qword [esp + 0x24], xmm0
movzx eax, word [ebp + 0x10]
test al, 8
je 0x580de1
movsd xmm0, qword [ebp]
jmp 0x580e09
test al, 0x24
je 0x580df2
mov edx, dword [ebp + 4]
mov ecx, dword [ebp]
call fcn.005b5ab0
jmp 0x580e09
test al, 0x12
je 0x580e09
push ebp
call fcn.00528e60
fstp qword [esp + 0x40]
movsd xmm0, qword [esp + 0x40]
add esp, 4
movzx eax, byte [edi]
add eax, 0xffffff96
cmp eax, 3
ja case.default.0x580e14
jmp dword [eax*4 + 0x5888d4]
addsd xmm0, qword [esp + 0x24]
jmp 0x580e8f
subsd xmm0, qword [esp + 0x24]
jmp 0x580e8f
mulsd xmm0, qword [esp + 0x24]
jmp 0x580e8f
movsd xmm1, qword [esp + 0x24]
ucomisd xmm1, qword [esp + 0x94]
lahf
test ah, 0x44
jnp 0x580f47
divsd xmm0, xmm1
jmp 0x580e8f
push ebx
call fcn.00589a20
push ebp
mov esi, eax
mov edi, edx
call fcn.00589a20
mov ecx, esi
add esp, 8
or ecx, edi
je 0x580f47
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x580e7f
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.005b5b00
mov ecx, eax
call fcn.005b5ab0
movsd qword [esp + 0x24], xmm0
mov ecx, dword [esp + 0x28]
mov eax, ecx
and eax, 0x7ff00000
cmp eax, 0x7ff00000
jne 0x580eb9
mov eax, dword [esp + 0x24]
and ecx, 0xfffff
or eax, ecx
jne 0x580f47
mov ecx, dword [esp + 0x2c]
mov edx, 0xf248
movsd qword [ecx], xmm0
mov ax, word [ecx + 0x10]
and ax, dx
or ax, 8
jmp 0x580f1a
push esi
push edi
push ebp
push ebx
call fcn.005b5c30
jmp 0x580efd
mov eax, edi
or eax, esi
je 0x580f47
mov eax, edi
and eax, esi
cmp eax, 0xffffffff
jne 0x580ef4
mov edi, 1
xor esi, esi
push esi
push edi
push ebp
push ebx
call fcn.005b5b00
mov ebx, eax
mov ebp, edx
mov ecx, dword [esp + 0x2c]
mov edx, 0xf244
mov dword [ecx], ebx
mov dword [ecx + 4], ebp
mov ax, word [ecx + 0x10]
and ax, dx
or ax, 4
movzx eax, ax
mov word [ecx + 0x10], ax
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x38c]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov eax, dword [esp + 0x2c]
mov ecx, 0x9000
test word [eax + 0x10], cx
je 0x580f5c
push eax
jmp 0x580941
mov ecx, 1
mov word [eax + 0x10], cx
jmp 0x580949
mov eax, dword [ecx + 4]
test eax, eax
je 0x583c3a
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
push 0
push 0
lea eax, [ecx + eax*8]
push eax
call fcn.0058ab30
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea ebx, [edx + eax*8]
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea ebp, [edx + eax*8]
mov al, byte [ecx + 0x10]
or al, byte [ebx + 0x10]
test al, 1
je 0x581023
mov eax, 0x9000
test word [ebp + 0x10], ax
je 0x580fff
push ebp
call fcn.0059e840
mov ebp, dword [esp + 0x1c]
add esp, 4
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov ecx, dword [esp + 0x10]
mov eax, 1
mov word [ebp + 0x10], ax
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
push ecx
call fcn.00589a20
mov edi, eax
mov esi, edx
push ebx
mov dword [esp + 0xf0], edi
mov dword [esp + 0xf4], esi
call fcn.00589a20
mov ebx, eax
add esp, 8
mov eax, dword [esp + 0x10]
mov cl, byte [eax]
cmp cl, 0x66
jne 0x581057
and edi, ebx
and esi, edx
jmp 0x5810bd
cmp cl, 0x67
jne 0x581062
or edi, ebx
or esi, edx
jmp 0x5810bd
mov eax, ebx
or eax, edx
je 0x5810bd
test edx, edx
jg 0x581096
jl 0x581072
test ebx, ebx
jae 0x58108b
mov al, 0xd1
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x581096
jg 0x581084
cmp ebx, 0xffffffc0
jbe 0x581096
neg ebx
adc edx, 0
neg edx
test edx, edx
jl 0x5810dc
jg 0x581096
cmp ebx, 0x40
jb 0x5810dc
test esi, esi
jg 0x5810ac
jl 0x5810a0
test edi, edi
jae 0x5810ac
cmp cl, 0x68
je 0x5810ac
or edi, 0xffffffff
or esi, edi
jmp 0x5810bd
xorps xmm0, xmm0
movlpd qword [esp + 0x24], xmm0
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
mov dword [ebp], edi
mov ecx, 0xf244
mov dword [ebp + 4], esi
mov ax, word [ebp + 0x10]
and ax, cx
or ax, 4
mov word [ebp + 0x10], ax
jmp 0x580949
movq xmm1, qword [esp + 0xe8]
movd xmm0, ebx
cmp cl, 0x68
jne 0x5810fa
psllq xmm1, xmm0
movq qword [esp + 0x24], xmm1
jmp 0x5810b5
psrlq xmm1, xmm0
movq qword [esp + 0x24], xmm1
test esi, esi
jg 0x5810b5
jl 0x58110e
test edi, edi
jae 0x5810b5
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, ebx
or edx, 0xffffffff
call fcn.005b5c10
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x28]
or edi, eax
or esi, edx
jmp 0x5810bd
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
push esi
call fcn.00589a20
mov dword [esi], eax
mov ecx, 0xf244
mov dword [esi + 4], edx
add esp, 4
mov ax, word [esi + 0x10]
and ax, cx
mov ecx, dword [esp + 0x10]
or ax, 4
mov word [esi + 0x10], ax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
cdq
add dword [esi], eax
mov eax, dword [esp + 0x1c]
adc dword [esi + 4], edx
mov esi, dword [esp + 0x38c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx ecx, word [esi + 0x10]
mov eax, ecx
test cl, 4
jne 0x5811f1
test cl, 0x28
jne 0x5811c2
test cl, 2
je 0x5811bd
push 1
push esi
call fcn.004e9d60
movzx eax, word [esi + 0x10]
add esp, 8
movzx ecx, ax
jmp 0x5811cf
push esi
call fcn.00589a90
movzx ecx, word [esi + 0x10]
add esp, 4
movzx eax, cx
test cl, 4
jne 0x5811f1
mov ebp, dword [esp + 0x10]
cmp dword [ebp + 8], 0
je 0x587ead
mov esi, dword [esp + 0x38c]
jmp 0x583c1e
mov ecx, dword [esp + 0x10]
and eax, 0xf244
or eax, 4
mov word [esi + 0x10], ax
mov esi, dword [esp + 0x38c]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov eax, dword [ecx + 4]
mov edx, dword [esp + 0x20]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x10], 0x24
lea eax, [edx + eax*8]
je 0x583c3a
push eax
call fcn.0058aa20
mov ecx, dword [esp + 0x14]
add esp, 4
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x400
test word [esi + 0x10], ax
je 0x581286
push esi
call fcn.0058a3f0
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x587ec7
push dword [esp + 0x68]
movzx eax, byte [edi + 8]
push eax
push esi
call fcn.0058a200
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
jne 0x587ec7
mov esi, dword [esp + 0x38c]
mov edi, eax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [edx + 0xc]
movzx edx, word [edi + 0x10]
mov dword [esp + 0x2c], edx
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 0x10]
mov ecx, eax
mov dword [esp + 0x24], eax
and ecx, edx
test cl, 4
je 0x5813d2
mov ecx, dword [esi + 4]
mov eax, dword [edi + 4]
mov ebp, dword [esi]
mov edx, dword [edi]
cmp ecx, eax
jl 0x581358
jg 0x581311
cmp ebp, edx
jbe 0x58134e
mov eax, dword [0x646138]
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x38c]
cmp byte [ebx + eax], 0
jne 0x583c1a
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x58], 1
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
cmp ecx, eax
jg 0x581395
jl 0x581358
cmp ebp, edx
jae 0x581395
mov eax, dword [0x646130]
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x38c]
cmp byte [ebx + eax], 0
jne 0x583c1a
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x58], 0xffffffff
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov eax, dword [0x646134]
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x38c]
cmp byte [ebx + eax], 0
jne 0x583c1a
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x58], 0
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov ebx, dword [esp + 0x24]
mov eax, ebx
or eax, edx
test al, 1
je 0x581458
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 2]
test al, al
jns 0x581426
test cl, 1
je 0x581413
test ebx, 0x100
jne 0x581413
mov eax, dword [esp + 0x10]
mov dword [esp + 0x58], 0
movzx ecx, byte [eax]
mov eax, dword [0x646134]
mov al, byte [ecx + eax]
jmp 0x58158f
mov eax, ebx
not eax
and eax, 1
lea eax, [eax*2 - 1]
jmp 0x581529
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x38c]
test al, 0x10
jne 0x583c1a
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x58], 1
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov ebp, dword [esp + 0x10]
mov cl, byte [ebp + 2]
and cl, 0x47
cmp cl, 0x43
jb 0x58149f
test al, 2
je 0x581518
mov al, dl
and al, 0x2e
cmp al, 2
jne 0x581486
push 0
push edi
call fcn.004e9d60
movzx ebx, word [esi + 0x10]
add esp, 8
mov al, bl
and al, 0x2e
cmp al, 2
jne 0x581518
push 0
push esi
call fcn.004e9d60
add esp, 8
jmp 0x581518
cmp cl, 0x42
jne 0x581518
test al, 2
je 0x581518
test dl, 2
jne 0x5814e9
test dl, 0x2c
je 0x5814e9
push 1
push dword [esp + 0x6c]
push edi
call fcn.0058b0d0
mov ax, word [edi + 0x10]
mov ecx, 0xdbf
xor ax, word [esp + 0x38]
add esp, 0xc
and ax, cx
xor ax, word [edi + 0x10]
movzx edx, ax
mov dword [esp + 0x2c], edx
cmp edi, esi
jne 0x5814e9
mov eax, edx
or eax, 2
movzx ebx, ax
test bl, 2
jne 0x581518
test bl, 0x2c
je 0x581518
push 1
push dword [esp + 0x6c]
push esi
call fcn.0058b0d0
mov ax, word [esi + 0x10]
mov ecx, 0xdbf
xor ax, bx
add esp, 0xc
and ax, cx
xor ax, word [esi + 0x10]
movzx ebx, ax
push dword [ebp + 0x10]
push edi
push esi
call fcn.005668c0
mov edx, dword [esp + 0x38]
add esp, 0xc
mov ebp, eax
mov dword [esp + 0x58], eax
movzx eax, bx
movzx ecx, dx
mov dword [esp + 0x24], eax
mov dword [esp + 0x30], ecx
test ebp, ebp
jge 0x581552
mov eax, dword [esp + 0x10]
movzx ecx, byte [eax]
mov eax, dword [0x646130]
mov al, byte [ecx + eax]
jmp 0x58158f
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x30]
movzx edx, dx
movzx ebx, ax
movzx ecx, byte [ecx]
mov dword [esp + 0x58], ebp
test ebp, ebp
jne 0x581575
mov eax, dword [0x646134]
mov al, byte [ecx + eax]
jmp 0x58158f
mov eax, dword [0x646138]
mov dword [esp + 0x58], ebp
mov al, byte [ecx + eax]
mov ecx, dword [esp + 0x30]
movzx edx, cx
mov ecx, dword [esp + 0x24]
movzx ebx, cx
mov word [esi + 0x10], bx
mov esi, dword [esp + 0x38c]
mov word [edi + 0x10], dx
mov edi, dword [esp + 0x14]
test al, al
je 0x583c32
jmp 0x583c1a
cmp dword [esp + 0x58], 0
je 0x583c1a
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
test byte [edx + 2], 1
jne 0x5815d7
xor ebp, ebp
jmp 0x5815dd
mov ebp, dword [edx - 4]
add ebp, 4
mov esi, dword [esp + 0x10]
mov eax, dword [edx + 0xc]
mov edx, dword [edx + 0x10]
mov dword [esp + 0x2c], eax
mov ecx, dword [esi + 4]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esi + 8]
xor esi, esi
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], ecx
test eax, eax
jle 0x58094d
lea edi, [edx + 0x14]
nop word [eax + eax]
test ebp, ebp
je 0x58161a
mov ecx, dword [ebp + esi*4]
jmp 0x58161c
mov ecx, esi
mov eax, dword [edx + 0x10]
mov edx, dword [esp + 0x20]
push dword [edi]
movzx ebx, byte [esi + eax]
mov eax, dword [esp + 0x28]
and ebx, 1
add eax, ecx
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [esp + 0x40]
add eax, ecx
mov dword [esp + 0x64], edx
mov ecx, dword [esp + 0x24]
push edx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
mov dword [esp + 0x7c], eax
call fcn.005668c0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x58], edx
test edx, edx
jne 0x581677
mov edx, dword [esp + 0x30]
inc esi
add edi, 4
cmp esi, dword [esp + 0x2c]
jl 0x581610
jmp 0x580949
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x10]
test byte [esi + eax], 2
je 0x58169e
mov eax, dword [esp + 0x70]
test byte [eax + 0x10], 1
jne 0x581698
mov eax, dword [esp + 0x60]
test byte [eax + 0x10], 1
je 0x58169e
neg edx
mov dword [esp + 0x58], edx
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x38c]
mov eax, dword [esp + 0x1c]
test ebx, ebx
je case.0x57fe9a.89
neg edx
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov ebx, dword [esp + 0x58]
mov edx, dword [esp + 0x10]
test ebx, ebx
jns 0x581701
mov eax, dword [edx + 4]
mov ecx, dword [esp + 0x44]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
lea ecx, [eax - 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
jne 0x581726
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x44]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
lea ecx, [eax - 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov eax, dword [edx + 0xc]
mov ecx, dword [esp + 0x44]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
lea ecx, [eax - 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
movzx eax, word [ecx + 0x10]
test al, 0x24
je 0x5817a1
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jne 0x5817e0
xor esi, esi
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
movzx eax, word [ecx + 0x10]
test al, 0x24
je 0x5817e7
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jne 0x58182a
xor eax, eax
cmp byte [edx], 0x2c
lea eax, [eax + esi*2]
jne 0x581834
mov dl, byte [esi + eax + 0x61762c]
jmp 0x58183b
test al, 1
je 0x5817ac
mov esi, 2
jmp 0x58176b
test al, 8
je 0x5817b6
movsd xmm0, qword [ecx]
jmp 0x5817d1
test al, 0x12
je 0x581769
push ecx
call fcn.00528e60
mov edx, dword [esp + 0x14]
add esp, 4
fstp qword [esp + 0x24]
movsd xmm0, qword [esp + 0x24]
ucomisd xmm0, qword [esp + 0x94]
lahf
test ah, 0x44
jnp 0x581769
mov esi, 1
jmp 0x58176b
test al, 1
je 0x5817f2
mov eax, 2
jmp 0x581789
test al, 8
je 0x5817fc
movsd xmm0, qword [ecx]
jmp 0x581817
test al, 0x12
je 0x581787
push ecx
call fcn.00528e60
mov edx, dword [esp + 0x14]
add esp, 4
fstp qword [esp + 0x24]
movsd xmm0, qword [esp + 0x24]
ucomisd xmm0, qword [esp + 0x94]
lahf
test ah, 0x44
jnp 0x581787
mov eax, 1
jmp 0x581789
mov dl, byte [esi + eax + 0x61767c]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
lea ecx, [eax + eax*4]
cmp dl, 2
jne 0x581881
mov ax, word [ebx + ecx*8 + 0x10]
mov edx, 0xf241
mov esi, dword [esp + 0x38c]
and ax, dx
or ax, 1
movzx eax, ax
mov word [ebx + ecx*8 + 0x10], ax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov esi, dword [esp + 0x38c]
movzx eax, dl
cdq
mov dword [ebx + ecx*8], eax
mov dword [ebx + ecx*8 + 4], edx
mov edx, 0xf244
mov ax, word [ebx + ecx*8 + 0x10]
and ax, dx
or ax, 4
movzx eax, ax
mov word [ebx + ecx*8 + 0x10], ax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
mov eax, dword [edx + 4]
mov ecx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edx, [ebx + eax*8]
movzx eax, word [edx + 0x10]
test al, 0x24
je 0x58192c
mov eax, dword [edx]
or eax, dword [edx + 4]
jne 0x581960
xor ecx, ecx
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x10]
xor eax, ecx
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 8]
lea ecx, [ecx + ecx*4]
lea ecx, [ebx + ecx*8]
mov ebx, 0x9000
cdq
test word [ecx + 0x10], bx
je 0x581967
push edx
push eax
push ecx
call fcn.0059ffe0
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
test al, 1
jne 0x5818e8
test al, 8
je 0x58193a
movsd xmm0, qword [edx]
jmp 0x581951
test al, 0x12
je 0x5818e6
push edx
call fcn.00528e60
fstp qword [esp + 0x28]
movsd xmm0, qword [esp + 0x28]
add esp, 4
ucomisd xmm0, qword [esp + 0x94]
lahf
test ah, 0x44
jnp 0x5818e6
mov ecx, 1
jmp 0x5818e8
mov dword [ecx], eax
mov eax, 4
mov dword [ecx + 4], edx
mov word [ecx + 0x10], ax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 1
lea ecx, [ebx + eax*8]
mov eax, edx
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
jne 0x581a24
push 0
push ecx
call fcn.0057f1c0
add esp, 8
mov ecx, 0x9000
neg eax
sbb eax, eax
inc eax
test word [esi + 0x10], cx
je 0x5819f4
push 0
push eax
push esi
call fcn.0059ffe0
mov esi, dword [esp + 0x398]
add esp, 0xc
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov ecx, dword [esp + 0x10]
mov dword [esi], eax
mov eax, 4
mov dword [esi + 4], 0
mov word [esi + 0x10], ax
mov esi, dword [esp + 0x38c]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x581a56
push esi
call fcn.0059e840
mov esi, dword [esp + 0x390]
add esp, 4
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov ecx, dword [esp + 0x10]
mov eax, 1
mov word [esi + 0x10], ax
mov esi, dword [esp + 0x38c]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov eax, edx
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x581aaf
push esi
call fcn.0059e840
add esp, 4
jmp 0x581ab8
mov eax, 1
mov word [esi + 0x10], ax
test byte [edi + 0x10], 1
jne 0x5803ed
mov eax, 4
push edi
mov word [esi + 0x10], ax
call fcn.00589a20
mov edi, dword [esp + 0x18]
not eax
mov ecx, dword [esp + 0x14]
not edx
mov dword [esi], eax
add esp, 4
mov eax, dword [esp + 0x1c]
mov dword [esi + 4], edx
mov esi, dword [esp + 0x38c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edi, dword [esi + 0xd0]
test edi, edi
je 0x581b74
mov ecx, dword [esp + 0x10]
mov eax, 0x66666667
sub ecx, dword [esi + 0x68]
mov edi, dword [edi + 0x14]
imul ecx
mov eax, 1
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov esi, ecx
and ecx, 7
shr esi, 3
shl eax, cl
movzx edx, byte [esi + edi]
test edx, eax
jne 0x58416b
bts edx, ecx
mov ecx, dword [esp + 0x10]
mov byte [esi + edi], dl
mov esi, dword [esp + 0x38c]
mov edi, dword [esp + 0x10]
mov eax, dword [esi + 0x68]
mov eax, dword [eax + 4]
mov dword [edi + 4], eax
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov eax, dword [esi + 0x68]
mov edi, dword [esp + 0x10]
mov eax, dword [eax + 4]
cmp eax, dword [edi + 4]
je 0x587def
mov eax, dword [esi + 0x68]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 4]
mov dword [edi + 4], eax
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
mov eax, dword [edx + 4]
push dword [edx + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.0057f1c0
add esp, 8
test eax, eax
jne 0x583c1a
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
xor eax, eax
mov ecx, dword [esp + 0x20]
cmp dword [edx + 0xc], eax
sete al
push eax
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.0057f1c0
add esp, 8
test eax, eax
jne 0x583c36
jmp 0x583c1a
mov eax, dword [ecx + 4]
mov edx, dword [esp + 0x20]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x10], 1
jne 0x583c1a
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 4]
test ecx, ecx
js 0x581c8b
mov eax, dword [esi + 0x60]
mov ecx, dword [eax + ecx*4]
mov eax, edx
mov edx, dword [eax + 0xc]
movzx eax, word [ecx + 0x3e]
cmp edx, eax
jge 0x581c82
mov eax, dword [ecx + edx*4 + 0x5c]
cmp eax, 0xc
jb 0x581c79
test al, 1
mov eax, 0
sete al
lea eax, [eax*4 + 4]
jmp 0x581cb1
movzx eax, byte [eax + 0x617688]
jmp 0x581cb4
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x10]
jmp 0x581ca8
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
movzx eax, word [ecx + eax*8 + 0x10]
and eax, 0x3f
movzx ecx, byte [eax + 0x617000]
dec ecx
mov eax, 1
shl ax, cl
movzx eax, ax
mov ecx, dword [esp + 0x10]
test word [ecx + 2], ax
jne 0x583c1a
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 1
jne 0x581d24
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 1
jne 0x581d24
mov eax, dword [edx + 8]
push 0
push 0
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push eax
call fcn.0058ab30
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov eax, dword [esp + 0x10]
mov ecx, 0x9000
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
test word [ebx + eax*8 + 0x10], cx
lea eax, [ebx + eax*8]
je 0x581d5d
push eax
call fcn.0059e840
mov ecx, dword [esp + 0x14]
add esp, 4
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov ecx, 1
mov word [eax + 0x10], cx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov eax, dword [ecx + 4]
mov edx, dword [esp + 0x20]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x10], 1
je 0x583c1a
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov ecx, dword [ecx + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x583c36
cmp byte [eax + 2], 0
je 0x583c36
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, 0x9000
test word [eax + 0x10], cx
je 0x581dea
push eax
call fcn.0059e840
add esp, 4
jmp 0x583c1a
mov ecx, 1
mov word [eax + 0x10], cx
jmp 0x583c1a
mov edi, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ebx, dword [esp + 0x38c]
mov ecx, dword [edi + 4]
mov esi, dword [eax + ecx*4]
mov ecx, dword [edi + 8]
mov dword [esp + 0x4c], ecx
mov eax, dword [esi + 0x20]
mov ebp, dword [esi + 0x48]
mov dword [esp + 0x48], ebp
cmp eax, dword [ebx + 0x1c]
je 0x581e53
cmp byte [esi + 2], 0
jne 0x581ec4
cmp byte [esi + 3], 0
mov edi, dword [esi + 0x2c]
je 0x581e4c
mov eax, dword [esi + 0x10]
test eax, eax
je 0x581e7c
mov eax, dword [eax + ecx*4 + 4]
test eax, eax
je 0x581e7c
mov esi, dword [esi + 0x28]
lea ecx, [eax - 1]
jmp 0x581e0f
cmp byte [edi], 0
je 0x581e93
jmp 0x581e5f
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
je 0x581fe0
push esi
call fcn.00589780
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x58845b
mov ecx, dword [esp + 0x4c]
jmp 0x581e13
push esi
call fcn.00588f50
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x58845b
push edi
call fcn.0051c3a0
mov eax, dword [edi + 0x2c]
add esp, 4
mov dword [esi + 0x50], eax
mov eax, dword [edi + 0x74]
movzx ecx, word [edi + 0x30]
mov eax, dword [eax + 0x3c]
sub eax, dword [edi + 0x28]
cmp ecx, eax
jle 0x581ebc
xor edx, edx
mov ecx, eax
test eax, eax
cmovs ecx, edx
mov dword [esi + 0x54], ecx
mov ecx, dword [edi + 0x28]
jmp 0x581eed
cmp byte [esi], 3
jne 0x581f70
mov eax, dword [esi + 0x24]
test eax, eax
jle 0x581f70
mov edx, dword [esp + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*8 + 0xc]
mov dword [esi + 0x54], eax
mov dword [esi + 0x50], eax
mov ecx, dword [edx + ecx*8 + 8]
mov dword [esi + 0x4c], ecx
mov eax, dword [ebx + 0x1c]
lea ebx, [esi + 0x34]
mov dword [esi + 0x20], eax
movzx eax, byte [ecx]
mov dword [ebp], eax
mov dword [esp + 0x30], ebx
cmp eax, 0x80
jae 0x581f11
mov eax, 1
jmp 0x581f20
push ebp
push dword [esi + 0x4c]
call fcn.00561740
add esp, 8
movzx eax, al
mov dword [ebx], eax
lea edi, [esi + 0x3e]
xor eax, eax
mov dword [esp + 0x50], edi
mov word [edi], ax
mov eax, dword [esi + 0x54]
cmp eax, dword [ebp]
jae 0x581f64
mov dword [esi + 0x4c], 0
mov dword [esi + 0x54], 0
mov eax, dword [ebp]
cmp eax, 0x18003
ja 0x5821d0
cmp eax, dword [esi + 0x50]
ja 0x5821d0
mov ecx, dword [esp + 0x4c]
jmp 0x581fe3
mov edx, dword [esi + 0x4c]
mov dword [esp + 0x60], edx
jmp 0x582061
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, 0x9000
test word [eax + 0x10], cx
je 0x581fb6
push eax
call fcn.0059e840
mov edi, dword [esp + 0x18]
add esp, 4
mov ebp, dword [esp + 0x18]
mov esi, ebx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edi, dword [esp + 0x14]
mov ecx, 1
mov ebp, dword [esp + 0x18]
mov esi, ebx
mov word [eax + 0x10], cx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
lea edi, [esi + 0x3e]
movzx eax, word [edi]
cmp eax, ecx
ja 0x58229d
mov eax, dword [esi + 0x34]
lea ebx, [esi + 0x34]
mov dword [esp + 0x30], ebx
cmp eax, dword [ebp]
jae 0x5821f1
mov edx, dword [esi + 0x4c]
mov dword [esp + 0x60], edx
test edx, edx
jne 0x582059
xorps xmm0, xmm0
lea eax, [esp + 0x168]
push eax
movups xmmword [esp + 0x16c], xmm0
movups xmmword [esp + 0x17c], xmm0
movq qword [esp + 0x18c], xmm0
push dword [ebp]
push dword [esi + 0x2c]
call fcn.0058a5c0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
jne 0x587ec7
mov edx, dword [esp + 0x170]
mov dword [esp + 0x60], edx
jmp 0x58205d
mov dword [esp + 0x30], ebx
mov dword [esp + 0x50], edi
movzx ecx, word [edi]
mov eax, dword [esp + 0x48]
mov edi, dword [ebx]
add edi, edx
mov dword [esp + 0x24], ecx
mov ebp, dword [ebp + ecx*4]
mov eax, dword [eax]
add eax, edx
mov dword [esp + 0x34], 0
mov dword [esp + 0x70], eax
lea eax, [ecx + 0x17]
lea eax, [esi + eax*4]
mov dword [esp + 0x2c], eax
nop
movzx ebx, byte [edi]
mov dword [esp + 0x3c], ebx
mov dword [eax], ebx
cmp ebx, 0x80
jae 0x5820b2
movzx eax, byte [ebx + 0x6167b0]
inc edi
cdq
add ebp, eax
adc dword [esp + 0x34], edx
jmp 0x5820f6
lea eax, [esp + 0x3c]
push eax
push edi
call fcn.00561740
mov ebx, dword [esp + 0x44]
add esp, 8
movzx eax, al
add edi, eax
mov eax, dword [esp + 0x2c]
mov dword [eax], ebx
cmp ebx, 0x80
jb 0x5820de
lea eax, [ebx - 0xc]
shr eax, 1
jmp 0x5820e5
movzx eax, byte [ebx + 0x6167b0]
mov edx, dword [esp + 0x34]
add ebp, eax
mov ecx, dword [esp + 0x24]
adc edx, 0
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x48]
inc ecx
mov eax, dword [esp + 0x2c]
add eax, 4
mov dword [esp + 0x24], ecx
mov dword [esp + 0x2c], eax
mov dword [edx + ecx*4], ebp
mov edx, dword [esp + 0x34]
cmp ecx, dword [esp + 0x4c]
ja 0x582127
cmp edi, dword [esp + 0x70]
jb 0x582090
mov eax, dword [esp + 0x70]
jmp 0x58212f
mov eax, dword [esp + 0x70]
cmp edi, eax
jb 0x582188
cmp edi, eax
ja 0x582193
cmp ebp, dword [esi + 0x50]
jne 0x582193
test edx, edx
jne 0x582193
mov ebp, dword [esp + 0x48]
mov eax, dword [esp + 0x50]
sub edi, dword [esp + 0x60]
mov word [eax], cx
mov eax, dword [esp + 0x30]
mov dword [eax], edi
cmp dword [esi + 0x4c], 0
jne 0x58217e
test dword [esp + 0x178], 0x9000
jne 0x58216e
cmp dword [esp + 0x180], 0
je 0x58217e
lea eax, [esp + 0x168]
push eax
call fcn.0059e800
add esp, 4
mov edi, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
jmp 0x5821f3
test edx, edx
jb 0x58213c
ja 0x582193
cmp ebp, dword [esi + 0x50]
jbe 0x58213c
mov ebp, dword [esp + 0x48]
cmp dword [ebp], 0
jne 0x5821a3
xor ecx, ecx
mov edi, eax
jmp 0x582140
cmp dword [esi + 0x4c], 0
jne 0x5821d0
test dword [esp + 0x178], 0x9000
jne 0x5821c0
cmp dword [esp + 0x180], 0
je 0x5821d0
lea eax, [esp + 0x168]
push eax
call fcn.0059e800
add esp, 4
mov edx, dword [esp + 0x44]
mov eax, dword [edx + 0xc]
test eax, eax
jle 0x587eb4
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edi, [edx + eax*4]
mov dword [esp + 0x10], edi
jmp 0x580949
xor ebx, ebx
movzx eax, word [edi]
cmp eax, ecx
ja 0x5822a1
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
cmp byte [edi + 1], 0xf6
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, 0x9000
jne 0x582287
mov edx, dword [edi + 0x10]
test word [ecx + 0x10], ax
je 0x582237
push 0x2000
push edx
push ecx
call fcn.0059d9e0
add esp, 0xc
jmp 0x580949
movups xmm0, xmmword [edx]
mov ebp, dword [esp + 0x18]
mov ebx, 0x2000
movups xmmword [ecx], xmm0
mov eax, dword [edx + 0x10]
mov dword [ecx + 0x10], eax
test word [edx + 0x10], bx
jne 0x58497c
mov edi, dword [esp + 0x14]
mov edx, 0xafff
mov esi, dword [esp + 0x38c]
and ax, dx
or ax, bx
mov word [ecx + 0x10], ax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
test word [ecx + 0x10], ax
je 0x582293
push ecx
jmp 0x580941
mov eax, 1
jmp 0x580f1d
mov ebx, dword [esi + ecx*4 + 0x5c]
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x20]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov eax, 0x9000
test word [edi + 0x10], ax
je 0x5822ce
push edi
call fcn.0059e840
mov ecx, dword [esp + 0x50]
add esp, 4
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x54]
cmp eax, dword [ebp + ecx*4 + 4]
jb 0x582396
mov eax, dword [esp + 0x48]
mov ebp, dword [esi + 0x4c]
add ebp, dword [eax + ecx*4]
cmp ebx, 0xc
jae 0x5822fa
push edi
push ebx
push ebp
call fcn.0058c560
add esp, 0xc
jmp 0x580f21
mov al, byte [esp + 0x38]
lea esi, [ebx - 0xc]
shr esi, 1
mov dword [edi + 0xc], esi
mov byte [edi + 0x12], al
lea eax, [esi + 2]
cmp dword [edi + 0x18], eax
jge 0x582360
mov ecx, dword [esp + 0x18]
cmp esi, dword [ecx + 0x78]
jg 0x582427
push 0
push eax
mov ecx, 1
push edi
mov word [edi + 0x10], cx
call fcn.0058a620
add esp, 0xc
test eax, eax
je 0x582366
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x38c]
push ebp
call fcn.00567010
push 0x612724
push esi
call fcn.0057fd60
add esp, 0xc
mov edx, 7
jmp 0x587ec3
mov eax, dword [edi + 0x20]
mov dword [edi + 8], eax
push esi
push ebp
push dword [edi + 8]
call fcn.00430da0
mov eax, dword [edi + 8]
add esp, 0xc
and ebx, 1
mov byte [esi + eax], 0
mov eax, dword [edi + 8]
mov byte [esi + eax + 1], 0
mov ax, word [ebx*2 + 0x6176c4]
mov word [edi + 0x10], ax
jmp 0x580f21
mov al, byte [esp + 0x38]
mov byte [edi + 0x12], al
mov al, byte [edx + 2]
and al, 0xc0
je 0x5823b6
cmp al, 0x80
je 0x5823d0
cmp ebx, 0xc
jb 0x5823b6
test bl, 1
je 0x5823d0
cmp al, 0xc0
je 0x5823d0
cmp ebx, 0x80
jb 0x5823c5
lea eax, [ebx - 0xc]
shr eax, 1
jmp 0x5823cc
movzx eax, byte [ebx + 0x6167b0]
test eax, eax
jne 0x5823e4
push edi
push ebx
push 0x612dc0
call fcn.0058c560
add esp, 0xc
jmp 0x580f21
mov eax, dword [esp + 0x38c]
push edi
push dword [esp + 0x8c]
push dword [eax + 0x1c]
push 0
push dword [ebp + ecx*4]
push ebx
push ecx
push esi
call fcn.0059da00
mov edx, eax
add esp, 0x20
mov dword [esp + 0x14], edx
test edx, edx
je 0x580f21
cmp edx, 7
je 0x582337
cmp edx, 0x12
jne 0x587ec7
mov esi, dword [esp + 0x38c]
push str.string_or_blob_too_big
push esi
call fcn.0057fd60
add esp, 8
mov edx, 0x12
jmp 0x587ec3
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
mov eax, dword [eax + 4]
mov edx, dword [edx + 0x10]
mov dword [esp + 0x3c], edx
lea eax, [eax + eax*4]
mov ebx, dword [edx + 4]
lea esi, [ecx + eax*8]
xor ecx, ecx
mov dword [esp + 0x2c], ebx
xor eax, eax
mov dword [esp + 0x30], ecx
cmp ax, word [edx + 0x22]
jge 0x5803f1
add ebx, 8
mov dword [esp + 0x24], ebx
movzx eax, word [ebx + 6]
test al, 0x60
je 0x5824a0
test al, 0x20
jne 0x58255c
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xc], 0
jne 0x582559
push dword [esp + 0x68]
movzx eax, byte [ebx]
push eax
push esi
call fcn.004e9cf0
movzx ecx, word [esi + 0x10]
add esp, 0xc
mov ebp, ecx
mov edi, ecx
test cl, 1
jne case.default.0x5824d7
mov eax, dword [ebx - 4]
shr eax, 4
and eax, 0xf
lea edx, [eax - 2]
cmp edx, 4
ja case.default.0x5824d7
jmp dword [edx*4 + 0x5888e4]
test cl, 0x10
jmp 0x58254b
test cl, 4
jmp 0x58254b
test cl, 2
jmp 0x58254b
test cl, 4
je 0x582548
mov edi, dword [esi]
mov edx, edi
mov ebx, dword [esi + 4]
add edx, 0
mov eax, ebx
adc eax, 0x8000
cmp eax, 0xffff
ja 0x582526
jb 0x582511
cmp edx, 0xffffffff
ja 0x582526
or ecx, 0x20
movzx eax, cx
and eax, 0xfffb
mov word [esi + 0x10], ax
mov ebx, dword [esp + 0x24]
jmp case.default.0x5824d7
mov edx, ebx
mov ecx, edi
call fcn.005b5ab0
or ebp, 8
movsd qword [esi], xmm0
movzx eax, bp
and eax, 0xfffb
mov word [esi + 0x10], ax
mov ebx, dword [esp + 0x24]
jmp case.default.0x5824d7
test cl, 0x28
je 0x587eea
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x3c]
add esi, 0x28
movsx eax, word [edx + 0x22]
inc ecx
add ebx, 0x10
mov dword [esp + 0x30], ecx
mov dword [esp + 0x24], ebx
cmp ecx, eax
jl 0x582482
jmp 0x580f21
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov al, byte [ebx]
push dword [esp + 0x68]
mov byte [esp + 0xac], al
push dword [esp + 0xac]
push esi
call fcn.004e9cf0
add esp, 0xc
cmp byte [ebx], 0x45
jne 0x582601
movzx ecx, word [esi + 0x10]
mov edi, ecx
test cl, 4
je 0x582601
mov ebp, dword [esi]
mov edx, ebp
mov eax, dword [esi + 4]
add edx, 0
adc eax, 0x8000
cmp eax, 0xffff
ja 0x5825e6
jb 0x5825d7
cmp edx, 0xffffffff
ja 0x5825e6
and ecx, 0xfffb
or ecx, 0x20
mov word [esi + 0x10], cx
jmp 0x582601
mov edx, dword [esi + 4]
mov ecx, ebp
call fcn.005b5ab0
and edi, 0xfff9
movsd qword [esi], xmm0
or edi, 8
mov word [esi + 0x10], di
mov al, byte [ebx + 1]
inc ebx
test al, al
je 0x584978
add esi, 0x28
jmp 0x58258f
mov edx, dword [esp + 0x10]
xorps xmm0, xmm0
mov esi, dword [esp + 0x20]
xor ecx, ecx
movlpd qword [esp + 0x3c], xmm0
mov dword [esp + 0x34], ecx
mov eax, dword [edx + 4]
mov edi, dword [edx + 0x10]
movlpd qword [esp + 0x70], xmm0
lea eax, [eax + eax*4]
lea ebx, [esi + eax*8]
mov eax, dword [edx + 8]
mov dword [esp + 0x30], ebx
lea ebp, [eax + eax*4]
mov eax, dword [edx + 0xc]
mov dword [esp + 0x24], ebp
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x50], eax
test edi, edi
je 0x5826b5
mov al, byte [edi]
lea esi, [ebx + 0x10]
mov ebp, dword [esp + 0x68]
mov byte [esp + 0xac], al
nop dword [eax]
push ebp
push dword [esp + 0xb0]
lea eax, [esi - 0x10]
push eax
call fcn.004e9cf0
add esp, 0xc
cmp byte [edi], 0x45
jne 0x58269b
movzx eax, word [esi]
test al, 4
je 0x58269b
and eax, 0xfffb
or eax, 0x20
mov word [esi], ax
mov al, byte [edi + 1]
inc edi
add esi, 0x28
mov byte [esp + 0xac], al
test al, al
jne 0x582670
mov ecx, dword [esp + 0x34]
mov ebp, dword [esp + 0x24]
mov eax, dword [esp + 0x74]
lea ebp, [ebp*8 - 0xc]
mov edi, dword [esp + 0x40]
add ebp, ebx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x4c], edi
mov dword [esp + 0x48], edx
mov dword [esp + 0x70], eax
movzx ebx, word [ebp - 0xc]
mov dword [esp + 0x60], ebp
test bl, 1
je 0x582701
and ebx, 0x400
neg ebx
sbb ebx, ebx
and ebx, 0xa
inc ecx
mov dword [ebp], ebx
jmp 0x58293d
test bl, 0x24
je 0x58288d
mov eax, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
test eax, eax
jg 0x582722
jl 0x58271a
test esi, esi
jae 0x582722
mov ecx, esi
not eax
not ecx
jmp 0x582724
mov ecx, esi
inc dword [esp + 0x34]
test eax, eax
ja 0x58280f
jb 0x582737
cmp ecx, 0x7f
ja 0x582784
mov eax, esi
xor ebx, ebx
and eax, 1
cmp eax, esi
jne 0x582766
cmp ebx, dword [ebp - 0x18]
jne 0x582766
mov eax, dword [esp + 0x38c]
cmp byte [eax + 0x95], 4
jb 0x582766
lea eax, [ecx + 8]
mov ecx, dword [esp + 0x34]
mov dword [ebp], eax
jmp 0x582941
mov ecx, dword [esp + 0x34]
add edx, 1
mov eax, 1
mov dword [esp + 0x48], edx
adc edi, ebx
mov dword [ebp], eax
mov dword [esp + 0x4c], edi
jmp 0x582941
test eax, eax
ja 0x58280f
jb 0x582796
cmp ecx, 0x7fff
ja 0x5827b5
mov ecx, dword [esp + 0x34]
add edx, 2
mov eax, 2
mov dword [esp + 0x48], edx
adc edi, 0
mov dword [ebp], eax
mov dword [esp + 0x4c], edi
jmp 0x582941
test eax, eax
ja 0x58280f
jb 0x5827c3
cmp ecx, 0x7fffff
ja 0x5827e2
mov ecx, dword [esp + 0x34]
add edx, 3
mov eax, 3
mov dword [esp + 0x48], edx
adc edi, 0
mov dword [ebp], eax
mov dword [esp + 0x4c], edi
jmp 0x582941
test eax, eax
ja 0x58280f
jb 0x5827f0
cmp ecx, 0x7fffffff
ja 0x58280f
mov ecx, dword [esp + 0x34]
add edx, 4
mov eax, 4
mov dword [esp + 0x48], edx
adc edi, 0
mov dword [ebp], eax
mov dword [esp + 0x4c], edi
jmp 0x582941
cmp eax, 0x7fff
ja 0x58283c
jb 0x58281d
cmp ecx, 0xffffffff
ja 0x58283c
mov ecx, dword [esp + 0x34]
add edx, 6
mov eax, 5
mov dword [esp + 0x48], edx
adc edi, 0
mov dword [ebp], eax
mov dword [esp + 0x4c], edi
jmp 0x582941
add edx, 8
mov dword [esp + 0x48], edx
adc edi, 0
mov dword [esp + 0x4c], edi
test bl, 0x20
je 0x58287c
mov edx, dword [ebp - 0x18]
mov ecx, esi
call fcn.005b5ab0
mov ecx, dword [esp + 0x34]
and ebx, 0xffdf
movsd qword [ebp - 0x1c], xmm0
or ebx, 8
mov eax, 7
mov word [ebp - 0xc], bx
mov dword [ebp], eax
jmp 0x582941
mov ecx, dword [esp + 0x34]
mov eax, 6
mov dword [ebp], eax
jmp 0x582941
test bl, 8
je 0x5828ad
inc ecx
mov dword [ebp], 7
add edx, 8
mov dword [esp + 0x48], edx
adc edi, 0
mov dword [esp + 0x4c], edi
jmp 0x58293d
mov edi, dword [ebp - 0x10]
mov eax, ebx
shr eax, 1
and eax, 1
lea ebp, [edi + 6]
lea ebp, [eax + ebp*2]
test ebx, 0x400
je 0x5828fe
mov esi, dword [esp + 0x60]
mov eax, edx
add esi, 0xffffffe4
or eax, dword [esp + 0x4c]
mov ecx, dword [esi]
lea ebp, [ebp + ecx*2]
je 0x5828ef
push esi
call fcn.0058a3f0
add esp, 4
test eax, eax
jne 0x582337
add edi, dword [esi]
jmp 0x5828fa
mov eax, ecx
cdq
add dword [esp + 0x70], eax
adc dword [esp + 0x2c], edx
mov edx, dword [esp + 0x48]
add edx, edi
mov esi, 1
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x48], edx
adc edi, 0
mov edx, ebp
mov dword [esp + 0x4c], edi
shr edx, 7
xor ecx, ecx
mov eax, edx
or eax, ecx
je 0x58292f
shrd edx, ecx, 7
inc esi
shr ecx, 7
mov eax, edx
or eax, ecx
jne 0x582921
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x34]
add ecx, esi
mov dword [eax], ebp
mov ebp, eax
mov dword [esp + 0x34], ecx
lea eax, [ebp - 0x1c]
cmp eax, dword [esp + 0x30]
je 0x582956
mov edx, dword [esp + 0x48]
sub ebp, 0x28
jmp 0x5826de
cmp ecx, 0x7e
jle 0x5829b6
mov eax, ecx
mov ebx, 1
cdq
mov esi, eax
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x582980
shrd esi, edx, 7
inc ebx
shr edx, 7
mov eax, esi
or eax, edx
jne 0x582972
mov eax, dword [esp + 0x34]
mov edi, 1
add eax, ebx
mov dword [esp + 0x34], eax
cdq
mov esi, eax
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x5829ae
nop
shrd esi, edx, 7
inc edi
shr edx, 7
mov eax, esi
or eax, edx
jne 0x5829a0
mov ecx, dword [esp + 0x34]
cmp ebx, edi
jge 0x5829bb
inc ecx
mov dword [esp + 0x34], ecx
mov esi, dword [esp + 0x48]
mov eax, ecx
mov edi, dword [esp + 0x50]
mov ebx, dword [esp + 0x4c]
cdq
add esi, eax
mov dword [esp + 0x3c], eax
mov edi, dword [edi + 0x18]
mov ebp, edx
adc ebx, ebp
mov ecx, esi
add ecx, dword [esp + 0x70]
mov eax, edi
cdq
adc ebx, dword [esp + 0x2c]
cmp ebx, edx
jg 0x5829fa
jl 0x5829ee
cmp ecx, eax
ja 0x5829fa
mov edx, dword [esp + 0x50]
mov eax, dword [edx + 0x20]
mov dword [edx + 8], eax
jmp 0x582a44
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x78]
cdq
cmp ebx, edx
jg 0x582427
jl 0x582a14
cmp ecx, eax
ja 0x582427
cmp edi, esi
jge 0x582a35
push 0
push esi
push dword [esp + 0x58]
call fcn.0058a620
add esp, 0xc
test eax, eax
jne 0x582337
mov edx, dword [esp + 0x50]
jmp 0x582a44
mov edx, dword [esp + 0x50]
mov eax, dword [edx + 0x20]
mov dword [edx + 8], eax
and word [edx + 0x10], 0x2d
mov ecx, dword [esp + 0x70]
mov eax, 0x10
mov dword [edx + 0xc], esi
mov word [edx + 0x10], ax
mov eax, ecx
or eax, dword [esp + 0x2c]
je 0x582a67
mov eax, 0x400
mov dword [edx], ecx
or word [edx + 0x10], ax
mov eax, dword [esp + 0x34]
mov ebx, dword [edx + 8]
lea esi, [ebx + eax]
cmp eax, 0x80
jge 0x582a7d
mov byte [ebx], al
inc ebx
jmp 0x582a8d
push ebp
push dword [esp + 0x40]
push ebx
call fcn.00570f90
add esp, 0xc
add ebx, eax
mov edi, dword [esp + 0x30]
add edi, 0xc
mov edx, dword [edi + 0x10]
cmp edx, 7
ja 0x582b17
mov byte [ebx], dl
inc ebx
test edx, edx
je 0x582b52
movzx ebp, byte [edx + 0x6167b0]
mov ecx, dword [edi - 0xc]
mov eax, dword [edi - 8]
lea edx, [ebp - 1]
cmp edx, 5
ja case.0x582ac0.5
jmp dword [edx*4 + 0x5888f8]
mov byte [esi + 7], cl
shrd ecx, eax, 8
shr eax, 8
mov byte [esi + 6], cl
shrd ecx, eax, 8
shr eax, 8
mov byte [esi + 5], cl
shrd ecx, eax, 8
shr eax, 8
mov byte [esi + 4], cl
shrd ecx, eax, 8
shr eax, 8
mov byte [esi + 3], cl
shrd ecx, eax, 8
shr eax, 8
mov byte [esi + 2], cl
shrd ecx, eax, 8
shr eax, 8
mov byte [esi + 1], cl
shrd ecx, eax, 8
shr eax, 8
mov dword [esp + 0x40], eax
mov byte [esi], cl
add esi, ebp
jmp 0x582b52
cmp edx, 0x80
jae 0x582b2f
mov byte [ebx], dl
inc ebx
cmp edx, 0xe
jb 0x582b52
mov eax, dword [edi]
test eax, eax
jle 0x582b52
jmp 0x582b43
push 0
push edx
push ebx
call fcn.00570f90
add ebx, eax
add esp, 0xc
mov eax, dword [edi]
test eax, eax
je 0x582b52
push eax
push dword [edi - 4]
push esi
call fcn.00430da0
add esp, 0xc
add esi, dword [edi]
mov eax, dword [esp + 0x24]
lea eax, [eax*8 - 0x1c]
add eax, dword [esp + 0x30]
cmp edi, eax
je 0x584978
add edi, 0x28
jmp 0x582a94
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
cmp dword [edx + 0xc], 0
mov ecx, dword [edx + 4]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x2c]
push esi
je 0x582b99
call fcn.005452b0
add esp, 4
mov ebx, eax
mov ebp, edx
jmp 0x582ccb
xorps xmm0, xmm0
movlpd qword [esp + 0x28], xmm0
movlpd qword [esp + 0x40], xmm0
call fcn.005297e0
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
cmp edx, 0x10
jne 0x582bd7
xorps xmm0, xmm0
xor edi, edi
movlpd qword [esp + 0x24], xmm0
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x14], edi
jmp 0x582ccb
test edx, edx
jne 0x582cb7
mov ebp, dword [esp + 0x40]
mov ebx, dword [esp + 0x3c]
nop word [eax + eax]
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x128], 0
jne 0x582cb7
mov edi, dword [esi + 0x74]
mov cl, byte [edi + 8]
test cl, cl
jne 0x582c10
cmp byte [edi + 1], cl
jne 0x582c6a
movzx eax, word [edi + 0x18]
cdq
add ebx, eax
adc ebp, edx
test cl, cl
je 0x582c6a
nop dword [eax]
mov dl, byte [esi + 0x44]
test dl, dl
je 0x582d04
movsx ecx, dl
xor eax, eax
mov word [esi + 0x32], ax
dec dl
and byte [esi + 1], 0xf9
mov ax, word [esi + ecx*2 + 0x46]
mov word [esi + 0x46], ax
mov byte [esi + 0x44], dl
mov eax, dword [esi + ecx*4 + 0x74]
mov dword [esi + 0x74], eax
push dword [edi + 0x48]
call fcn.00569d50
mov edi, dword [esi + 0x74]
add esp, 4
movzx eax, word [esi + 0x46]
cmp ax, word [edi + 0x18]
jae 0x582c20
inc eax
mov word [esi + 0x46], ax
movzx ecx, word [esi + 0x46]
movzx eax, word [edi + 0x18]
cmp ecx, eax
jne 0x582c83
movzx ecx, byte [edi + 9]
mov eax, dword [edi + 0x38]
mov eax, dword [ecx + eax + 8]
jmp 0x582c9d
mov eax, dword [edi + 0x40]
mov ax, word [eax + ecx*2]
mov ch, al
mov cl, ah
movzx eax, word [edi + 0x1a]
movzx ecx, cx
and ecx, eax
mov eax, dword [edi + 0x38]
mov eax, dword [ecx + eax]
bswap eax
push eax
push esi
call fcn.00529490
mov edx, eax
add esp, 8
mov dword [esp + 0x14], edx
test edx, edx
je 0x582bf0
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
test edx, edx
jne 0x587ec7
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x38c]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea eax, [eax + ecx*8]
mov ecx, 0x9000
test word [eax + 0x10], cx
je 0x582d15
push eax
call fcn.0052ca40
add esp, 4
mov dword [eax], ebx
mov dword [eax + 4], ebp
mov ebp, dword [esp + 0x18]
jmp 0x585b62
push esi
call fcn.005297e0
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
jmp 0x582cbf
mov ecx, 4
mov word [eax + 0x10], cx
mov dword [eax], ebx
mov dword [eax + 4], ebp
mov ebp, dword [esp + 0x18]
jmp 0x585b62
mov edx, dword [esp + 0x10]
mov edi, dword [edx + 4]
mov ebx, dword [edx + 0x10]
mov dword [esp + 0x50], edi
test edi, edi
jne 0x582e0e
cmp dword [ebp + 0xc4], edi
jg 0x587f35
test ebx, ebx
jne 0x582d56
xor esi, esi
jmp 0x582d6f
mov esi, ebx
lea ecx, [esi + 1]
nop dword [eax + eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x582d60
sub esi, ecx
and esi, 0x3fffffff
mov eax, dword [ebp + 0x1fc]
add eax, dword [ebp + 0x1f8]
push eax
push 0
push ebp
call fcn.0058e8f0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
jne 0x587ec7
push edx
lea eax, [esi + 0x21]
push eax
push ebp
call fcn.0054aba0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x5830b1
lea ecx, [esi + 1]
push ecx
lea edx, [edi + 0x20]
push ebx
push edx
mov dword [edi], edx
call fcn.00430da0
add esp, 0xc
cmp byte [ebp + 0x55], 0
je 0x582dd0
mov byte [ebp + 0x55], 0
mov byte [ebp + 0x5d], 1
jmp 0x582dd6
inc dword [ebp + 0x1f8]
mov eax, dword [ebp + 0x1ec]
mov dword [edi + 0x18], eax
mov dword [ebp + 0x1ec], edi
mov eax, dword [ebp + 0x200]
mov ecx, dword [ebp + 0x204]
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov eax, dword [ebp + 0x208]
mov ecx, dword [ebp + 0x20c]
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], ecx
jmp 0x5830b1
mov eax, dword [esp + 0x18]
xor ebp, ebp
mov esi, dword [eax + 0x1ec]
test esi, esi
je 0x582e37
nop
push ebx
push dword [esi]
call fcn.005794f0
add esp, 8
test eax, eax
je 0x582e5b
mov esi, dword [esi + 0x18]
inc ebp
test esi, esi
jne 0x582e20
mov ebp, dword [esp + 0x38c]
push ebx
push str.no_such_savepoint:__s
push ebp
call fcn.0057fd60
mov edx, 1
add esp, 0xc
mov dword [esp + 0x14], edx
jmp 0x587ece
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x50]
cmp dword [edx + 0xc4], 0
jle 0x582e75
cmp ecx, 1
je 0x587f4d
cmp dword [esi + 0x18], 0
jne 0x582eec
cmp byte [edx + 0x5d], 0
je 0x582eec
mov edi, 1
mov dword [esp + 0x2c], edi
cmp ecx, edi
jne 0x582ef4
mov ebx, dword [esp + 0x38c]
push edi
push ebx
call fcn.0057f400
mov ecx, eax
add esp, 8
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x58835d
mov eax, dword [esp + 0x18]
push ebx
mov byte [eax + 0x55], 1
call fcn.00589360
add esp, 4
cmp eax, 5
je 0x587f7f
mov edx, dword [ebx + 0x24]
mov dword [esp + 0x14], edx
test edx, edx
jne 0x587f70
mov eax, dword [esp + 0x18]
mov dword [esp + 0x2c], edi
mov byte [eax + 0x5d], dl
lea ebx, [eax + 0x1f8]
jmp 0x582ff6
mov dword [esp + 0x2c], 0
lea eax, [edx + 0x1f8]
mov dword [esp + 0x24], eax
mov eax, dword [eax]
sub eax, ebp
lea ebp, [eax - 1]
cmp ecx, 2
jne 0x582f62
mov eax, dword [edx + 0x18]
xor ebx, ebx
and eax, 1
mov dword [esp + 0x30], eax
cmp dword [edx + 0x14], ebx
jle 0x582f68
xor eax, 1
xor edi, edi
mov dword [esp + 0x3c], eax
push eax
mov eax, dword [edx + 0x10]
push 0x204
push dword [edi + eax + 4]
call fcn.00546010
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
jne 0x587ec7
mov edx, dword [esp + 0x18]
inc ebx
mov eax, dword [esp + 0x3c]
add edi, 0x10
cmp ebx, dword [edx + 0x14]
jl 0x582f24
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x50]
jmp 0x582f68
xor eax, eax
mov dword [esp + 0x30], eax
xor ebx, ebx
cmp dword [edx + 0x14], ebx
jle 0x582fab
xor edi, edi
jmp 0x582f75
mov edx, eax
mov eax, dword [edx + 0x10]
push ebp
push ecx
push dword [edi + eax + 4]
call fcn.00545320
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
jne 0x587ec7
mov eax, dword [esp + 0x18]
inc ebx
mov ecx, dword [esp + 0x50]
add edi, 0x10
cmp ebx, dword [eax + 0x14]
jl 0x582f73
mov eax, dword [esp + 0x30]
jmp 0x582faf
mov edx, dword [esp + 0x14]
test eax, eax
je 0x582fea
mov ebx, dword [esp + 0x18]
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x582fd9
nop
mov eax, dword [ecx + 0x98]
and eax, 0xfffffffd
or eax, 1
mov dword [ecx + 0x98], eax
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x582fc0
push ebx
call fcn.00572300
mov edx, dword [esp + 0x18]
add esp, 4
or dword [ebx + 0x18], 1
mov ebx, dword [esp + 0x24]
test edx, edx
jne 0x587ec7
mov edi, dword [esp + 0x18]
mov ecx, dword [edi + 0x1ec]
cmp ecx, esi
je 0x583023
mov eax, dword [ecx + 0x18]
push ecx
push edi
mov dword [edi + 0x1ec], eax
call fcn.0054aa60
dec dword [ebx]
add esp, 8
mov ecx, dword [edi + 0x1ec]
cmp ecx, esi
jne 0x583004
mov edi, dword [esp + 0x50]
cmp edi, 1
jne 0x58304e
mov ecx, dword [esp + 0x18]
mov eax, dword [esi + 0x18]
push esi
push ecx
mov dword [ecx + 0x1ec], eax
call fcn.0054aa60
add esp, 8
cmp dword [esp + 0x2c], 0
jne 0x5830ad
dec dword [ebx]
jmp 0x583082
cmp dword [esp + 0x2c], 0
mov edx, dword [esp + 0x18]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [edx + 0x200], eax
mov dword [edx + 0x204], ecx
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov dword [edx + 0x208], eax
mov dword [edx + 0x20c], ecx
je 0x583082
cmp edi, 2
jne 0x5830a9
push ebp
mov ebp, dword [esp + 0x1c]
push edi
push ebp
call fcn.0058e8f0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
je 0x5830b1
mov edi, ebp
mov ebp, dword [esp + 0x38c]
jmp 0x587ed2
mov ebp, edx
jmp 0x5830b1
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x38c]
cmp byte [esi + 0x97], 3
je 0x587fb2
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x30], 0
mov edi, dword [ebx + 8]
test edi, edi
je 0x58310b
mov edx, dword [ebp + 0x20]
mov eax, edx
mov ecx, dword [ebp + 0x24]
and eax, 0x100000
and ecx, 2
or eax, ecx
jne 0x587fbc
mov eax, dword [esp + 0x18]
mov ebp, dword [ebx + 4]
shl ebp, 4
add ebp, dword [eax + 0x10]
mov esi, dword [ebp + 4]
test esi, esi
je 0x583223
lea eax, [esp + 0x30]
push eax
push edi
push esi
call fcn.00541e90
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
jne 0x587ff2
mov edi, dword [esp + 0x38c]
test byte [edi + 0x98], 0x20
je 0x58322f
cmp dword [ebx + 8], eax
je 0x58322f
mov ecx, dword [esp + 0x18]
cmp byte [ecx + 0x55], al
je 0x583173
cmp dword [ecx + 0xc0], 1
jle 0x58322f
mov eax, dword [edi + 0x30]
test eax, eax
jne 0x58318f
inc dword [ecx + 0x1fc]
mov eax, dword [ecx + 0x1f8]
add eax, dword [ecx + 0x1fc]
mov dword [edi + 0x30], eax
dec eax
push eax
push 0
push ecx
call fcn.0058e8f0
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
jne 0x5831fb
mov edi, dword [edi + 0x30]
mov ebx, dword [esi + 4]
cmp byte [esi + 9], al
je 0x5831c0
inc dword [esi + 0xc]
cmp byte [esi + 0xa], al
jne 0x5831c0
push esi
call fcn.004edaf0
add esp, 4
mov eax, dword [ebx]
cmp edi, dword [eax + 0x68]
jle 0x5831d9
cmp byte [eax + 6], 0
je 0x5831d9
push edi
push eax
call fcn.0052d390
add esp, 8
jmp 0x5831db
xor eax, eax
cmp byte [esi + 9], 0
mov dword [esp + 0x14], eax
je 0x5831f4
add dword [esi + 0xc], 0xffffffff
jne 0x5831f4
push esi
call fcn.0059ad30
add esp, 4
mov edi, dword [esp + 0x38c]
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x200]
mov ecx, dword [edx + 0x204]
mov dword [edi + 0x48], eax
mov dword [edi + 0x4c], ecx
mov eax, dword [edx + 0x208]
mov ecx, dword [edx + 0x20c]
mov dword [edi + 0x50], eax
mov dword [edi + 0x54], ecx
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x587ec7
mov edi, dword [esp + 0x10]
cmp word [edi + 2], 0
je 0x580949
mov eax, dword [esp + 0x30]
cmp eax, dword [edi + 0xc]
jne 0x583256
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
cmp eax, dword [edi + 0x10]
je 0x580f21
mov ebp, dword [esp + 0x38c]
mov eax, dword [ebp + 0x7c]
test eax, eax
je 0x583271
push eax
push dword [esp + 0x1c]
call fcn.0054aa60
add esp, 8
push 0
push 0x1c
push dword [esp + 0x20]
call fcn.0054aba0
add esp, 0xc
test eax, eax
je 0x5832a5
movups xmm0, xmmword [str.database_schema_has_changed]
movups xmmword [eax], xmm0
movq xmm0, qword [0x61b0c4]
movq qword [eax + 0x10], xmm0
mov ecx, dword [0x61b0cc]
mov dword [eax + 0x18], ecx
mov dword [ebp + 0x7c], eax
mov eax, dword [esp + 0x18]
mov edx, dword [edi + 4]
mov ecx, edx
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax]
cmp eax, dword [esp + 0x30]
je 0x5832cf
push edx
push dword [esp + 0x1c]
call fcn.00572380
add esp, 8
mov eax, dword [ebp + 0x98]
mov edx, 0x11
and eax, 0xffffffed
mov dword [esp + 0x14], edx
or eax, 1
mov dword [ebp + 0x98], eax
jmp 0x587ece
mov edx, dword [esp + 0x10]
lea eax, [esp + 0xf8]
push eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [edx + 4]
push dword [edx + 0xc]
add ecx, ecx
push dword [eax + ecx*8 + 4]
call fcn.005432a0
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x58335c
push ecx
call fcn.0052ca40
mov ecx, eax
add esp, 4
mov eax, dword [esp + 0xf8]
cdq
mov dword [ecx], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov eax, 4
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0xf8]
cdq
mov dword [ecx], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edi, dword [esp + 0x10]
mov esi, dword [edi + 4]
push dword [edi + 0xc]
shl esi, 4
add esi, dword [ebp + 0x10]
push dword [edi + 8]
push dword [esi + 4]
call fcn.00546110
mov dword [esp + 0x20], eax
add esp, 0xc
mov eax, dword [edi + 8]
cmp eax, 1
jne 0x583445
movzx eax, word [edi + 2]
mov ecx, dword [edi + 0xc]
sub ecx, eax
mov eax, dword [esi + 0xc]
mov dword [eax], ecx
or dword [ebp + 0x18], 1
mov ecx, dword [edi + 4]
mov eax, dword [ebp + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov edi, dword [eax + 0x10]
test edi, edi
je 0x583420
nop dword [eax]
mov esi, dword [edi + 8]
cmp byte [esi + 0x2b], 0
jne 0x58341a
mov esi, dword [esi + 0x30]
test esi, esi
je 0x58341a
push dword [esi + 0x1c]
push ebp
call fcn.004ff310
mov dword [esi + 0x1c], 0
push dword [esi + 0x20]
push ebp
call fcn.004ff310
mov dword [esi + 0x20], 0
add esp, 0x10
mov esi, dword [esi + 4]
test esi, esi
jne 0x5833f0
mov edi, dword [edi]
test edi, edi
jne 0x5833e0
mov edi, dword [esp + 0x10]
cmp dword [edi + 4], 1
jne 0x583455
push 0
push ebp
call fcn.0054d840
mov esi, dword [esp + 0x394]
add esp, 8
and dword [esi + 0x98], 0xfffffffc
jmp 0x58345c
cmp eax, 2
jne 0x583424
mov ecx, dword [esi + 0xc]
mov al, byte [edi + 0xc]
mov byte [ecx + 0x4c], al
jmp 0x583424
mov esi, dword [esp + 0x38c]
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x587ec7
mov ecx, dword [esp + 0x10]
mov edi, edx
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edi, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ecx, dword [edi + 4]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x5834b4
mov eax, dword [esi + 0x38]
cmp eax, dword [edi + 8]
jne 0x5834b4
push dword [esi + 0x2c]
call fcn.00542010
mov edx, dword [esp + 0x18]
add esp, 4
jmp 0x5835c5
mov edi, dword [esp + 0x10]
jmp 0x5834bb
mov esi, dword [esp + 0x38c]
mov eax, dword [esi + 0x98]
and al, 3
cmp al, 1
je 0x58802c
mov ecx, dword [esp + 0x18]
xor ebp, ebp
mov eax, dword [edi + 0xc]
mov ebx, dword [edi + 8]
mov dword [esp + 0x3c], eax
shl eax, 4
add eax, dword [ecx + 0x10]
mov ecx, dword [eax + 4]
mov dword [esp + 0x30], ecx
cmp dl, 0x71
jne 0x58350d
mov eax, dword [eax + 0xc]
movzx edi, word [edi + 2]
and edi, 8
or edi, 4
mov al, byte [eax + 0x4c]
cmp al, byte [esi + 0x95]
jae 0x58350f
mov byte [esi + 0x95], al
jmp 0x58350f
xor edi, edi
mov ecx, dword [esp + 0x10]
test byte [ecx + 2], 0x10
je 0x583552
mov ecx, dword [esp + 0x20]
lea eax, [ebx + ebx*4]
lea esi, [ecx + eax*8]
push esi
call fcn.00589a20
mov dword [esi], eax
mov ecx, 0xf244
mov dword [esi + 4], edx
add esp, 4
mov ax, word [esi + 0x10]
and ax, cx
mov ecx, dword [esp + 0x10]
or ax, 4
mov word [esi + 0x10], ax
mov ebx, dword [esi]
mov esi, dword [esp + 0x38c]
mov al, byte [ecx + 1]
cmp al, 0xf8
jne 0x583562
mov ebp, dword [ecx + 0x10]
movzx eax, word [ebp + 8]
jmp 0x58356d
cmp al, 0xfd
jne 0x58356b
mov eax, dword [ecx + 0x10]
jmp 0x58356d
mov eax, ebp
push 0
push eax
push dword [ecx + 4]
push esi
call fcn.004e7de0
mov esi, eax
add esp, 0x10
test esi, esi
je 0x582337
mov eax, dword [esp + 0x3c]
mov byte [esi + 1], al
mov byte [esi + 2], 1
or dword [esi + 8], 4
mov dword [esi + 0x38], ebx
push dword [esi + 0x2c]
push ebp
push edi
push ebx
push dword [esp + 0x40]
call fcn.00542b30
mov edi, dword [esp + 0x24]
add esp, 0x14
mov dword [esi + 0x30], ebp
mov edx, eax
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x14], edx
cmp byte [edi + 1], 0xf8
setne al
mov byte [esi + 4], al
mov cl, byte [edi + 2]
mov eax, dword [esi + 0x2c]
and cl, 3
mov byte [eax + 3], cl
test edx, edx
jne 0x587ec7
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x38c]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
push 0
mov ecx, dword [edx + 8]
mov edi, dword [eax + ecx*4]
movsx eax, word [edi + 0x3c]
push eax
push dword [edx + 4]
push esi
call fcn.004e7de0
mov esi, eax
add esp, 0x10
test esi, esi
je 0x58233b
mov byte [esi + 2], 1
mov edx, dword [esi + 8]
or edx, 1
mov dword [esi + 8], edx
mov eax, dword [edi + 0x30]
mov dword [esi + 0x30], eax
mov al, byte [edi + 4]
mov byte [esi + 4], al
mov eax, dword [edi + 0x38]
mov dword [esi + 0x38], eax
mov ecx, dword [edi + 8]
xor ecx, edx
and ecx, 4
xor ecx, edx
mov dword [esi + 8], ecx
or ecx, 8
mov eax, dword [edi + 0x10]
mov dword [esi + 0x10], eax
mov dword [esi + 8], ecx
or dword [edi + 8], 8
push dword [esi + 0x2c]
push dword [esi + 0x30]
push 4
push dword [esi + 0x38]
push dword [esi + 0x10]
call fcn.00542b30
mov ecx, dword [esp + 0x24]
mov edi, eax
mov esi, dword [esp + 0x3a0]
add esp, 0x14
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x14], edi
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0xc]
test eax, eax
jle 0x5836c3
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
mov dword [ecx + eax*8 + 0xc], 0
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
mov dword [ecx + eax*8 + 8], 0x5f9000
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x60]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x58373a
test byte [esi + 8], 8
jne 0x58373a
movsx eax, word [esi + 0x3c]
cmp dword [edi + 8], eax
jg 0x58373a
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
push 0
push dword [esi + 0x38]
push dword [esi + 0x10]
call fcn.00542090
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
mov dword [esp + 0x24], edx
test edx, edx
jne 0x587ec7
mov ecx, dword [esp + 0x10]
mov edi, eax
mov eax, dword [esp + 0x1c]
mov byte [esi + 2], 1
mov esi, dword [esp + 0x38c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
push 0
push dword [edi + 8]
push ecx
push dword [esp + 0x398]
call fcn.004e7de0
mov esi, eax
add esp, 0x10
test esi, esi
je 0x58233b
mov eax, dword [esp + 0x10]
lea edi, [esi + 0x10]
or dword [esi + 8], 1
push 0x41e
movzx eax, word [eax + 2]
or eax, 5
push eax
push edi
push ebp
push 0
push dword [ebp]
call fcn.00544710
mov edx, eax
add esp, 0x18
mov dword [esp + 0x14], edx
test edx, edx
jne 0x587ec7
mov eax, dword [edi]
cmp byte [eax + 9], dl
jne 0x5837b8
mov cl, byte [eax + 8]
test cl, cl
je 0x5837b8
cmp cl, 1
je 0x5837b8
mov ecx, dword [eax + 4]
mov eax, dword [eax]
push dword [eax + 0x1f8]
push dword [ecx]
call fcn.00569160
add esp, 8
jmp 0x5837c5
push 0
push 1
push eax
call fcn.004ec8e0
add esp, 0xc
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x583842
mov eax, dword [esp + 0x10]
lea ebx, [esi + 0x38]
mov ebp, dword [eax + 0x10]
mov dword [esi + 0x30], ebp
test ebp, ebp
je 0x58381b
movzx eax, word [eax + 2]
or eax, 2
push eax
push ebx
push dword [edi]
call fcn.00542ae0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
jne 0x583815
push dword [esi + 0x2c]
push ebp
push 4
push dword [ebx]
push dword [edi]
call fcn.00542b30
mov edx, eax
add esp, 0x14
mov dword [esp + 0x14], edx
mov byte [esi + 4], 0
jmp 0x58383e
mov dword [ebx], 1
push dword [esi + 0x2c]
push 0
push 4
push 1
push dword [edi]
call fcn.00542b30
mov edx, eax
mov byte [esi + 4], 1
add esp, 0x14
mov dword [esp + 0x14], edx
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
xor ecx, ecx
cmp word [eax + 2], 8
mov eax, 4
cmovne ecx, eax
mov eax, dword [esi + 8]
and eax, 0xfffffffb
or ecx, eax
mov dword [esi + 8], ecx
test edx, edx
jne 0x588036
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov byte [esi + 2], 1
mov esi, dword [esp + 0x38c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edi, dword [esp + 0x10]
push 1
push dword [edi + 8]
push dword [edi + 4]
push esi
call fcn.004e7de0
add esp, 0x10
test eax, eax
je 0x582342
mov ecx, dword [edi + 0x10]
push eax
mov dword [eax + 0x30], ecx
push dword [edi + 0xc]
push ebp
call fcn.0058cb70
add esp, 0xc
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x587ec7
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
mov edx, dword [eax + ecx*4]
mov edi, dword [edx + 0x18]
mov ecx, edi
mov esi, dword [edx + 0x1c]
add ecx, 1
mov eax, esi
mov dword [edx + 0x18], ecx
adc eax, 0
or edi, esi
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x38c]
mov dword [edx + 0x1c], eax
jne 0x583c36
jmp 0x583c1a
mov edx, dword [esp + 0x10]
push 3
push dword [edx + 0xc]
push dword [edx + 4]
push esi
call fcn.004e7de0
add esp, 0x10
test eax, eax
je 0x582342
mov ecx, dword [esp + 0x10]
mov byte [eax + 2], 1
mov ecx, dword [ecx + 8]
mov dword [eax + 0x24], ecx
mov ecx, dword [esp + 0x10]
mov byte [eax + 4], 1
mov dword [eax + 0x2c], 0x64e01c
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x58398a
push eax
push esi
call fcn.00589140
add esp, 8
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x60]
mov dword [eax + ecx*4], 0
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov dword [esp + 0x2c], 0
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov byte [edi + 2], 0
mov byte [edi + 3], 0
mov dword [edi + 0x20], 0
cmp byte [edi + 4], 0
je 0x583ae6
mov eax, dword [edx + 0xc]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 0x10]
mov dword [esp + 0x24], eax
and al, 0x2e
cmp al, 2
jne 0x583a06
push 0
push esi
call fcn.004e9d60
add esp, 8
push esi
call fcn.00589a20
movzx ecx, word [esi + 0x10]
add esp, 4
mov dword [esp + 0x30], edx
mov ebp, eax
mov eax, dword [esp + 0x24]
mov word [esi + 0x10], ax
test cl, 0x24
jne 0x583ab0
test cl, 8
jne 0x583a83
test cl, 1
jne 0x58416b
cmp ebx, 0x17
jae 0x58416b
mov eax, dword [edi + 0x2c]
cmp byte [eax], 0
jne 0x583a62
test byte [eax + 1], 8
je 0x583a62
xor edi, edi
mov dword [esp + 0x5c], 0
mov dword [esp + 0x14], edi
jmp 0x580f25
lea ecx, [esp + 0x5c]
push ecx
push eax
call fcn.004eda60
mov edx, eax
add esp, 8
mov dword [esp + 0x14], edx
test edx, edx
jne 0x587ec7
jmp 0x583c65
movsd xmm0, qword [esi]
sub esp, 8
movsd qword [esp], xmm0
push dword [esp + 0x38]
push ebp
call fcn.005641d0
add esp, 0x10
test eax, eax
jle 0x583aa8
test bl, 1
jne 0x583ab0
dec ebx
jmp 0x583ab0
jns 0x583ab0
test bl, 1
je 0x583ab0
inc ebx
lea eax, [esp + 0x5c]
push eax
push 0
push dword [esp + 0x38]
lea esi, [edi + 0x2c]
push ebp
push dword [esi]
call fcn.005459e0
mov edx, eax
mov dword [edi + 0x40], ebp
mov eax, dword [esp + 0x44]
add esp, 0x14
mov dword [esp + 0x14], edx
mov dword [edi + 0x44], eax
test edx, edx
jne 0x587ec7
jmp 0x583b88
mov eax, dword [edi + 0x2c]
lea esi, [edi + 0x2c]
mov ecx, dword [edx + 0x10]
mov al, byte [eax + 3]
and al, 2
mov byte [esp + 0x57], al
mov eax, 0
setne al
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 0x30]
mov dword [esp + 0x240], eax
lea eax, [ebx - 1]
test al, 1
mov word [esp + 0x254], cx
mov ecx, dword [esp + 0x20]
sete al
lea eax, [eax*2 - 1]
mov byte [esp + 0x256], al
mov eax, dword [edx + 0xc]
mov byte [esp + 0x25a], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x244], eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x244]
push eax
push dword [esi]
call fcn.00543480
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
jne 0x587ec7
cmp byte [esp + 0x57], al
je 0x583b88
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x2c], eax
cmp byte [esp + 0x25a], dl
je 0x583c65
mov eax, dword [esp + 0x5c]
cmp ebx, 0x17
jl 0x583c4d
test eax, eax
js 0x583bde
jne 0x583ba0
cmp ebx, 0x18
je 0x583bde
mov dword [esp + 0x5c], 0
cmp dword [esp + 0x2c], 0
mov ebp, dword [esp + 0x18]
je 0x58497c
add dword [esp + 0x10], 0x14
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x38c]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
push 0
push dword [esi]
mov dword [esp + 0x64], 0
call fcn.00544670
mov edx, eax
add esp, 8
mov dword [esp + 0x14], edx
test edx, edx
je 0x583ba8
cmp edx, 0x65
jne 0x587ec7
mov dword [esp + 0x5c], 1
xor edi, edi
mov dword [esp + 0x14], edi
mov esi, dword [esp + 0x38c]
mov ebp, dword [esp + 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x44]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea ebp, [ecx + eax*4]
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
test eax, eax
jg 0x583c75
jne 0x583c58
cmp ebx, 0x15
je 0x583c75
mov eax, dword [esi]
xor ecx, ecx
cmp byte [eax], cl
setne cl
mov dword [esp + 0x5c], ecx
cmp dword [esp + 0x5c], 0
jne 0x58416b
jmp 0x583ba8
push 0
push dword [esi]
mov dword [esp + 0x64], 0
call fcn.005450b0
jmp 0x583bef
mov ebx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ecx, dword [ebx + 0x18]
mov ebx, dword [eax + ecx*4]
mov ecx, dword [esp + 0x10]
mov eax, dword [ebx + 0x2c]
cmp byte [eax], 0
jne 0x583c3a
mov eax, dword [ebx + 0x30]
mov edi, dword [ecx + 4]
mov dword [esp + 0x2b0], eax
mov ax, word [ecx + 0x24]
mov word [esp + 0x2c4], ax
mov eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x20]
mov byte [esp + 0x2c6], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x2b4], eax
nop dword [eax]
mov esi, dword [ebx + 0x2c]
push esi
call fcn.0051c3a0
mov edx, dword [esi + 0x2c]
xor eax, eax
add esp, 4
mov ecx, edx
add ecx, 0xffffffff
adc eax, 0xffffffff
test eax, eax
ja 0x588049
jb 0x583d0f
cmp ecx, 0x7ffffffe
ja 0x588049
xor eax, eax
mov dword [esp + 0x274], ebp
mov word [esp + 0x270], ax
mov dword [esp + 0x278], eax
lea eax, [esp + 0x260]
push eax
push edx
push esi
call fcn.0058a5c0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
jne 0x587ec7
push eax
lea eax, [esp + 0x2b4]
push eax
push dword [esp + 0x270]
push dword [esp + 0x278]
call fcn.0058bb20
add esp, 0x10
mov esi, eax
cmp dword [esp + 0x278], 0
je 0x583d82
lea eax, [esp + 0x260]
push eax
call fcn.0059e800
add esp, 4
xor ebp, ebp
mov dword [esp + 0x14], ebp
test esi, esi
jle 0x583d98
mov eax, dword [esp + 0x10]
cmp word [eax + 2], bp
je 0x583e15
test esi, esi
jns 0x58416b
test edi, edi
jle 0x584978
mov dword [ebx + 0x20], ebp
xor eax, eax
mov ecx, dword [ebx + 0x2c]
dec edi
mov word [ecx + 0x32], ax
and byte [ecx + 1], 0xf9
cmp byte [ecx], al
je 0x583dc3
push ecx
call fcn.004edc70
jmp 0x583df7
movzx eax, word [ecx + 0x46]
mov edx, dword [ecx + 0x74]
mov esi, eax
inc eax
mov word [ecx + 0x46], ax
cmp ax, word [edx + 0x18]
jb 0x583de3
push ecx
mov word [ecx + 0x46], si
call fcn.004edc70
jmp 0x583df7
cmp byte [edx + 8], 0
mov ebp, dword [esp + 0x18]
jne 0x583ce0
push ecx
call fcn.00529570
mov ebp, dword [esp + 0x1c]
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
je 0x583ce0
cmp edx, 0x65
jne 0x58309b
add dword [esp + 0x10], 0x14
jmp 0x583c0d
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x10]
movzx edx, word [eax + 0xc]
mov ecx, dword [ecx + 8]
cmp edx, ecx
jge 0x583e56
mov word [eax + 0xc], cx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0xc]
cmp edx, ecx
jle 0x583c36
mov word [eax + 0xc], cx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov ecx, dword [ecx + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
je case.0x57fe9a.9
cmp byte [eax + 2], 0
je 0x583c36
jmp case.0x57fe9a.9
mov ecx, dword [ecx + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x10]
movzx eax, word [eax + 0xc]
cmp eax, dword [ecx + 0x10]
jge 0x583c3a
mov edi, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ecx, dword [edi + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [esp + 0x1d4], ecx
movzx eax, word [edi + 0x10]
mov word [esp + 0x1e4], ax
test ax, ax
je 0x583f1d
mov eax, dword [esi + 0x30]
lea ebx, [esi + 0x24]
mov dword [esp + 0x1d0], eax
lea eax, [esp + 0x1d0]
push ebx
push eax
mov byte [esp + 0x1ee], 0
push dword [esi + 0x2c]
call fcn.00543480
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
jmp 0x583f8b
mov eax, 0x400
test word [ecx + 0x10], ax
je 0x583f39
push ecx
call fcn.0058a3f0
add esp, 4
test eax, eax
jne 0x58233b
push dword [esi + 0x30]
call fcn.0057f110
mov edi, eax
add esp, 4
test edi, edi
je 0x58233b
mov ecx, dword [esp + 0x1d4]
push edi
push dword [ecx + 8]
push dword [ecx + 0xc]
push dword [esi + 0x30]
call fcn.0058c290
lea ebx, [esi + 0x24]
mov byte [edi + 0x16], 0
push ebx
push edi
push dword [esi + 0x2c]
call fcn.00543480
push edi
push ebp
mov dword [esp + 0x38], eax
call fcn.0054aa60
mov edx, dword [esp + 0x38]
add esp, 0x24
mov edi, dword [esp + 0x10]
test edx, edx
jne 0x587ec7
mov ecx, dword [ebx]
test ecx, ecx
setne al
mov byte [esi + 2], al
mov byte [esi + 3], dl
mov dword [esi + 0x20], edx
mov al, byte [edi]
cmp al, 0x1d
jne 0x583fd3
test ecx, ecx
je 0x58416b
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x38c]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
test ecx, ecx
jne 0x58416b
cmp al, 0x1b
jne 0x584033
movzx edx, word [esp + 0x1e4]
test edx, edx
je 0x58497c
mov eax, dword [esp + 0x1d4]
add eax, 0x10
nop dword [eax]
test byte [eax], 1
jne 0x58416b
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x584000
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x38c]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
cmp al, 0x1a
jne 0x58497c
mov ax, word [edi + 0x10]
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov word [esi + 0xc], ax
mov esi, dword [esp + 0x38c]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 0x24
jne 0x5840f9
movups xmm0, xmmword [ebx + eax*8]
movups xmmword [esp + 0x218], xmm0
movups xmm1, xmmword [ebx + eax*8 + 0x10]
movups xmmword [esp + 0x228], xmm1
movq xmm0, qword [ebx + eax*8 + 0x20]
movd eax, xmm1
movq qword [esp + 0x238], xmm0
test al, 4
jne 0x5840e5
test al, 0x28
jne 0x5840c6
test al, 2
je 0x5840dd
lea eax, [esp + 0x218]
push 1
push eax
call fcn.004e9d60
add esp, 8
jmp 0x5840d6
lea eax, [esp + 0x218]
push eax
call fcn.00589a90
add esp, 4
mov al, byte [esp + 0x228]
test al, 4
je 0x583c1a
mov edi, dword [esp + 0x218]
mov ebx, dword [esp + 0x21c]
jmp 0x58410a
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
mov edi, dword [ebx + eax*8]
mov ebx, dword [ebx + eax*8 + 4]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x24], 0
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x60]
mov esi, dword [eax + ecx*4]
lea eax, [esp + 0x24]
push eax
push 0
push ebx
push edi
push dword [esi + 0x2c]
call fcn.005459e0
mov dword [esi + 0x40], edi
mov edx, eax
mov eax, dword [esp + 0x38]
add esp, 0x14
mov dword [esi + 0x44], ebx
mov byte [esi + 2], 0
mov dword [esi + 0x20], 0
mov byte [esi + 3], 0
mov dword [esp + 0x14], edx
mov dword [esi + 0x24], eax
test eax, eax
je 0x5835d1
mov edi, dword [esp + 0x10]
cmp dword [edi + 8], 0
je 0x588071
mov edi, dword [esp + 0x14]
jmp 0x583c13
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x58419c
push edx
call fcn.0052ca40
add esp, 4
mov edx, eax
jmp 0x5841a5
mov eax, 4
mov word [edx + 0x10], ax
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
mov dword [edx], ecx
mov dword [edx + 4], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x10]
add dword [eax + 0x18], 1
adc dword [eax + 0x1c], 0
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov ebx, dword [esp + 0x10]
xorps xmm0, xmm0
movlpd qword [esp + 0x3c], xmm0
mov dword [esp + 0x2c], 0
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
mov dword [esp + 0x24], edx
test word [edx + 0x10], ax
je 0x584224
push edx
call fcn.0052ca40
add esp, 4
mov dword [esp + 0x24], eax
jmp 0x58422d
mov eax, 4
mov word [edx + 0x10], ax
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
mov ebp, dword [eax + ecx*4]
test byte [ebp + 8], 2
jne 0x5842c6
mov eax, dword [ebp + 0x2c]
cmp byte [eax], 0
jne 0x584283
test byte [eax + 1], 8
je 0x584283
xor eax, eax
mov dword [esp + 0x14], eax
mov esi, dword [ebp + 0x2c]
push esi
call fcn.0051c3a0
mov edi, dword [esi + 0x20]
add esp, 4
mov esi, dword [esi + 0x24]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], esi
cmp esi, 0x7fffffff
jl 0x5842b6
jg 0x58427d
cmp edi, 0xffffffff
jb 0x5842b6
or dword [ebp + 8], 2
jmp 0x5842ce
lea ecx, [esp + 0x2c]
push ecx
push eax
call fcn.004eda60
mov edx, eax
add esp, 8
mov dword [esp + 0x14], edx
test edx, edx
jne 0x587ec7
cmp dword [esp + 0x2c], eax
je 0x584254
mov edi, 1
xor esi, esi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], esi
jmp 0x5842ce
add edi, 1
mov dword [esp + 0x3c], edi
adc esi, 0
mov dword [esp + 0x40], esi
jmp 0x5842ce
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x584371
mov eax, dword [esp + 0x38c]
mov edx, dword [eax + 0xd0]
test edx, edx
je 0x584305
mov eax, dword [edx + 4]
test eax, eax
je 0x5842fa
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x5842f1
mov eax, dword [edx + 0xc]
lea ecx, [ecx + ecx*4]
lea ebx, [eax + ecx*8]
jmp 0x58430f
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x20]
lea ebx, [ecx + eax*8]
push ebx
call fcn.00589a20
mov dword [ebx], eax
mov ecx, 0xf244
mov dword [ebx + 4], edx
add esp, 4
mov ax, word [ebx + 0x10]
and ax, cx
or ax, 4
mov word [ebx + 0x10], ax
mov ecx, dword [ebx]
mov eax, dword [ebx + 4]
cmp ecx, 0xffffffff
jne 0x584346
cmp eax, 0x7fffffff
je 0x5843d6
test byte [ebp + 8], 2
jne 0x5843d6
add ecx, 1
adc eax, 0
cmp esi, eax
jg 0x58436c
jl 0x584360
cmp edi, ecx
jae 0x58436c
mov edi, ecx
mov esi, eax
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], esi
mov dword [ebx], edi
mov dword [ebx + 4], esi
test byte [ebp + 8], 2
je 0x5843e0
xor ebx, ebx
nop dword [eax]
lea eax, [esp + 0x3c]
push eax
push 8
call fcn.004e5440
mov esi, dword [esp + 0x48]
lea eax, [esp + 0x34]
mov edi, dword [esp + 0x44]
and esi, 0x3fffffff
push eax
add edi, 1
push 0
adc esi, 0
mov dword [esp + 0x4c], edi
push esi
push edi
push dword [ebp + 0x2c]
mov dword [esp + 0x5c], esi
call fcn.005459e0
mov edx, eax
add esp, 0x1c
mov dword [esp + 0x14], edx
test edx, edx
jne 0x587ec7
cmp dword [esp + 0x2c], eax
jne 0x5843e0
inc ebx
cmp ebx, 0x64
jl 0x584380
mov edx, 0xd
jmp 0x587ec3
mov eax, dword [esp + 0x24]
mov byte [ebp + 3], 0
mov dword [ebp + 0x20], 0
mov dword [eax], edi
mov dword [eax + 4], esi
jmp 0x580f21
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
mov eax, dword [edi + 8]
mov ecx, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x60]
mov esi, dword [eax + ecx*4]
mov eax, dword [edi + 0xc]
mov dword [esp + 0x24], esi
lea ecx, [eax + eax*4]
mov eax, dword [ebx + ecx*8]
mov ecx, dword [ebx + ecx*8 + 4]
mov dword [esp + 0x148], eax
mov dword [esp + 0x14c], ecx
cmp byte [edi + 1], 0xfb
jne 0x58444f
cmp dword [ebp + 0xfc], 0
je 0x58444f
movsx ecx, byte [esi + 1]
mov eax, dword [ebp + 0x10]
add ecx, ecx
mov edi, dword [edi + 0x10]
mov ebx, dword [eax + ecx*8]
jmp 0x584453
xor edi, edi
xor ebx, ebx
mov eax, dword [esp + 0x10]
test byte [eax + 2], 1
je 0x584486
mov ecx, dword [esp + 0x38c]
add dword [ecx + 0x28], 1
adc dword [ecx + 0x2c], 0
test byte [eax + 2], 0x20
je 0x584486
mov eax, dword [esp + 0x148]
mov ecx, dword [esp + 0x14c]
mov dword [ebp + 0x28], eax
mov dword [ebp + 0x2c], ecx
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + edx*8 + 8]
mov dword [esp + 0x150], eax
mov eax, dword [ecx + edx*8 + 0xc]
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x10]
test byte [eax + 2], 0x10
je 0x5844af
mov ecx, dword [esi + 0x24]
jmp 0x5844b1
xor ecx, ecx
mov ebp, dword [esp + 0x20]
mov esi, 0x400
test word [ebp + edx*8 + 0x10], si
mov esi, dword [esp + 0x24]
mov ebp, dword [esp + 0x18]
je 0x5844dd
mov eax, dword [esp + 0x20]
mov eax, dword [eax + edx*8]
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x10]
jmp 0x5844e8
mov dword [esp + 0x160], 0
mov dword [esp + 0x140], 0
movzx eax, word [eax + 2]
push ecx
and eax, 0x8a
push eax
lea eax, [esp + 0x148]
push eax
push dword [esi + 0x2c]
call fcn.005439e0
inc dword [esp + 0x98]
mov edx, eax
add esp, 0x10
mov byte [esi + 3], 0
mov dword [esp + 0x14], edx
mov dword [esi + 0x20], 0
test edx, edx
jne 0x58309b
test edi, edi
je 0x58497c
push dword [esp + 0x14c]
mov eax, dword [esp + 0x14]
mov ecx, 0x17
push dword [esp + 0x14c]
push dword [edi]
test byte [eax + 2], 4
mov eax, 0x12
push ebx
cmovne eax, ecx
push eax
push dword [ebp + 0xf8]
mov eax, dword [ebp + 0xfc]
call eax
mov edi, dword [esp + 0x2c]
add esp, 0x18
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x38c]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edi, dword [esp + 0x10]
mov ecx, dword [esi + 0x60]
mov eax, dword [edi + 4]
mov edx, dword [ecx + eax*4]
mov eax, dword [edi + 8]
mov esi, dword [ecx + eax*4]
mov eax, dword [edi + 0xc]
test eax, eax
je 0x5845bd
mov ebx, dword [esp + 0x20]
lea eax, [eax + eax*4]
mov ecx, dword [ebx + eax*8]
mov eax, dword [ebx + eax*8 + 4]
jmp 0x5845ce
xorps xmm0, xmm0
movlpd qword [esp + 0x24], xmm0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
push eax
push ecx
push dword [esi + 0x2c]
push dword [edx + 0x2c]
call fcn.00545c40
add esp, 0x10
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x587ec7
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x38c]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
lea ebx, [ebp + 0xfc]
cmp byte [edx + 1], 0xfb
mov eax, dword [edx + 8]
mov ecx, dword [edx + 4]
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0x60]
mov edi, dword [eax + ecx*4]
jne 0x584674
cmp dword [ebx], 0
je 0x584674
movsx ecx, byte [edi + 1]
mov eax, dword [ebp + 0x10]
add ecx, ecx
test byte [edx + 2], 2
mov ebp, dword [edx + 0x10]
mov esi, dword [eax + ecx*8]
mov dword [esp + 0x24], esi
je 0x584678
cmp byte [edi + 4], 0
je 0x584678
mov esi, dword [edi + 0x2c]
push esi
call fcn.0051c3a0
mov eax, dword [esi + 0x20]
add esp, 4
mov ecx, dword [esi + 0x24]
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
mov dword [edi + 0x40], eax
mov dword [edi + 0x44], ecx
jmp 0x584678
xor esi, esi
xor ebp, ebp
movzx eax, byte [edx + 2]
push eax
push dword [edi + 0x2c]
call fcn.00542c80
inc dword [esp + 0x90]
mov edx, eax
add esp, 8
mov dword [edi + 0x20], 0
mov dword [esp + 0x14], edx
mov dword [edi + 0x24], 0
test edx, edx
jne 0x587ec7
test byte [esp + 0x3c], 1
je 0x584978
mov eax, dword [esp + 0x38c]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], edx
mov eax, dword [ebx]
test eax, eax
je 0x584978
test ebp, ebp
je 0x584978
test byte [ebp + 0x1c], 0x80
jne 0x584978
push dword [edi + 0x44]
push dword [edi + 0x40]
push dword [ebp]
mov ebp, dword [esp + 0x24]
push esi
push 9
push dword [ebp + 0xf8]
call eax
mov edi, dword [esp + 0x2c]
add esp, 0x18
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x38c]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x2c]
mov dword [ebp + 0x68], eax
mov dword [ebp + 0x6c], ecx
add dword [ebp + 0x70], eax
mov eax, dword [esp + 0x1c]
adc dword [ebp + 0x74], ecx
mov ecx, dword [esp + 0x10]
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
mov esi, dword [edx + 0x10]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov edi, dword [ecx + 0x2c]
mov ebx, dword [ecx + 0x30]
lea eax, [eax + eax*4]
mov dword [esp + 0x24], eax
mov ebp, dword [edi + 0x20]
test ebp, ebp
jne 0x584795
push ebx
call fcn.0057f110
mov ebp, eax
add esp, 4
mov dword [edi + 0x20], ebp
test ebp, ebp
je 0x582356
mov word [ebp + 0x14], si
lea eax, [esp + 0xd4]
push eax
push edi
call fcn.005a1040
push ebp
push eax
push dword [esp + 0xe4]
push ebx
call fcn.0058c290
add esp, 0x18
xor ecx, ecx
test esi, esi
jle 0x5847d2
mov eax, dword [ebp + 4]
add eax, 0x10
test byte [eax], 1
jne 0x583c0d
inc ecx
add eax, 0x28
cmp ecx, esi
jl 0x5847c1
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
push 0
push ebp
push dword [ebx + eax*8 + 8]
push dword [ebx + eax*8 + 0xc]
call fcn.0058bb20
xor edx, edx
add esp, 0x10
mov dword [esp + 0x14], edx
test eax, eax
jne 0x58416b
mov dword [esp + 0x14], edx
jmp 0x580f21
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, dword [edx + 4]
lea eax, [esp + 0xd8]
push eax
mov eax, dword [esp + 0x390]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
push dword [eax + 0x2c]
call fcn.005a1040
mov edi, dword [esp + 0xe0]
add esp, 8
mov ebx, eax
cmp dword [esi + 0x18], edi
jge 0x58485c
push 0
push edi
push esi
call fcn.0058a620
add esp, 0xc
test eax, eax
jne 0x582356
jmp 0x584867
mov eax, dword [esi + 0x20]
mov dword [esi + 8], eax
and word [esi + 0x10], 0x2d
mov dword [esi + 0xc], edi
mov ecx, 0xf250
mov ax, word [esi + 0x10]
and ax, cx
push edi
or ax, 0x10
mov word [esi + 0x10], ax
push ebx
push dword [esi + 8]
call fcn.00430da0
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov esi, dword [esp + 0x38c]
xor edi, edi
mov dword [esp + 0x14], edi
mov ecx, dword [eax + 0xc]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x10]
mov dword [eax + 0x20], edi
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x5848e7
push esi
call fcn.0052ca40
add esp, 4
mov esi, eax
jmp 0x5848f0
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [esp + 0x38c]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
mov edi, dword [eax + 0x2c]
push edi
call fcn.0051c3a0
mov eax, dword [edi + 0x2c]
add esp, 4
cmp eax, dword [ebp + 0x78]
ja 0x582427
push esi
push eax
push edi
call fcn.0058a5c0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
jne 0x587ec7
mov edi, dword [esp + 0x10]
cmp dword [edi + 0xc], eax
jne 0x58497c
mov eax, 0x4000
test word [esi + 0x10], ax
je 0x58497c
push esi
call fcn.0058a850
mov esi, dword [esp + 0x390]
add esp, 4
test eax, eax
jne 0x582342
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x38c]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea edi, [eax + ecx*8]
mov eax, 0x9000
test word [edi + 0x10], ax
je 0x5849c6
push edi
call fcn.0052ca40
add esp, 4
mov edi, eax
jmp 0x5849cf
mov eax, 4
mov word [edi + 0x10], ax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x60]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 2], 0
je 0x584a0d
mov ecx, dword [esp + 0x10]
mov eax, 1
mov esi, dword [esp + 0x38c]
mov word [edi + 0x10], ax
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
cmp byte [esi + 3], 0
je 0x584a1e
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
jmp 0x584aec
cmp byte [esi], 2
mov ecx, dword [esi + 0x2c]
jne 0x584a85
mov esi, dword [ecx]
lea edx, [esp + 0xa0]
push edx
push ecx
mov eax, dword [esi]
mov eax, dword [eax + 0x30]
call eax
push esi
mov esi, dword [esp + 0x398]
push esi
mov dword [esp + 0x24], eax
call fcn.0058e5c0
mov edx, dword [esp + 0x24]
add esp, 0x10
test edx, edx
jne 0x587ec7
mov ecx, dword [esp + 0xa4]
mov eax, dword [esp + 0xa0]
mov dword [edi], eax
mov eax, dword [esp + 0x1c]
mov dword [edi + 4], ecx
mov edi, edx
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
cmp byte [ecx], 0
je 0x584aa3
push esi
call fcn.00589780
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x587ec7
jmp 0x584aa9
xor eax, eax
mov dword [esp + 0x14], eax
cmp byte [esi + 2], 0
je 0x584ada
mov ecx, dword [esp + 0x10]
mov eax, 1
mov esi, dword [esp + 0x38c]
mov word [edi + 0x10], ax
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov esi, dword [esi + 0x2c]
push esi
call fcn.0051c3a0
mov eax, dword [esi + 0x20]
add esp, 4
mov ecx, dword [esi + 0x24]
mov esi, dword [esp + 0x38c]
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xa0], eax
mov dword [edi], eax
mov eax, dword [esp + 0x1c]
mov dword [edi + 4], ecx
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov ecx, dword [ecx + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
jne 0x584b5a
push 3
push 1
push ecx
push esi
call fcn.004e7de0
add esp, 0x10
test eax, eax
je 0x582342
mov dword [eax + 0x24], 0
mov byte [eax + 4], 1
or dword [eax + 8], 8
mov dword [eax + 0x2c], 0x64e01c
mov byte [eax + 2], 1
mov dword [eax + 0x20], 0
cmp byte [eax], 0
jne 0x583c36
push dword [eax + 0x2c]
call fcn.00542010
mov ecx, dword [esp + 0x14]
add esp, 4
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edi, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ecx, dword [edi + 4]
mov esi, dword [eax + ecx*4]
xor eax, eax
mov dword [esp + 0x24], eax
mov ecx, dword [esi + 0x2c]
cmp dl, 0x89
jne 0x584c1a
mov dword [esi + 0x24], 0xffffffff
cmp byte [ecx], al
je 0x587189
lea eax, [esp + 0x24]
push eax
push ecx
call fcn.004eda60
mov edx, eax
add esp, 8
mov eax, dword [esp + 0x24]
mov byte [esi + 2], al
mov byte [esi + 3], 0
mov dword [esp + 0x14], edx
mov dword [esi + 0x20], 0
test edx, edx
jne 0x587ec3
mov edi, edx
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 8], 0
jle 0x57ffe7
test eax, eax
jne 0x58416b
mov esi, dword [esp + 0x38c]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
cmp byte [ecx], al
jne 0x584bba
test byte [ecx + 1], 8
je 0x584bba
mov byte [esi + 2], al
xor edi, edi
mov byte [esi + 3], al
mov dword [esp + 0x14], edi
mov dword [esi + 0x20], eax
jmp 0x584bea
mov edi, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ecx, dword [edi + 4]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x2c]
lea eax, [esp + 0xb0]
push eax
push esi
call fcn.005431d0
mov edx, eax
add esp, 8
mov dword [esp + 0x14], edx
test edx, edx
jne 0x587ec7
cmp dword [esp + 0xb0], eax
jne 0x58416b
push esi
call fcn.005452b0
add esp, 4
test edx, edx
jl 0x5803ed
jg 0x584c8c
test eax, eax
jb 0x5803ed
push edx
push eax
call fcn.00565e30
cwde
add esp, 8
cmp eax, dword [edi + 0xc]
jge 0x5803ed
mov edi, dword [esp + 0x14]
mov dword [esp + 0xb0], 1
jmp 0x583c13
inc dword [esi + 0xac]
mov edx, dword [esp + 0x10]
mov ebx, 1
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov esi, dword [edi + 0x2c]
cmp byte [edi], bl
jne 0x584d25
xor eax, eax
mov dword [esp + 0x14], eax
cmp byte [esi + 0x40], al
jne 0x584cfc
cmp dword [esi + 0x28], 0
lea eax, [esi + 0x28]
je 0x584d59
push eax
lea eax, [esi + 0x48]
xor ebx, ebx
push eax
call fcn.005a1350
add esp, 8
mov dword [esp + 0x14], eax
jmp 0x584d59
push esi
call fcn.005a07c0
push eax
push esi
call fcn.005a0920
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
jne 0x584d59
push esi
call fcn.005a10a0
add esp, 4
mov dword [esp + 0x14], eax
xor ebx, ebx
jmp 0x584d59
push esi
call fcn.005297e0
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x584d43
push esi
xor ebx, ebx
call fcn.00529570
add esp, 4
jmp 0x584d4a
cmp eax, 0x10
jne 0x584d4e
xor eax, eax
mov dword [esp + 0x14], eax
mov byte [edi + 3], 0
mov dword [edi + 0x20], 0
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x587ec7
mov byte [edi + 2], bl
mov edi, dword [esp + 0x10]
cmp dword [edi + 8], edx
jle 0x5803ed
test ebx, ebx
je 0x5803ed
mov edi, edx
jmp 0x583c13
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
mov ebx, dword [eax + ecx*4]
mov edi, dword [ebx + 0x2c]
cmp byte [edi + 0x40], 0
je 0x584e12
cmp byte [edi + 0x41], 0
je 0x584dd8
push dword [edi + 0x10]
call fcn.0059f610
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x584e53
mov eax, dword [edi + 0x10]
cmp dword [eax + 0x18], 0
jne 0x584e53
mov edi, dword [esp + 0x10]
mov eax, 0x65
mov dword [esp + 0x14], eax
mov edx, eax
jmp 0x584e98
lea eax, [esp + 0x24]
mov dword [esp + 0x24], 0
push eax
push dword [edi + 0x14]
call fcn.0059ef80
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
jne 0x584e53
cmp dword [esp + 0x24], eax
je 0x584e53
mov edi, dword [esp + 0x10]
mov eax, 0x65
mov dword [esp + 0x14], eax
mov edx, eax
jmp 0x584e98
mov ecx, dword [edi + 0x28]
mov eax, dword [ecx + 4]
mov dword [edi + 0x28], eax
mov dword [ecx + 4], 0
cmp dword [edi + 0x2c], 0
jne 0x584e42
mov esi, dword [ecx + 4]
push ecx
push ebp
call fcn.0054aa60
add esp, 8
mov ecx, esi
test esi, esi
jne 0x584e28
mov esi, dword [esp + 0x38c]
xor ecx, ecx
mov eax, 0x65
cmp dword [edi + 0x28], ecx
cmovne eax, ecx
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
jmp 0x584e98
mov edi, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ecx, dword [edi + 4]
push dword [edi + 0xc]
mov ebx, dword [eax + ecx*4]
push dword [ebx + 0x2c]
call fcn.005450b0
jmp 0x584e8f
mov edi, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ecx, dword [edi + 4]
push dword [edi + 0xc]
mov ebx, dword [eax + ecx*4]
push dword [ebx + 0x2c]
call fcn.00544670
mov edx, eax
add esp, 8
mov dword [esp + 0x14], edx
mov dword [ebx + 0x20], 0
test edx, edx
jne 0x584eb6
mov byte [ebx + 2], dl
movzx eax, word [edi + 2]
inc dword [esi + eax*4 + 0xa4]
jmp 0x5875ea
cmp edx, 0x65
jne 0x587ec7
xor edi, edi
mov byte [ebx + 2], 1
mov dword [esp + 0x14], edi
jmp 0x585b62
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ebx, dword [esp + 0x20]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov ecx, edx
test byte [ecx + 2], 1
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
je 0x584eff
mov eax, dword [esp + 0x38c]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
mov eax, 0x400
test word [esi + 0x10], ax
je 0x584f25
push esi
call fcn.0058a3f0
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x587ec7
mov ecx, dword [esp + 0x10]
mov eax, dword [esi + 0xc]
cdq
mov dword [esp + 0x318], eax
mov dword [esp + 0x31c], edx
mov eax, dword [esi + 8]
mov dword [esp + 0x310], eax
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [esp + 0x324], eax
mov ax, word [ecx + 0x10]
mov word [esp + 0x328], ax
movzx eax, word [ecx + 2]
test al, 0x10
je 0x584f6a
mov ecx, dword [edi + 0x24]
jmp 0x584f6c
xor ecx, ecx
push ecx
and eax, 0x8a
push eax
lea eax, [esp + 0x318]
push eax
push dword [edi + 0x2c]
call fcn.005439e0
mov edx, eax
mov dword [edi + 0x20], 0
add esp, 0x10
mov dword [esp + 0x14], edx
test edx, edx
jne 0x587ec7
mov ecx, dword [esp + 0x10]
mov edi, eax
mov esi, dword [esp + 0x38c]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x400
test word [esi + 0x10], ax
je 0x584ff7
push esi
call fcn.0058a3f0
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x587ec7
push esi
push edi
call fcn.0058d180
add esp, 8
jmp 0x5845de
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x20]
mov eax, dword [esi + 0x30]
mov edi, dword [esi + 0x2c]
mov dword [esp + 0x2d0], eax
mov ax, word [edx + 0xc]
mov word [esp + 0x2e4], ax
mov byte [esp + 0x2e6], 0
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x2d4], eax
lea eax, [esp + 0xdc]
push eax
lea eax, [esp + 0x2d4]
push eax
push edi
call fcn.00543480
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
jne 0x587ec7
cmp dword [esp + 0xdc], eax
jne 0x58509c
push 4
push edi
call fcn.00542c80
mov edx, eax
add esp, 8
mov dword [esp + 0x14], edx
test edx, edx
jne 0x587ec7
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], eax
jmp 0x5845ec
mov edi, dword [esp + 0x10]
cmp word [edi + 2], 0
je 0x5850b8
mov eax, dword [ebp + 0x20]
and eax, 0x10000001
cmp eax, 1
jne 0x588099
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
jmp 0x5845ec
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
mov ebp, dword [eax + ecx*4]
mov eax, dword [ebp + 0x2c]
cmp byte [eax], 0
je 0x5850fb
push ebp
call fcn.00589780
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x587ec7
mov edi, eax
jmp 0x585101
xor edi, edi
mov dword [esp + 0x14], edi
cmp byte [ebp + 2], 0
jne 0x5852b2
mov esi, dword [ebp + 0x2c]
push esi
call fcn.0051c3a0
mov eax, dword [esi + 0x2c]
xor ecx, ecx
mov word [esp + 0x204], cx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x208], ecx
lea ecx, [esp + 0x1f4]
push ecx
push eax
push esi
mov dword [esp + 0x218], 0
call fcn.0058a5c0
mov edx, eax
add esp, 0x10
mov dword [esp + 0x14], edx
test edx, edx
jne 0x587ec7
mov ebx, dword [esp + 0x1f8]
movzx esi, byte [ebx]
mov dword [esp + 0x24], esi
cmp esi, 0x80
jb 0x58517f
lea eax, [esp + 0x24]
push eax
push ebx
call fcn.00561740
mov esi, dword [esp + 0x2c]
add esp, 8
cmp esi, 3
jb 0x5880b5
mov edi, dword [esp + 0x1fc]
cmp esi, edi
ja 0x5880b5
lea eax, [ebx - 1]
add eax, esi
movzx ecx, byte [eax]
mov dword [esp + 0x24], ecx
cmp ecx, 0x80
jb 0x5851bd
lea ecx, [esp + 0x24]
push ecx
push eax
call fcn.00561740
mov ecx, dword [esp + 0x2c]
add esp, 8
lea eax, [ecx - 1]
cmp eax, 8
ja 0x5880b5
cmp ecx, 7
je 0x5880b5
movzx edx, byte [ecx + 0x6167b0]
lea eax, [edx + esi]
cmp edi, eax
jb 0x5880b5
lea eax, [esp + 0x338]
sub edi, edx
push eax
push ecx
add edi, ebx
push edi
call fcn.0058c560
add esp, 0xc
cmp dword [esp + 0x208], 0
je 0x585214
lea eax, [esp + 0x1f0]
push eax
call fcn.0059e800
add esp, 4
mov eax, dword [esp + 0x10]
xor edi, edi
mov esi, dword [esp + 0x38c]
mov dword [esp + 0x14], edi
cmp byte [eax], 0x8d
jne 0x58527a
mov ecx, dword [eax + 0xc]
mov eax, dword [esi + 0x60]
mov edx, dword [eax + ecx*4]
mov eax, dword [esp + 0x338]
mov ecx, dword [esp + 0x33c]
mov byte [edx + 2], 0
mov dword [edx + 0x40], eax
mov eax, dword [esp + 0x10]
mov dword [edx + 0x44], ecx
mov ecx, dword [esp + 0x10]
mov byte [edx + 3], 1
mov dword [edx + 0x20], edi
mov eax, dword [eax + 0x10]
mov dword [edx + 0x10], eax
mov eax, dword [esp + 0x1c]
mov dword [edx + 0x28], ebp
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
push eax
push esi
call fcn.0052ca00
mov ecx, dword [esp + 0x340]
add esp, 8
mov edx, dword [esp + 0x33c]
mov ebp, dword [esp + 0x18]
mov dword [eax], ecx
mov ecx, dword [esp + 0x10]
mov dword [eax + 4], edx
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, 0x9000
test word [eax + 0x10], cx
je 0x5852f2
push eax
call fcn.0059e840
mov ebp, dword [esp + 0x1c]
add esp, 4
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov ebp, dword [esp + 0x18]
mov ecx, 1
mov word [eax + 0x10], cx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov ecx, dword [ecx + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 3], 0
je 0x583c36
push eax
call fcn.00588f50
add esp, 4
jmp 0x5838be
mov edi, dword [esp + 0x10]
cmp dl, 0x2a
mov eax, dword [esi + 0x60]
mov edx, dword [esp + 0x20]
mov ecx, dword [edi + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x30]
mov esi, dword [ecx + 0x2c]
mov dword [esp + 0x2f0], eax
mov ax, word [edi + 0x10]
mov word [esp + 0x304], ax
sbb al, al
mov byte [esp + 0x306], al
mov eax, dword [edi + 0xc]
push esi
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x2f8], eax
call fcn.0051c3a0
mov eax, dword [esi + 0x2c]
add esp, 4
test eax, eax
je 0x5880f7
cmp eax, 0x7fffffff
ja 0x5880f7
xor ecx, ecx
mov dword [esp + 0x29c], ebp
mov word [esp + 0x298], cx
mov dword [esp + 0x2a0], ecx
lea ecx, [esp + 0x288]
push ecx
push eax
push esi
call fcn.0058a5c0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
jne 0x587ec7
push eax
lea eax, [esp + 0x2f4]
push eax
push dword [esp + 0x298]
push dword [esp + 0x2a0]
call fcn.0058bb20
add esp, 0x10
mov esi, eax
cmp dword [esp + 0x2a0], 0
je 0x58540f
lea eax, [esp + 0x288]
push eax
call fcn.0059e800
add esp, 4
test byte [edi], 1
jne 0x585418
neg esi
jmp 0x585419
inc esi
test esi, esi
jg 0x58416b
jmp 0x5845ec
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea edi, [eax + ecx*8]
mov eax, 0x9000
test word [edi + 0x10], ax
je 0x585450
push edi
call fcn.0052ca40
mov edx, dword [esp + 0x14]
add esp, 4
mov edi, eax
mov eax, 1
mov word [edi + 0x10], ax
mov eax, dword [ebp + 0xcc]
inc eax
cmp dword [ebp + 0xc0], eax
jg 0x588101
mov eax, dword [edx + 0xc]
mov ebx, eax
mov ebp, dword [edx + 4]
add ebx, ebx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x24], 0
mov eax, dword [eax + 0x10]
mov esi, dword [eax + ebx*8 + 4]
cmp byte [esi + 9], 0
je 0x5854a5
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x5854a5
push esi
call fcn.004edaf0
add esp, 4
lea eax, [esp + 0x24]
push eax
push ebp
push esi
call fcn.004ed340
add esp, 0xc
mov dword [esp + 0x14], eax
cmp byte [esi + 9], 0
je 0x5854cd
add dword [esi + 0xc], 0xffffffff
jne 0x5854cd
push esi
call fcn.0059ad30
add esp, 4
mov esi, dword [esp + 0x24]
mov eax, 4
mov word [edi + 0x10], ax
mov eax, esi
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x587ec7
mov ebp, dword [esp + 0x18]
test esi, esi
je 0x5803ed
mov eax, dword [esp + 0x10]
mov edi, dword [ebp + 0x10]
mov edx, dword [eax + 4]
mov eax, dword [edi + ebx*8 + 0xc]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x585521
nop
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x14], esi
jne 0x58551b
mov dword [ecx + 0x14], edx
mov eax, dword [eax]
test eax, eax
jne 0x585510
mov eax, dword [edi + ebx*8 + 0xc]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x585541
nop dword [eax]
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x2c], esi
jne 0x58553b
mov dword [ecx + 0x2c], edx
mov eax, dword [eax]
test eax, eax
jne 0x585530
mov al, byte [esp + 0x3c]
inc al
mov byte [esp + 0x67], al
jmp 0x5845ec
mov edi, dword [esp + 0x10]
lea eax, [esp + 0xb8]
xorps xmm0, xmm0
movlpd qword [esp + 0xb8], xmm0
push eax
mov ecx, dword [edi + 8]
mov eax, dword [ebp + 0x10]
add ecx, ecx
push dword [edi + 4]
push dword [eax + ecx*8 + 4]
call fcn.00542090
add esp, 0xc
mov edx, eax
cmp dword [edi + 0xc], 0
mov dword [esp + 0x14], edx
je 0x5838c4
mov eax, dword [esp + 0xb8]
add dword [esi + 0x28], eax
mov eax, dword [esp + 0xbc]
adc dword [esi + 0x2c], eax
mov eax, dword [edi + 0xc]
test eax, eax
jle 0x5838c4
mov ebx, dword [esp + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0xb8]
add dword [ebx + ecx*8], eax
mov eax, dword [esp + 0xbc]
adc dword [ebx + ecx*8 + 4], eax
jmp 0x5838c4
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
mov eax, dword [eax + ecx*4]
cmp byte [eax], 1
jne 0x585604
push dword [eax + 0x2c]
push ebp
call fcn.0058ce30
mov ecx, dword [esp + 0x18]
add esp, 8
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov eax, dword [eax + 0x2c]
push 0
push dword [eax + 0x40]
push dword [eax + 8]
call fcn.00542090
jmp 0x5838bb
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x585641
push esi
call fcn.0052ca40
add esp, 4
mov esi, eax
jmp 0x58564a
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [edi + 4]
lea ecx, [esp + 0x24]
push dword [edi + 0xc]
shl eax, 4
add eax, dword [ebp + 0x10]
push ecx
mov dword [esp + 0x2c], 0
push dword [eax + 4]
call fcn.00542ae0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
jne 0x587ec7
mov eax, dword [esp + 0x24]
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x5845ec
mov edi, dword [esp + 0x10]
inc byte [ebp + 0x60]
mov esi, dword [ebp + 0x16c]
mov bl, byte [ebp + 0x5e]
cmp dword [edi + 4], 0
mov dword [esp + 0x24], 0
je 0x5856b6
mov dword [ebp + 0x16c], 0
mov byte [ebp + 0x5e], 0
lea eax, [esp + 0x24]
push eax
push 0
push 0
push dword [edi + 0x10]
push ebp
call fcn.004e30c0
dec byte [ebp + 0x60]
add esp, 0x14
mov dword [ebp + 0x16c], esi
mov edx, eax
mov esi, dword [esp + 0x24]
mov dword [esp + 0x14], edx
mov byte [ebp + 0x5e], bl
test esi, esi
jne 0x5856ed
test edx, edx
je 0x5845ec
push esi
push 0x61b3f4
push dword [esp + 0x394]
call fcn.0057fd60
push esi
call fcn.004e51f0
mov edx, dword [esp + 0x24]
add esp, 0x10
cmp edx, 7
je 0x58233b
jmp 0x587ec7
mov edi, dword [esp + 0x10]
cmp dword [edi + 0x10], 0
mov esi, dword [edi + 4]
jne 0x585772
mov eax, dword [ebp + 0x10]
mov ecx, esi
add ecx, ecx
push dword [eax + ecx*8 + 0xc]
call fcn.00573da0
and dword [ebp + 0x18], 0xffffffef
movzx eax, word [edi + 2]
push eax
mov eax, dword [esp + 0x394]
add eax, 0x7c
push eax
push esi
push ebp
call fcn.00562750
mov esi, dword [esp + 0x3a0]
mov edx, eax
or dword [ebp + 0x18], 1
add esp, 0x14
mov dword [esp + 0x14], edx
and dword [esi + 0x98], 0xfffffffc
jmp 0x585871
mov eax, dword [esp + 0x38c]
mov dword [esp + 0x104], esi
add eax, 0x7c
mov dword [esp + 0xfc], ebp
add esi, esi
mov dword [esp + 0x100], eax
mov dword [esp + 0x10c], 0
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + esi*8 + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x114], eax
push dword [edi + 0x10]
mov eax, dword [ebp + 0x10]
push str.sqlite_master
push dword [eax + esi*8]
push str.SELECTFROM__w_._s_WHERE__s_ORDER_BY_rowid
push ebp
call fcn.005660d0
mov esi, eax
add esp, 0x14
test esi, esi
je 0x588112
push 0
lea eax, [esp + 0x100]
mov byte [ebp + 0xb1], 1
push eax
push fcn.005624c0
push esi
push ebp
mov dword [esp + 0x11c], 0
mov dword [esp + 0x124], 0
call fcn.004e30c0
add esp, 0x14
mov dword [esp + 0x14], eax
test eax, eax
jne 0x585855
mov eax, dword [esp + 0x108]
mov dword [esp + 0x14], eax
test eax, eax
jne 0x585855
cmp dword [esp + 0x110], eax
jne 0x585855
push 0x6214bc
push 0x184e4
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004d4a30
mov eax, 0xb
add esp, 0x14
mov dword [esp + 0x14], eax
push esi
push ebp
call fcn.0054aa60
mov edx, dword [esp + 0x1c]
add esp, 8
mov esi, dword [esp + 0x38c]
mov byte [ebp + 0xb1], 0
test edx, edx
je 0x5808e1
push ebp
call fcn.00572300
mov edx, dword [esp + 0x18]
add esp, 4
cmp edx, 7
je 0x582342
jmp 0x587ec3
mov edx, dword [esp + 0x10]
push dword [edx + 4]
push ebp
call fcn.0053f0c0
add esp, 8
jmp 0x5838be
mov edx, dword [esp + 0x10]
push 0
mov eax, dword [edx + 4]
push dword [edx + 0x10]
shl eax, 4
add eax, dword [ebp + 0x10]
mov eax, dword [eax + 0xc]
add eax, 8
push eax
call fcn.00561a10
add esp, 0xc
test eax, eax
je 0x5858e7
cmp dword [ebp + 0x210], 0
jne 0x5858dd
add dword [eax + 0x18], 0xffffffff
jne 0x5858e7
push eax
push ebp
call fcn.004f6620
add esp, 8
or dword [ebp + 0x18], 1
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + 0x10]
push 0
mov ecx, dword [edx + 4]
push dword [edx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
add eax, 0x18
push eax
call fcn.00561a10
mov esi, eax
add esp, 0xc
test esi, esi
je 0x5859b8
mov edx, dword [esi + 0xc]
mov ecx, dword [edx + 8]
cmp ecx, esi
jne 0x585969
mov eax, dword [esi + 0x14]
push esi
push ebp
mov dword [edx + 8], eax
call fcn.00557020
mov ecx, dword [esp + 0x18]
add esp, 8
or dword [ebp + 0x18], 1
mov esi, dword [esp + 0x38c]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
test ecx, ecx
je 0x5859ae
nop dword [eax]
lea edx, [ecx + 0x14]
mov ecx, dword [edx]
cmp ecx, esi
je 0x5859a9
test ecx, ecx
jne 0x585970
push esi
push ebp
call fcn.00557020
mov ecx, dword [esp + 0x18]
add esp, 8
or dword [ebp + 0x18], 1
mov esi, dword [esp + 0x38c]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov eax, dword [esi + 0x14]
mov dword [edx], eax
push esi
push ebp
call fcn.00557020
add esp, 8
or dword [ebp + 0x18], 1
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x38c]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + 0x10]
push 0
mov ecx, dword [edx + 4]
push dword [edx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
add eax, 0x28
push eax
call fcn.00561a10
mov esi, eax
add esp, 0xc
test esi, esi
je 0x5803f1
mov eax, dword [esi + 0x18]
cmp dword [esi + 0x14], eax
jne 0x585a6e
push 0
push dword [esi + 4]
add eax, 8
push eax
call fcn.004fc7d0
add esp, 0xc
mov edx, dword [eax + 8]
test edx, edx
je 0x585a6e
mov eax, dword [edx + 0x38]
add edx, 0x38
test eax, eax
je 0x585a6e
nop
cmp eax, esi
je 0x585a69
lea edx, [eax + 0x20]
mov eax, dword [edx]
test eax, eax
jne 0x585a30
push esi
push ebp
call fcn.0054be00
mov ecx, dword [esp + 0x18]
add esp, 8
or dword [ebp + 0x18], 1
mov esi, dword [esp + 0x38c]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov eax, dword [eax + 0x20]
mov dword [edx], eax
push esi
push ebp
call fcn.0054be00
mov ecx, dword [esp + 0x18]
add esp, 8
or dword [ebp + 0x18], 1
mov esi, dword [esp + 0x38c]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 0x10]
lea edi, [eax + eax*4]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
lea eax, [esp + 0x90]
push eax
lea eax, [esp + 0xe4]
push eax
mov eax, dword [ebx + edi*8]
inc eax
push eax
push dword [edx + 8]
lea eax, [ecx + 4]
movzx ecx, word [edx + 2]
push eax
mov eax, dword [ebp + 0x10]
add ecx, ecx
push dword [eax + ecx*8 + 4]
push ebp
call fcn.00543f20
mov ebp, eax
add esp, 0x1c
mov eax, 0x9000
mov dword [esp + 0x14], ebp
test word [esi + 0x10], ax
je 0x585b02
push esi
call fcn.0059e840
add esp, 4
jmp 0x585b0b
mov eax, 1
mov word [esi + 0x10], ax
mov eax, dword [esp + 0xe0]
test eax, eax
je 0x585b42
test ebp, ebp
jne 0x588120
push fcn.004e51f0
push 1
push 0xffffffffffffffff
dec eax
cdq
sub dword [ebx + edi*8], eax
push 0xffffffffffffffff
push dword [esp + 0xa0]
sbb dword [ebx + edi*8 + 4], edx
push esi
call fcn.0058acd0
add esp, 0x18
test byte [esi + 0x10], 2
jne 0x585bee
mov eax, dword [esp + 0x38]
mov byte [esi + 0x12], al
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x38c]
mov edi, dword [esp + 0x14]
cmp dword [ebp + 0x128], 0
jne 0x588436
mov ecx, dword [esp + 0x78]
cmp dword [esp + 0x84], ecx
jb 0x5803ed
mov ebx, dword [esp + 0x6c]
ja 0x585b92
mov eax, dword [esp + 0x1c]
cmp eax, ebx
jb 0x587ae8
mov eax, dword [ebp + 0x174]
test eax, eax
je 0x587ae4
add ebx, dword [ebp + 0x17c]
push dword [ebp + 0x178]
adc ecx, 0
mov dword [esp + 0x70], ebx
mov dword [esp + 0x7c], ecx
call eax
add esp, 4
test eax, eax
jne 0x5881ff
mov ecx, dword [esp + 0x78]
cmp dword [esp + 0x84], ecx
ja 0x585b92
mov eax, dword [esp + 0x1c]
jb 0x585bdb
cmp eax, ebx
jae 0x585b92
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov al, byte [esp + 0x38]
cmp byte [esi + 0x12], al
je 0x585b53
push dword [esp + 0x38]
push esi
call fcn.0058b190
add esp, 8
jmp 0x585b53
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 0x10
lea esi, [ebx + eax*8]
mov eax, dword [edx + 8]
lea edi, [eax + eax*4]
jne 0x585c3c
push esi
call fcn.0058abf0
add esp, 4
test eax, eax
jne 0x58233b
push dword [ebx + edi*8 + 4]
push dword [ebx + edi*8]
push dword [esi + 8]
call fcn.00572e90
add esp, 0xc
jmp 0x5845ec
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x10], 0x10
lea edi, [ecx + eax*8]
je 0x585cd4
mov esi, dword [edi + 8]
movzx eax, word [esi + 0x1a]
test al, 2
jne 0x585c8d
test al, 1
jne 0x585c88
push dword [esi + 8]
call fcn.00539e40
add esp, 4
mov dword [esi + 8], eax
or word [esi + 0x1a], 3
mov eax, dword [esi + 8]
test eax, eax
je 0x585ccd
mov edi, dword [eax]
mov ebx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esi + 8], eax
test eax, eax
jne 0x585cac
push esi
call fcn.00572d80
add esp, 4
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
push ebx
push edi
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.0058ab30
add esp, 0xc
jmp 0x585b57
mov esi, dword [esp + 0x38c]
mov eax, 0x9000
test word [edi + 0x10], ax
je 0x585ced
push edi
call fcn.0059e840
add esp, 4
jmp 0x5875ea
mov eax, 1
mov word [edi + 0x10], ax
jmp 0x5875ea
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0x10]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x10], 0x10
lea esi, [ecx + eax*8]
mov eax, dword [edx + 0xc]
lea edi, [eax + eax*4]
jne 0x585d31
push esi
call fcn.0058abf0
add esp, 4
test eax, eax
jne 0x58233b
mov ecx, dword [esp + 0x20]
test ebx, ebx
je 0x585d52
push dword [ecx + edi*8 + 4]
push dword [ecx + edi*8]
push ebx
push dword [esi + 8]
call fcn.00572f80
add esp, 0x10
test eax, eax
jne 0x58416b
test ebx, ebx
js 0x5803ed
mov ebx, dword [esp + 0x20]
jmp 0x585c3c
mov ebp, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov dword [esp + 0x24], ebx
lea eax, [eax + eax*4]
lea ebp, [ecx + eax*8]
mov eax, dword [esp + 0x10]
cmp word [eax + 2], 0
je 0x585da1
mov eax, dword [esi + 0xd0]
mov ecx, dword [ebx + 0x14]
test eax, eax
je 0x585da1
cmp dword [eax + 0x18], ecx
je 0x583c32
mov eax, dword [eax + 4]
test eax, eax
jne 0x585d91
mov ecx, dword [esp + 0x18]
mov eax, dword [esi + 0xd8]
cmp eax, dword [ecx + 0xa0]
jge 0x588138
test byte [ebp + 0x10], 0x10
jne 0x585ed6
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
add eax, ecx
test ecx, ecx
lea edi, [eax + 1]
cmovne edi, eax
lea eax, [edi + edi*4]
lea ecx, [ecx + eax*2]
mov eax, dword [ebx + 4]
add eax, 7
mov eax, eax
test eax, eax
jns 0x585de6
add eax, 7
sar eax, 3
lea ecx, [ecx + 0x16]
lea ebx, [eax + ecx*4]
mov eax, ebx
cdq
push edx
push eax
push dword [esp + 0x20]
call fcn.0054aba0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x582337
push ebx
push 0
push esi
call fcn.0042d620
mov eax, 0x9000
add esp, 0xc
test word [ebp + 0x10], ax
jne 0x585e27
cmp dword [ebp + 0x18], 0
je 0x585e30
push ebp
call fcn.0059e800
add esp, 4
mov ecx, dword [esp + 0x10]
mov eax, 0x1010
mov word [ebp + 0x10], ax
mov eax, dword [esp + 0x38c]
sub ecx, dword [esp + 0x44]
mov dword [ebp + 8], esi
mov dword [ebp + 0xc], ebx
mov ebx, dword [esp + 0x24]
mov dword [ebp + 0x24], 0x589040
mov dword [esi], eax
mov dword [esi + 0x3c], edi
mov eax, dword [ebx + 0xc]
mov dword [esi + 0x40], eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x38c]
mov dword [esi + 0x30], eax
mov eax, dword [edx + 0x58]
mov dword [esi + 0xc], eax
mov eax, dword [edx + 0x14]
mov dword [esi + 0x38], eax
mov eax, dword [edx + 0x60]
mov dword [esi + 0x10], eax
mov eax, dword [edx + 0x18]
mov dword [esi + 0x2c], eax
mov eax, dword [edx + 0x68]
mov dword [esi + 8], eax
mov eax, dword [edx + 0x6c]
mov dword [esi + 0x34], eax
mov eax, dword [ebx + 0x14]
mov dword [esi + 0x18], eax
lea eax, [edi*4 + 0xb]
add eax, edi
lea ecx, [esi + eax*8]
lea eax, [esi + 0x58]
cmp eax, ecx
je 0x585ed0
mov edi, dword [esp + 0x18]
xor ebp, ebp
mov word [eax + 0x10], bp
mov dword [eax + 0x14], edi
add eax, 0x28
cmp eax, ecx
jne 0x585ec0
mov edi, dword [esp + 0x14]
jmp 0x585ee0
mov esi, dword [ebp + 8]
mov edx, dword [esp + 0x38c]
inc dword [edx + 0xd8]
mov eax, dword [edx + 0xd0]
mov ebp, dword [esp + 0x18]
mov dword [esi + 4], eax
mov eax, dword [ebp + 0x28]
mov ecx, dword [ebp + 0x2c]
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], ecx
mov eax, dword [edx + 0x28]
mov ecx, dword [edx + 0x2c]
mov dword [esi + 0x48], eax
mov dword [esi + 0x4c], ecx
mov eax, dword [edx]
mov ecx, dword [eax + 0x68]
mov eax, dword [eax + 0x6c]
mov dword [esi + 0x50], ecx
mov dword [esi + 0x54], eax
mov eax, dword [edx + 0xe4]
mov dword [esi + 0x28], eax
lea eax, [esi + 0x58]
mov dword [edx + 0xe4], 0
mov dword [edx + 0x28], 0
mov dword [edx + 0x2c], 0
mov dword [edx + 0xd0], esi
mov dword [edx + 0x58], eax
mov ecx, dword [esi + 0x3c]
mov dword [edx + 0x14], ecx
mov dword [esp + 0x20], eax
movzx eax, word [esi + 0x40]
mov dword [edx + 0x18], eax
lea eax, [ecx*4 + 0xb]
add eax, ecx
lea ecx, [esi + eax*8]
mov dword [edx + 0x60], ecx
mov eax, dword [ebx + 0xc]
lea ecx, [ecx + eax*4]
mov dword [esi + 0x14], ecx
mov eax, dword [ebx + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
push 0
push ecx
call fcn.0042d620
mov esi, dword [esp + 0x398]
add esp, 0xc
mov ecx, dword [ebx]
mov dword [esp + 0x44], ecx
mov dword [esi + 0x68], ecx
mov eax, dword [ebx + 4]
mov dword [esi + 0x6c], eax
lea eax, [ecx - 0x14]
mov dword [esp + 0x10], eax
jmp 0x585b62
mov edx, dword [esp + 0x10]
mov ebx, 0x9000
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
test word [eax + ecx*8 + 0x10], bx
lea esi, [eax + ecx*8]
je 0x585fd5
push esi
call fcn.0052ca40
add esp, 4
mov esi, eax
jmp 0x585fde
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [esp + 0x38c]
mov edx, dword [eax + 0xd0]
mov eax, dword [edx + 0x30]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
mov eax, dword [eax + ecx*4 + 4]
mov ecx, dword [esp + 0x10]
add eax, dword [ecx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea ecx, [eax + ecx*8]
test word [esi + 0x10], bx
je 0x58603b
push 0x4000
push ecx
push esi
call fcn.0059d9e0
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov esi, dword [esp + 0x38c]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
movups xmm0, xmmword [ecx]
movups xmmword [esi], xmm0
mov eax, dword [ecx + 0x10]
mov dword [esi + 0x10], eax
mov eax, 0x2000
test word [ecx + 0x10], ax
jne 0x5803f1
mov ax, word [esi + 0x10]
mov ecx, 0xcfff
and ax, cx
mov ecx, 0x4000
or ax, cx
mov ecx, dword [esp + 0x10]
mov word [esi + 0x10], ax
mov esi, dword [esp + 0x38c]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov eax, dword [ebp + 0x20]
and eax, 0x80000
or eax, 0
mov eax, dword [esp + 0x10]
mov ecx, eax
je 0x5860c2
mov eax, dword [eax + 8]
cdq
add dword [ebp + 0x208], eax
mov eax, dword [esp + 0x1c]
adc dword [ebp + 0x20c], edx
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
cmp dword [eax + 4], 0
mov eax, dword [eax + 8]
cdq
je 0x5860eb
add dword [ebp + 0x200], eax
mov eax, dword [esp + 0x1c]
adc dword [ebp + 0x204], edx
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
add dword [esi + 0x40], eax
mov eax, dword [esp + 0x1c]
adc dword [esi + 0x44], edx
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
cmp dword [ecx + 4], 0
je 0x586141
mov eax, dword [ebp + 0x200]
or eax, dword [ebp + 0x204]
jne 0x583c3a
mov eax, dword [ebp + 0x208]
or eax, dword [ebp + 0x20c]
je 0x583c1a
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov eax, dword [esi + 0x40]
or eax, dword [esi + 0x44]
jmp 0x586116
mov edx, dword [esi + 0xd0]
test edx, edx
je 0x58617f
mov eax, dword [edx + 4]
test eax, eax
je 0x586169
nop word [eax + eax]
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x586160
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea edi, [eax + ecx*8]
jmp 0x586190
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
push edi
call fcn.00589a20
mov dword [edi], eax
mov ecx, 0xf244
mov dword [edi + 4], edx
movzx eax, word [edi + 0x10]
and ax, cx
or ax, 4
mov word [edi + 0x10], ax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
push esi
call fcn.00589a20
mov dword [esi], eax
mov ecx, 0xf244
mov dword [esi + 4], edx
add esp, 8
movzx eax, word [esi + 0x10]
and ax, cx
or ax, 4
mov word [esi + 0x10], ax
mov ecx, dword [esi + 4]
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x5803ed
jl 0x5861f6
cmp dword [edi], eax
jae 0x587ae0
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x5845ec
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
mov eax, dword [edi + 4]
lea esi, [eax + eax*4]
mov edi, dword [ebx + esi*8 + 4]
mov ecx, dword [ebx + esi*8]
test edi, edi
jl 0x5803ed
jg 0x586227
test ecx, ecx
je 0x5803ed
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
cdq
sub ecx, eax
mov dword [ebx + esi*8], ecx
sbb edi, edx
mov dword [ebx + esi*8 + 4], edi
mov edi, dword [esp + 0x14]
jmp 0x583c13
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea edi, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea ebx, [eax + eax*4]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x586277
push esi
call fcn.0052ca40
add esp, 4
mov esi, eax
jmp 0x586280
mov eax, 4
mov word [esi + 0x10], ax
mov edx, dword [esp + 0x20]
mov eax, dword [edx + edi*8 + 4]
mov ecx, dword [edx + edi*8]
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], eax
test eax, eax
jl 0x5862f3
jg 0x5862a3
test ecx, ecx
je 0x5862f3
mov ecx, dword [edx + ebx*8 + 4]
mov eax, dword [edx + ebx*8]
test ecx, ecx
jl 0x5862b4
jg 0x5862c5
test eax, eax
jne 0x5862c5
xorps xmm0, xmm0
movlpd qword [esp + 0x24], xmm0
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
push ecx
push eax
lea eax, [esp + 0xc8]
push eax
call fcn.0053d810
add esp, 0xc
test eax, eax
jne 0x5862f3
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc4]
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x5845ec
mov dword [esi], 0xffffffff
mov dword [esi + 4], 0xffffffff
jmp 0x5845ec
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
mov eax, dword [edx + 4]
lea esi, [eax + eax*4]
mov ecx, dword [ebx + esi*8]
mov eax, ecx
mov edx, dword [ebx + esi*8 + 4]
or eax, edx
je 0x5803f1
test edx, edx
jl 0x583c13
jg 0x586336
test ecx, ecx
je 0x583c13
sub ecx, 1
mov dword [ebx + esi*8], ecx
sbb edx, 0
mov dword [ebx + esi*8 + 4], edx
jmp 0x583c13
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
mov eax, dword [edx + 4]
lea edx, [eax + eax*4]
mov ecx, dword [ebx + edx*8 + 4]
mov eax, dword [ebx + edx*8]
cmp ecx, 0x80000000
jl 0x586378
jg 0x58636b
test eax, eax
je 0x586378
sub eax, 1
mov dword [ebx + edx*8], eax
sbb ecx, 0
mov dword [ebx + edx*8 + 4], ecx
or eax, ecx
je 0x583c1a
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edi, dword [esp + 0x10]
push 0
movzx ebx, word [edi + 2]
lea eax, [ebx*4 + 0x44]
push eax
push ebp
call fcn.0054aba0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x58233b
mov dword [esi + 8], 0
lea ecx, [ebx + 7]
lea ecx, [esi + ecx*4]
mov eax, 1
mov dword [esi], ecx
mov word [ecx + 0x10], ax
mov dword [ecx + 0x14], ebp
mov dword [ecx + 0x18], 0
mov ecx, edi
mov eax, dword [edi + 0x10]
sub ecx, dword [esp + 0x44]
mov dword [esi + 4], eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x38c]
mov dword [esi + 0xc], eax
mov al, byte [esp + 0x38]
mov byte [esi + 0x19], 0
mov dword [esi + 0x14], 0
mov byte [esi + 0x18], al
mov byte [esi + 0x1a], bl
mov byte [edi + 1], 0xf1
mov dword [edi + 0x10], esi
mov byte [edi], 0xa3
jmp 0x58642d
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0xc]
mov ebx, dword [esp + 0x20]
mov esi, dword [edi + 0x10]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
cmp dword [esi + 8], edi
je 0x586472
mov dword [esi + 8], edi
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
js 0x586472
mov ebp, dword [esp + 0x10]
lea edx, [ecx + 7]
lea edx, [esi + edx*4]
mov eax, dword [ebp + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [edx + 4], eax
jns 0x586458
mov ebp, dword [esp + 0x18]
inc dword [edi + 0xc]
lea eax, [esi + 0x1c]
mov edi, dword [esp + 0x10]
movzx edx, byte [esi + 0x1a]
mov ecx, dword [esi + 4]
push eax
cmp dword [edi + 4], 0
push edx
push esi
je 0x586491
mov eax, dword [ecx + 0x1c]
jmp 0x586494
mov eax, dword [ecx + 0x10]
call eax
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x587ae0
jle 0x5864fd
mov ecx, dword [esi]
test ecx, ecx
jne 0x5864b0
xor eax, eax
jmp 0x5864e1
movzx edx, word [ecx + 0x10]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x5864cd
cmp byte [ecx + 0x12], 1
jne 0x5864cd
mov eax, dword [ecx + 8]
jmp 0x5864e1
test dl, 1
je 0x5864d6
xor eax, eax
jmp 0x5864e1
push 1
push ecx
call fcn.0059d6f0
add esp, 8
push eax
push 0x61b3f4
push dword [esp + 0x394]
call fcn.0057fd60
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x14], eax
cmp byte [esi + 0x19], 0
je 0x586521
mov eax, dword [edi - 0x10]
test eax, eax
je 0x58651d
push 0
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push 1
push eax
call fcn.0058ab30
add esp, 0xc
mov byte [esi + 0x19], 0
mov eax, dword [esi]
mov ecx, 0x9000
test word [eax + 0x10], cx
jne 0x586534
cmp dword [eax + 0x18], 0
je 0x58653d
push eax
call fcn.0059e800
add esp, 4
mov eax, dword [esi]
mov ecx, 1
mov edx, dword [esp + 0x14]
mov word [eax + 0x10], cx
mov dword [esi + 0x14], 0
jmp 0x5845e4
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [edx + 0xc]
test eax, eax
je 0x5865fb
lea eax, [eax + eax*4]
xorps xmm0, xmm0
lea edi, [ecx + eax*8]
mov eax, 0x9000
movups xmmword [esp + 0x190], xmm0
movups xmmword [esp + 0x1a0], xmm0
test word [edi + 0x10], ax
je 0x5865a6
push edi
call fcn.0059e840
add esp, 4
jmp 0x5865af
mov eax, 1
mov word [edi + 0x10], ax
mov dword [esp + 0x190], edi
mov dword [esp + 0x198], esi
mov dword [esp + 0x194], ebx
mov eax, dword [esi + 0x14]
mov al, byte [eax + 0x54]
mov byte [esp + 0x1a8], al
lea eax, [esp + 0x190]
push eax
mov eax, dword [ebx + 0x18]
call eax
mov eax, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1a4]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
jmp 0x586607
push ebx
push esi
call fcn.0058a450
add esp, 8
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x588159
test byte [esi + 0x10], 2
jne 0x586625
mov eax, dword [esp + 0x38]
mov byte [esi + 0x12], al
jmp 0x5845ec
mov al, byte [esp + 0x38]
cmp byte [esi + 0x12], al
je 0x587ae0
push dword [esp + 0x38]
push esi
call fcn.0058b190
add esp, 8
jmp 0x5845ec
mov edi, dword [esp + 0x10]
lea eax, [esp + 0xd0]
push eax
lea eax, [esp + 0xd0]
mov dword [esp + 0xcc], 0
push eax
push dword [edi + 8]
mov dword [esp + 0xdc], 0xffffffff
push dword [edi + 4]
mov dword [esp + 0xdc], 0xffffffff
push ebp
call fcn.00546400
mov edx, eax
add esp, 0x14
mov dword [esp + 0x14], edx
test edx, edx
je 0x5866ac
cmp edx, 5
jne 0x587ec7
xor eax, eax
mov dword [esp + 0xc8], 1
mov dword [esp + 0x14], eax
mov eax, dword [edi + 0xc]
mov ebx, 0x9000
mov ecx, dword [esp + 0x20]
xor edi, edi
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
lea ebp, [edi + 4]
mov eax, dword [esp + edi*4 + 0xc8]
cdq
test word [esi + 0x10], bx
je 0x5866de
push edx
push eax
push esi
call fcn.0059ffe0
add esp, 0xc
jmp 0x5866e7
mov dword [esi], eax
mov dword [esi + 4], edx
mov word [esi + 0x10], bp
inc edi
add esi, 0x28
cmp edi, 3
jl 0x5866c3
jmp 0x580f21
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea eax, [eax + ecx*8]
mov ecx, 0x9000
mov dword [esp + 0x24], eax
test word [eax + 0x10], cx
je 0x586723
push eax
call fcn.0052ca40
add esp, 4
mov dword [esp + 0x24], eax
jmp 0x58672c
mov ecx, 4
mov word [eax + 0x10], cx
mov ecx, dword [ebx + 4]
mov eax, dword [ebp + 0x10]
add ecx, ecx
mov edx, dword [ebx + 0xc]
cmp edx, 0xffffffff
mov eax, dword [eax + ecx*8 + 4]
mov dword [esp + 0x3c], eax
mov eax, dword [eax + 4]
mov esi, dword [eax]
movzx ebp, byte [esi + 5]
mov ebx, ebp
cmovne ebx, edx
cmp byte [esi + 0x11], 3
jae 0x58676c
mov eax, dword [esi + 0x44]
cmp dword [eax], 0
je 0x58676e
cmp dword [esi + 0x54], 0
jg 0x58676c
jl 0x58676e
cmp dword [esi + 0x50], 0
jbe 0x58676e
mov ebx, ebp
cmp byte [esi + 0xf], 0
jne 0x586784
cmp dword [esi], 0x6469d0
je 0x586784
mov ecx, dword [esi + 0xb8]
jmp 0x586789
mov ecx, 0x613144
cmp ebx, 5
jne 0x5867c9
test ecx, ecx
je 0x5867c2
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x586795
sub ecx, edx
test ecx, 0x3fffffff
je 0x5867c2
cmp byte [esi + 0xd], 0
mov eax, dword [esi + 0x40]
mov eax, dword [eax]
jne 0x5867c2
cmp byte [esi + 4], 0
jne 0x5867c9
cmp dword [eax], 2
jl 0x5867c2
cmp dword [eax + 0x34], 0
jne 0x5867c9
mov ebx, ebp
jmp 0x586913
cmp ebx, ebp
je 0x586913
cmp ebp, 5
je 0x5867df
cmp ebx, 5
jne 0x586913
mov eax, dword [esp + 0x18]
cmp byte [eax + 0x55], 0
je 0x58817e
cmp dword [eax + 0xc0], 1
jg 0x58817e
cmp ebp, 5
jne 0x5868e3
xor edi, edi
cmp dword [esi + 0xe8], edi
jne 0x586865
push 1
push esi
mov dword [esp + 0xbc], edi
call fcn.0052d340
mov edi, eax
add esp, 8
test edi, edi
jne 0x5868cd
mov eax, dword [esi]
lea ecx, [esp + 0xb4]
push ecx
push edi
push dword [esi + 0xec]
push eax
mov eax, dword [eax + 0x20]
call eax
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x5868cd
cmp dword [esp + 0xb4], eax
je 0x586865
push esi
call fcn.0052d4b0
mov edi, eax
add esp, 4
test edi, edi
jne 0x5868cd
cmp dword [esi + 0xe8], 0
je 0x5868cd
push esi
call fcn.0052d0e0
mov edi, eax
add esp, 4
test edi, edi
jne 0x5868cd
push dword [esi + 0xe0]
movzx eax, byte [esi + 0xb]
push dword [esi + 0xa8]
push eax
push dword [esp + 0x24]
push dword [esi + 0xe8]
call fcn.0058f100
push esi
mov edi, eax
mov dword [esp + 0x2c], eax
mov dword [esi + 0xe8], 0
call fcn.0052d160
add esp, 0x18
test edi, edi
je 0x5868cd
cmp byte [esi + 4], 0
jne 0x5868cd
push 1
push esi
call fcn.0052ddd0
add esp, 8
jmp 0x586917
mov eax, edi
mov dword [esp + 0x14], eax
test edi, edi
jne 0x586917
push ebx
push esi
call fcn.00569640
add esp, 8
jmp 0x5868f7
cmp ebp, 4
jne 0x5868f3
push 2
push esi
call fcn.00569640
add esp, 8
test edi, edi
jne 0x586917
xor eax, eax
cmp ebx, 5
sete al
inc eax
push eax
push dword [esp + 0x40]
call fcn.005458f0
mov edi, eax
add esp, 8
mov dword [esp + 0x14], edi
test edi, edi
je 0x586919
mov ebx, ebp
push ebx
push esi
call fcn.00569640
mov ebx, dword [esp + 0x2c]
add esp, 8
mov ecx, 0x2202
mov word [ebx + 0x10], cx
cmp eax, 6
jne 0x586940
mov dword [ebx + 8], 0
xor ecx, ecx
jmp 0x586960
mov ecx, dword [eax*4 + 0x618188]
mov dword [ebx + 8], ecx
test ecx, ecx
je 0x586960
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x586951
sub ecx, edx
and ecx, 0x3fffffff
mov al, 1
mov dword [ebx + 0xc], ecx
mov byte [ebx + 0x12], al
cmp byte [esp + 0x38], al
je 0x58697b
push dword [esp + 0x38]
push ebx
call fcn.0058b190
add esp, 8
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x587ec7
jmp 0x580f21
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
test eax, eax
je 0x5869a3
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
jmp 0x5869a5
xor eax, eax
push eax
push dword [edx + 4]
lea eax, [esi + 0x7c]
push ebp
push eax
call fcn.00573610
add esp, 0x10
jmp 0x5838be
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + 0x10]
mov ecx, dword [edx + 4]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
cmp byte [esi + 9], 0
mov edi, dword [esi + 4]
je 0x5869e6
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x5869e6
push esi
call fcn.004edaf0
add esp, 4
cmp byte [edi + 0x11], 0
jne 0x5869f6
mov eax, 0x65
jmp 0x586aad
mov eax, dword [edi + 0xc]
mov ebp, dword [edi + 0x30]
mov eax, dword [eax + 0x38]
mov ebx, dword [eax + 0x24]
bswap ebx
push ebx
push ebp
push edi
call fcn.004fbff0
add esp, 0xc
mov dword [esp + 0x24], eax
cmp ebp, eax
jb 0x586a86
cmp ebx, ebp
jae 0x586a86
test ebx, ebx
je 0x586a7f
mov eax, dword [edi + 8]
test eax, eax
je 0x586a3b
push 0
push 0
push eax
call fcn.0053a2d0
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
jne 0x586a79
push edi
call fcn.0051f600
push 0
push ebp
push dword [esp + 0x30]
push edi
call fcn.0051e8b0
add esp, 0x14
mov dword [esp + 0x14], eax
test eax, eax
jne 0x586a79
mov eax, dword [edi + 0xc]
push dword [eax + 0x48]
call fcn.00569e70
mov ecx, dword [edi + 0x30]
add esp, 4
mov dword [esp + 0x14], eax
mov eax, dword [edi + 0xc]
bswap ecx
mov eax, dword [eax + 0x38]
mov dword [eax + 0x1c], ecx
mov ebp, dword [esp + 0x18]
jmp 0x586ab1
mov eax, 0x65
jmp 0x586aa9
push 0x6214bc
push 0x121df
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004d4a30
add esp, 0x14
mov eax, 0xb
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x14], eax
cmp byte [esi + 9], 0
je 0x586ac6
add dword [esi + 0xc], 0xffffffff
jne 0x586ac6
push esi
call fcn.0059ad30
add esp, 4
mov edx, dword [esp + 0x14]
test edx, edx
je 0x5803ed
cmp edx, 0x65
jne 0x587ec7
jmp 0x583c0d
cmp dword [ecx + 4], 0
jne 0x586b09
push dword [ecx + 8]
push ebp
call fcn.0054d840
mov ecx, dword [esp + 0x18]
add esp, 8
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov eax, dword [ecx + 8]
inc eax
xor eax, dword [esi + 0x98]
and eax, 3
xor dword [esi + 0x98], eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov ecx, dword [ecx + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 0x2c]
or byte [eax + 1], 0x40
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov ecx, dword [ecx + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 0x2c]
and byte [eax + 1], 0xbf
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov ebx, dword [esp + 0x10]
mov bl, byte [ebx + 0xc]
test bl, bl
jne 0x586b95
test dword [ebp + 0x24], 4
jne 0x583c36
mov eax, dword [esp + 0x10]
xor edx, edx
mov dword [esp + 0x14], edx
mov ecx, dword [eax + 4]
mov edi, dword [eax + 8]
add ecx, ecx
mov eax, dword [ebp + 0x10]
mov esi, dword [eax + ecx*8 + 4]
cmp byte [esi + 9], dl
je 0x586c66
inc dword [esi + 0xc]
inc bl
mov byte [esp + 0xe4], bl
cmp byte [esi + 0xa], dl
jne 0x586bd1
push esi
call fcn.004edaf0
add esp, 4
push dword [esp + 0xe4]
push edi
push esi
call fcn.00534420
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
jne 0x586c4d
mov ebp, dword [esi + 4]
mov ecx, dword [ebp + 0x4c]
test ecx, ecx
je 0x586c06
cmp dword [ecx + 4], edi
jne 0x586bff
cmp dword [ecx], esi
je 0x586c34
mov ecx, dword [ecx + 0xc]
test ecx, ecx
jne 0x586bf6
push 0
push 0x10
call fcn.005660f0
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x586c40
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 4], edi
mov dword [ecx], esi
mov eax, dword [ebp + 0x4c]
mov dword [ecx + 0xc], eax
mov dword [ebp + 0x4c], ecx
cmp bl, byte [ecx + 8]
jbe 0x586c3c
mov byte [ecx + 8], bl
xor edx, edx
jmp 0x586c45
mov edx, 7
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x14], edx
cmp byte [esi + 9], 0
je 0x586c66
add dword [esi + 0xc], 0xffffffff
jne 0x586c66
push esi
call fcn.0059ad30
mov edx, dword [esp + 0x18]
add esp, 4
test edx, edx
je 0x5845ec
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0x38c]
cmp dl, 6
jne 0x58846d
push dword [esi + 0x10]
push str.database_table_is_locked:__s
push ebp
call fcn.0057fd60
mov edx, dword [esp + 0x20]
add esp, 0xc
mov edi, dword [esp + 0x18]
jmp 0x587ed6
mov edx, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x14], eax
mov esi, dword [edx + 0x10]
mov edx, dword [ebp + 0x180]
test edx, edx
jle 0x586ce0
cmp dword [ebp + 0x198], eax
jne 0x586ce0
mov dword [esp + 0x24], 6
mov edx, 6
mov dword [esp + 0x14], edx
lea eax, [esi + 8]
test esi, esi
je 0x587ec7
jmp 0x586d9e
test esi, esi
jne 0x586d08
mov ecx, dword [esp + 0x10]
xor edi, edi
mov esi, dword [esp + 0x38c]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x14], edi
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov eax, dword [esi + 8]
mov ebx, dword [eax]
cmp dword [ebx + 0x38], 0
je 0x586d9b
xor ecx, ecx
test edx, edx
jle 0x586d33
mov eax, dword [ebp + 0x198]
cmp dword [eax], esi
je 0x586db9
inc ecx
add eax, 4
cmp ecx, edx
jl 0x586d23
push ebp
call fcn.0051ddb0
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x586d9b
push dword [esi + 8]
mov eax, dword [ebx + 0x38]
call eax
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x586d9b
mov ecx, dword [ebp + 0x180]
mov eax, dword [ebp + 0x198]
mov edx, dword [ebp + 0x1fc]
add edx, dword [ebp + 0x1f8]
mov dword [eax + ecx*4], esi
inc dword [ebp + 0x180]
inc dword [esi + 0xc]
test edx, edx
je 0x586d9b
cmp dword [ebx + 0x50], 0
je 0x586d9b
lea eax, [edx - 1]
mov dword [esi + 0x14], edx
push eax
push dword [esi + 8]
mov eax, dword [ebx + 0x50]
call eax
add esp, 8
mov dword [esp + 0x14], eax
lea eax, [esi + 8]
push dword [eax]
mov esi, dword [esp + 0x390]
push esi
call fcn.0058e5c0
mov edx, dword [esp + 0x1c]
add esp, 8
jmp 0x5838c4
xor eax, eax
jmp 0x586d97
mov edi, dword [esp + 0x10]
xorps xmm0, xmm0
mov ecx, dword [esp + 0x20]
movups xmmword [esp + 0x128], xmm0
mov dword [esp + 0x12c], ebp
movups xmmword [esp + 0x118], xmm0
movq qword [esp + 0x138], xmm0
mov eax, dword [edi + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
lea eax, [esp + 0x11c]
push eax
call fcn.0058a380
mov dword [esp + 0x1c], eax
add esp, 8
mov eax, dword [esp + 0x128]
and eax, 0x202
cmp eax, 0x202
jne 0x586e2c
cmp byte [esp + 0x12a], 1
jne 0x586e2c
mov edx, dword [esp + 0x120]
jmp 0x586e4e
test byte [esp + 0x128], 1
jne 0x586f19
lea eax, [esp + 0x118]
push 1
push eax
call fcn.0059d6f0
add esp, 8
mov edx, eax
test edx, edx
je 0x586f19
mov ecx, dword [edi + 4]
add esi, 0x7c
mov eax, dword [ebp + 0x10]
add ecx, ecx
push dword [eax + ecx*8]
push edx
push ebp
call fcn.00554340
mov ebx, eax
push 0
mov ecx, dword [ebx + 0x30]
mov edi, dword [ecx]
lea ecx, [ebp + 0x184]
push edi
push ecx
call fcn.004fc7d0
add esp, 0x18
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x586ef8
mov eax, dword [ecx]
mov edx, dword [eax + 4]
test edx, edx
je 0x586ef8
cmp dword [eax + 0x14], 0
je 0x586ef8
push esi
push edx
push ecx
push ebx
push ebp
call fcn.005a1c10
add esp, 0x14
mov dword [esp + 0x14], eax
test eax, eax
jne 0x586f12
mov eax, dword [ebx + 0x34]
test eax, eax
je 0x586f12
cmp dword [eax], ebp
je 0x586ec3
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x586eb6
jmp 0x586f12
push ebp
call fcn.0051ddb0
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x586f12
push ebx
push ebp
call fcn.00561580
mov edx, dword [ebp + 0x180]
add esp, 8
mov ecx, dword [ebp + 0x198]
mov dword [ecx + edx*4], eax
inc dword [ebp + 0x180]
inc dword [eax + 0xc]
jmp 0x586f12
push edi
push str.no_such_module:__s
push ebp
call fcn.005660d0
mov dword [esi], eax
add esp, 0xc
mov eax, 1
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x38c]
test dword [esp + 0x128], 0x9000
jne 0x586f30
cmp dword [esp + 0x130], 0
je 0x586f40
lea eax, [esp + 0x118]
push eax
call fcn.0059e800
add esp, 4
mov edx, dword [esp + 0x14]
jmp 0x5838c4
mov edx, dword [esp + 0x10]
xor eax, eax
inc dword [ebp + 0xcc]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [edx + 4]
add ecx, ecx
push dword [eax + ecx*8]
push dword [edx + 0x10]
push ebp
call fcn.00554340
mov edi, eax
add esp, 0xc
test edi, edi
je 0x587001
cmp byte [edi + 0x2b], 1
jne 0x587001
mov ecx, dword [edi + 0x34]
test ecx, ecx
je 0x587001
nop dword [eax + eax]
mov eax, dword [ecx + 8]
cmp dword [eax + 4], 0
jg 0x5881b7
mov ecx, dword [ecx + 0x18]
test ecx, ecx
jne 0x586f90
push edi
push ebp
call fcn.005a2140
mov esi, eax
add esp, 8
mov ecx, dword [esi + 4]
mov eax, dword [ecx]
mov ecx, dword [eax + 0x14]
test ecx, ecx
jne 0x586fbf
mov ecx, dword [eax + 0x10]
inc dword [edi + 0x18]
push dword [esi + 8]
call ecx
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x586fe1
mov dword [esi + 8], eax
push esi
mov dword [edi + 0x34], eax
call fcn.0058ea30
add esp, 4
cmp dword [ebp + 0x210], 0
jne 0x586ff0
add dword [edi + 0x18], 0xffffffff
jne 0x586ffa
push edi
push ebp
call fcn.004f6620
add esp, 8
mov esi, dword [esp + 0x38c]
dec dword [ebp + 0xcc]
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x587ec7
mov ecx, dword [esp + 0x10]
mov edi, edx
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
mov dword [esp + 0x8c], 0
mov eax, dword [edx + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x5881dd
mov edi, dword [esi]
test edi, edi
je 0x5881dd
lea eax, [esp + 0x8c]
push eax
mov eax, dword [edi + 0x18]
push esi
call eax
mov ebx, dword [esp + 0x394]
push esi
push ebx
mov dword [esp + 0x24], eax
call fcn.0058e5c0
mov edx, dword [esp + 0x24]
add esp, 0x10
test edx, edx
jne 0x58845b
mov eax, dword [esp + 0x8c]
push 2
push edx
mov dword [eax], esi
mov eax, dword [esp + 0x18]
push dword [eax + 4]
push ebx
call fcn.004e7de0
add esp, 0x10
test eax, eax
je 0x5881c7
mov ecx, dword [esp + 0x8c]
mov edi, dword [esp + 0x14]
mov dword [eax + 0x2c], ecx
inc dword [esi + 4]
mov esi, ebx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x9c], 0
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, 0x9000
test word [edi + 0x10], ax
je 0x587106
push edi
call fcn.0059e840
add esp, 4
jmp 0x58710f
mov eax, 1
mov word [edi + 0x10], ax
mov ebx, dword [ebx + 0x10]
mov eax, dword [ebx + 0x34]
test eax, eax
je 0x5808e1
mov edx, dword [eax + 8]
mov esi, dword [edx]
inc dword [eax + 0xc]
lea eax, [esp + 0x9c]
push eax
mov eax, dword [esp + 0x14]
push dword [eax + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [ebp + 0x10]
add ecx, ecx
push dword [ebx]
push dword [eax + ecx*8]
mov eax, dword [esi + 0x60]
push edx
call eax
push dword [ebx + 0x34]
mov ebp, eax
mov dword [esp + 0x2c], ebp
call fcn.0058ea30
add esp, 0x18
test ebp, ebp
jne 0x5881e7
mov eax, dword [esp + 0x9c]
test eax, eax
je 0x587adc
push fcn.004e51f0
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
push edi
call fcn.0058acd0
add esp, 0x18
jmp 0x580f21
mov esi, dword [esp + 0x38c]
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
call fcn.00598d40
test eax, eax
jne 0x58233b
push eax
push 8
call fcn.005660f0
mov edi, eax
add esp, 8
test edi, edi
je 0x58233b
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x2c]
mov edx, dword [esp + 0x20]
mov dword [edi], ecx
mov ecx, dword [eax + 0xc]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
mov dword [edi + 4], ecx
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x38c]
mov eax, dword [eax + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x58721c
push esi
call fcn.0052ca40
add esp, 4
mov esi, eax
mov eax, 1
push esi
mov word [esi + 0x10], ax
call fcn.0059e800
mov dword [esi], str.ValueList
mov eax, 0x1a01
mov dword [esi + 8], edi
add esp, 4
mov word [esi + 0x10], ax
mov byte [esi + 0x13], 0x70
mov dword [esi + 0x24], 0x58d660
jmp 0x5845ec
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x20]
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 4]
lea ebx, [ebp + 0x28]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x60]
mov edi, dword [ebx + edx*8]
lea ebx, [ebx + edx*8]
movd xmm0, ebx
mov dword [esp + 0x24], ebx
mov eax, dword [eax + ecx*4]
mov ebx, dword [esi + 0x5c]
mov dword [esp + 0x60], eax
pshufd xmm3, xmm0, 0
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0x30], ecx
mov eax, dword [ecx]
mov dword [esp + 0x70], eax
mov ecx, dword [eax]
mov dword [esp + 0x2c], ecx
mov ecx, dword [ebp + edx*8]
mov dword [esp + 0x3c], ecx
xor ecx, ecx
test edi, edi
jle 0x58739b
cmp edi, 0x10
jb 0x587383
cmp dword [0x64ae10], 2
jl 0x587383
movaps xmm2, xmmword [0x60fb50]
mov eax, edi
and eax, 0x8000000f
jns 0x5872d4
dec eax
or eax, 0xfffffff0
inc eax
movaps xmm1, xmmword [0x6216c0]
lea edx, [ebx + 0x20]
mov ebp, edi
mov esi, 8
sub ebp, eax
nop word [eax + eax]
movd xmm0, ecx
lea eax, [esi - 4]
pshufd xmm0, xmm0, 0
lea edx, [edx + 0x40]
paddd xmm0, xmm2
add ecx, 0x10
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x60], xmm0
movd xmm0, eax
lea eax, [esi + 4]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x50], xmm0
movd xmm0, esi
add esi, 0x10
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x40], xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x30], xmm0
cmp ecx, ebp
jl 0x5872f0
cmp ecx, edi
jge 0x58739b
mov edx, dword [esp + 0x24]
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebx + ecx*4], eax
inc ecx
add eax, 0x28
cmp ecx, edi
jl 0x587390
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x30]
push ebx
push edi
push dword [eax + 0x10]
mov edi, dword [esp + 0x38]
push dword [esp + 0x48]
push esi
mov eax, dword [edi + 0x20]
call eax
push dword [esp + 0x84]
mov ebp, dword [esp + 0x3a4]
push ebp
mov dword [esp + 0x30], eax
call fcn.0058e5c0
mov edx, dword [esp + 0x30]
add esp, 0x1c
test edx, edx
jne 0x587ece
mov eax, dword [edi + 0x28]
push esi
call eax
mov ecx, dword [esp + 0x64]
add esp, 4
mov byte [ecx + 2], 0
test eax, eax
je 0x580949
mov edi, dword [esp + 0x14]
jmp 0x583c13
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov eax, edx
mov ecx, dword [esp + 0x20]
cmp byte [edi + 2], 0
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
je 0x587448
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x58743a
push esi
call fcn.0059e840
add esp, 4
jmp 0x5845ec
mov eax, 1
mov word [esi + 0x10], ax
jmp 0x5845ec
mov eax, dword [edi + 0x2c]
xorps xmm0, xmm0
mov ebx, dword [eax]
mov al, byte [esp + 0x38]
mov ebp, dword [ebx]
movups xmmword [esp + 0x1c0], xmm0
mov byte [esp + 0x1c8], al
lea eax, [esp + 0x360]
movups xmmword [esp + 0x1b0], xmm0
mov dword [esp + 0x1b4], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1b0], esi
mov dword [esp + 0x368], 0
mov dword [esp + 0x364], 0x1000000
test byte [eax + 2], 1
je 0x5874c7
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x5874b6
push esi
call fcn.0059e840
add esp, 4
mov eax, 0x401
mov word [esi + 0x10], ax
mov dword [esi], 0
jmp 0x5874db
mov ax, word [esi + 0x10]
mov ecx, 0xf241
and ax, cx
or ax, 1
mov word [esi + 0x10], ax
mov eax, dword [esp + 0x10]
push dword [eax + 8]
lea eax, [esp + 0x1b4]
push eax
push dword [edi + 0x2c]
mov eax, dword [ebp + 0x2c]
call eax
mov ebp, dword [esp + 0x398]
push ebx
push ebp
mov dword [esp + 0x28], eax
call fcn.0058e5c0
add esp, 0x14
lea edi, [esi + 0x12]
cmp dword [esp + 0x1c4], 0
jle 0x58755e
movzx ecx, word [esi + 0x10]
mov eax, ecx
and eax, 0x202
cmp eax, 0x202
jne 0x587530
cmp byte [edi], 1
jne 0x587530
mov eax, dword [esi + 8]
jmp 0x587544
test cl, 1
je 0x587539
xor eax, eax
jmp 0x587544
push 1
push esi
call fcn.0059d6f0
add esp, 8
push eax
push 0x61b3f4
push ebp
call fcn.0057fd60
mov eax, dword [esp + 0x1d0]
add esp, 0xc
mov dword [esp + 0x14], eax
test byte [esi + 0x10], 2
jne 0x58756c
mov eax, dword [esp + 0x38]
mov byte [edi], al
jmp 0x587581
mov al, byte [esp + 0x38]
cmp byte [edi], al
je 0x587581
push dword [esp + 0x38]
push esi
call fcn.0058b190
add esp, 8
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x587ece
jmp 0x580f21
mov edi, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ecx, dword [edi + 4]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 2], 0
jne 0x5808e1
mov eax, dword [edi + 0x2c]
push eax
mov esi, dword [eax]
mov ebx, dword [esi]
mov eax, dword [ebx + 0x24]
call eax
push esi
mov esi, dword [esp + 0x394]
push esi
mov dword [esp + 0x20], eax
call fcn.0058e5c0
mov edx, dword [esp + 0x20]
add esp, 0xc
test edx, edx
jne 0x587ec7
push dword [edi + 0x2c]
mov eax, dword [ebx + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x585b5e
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 8]
mov ecx, dword [esp + 0x44]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*4]
mov dword [esp + 0x10], eax
jmp 0x585b62
mov ebx, dword [ebp + 0x20]
or dword [ebp + 0x20], 0x4000000
and ebx, 0x4000000
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + 0x24]
mov ecx, dword [esp + 0x20]
mov dword [ebp + 0x24], eax
mov eax, dword [edx + 0x10]
mov edi, dword [eax + 8]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x10], 2
lea esi, [ecx + eax*8]
jne 0x587645
mov byte [esi + 0x12], 1
jmp 0x587664
cmp byte [esi + 0x12], 1
je 0x587664
push 1
push esi
call fcn.0058b190
mov edx, eax
add esp, 8
mov dword [esp + 0x14], edx
test edx, edx
jne 0x587ec7
mov eax, dword [edi]
push dword [esi + 8]
push edi
mov eax, dword [eax + 0x4c]
call eax
add esp, 8
mov dword [esp + 0x14], eax
test ebx, ebx
jne 0x587687
and dword [ebp + 0x20], 0xfbffffff
mov eax, dword [ebp + 0x24]
mov dword [ebp + 0x24], eax
mov esi, dword [esp + 0x38c]
push edi
push esi
call fcn.0058e5c0
mov edx, dword [esp + 0x1c]
add esp, 8
and dword [esi + 0x98], 0xfffffffc
jmp 0x5838c4
xorps xmm0, xmm0
movlpd qword [esp + 0xf0], xmm0
cmp byte [ebp + 0x57], 0
jne 0x582342
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x10]
mov edi, dword [eax + 8]
test edi, edi
je 0x5881dd
mov ebx, dword [edi]
test ebx, ebx
je 0x5881dd
cmp dword [ebx + 0x34], 0
mov edx, dword [edx + 8]
je 0x5808e1
mov al, byte [ebp + 0x5c]
mov ecx, dword [esp + 0x20]
mov esi, dword [esi + 0x5c]
mov byte [esp + 0x57], al
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test edx, edx
jle 0x587713
mov dword [esi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x587708
mov eax, dword [esp + 0x10]
mov al, byte [eax + 2]
mov byte [ebp + 0x5c], al
lea eax, [esp + 0xf0]
push eax
mov eax, dword [ebx + 0x34]
push esi
push edx
push edi
call eax
mov esi, dword [esp + 0x39c]
mov dword [esp + 0x24], eax
mov al, byte [esp + 0x67]
push edi
push esi
mov byte [ebp + 0x5c], al
call fcn.0058e5c0
mov edx, dword [esp + 0x2c]
add esp, 0x18
test edx, edx
jne 0x58777b
mov edi, dword [esp + 0x10]
cmp dword [edi + 4], edx
je 0x58776e
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp + 0xf4]
mov dword [ebp + 0x28], eax
mov dword [ebp + 0x2c], ecx
add dword [esi + 0x28], 1
adc dword [esi + 0x2c], 0
jmp 0x5838c4
cmp dl, 0x13
jne 0x58776e
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x10]
cmp byte [eax + 0x10], 0
je 0x58776e
movzx ecx, word [edi + 2]
cmp ecx, 4
jne 0x588217
mov ecx, dword [esp + 0x10]
xor edi, edi
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x14], edi
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x5877df
push edx
call fcn.0052ca40
add esp, 4
mov edx, eax
jmp 0x5877e8
mov eax, 4
mov word [edx + 0x10], ax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [ebp + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 4]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x30]
mov dword [edx], eax
mov eax, dword [esp + 0x1c]
mov dword [edx + 4], 0
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea ebx, [eax + ecx*8]
mov eax, 0x9000
test word [ebx + 0x10], ax
je 0x58784a
push ebx
call fcn.0052ca40
mov edx, dword [esp + 0x14]
add esp, 4
mov ebx, eax
jmp 0x587853
mov eax, 4
mov word [ebx + 0x10], ax
mov ecx, dword [edx + 4]
xor edi, edi
mov eax, dword [ebp + 0x10]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
mov ecx, dword [edx + 0xc]
test ecx, ecx
je 0x587873
mov eax, dword [esi + 4]
mov edi, dword [eax + 0x30]
cmp edi, ecx
cmovb edi, ecx
cmp byte [esi + 9], 0
je 0x58788b
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x58788b
push esi
call fcn.004edaf0
add esp, 4
mov eax, dword [esi + 4]
mov eax, dword [eax]
test edi, edi
je 0x58789a
mov dword [eax + 0xa0], edi
cmp byte [esi + 9], 0
mov edi, dword [eax + 0xa0]
je 0x5878b5
add dword [esi + 0xc], 0xffffffff
jne 0x5878b5
push esi
call fcn.0059ad30
add esp, 4
mov dword [ebx], edi
mov dword [ebx + 4], 0
jmp 0x5845ec
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
mov eax, dword [edx + 0xc]
mov ebx, dword [edx + 0x10]
mov dword [esp + 0x24], ebx
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
cmp dword [ebx], esi
je 0x58792e
mov eax, dword [esp + 0x38c]
mov dword [ebx + 0xc], eax
mov al, byte [esp + 0x38]
mov dword [ebx], esi
mov byte [ebx + 0x18], al
movzx ecx, byte [ebx + 0x1a]
sub ecx, 1
js 0x58792e
mov ebp, dword [esp + 0x10]
lea edx, [ebx + 0x1c]
mov edi, dword [esp + 0x20]
lea edx, [edx + ecx*4]
nop dword [eax]
mov eax, dword [ebp + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [edx + 4], eax
jns 0x587910
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov ax, word [esi + 0x10]
mov ecx, 0xf241
and ax, cx
or ax, 1
mov word [esi + 0x10], ax
lea eax, [ebx + 0x1c]
mov ecx, dword [ebx + 4]
push eax
movzx eax, byte [ebx + 0x1a]
push eax
mov eax, dword [ecx + 0x10]
push ebx
call eax
mov eax, dword [ebx + 0x14]
add esp, 0xc
test eax, eax
je 0x587ae4
jle 0x5879b1
movzx ecx, word [esi + 0x10]
mov eax, ecx
and eax, 0x202
cmp eax, 0x202
jne 0x587981
cmp byte [esi + 0x12], 1
jne 0x587981
mov eax, dword [esi + 8]
jmp 0x587995
test cl, 1
je 0x58798a
xor eax, eax
jmp 0x587995
push 1
push esi
call fcn.0059d6f0
add esp, 8
push eax
push 0x61b3f4
push dword [esp + 0x394]
call fcn.0057fd60
mov eax, dword [ebx + 0x14]
add esp, 0xc
mov dword [esp + 0x14], eax
mov edi, dword [esp + 0x38c]
mov eax, dword [esp + 0x10]
add edi, 0xe4
mov ebx, dword [ebx + 0x10]
mov esi, dword [edi]
mov ebp, dword [eax + 4]
test esi, esi
je 0x587ac0
test ebx, ebx
js 0x5879f9
cmp dword [esi], ebx
jne 0x5879f1
mov ecx, dword [esi + 4]
test ecx, ecx
js 0x5879f1
cmp ecx, 0x1f
jg 0x5879f9
mov eax, 1
shl eax, cl
test ebp, eax
je 0x5879f9
lea edi, [esi + 0x10]
jmp 0x587ab6
mov eax, dword [esi + 0xc]
test eax, eax
je 0x587a08
push dword [esi + 8]
call eax
add esp, 4
mov ecx, dword [esp + 0x18]
mov eax, dword [esi + 0x10]
mov dword [edi], eax
cmp esi, dword [ecx + 0x164]
jae 0x587a4c
cmp esi, dword [ecx + 0x15c]
jb 0x587a34
mov eax, dword [ecx + 0x158]
mov dword [esi], eax
mov dword [ecx + 0x158], esi
jmp 0x587ab6
cmp esi, dword [ecx + 0x160]
jb 0x587a4c
mov eax, dword [ecx + 0x150]
mov dword [esi], eax
mov dword [ecx + 0x150], esi
jmp 0x587ab6
cmp dword [ecx + 0x210], 0
je 0x587a61
push esi
push ecx
call fcn.00528dd0
add esp, 8
jmp 0x587ab6
cmp dword [0x645f38], 0
je 0x587aac
mov eax, dword [0x64de48]
test eax, eax
je 0x587a7d
push eax
call dword [0x645f88]
add esp, 4
push esi
call dword [0x645f64]
sub dword [0x64dde8], eax
dec dword [0x64de0c]
push esi
call dword [0x645f5c]
mov eax, dword [0x64de48]
add esp, 8
test eax, eax
je 0x587ab6
push eax
call dword [0x645f90]
jmp 0x587ab3
push esi
call dword [0x645f5c]
add esp, 4
mov esi, dword [edi]
test esi, esi
jne 0x5879d2
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
mov dword [eax + 0x14], 0
test edx, edx
jne 0x587ec7
jmp 0x580f21
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x38c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov eax, dword [ecx + 4]
mov ebx, 0xf7ff
mov edx, dword [esp + 0x20]
lea eax, [eax + eax*4]
and word [edx + eax*8 + 0x10], bx
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
mov eax, dword [edx + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, 0x800
test word [ebx + edx*8 + 0x10], ax
je 0x587b5a
movzx eax, byte [ebx + edx*8 + 0x13]
jmp 0x5818fe
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x587b85
push ecx
call fcn.0059e840
mov ecx, dword [esp + 0x14]
add esp, 4
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov eax, 1
mov word [ecx + 0x10], ax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
mov eax, dword [edx + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x10]
test byte [ebx + edx*8 + 0x10], 1
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
je 0x587be5
mov eax, 0xf7ff
and word [ebx + ecx*8 + 0x10], ax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov eax, 0x800
or word [ebx + ecx*8 + 0x10], ax
mov al, byte [ebx + edx*8]
mov byte [ebx + ecx*8 + 0x13], al
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
push edx
push ebx
mov eax, dword [edx + 4]
lea edi, [eax + eax*4]
call fcn.004fbcb0
mov esi, eax
add esp, 8
mov eax, dword [ebx + edi*8 + 0xc]
mov ecx, edx
shl eax, 3
cdq
push edx
push eax
push ecx
push esi
call fcn.005b5540
mov esi, eax
and eax, 7
shrd esi, edx, 3
mov edx, dword [ebx + edi*8 + 8]
movsx ecx, byte [esi + edx]
bts ecx, eax
mov byte [esi + edx], cl
jmp 0x5845ec
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x20]
push edx
push edi
mov eax, dword [edx + 4]
lea ebx, [eax + eax*4]
call fcn.004fbcb0
mov esi, eax
add esp, 8
mov eax, dword [edi + ebx*8 + 0xc]
mov ecx, edx
shl eax, 3
cdq
push edx
push eax
push ecx
push esi
call fcn.005b5540
mov edi, eax
mov eax, dword [esp + 0x20]
mov esi, edi
and edi, 7
shrd esi, edx, 3
mov ecx, dword [eax + ebx*8 + 8]
mov eax, 1
movsx edx, byte [esi + ecx]
mov ecx, edi
mov esi, dword [esp + 0x38c]
mov edi, dword [esp + 0x14]
shl eax, cl
test eax, edx
jne 0x587cbd
inc dword [esi + 0xc4]
jmp 0x583c1a
inc dword [esi + 0xc0]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x57fe74
mov cl, byte [ebp + 0x5e]
test cl, 0x41
je 0x587d97
cmp byte [esi + 0x95], 0xfe
je 0x587d97
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x587d0c
mov eax, dword [esi + 0xc8]
test eax, eax
je 0x587d97
push eax
test cl, 0x40
je 0x587d3b
push esi
call fcn.00588910
mov ecx, dword [ebp + 0xd8]
mov esi, eax
push esi
push dword [ebp + 0xdc]
call ecx
push esi
call fcn.004e51f0
mov esi, dword [esp + 0x3a0]
add esp, 0x14
jmp 0x587d97
cmp dword [ebp + 0xc8], 1
jle 0x587d83
push str.____s
push ebp
call fcn.005660d0
mov ecx, dword [ebp + 0xd8]
mov esi, eax
push esi
push dword [esp + 0x39c]
push dword [ebp + 0xdc]
push 1
call ecx
add esp, 0x1c
test esi, esi
je 0x587d7a
push esi
push ebp
call fcn.0054aa60
add esp, 8
mov esi, dword [esp + 0x38c]
jmp 0x587d97
mov eax, dword [ebp + 0xd8]
push esi
push dword [ebp + 0xdc]
push 1
call eax
add esp, 0x10
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
cmp eax, dword [0x646044]
jl 0x587ddc
cmp byte [ecx], 0xb8
je 0x583c3a
mov edx, 1
cmp dword [esi + 0x6c], edx
jle 0x587dda
mov eax, 0x14
nop
mov ecx, dword [esi + 0x68]
cmp byte [ecx + eax], 0xf
jne 0x587dd1
mov dword [ecx + eax + 4], 0
inc edx
add eax, 0x14
cmp edx, dword [esi + 0x6c]
jl 0x587dc0
xor eax, eax
mov ebp, dword [esp + 0x10]
inc eax
mov dword [ebp + 4], eax
inc dword [esi + 0xbc]
jmp 0x583c1e
mov edi, dword [esp + 0x14]
jmp 0x583c1a
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 4]
mov dword [esi + 0x24], ecx
mov al, byte [edi + 8]
mov byte [esi + 0x94], al
test ecx, ecx
je 0x587e91
movzx eax, word [edi + 2]
test ax, ax
je 0x587e4f
push dword [eax*4 + 0x6175f4]
push str._s_constraint_failed
push esi
call fcn.0057fd60
mov eax, dword [edi + 0x10]
add esp, 0xc
test eax, eax
je 0x587e60
push eax
push dword [esi + 0x7c]
push str._z:__s
push ebp
call fcn.005660d0
add esp, 0x10
mov dword [esi + 0x7c], eax
jmp 0x587e60
push dword [edi + 0x10]
push 0x61b3f4
push esi
call fcn.0057fd60
add esp, 0xc
push dword [esi + 0x7c]
mov ecx, edi
mov eax, 0x66666667
sub ecx, dword [esp + 0x48]
push dword [esi + 0xc8]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.abort_at__d_in___s_:__s
push dword [edi + 4]
call fcn.004d4a30
add esp, 0x14
push esi
call fcn.00589360
mov ebp, eax
add esp, 4
cmp ebp, 5
jne 0x588348
mov dword [esi + 0x24], eax
jmp 0x588361
mov edx, 0x14
jmp 0x587ec3
push 0x175fd
call fcn.00548fb0
add esp, 4
mov edx, eax
mov dword [esp + 0x14], edx
mov ebp, dword [esp + 0x38c]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
cmp byte [edi + 0x57], 0
je 0x588476
mov edx, 7
jmp 0x5884a1
mov ecx, dword [esp + 0x30]
and edi, 0x3f
mov edx, dword [esp + 0x2c]
add ecx, ecx
mov ebp, dword [esp + 0x38c]
push dword [edx + ecx*8]
mov ecx, dword [esp + 0x40]
push dword [ecx]
push dword [eax*4 + 0x64613c]
movzx eax, byte [edi + 0x617000]
push dword [eax*4 + 0x646a24]
push str.cannot_store__s_value_in__s_column__s._s
push ebp
call fcn.0057fd60
mov edx, 0xc13
add esp, 0x18
mov dword [esp + 0x14], edx
jmp 0x587ece
push str.cannot_open_savepoint___SQL_statements_in_progress
push esi
call fcn.0057fd60
add esp, 8
mov edx, 5
jmp 0x587ec3
mov ebp, dword [esp + 0x38c]
push str.cannot_release_savepoint___SQL_statements_in_progress
push ebp
call fcn.0057fd60
mov edx, 5
add esp, 8
mov dword [esp + 0x14], edx
jmp 0x587ece
mov edi, dword [esp + 0x18]
mov ebp, ebx
mov byte [edi + 0x55], 0
jmp 0x587ed2
mov esi, dword [esp + 0x10]
mov eax, 0x66666667
mov ecx, esi
mov ebp, 5
sub ecx, dword [esp + 0x44]
imul ecx
mov ecx, dword [esp + 0x18]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebx + 0x20], eax
mov byte [ecx + 0x55], 0
mov dword [ebx + 0x24], ebp
jmp 0x588369
mov ebp, 0x65
jmp 0x588361
mov edi, dword [esp + 0x18]
and edx, 0x100000
or edx, 0
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0x38c]
je 0x587fe4
mov edx, 8
mov dword [esp + 0x14], edx
jmp 0x587ed6
mov edx, 0xb
mov dword [esp + 0x14], edx
jmp 0x587ed6
mov esi, dword [esp + 0x10]
cmp dl, 5
jne 0x5883d2
mov ebp, dword [esp + 0x14]
mov ecx, ebx
sub ecx, dword [esp + 0x44]
mov eax, 0x66666667
imul ecx
mov ecx, dword [esp + 0x38c]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x24], ebp
jmp 0x588365
mov edx, 0x204
jmp 0x587ec3
push dword [edi]
call fcn.00542150
mov edx, dword [esp + 0x18]
add esp, 4
jmp 0x587ec7
push 0x6214bc
push 0x15db9
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004d4a30
add esp, 0x14
mov edx, 0xb
jmp 0x587ec3
push 0x6214bc
push 0x17ec5
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004d4a30
add esp, 0x14
mov edx, 0xb
jmp 0x587ec3
push str.index_corruption
push 0x182ff
push 0x30b
call fcn.00572180
add esp, 0xc
jmp 0x587ec1
cmp dword [esp + 0x208], 0
je 0x5880cf
lea eax, [esp + 0x1f0]
push eax
call fcn.0059e800
add esp, 4
push 0x6214bc
push 0x15d98
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004d4a30
add esp, 0x14
mov edx, 0xb
jmp 0x587ec3
push 0x183cc
jmp 0x587eb9
mov edx, 6
mov byte [esi + 0x94], 2
jmp 0x587ec3
push ebp
call fcn.00572300
add esp, 4
jmp 0x58233b
push dword [esp + 0x90]
call fcn.004e51f0
mov edx, dword [esp + 0x18]
add esp, 4
jmp 0x587ec7
mov eax, 1
push str.too_many_levels_of_trigger_recursion
push esi
mov dword [esp + 0x1c], eax
call fcn.0057fd60
add esp, 8
mov edx, 1
jmp 0x587ec7
push esi
call fcn.004cbc50
mov ebp, dword [esp + 0x390]
push eax
push 0x61b3f4
push ebp
call fcn.0057fd60
mov edx, dword [esp + 0x24]
add esp, 0x10
jmp 0x587ece
mov ebp, dword [esp + 0x38c]
mov eax, 1
mov dword [esp + 0x14], eax
mov ecx, str.out_of
cmp ebx, 5
mov eax, str.into
cmovne eax, ecx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push ebp
call fcn.0057fd60
add esp, 0xc
mov edx, 1
jmp 0x587ece
dec dword [ebp + 0xcc]
mov edx, 6
jmp 0x587ec3
push dword [esp + 0x8c]
mov eax, dword [edi + 0x1c]
call eax
add esp, 4
mov esi, ebx
jmp 0x582342
mov edx, 6
jmp 0x587ec3
push dword [esp + 0x9c]
call fcn.004e51f0
mov edx, dword [esp + 0x18]
add esp, 4
jmp 0x587ec7
or ecx, 0xffffffff
mov edx, 9
or eax, 0xffffffff
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x78], eax
jmp 0x587ec3
cmp ecx, 5
movzx eax, cl
mov edi, 2
cmove eax, edi
mov byte [esi + 0x94], al
jmp 0x587ec7
mov eax, dword [esi + 0x1c]
mov edi, dword [esp + 0x10]
add eax, 2
mov ecx, dword [esp + 0x20]
or eax, 1
mov dword [esi + 0x1c], eax
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esi + 0x78], eax
cmp byte [ebp + 0x57], 0
jne 0x582342
test byte [ebp + 0x5e], 4
je 0x588276
mov eax, dword [ebp + 0xd8]
push 0
push esi
push dword [ebp + 0xdc]
push 4
call eax
add esp, 0x10
mov ecx, edi
mov eax, 0x66666667
sub ecx, dword [esp + 0x44]
mov ebp, 0x64
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
inc eax
add eax, edx
mov dword [esi + 0x20], eax
jmp 0x588361
mov edi, dword [esp + 0x10]
movzx eax, byte [ebp + 0x55]
mov ebx, dword [edi + 4]
mov ecx, dword [edi + 8]
cmp ebx, eax
je 0x5883e2
test ecx, ecx
je 0x5882c7
push 0x204
push ebp
call fcn.00572be0
add esp, 8
mov al, 1
jmp 0x588303
test ebx, ebx
je 0x5882ec
cmp dword [ebp + 0xc4], 0
jle 0x5882ec
push str.cannot_commit_transaction___SQL_statements_in_progress
push esi
call fcn.0057fd60
add esp, 8
mov edx, 5
jmp 0x587ec3
push 1
push esi
call fcn.0057f400
mov ebp, eax
add esp, 8
test ebp, ebp
jne 0x588361
mov ebp, dword [esp + 0x18]
mov al, bl
push esi
mov byte [ebp + 0x55], al
call fcn.00589360
add esp, 4
cmp eax, 5
jne 0x58833f
mov ecx, edi
mov eax, 0x66666667
sub ecx, dword [esp + 0x44]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x20], eax
mov al, 1
sub al, bl
mov byte [ebp + 0x55], al
mov ebp, 5
mov dword [esi + 0x24], ebp
jmp 0x588361
push ebp
call fcn.00546b50
add esp, 4
cmp dword [esi + 0x24], 0
mov ecx, 0x65
mov eax, 1
cmovne ecx, eax
mov dword [esp + 0x14], ecx
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x78]
nop dword [eax]
cmp dword [esp + 0x84], ebx
jb 0x5885ad
mov edx, dword [esp + 0x6c]
ja 0x58838d
cmp dword [esp + 0x1c], edx
jb 0x5885ad
mov eax, dword [ecx + 0x174]
test eax, eax
je 0x5885ad
add edx, dword [ecx + 0x17c]
push dword [ecx + 0x178]
mov dword [esp + 0x70], edx
adc ebx, 0
call eax
mov ecx, dword [esp + 0x1c]
add esp, 4
test eax, eax
je 0x588370
or ecx, 0xffffffff
mov edx, 9
or eax, 0xffffffff
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x78], eax
mov dword [esp + 0x14], edx
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x38c]
jmp 0x587ed6
test ebx, ebx
jne 0x5883fd
mov eax, str.cannot_start_a_transaction_within_a_transaction
push eax
push esi
call fcn.0057fd60
add esp, 8
lea edx, [ebx + 1]
jmp 0x587ec3
test ecx, ecx
mov edx, str.cannot_commit___no_transaction_is_active
mov eax, str.cannot_rollback___no_transaction_is_active
cmove eax, edx
push eax
push esi
call fcn.0057fd60
add esp, 8
mov edx, 1
jmp 0x587ec3
mov eax, dword [esp + 0x80]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x1c], eax
mov edx, 9
jmp 0x587ec3
mov eax, dword [esp + 0x80]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x1c], eax
jmp 0x582342
mov ebp, ebx
jmp 0x587ece
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0x38c]
mov edi, dword [esp + 0x18]
jmp 0x587ed6
cmp edx, 0x210a
jne 0x5884a5
push 0x6214bc
push 0x18cd0
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004d4a30
add esp, 0x14
mov edx, 0xb
mov dword [esp + 0x14], edx
cmp dword [ebp + 0x7c], 0
jne 0x588504
cmp edx, 0xc0a
je 0x588504
mov eax, edx
mov ecx, str.unknown_error
sub eax, 0x64
je 0x5884f0
sub eax, 1
je 0x5884e9
sub eax, 0x19f
je 0x5884e2
movzx eax, dl
cmp eax, 0x1d
jae 0x5884f5
mov eax, dword [eax*4 + 0x617578]
test eax, eax
je 0x5884f5
mov ecx, eax
jmp 0x5884f5
mov ecx, str.abort_due_to_ROLLBACK
jmp 0x5884f5
mov ecx, str.no_more_rows_available
jmp 0x5884f5
mov ecx, str.another_row_available
push ecx
push 0x61b3f4
push ebp
call fcn.0057fd60
add esp, 0xc
mov ebx, dword [esp + 0x14]
push ebx
push dword [esp + 0x1c]
mov dword [ebp + 0x24], ebx
call fcn.00579960
push dword [ebp + 0x7c]
mov ecx, esi
mov eax, 0x66666667
sub ecx, dword [esp + 0x50]
push dword [ebp + 0xc8]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.statement_aborts_at__d:___s___s
push ebx
call fcn.004d4a30
add esp, 0x1c
cmp byte [ebp + 0x97], 2
jne 0x588556
push ebp
call fcn.00589360
add esp, 4
cmp ebx, 0xc0a
jne 0x588592
push dword [esp + 0x18]
call fcn.00567010
add esp, 4
mov ecx, dword [esp + 0x18]
mov al, byte [esp + 0x67]
mov ebp, 1
test al, al
je 0x588369
movzx eax, al
dec eax
push eax
push ecx
call fcn.00572380
add esp, 8
jmp 0x588365
cmp ebx, 0xb
jne 0x58856a
mov ecx, dword [esp + 0x18]
cmp byte [ecx + 0x55], 0
jne 0x58856e
mov eax, dword [ecx + 0x20]
mov dword [ecx + 0x20], eax
or dword [ecx + 0x24], 2
jmp 0x58856e
mov eax, dword [esp + 0x38c]
mov ecx, dword [esp + 0x1c]
add dword [eax + 0xb4], ecx
cmp dword [eax + 0xa0], 0
je 0x5885d0
push eax
call fcn.0059e750
add esp, 4
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x378
ret