Function at 0x5713c0
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 0x571428
push esi
call fcn.00571320
add esp, 4
cmp dword [ebp + 0x174], edi
je 0x571446
mov ecx, dword [ebp + 0x17c]
xor edx, edx
mov eax, dword [esi + 0xb4]
div ecx
sub ecx, edx
xor eax, eax
jmp 0x57144c
or ecx, 0xffffffff
or eax, 0xffffffff
cmp dword [esi + 0x24], 7
mov dword [esp + 0x78], eax
mov dword [esp + 0x6c], ecx
je 0x579a70
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 0x579a50
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.0x5714ca.89
jmp dword [ebx*4 + 0x579c10]
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.0x5714ca.9
mov eax, dword [ecx + 4]
mov ebx, dword [esp + 0x20]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 4
je 0x57526a
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 0x5714a4
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 0x57524a
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x5714a4
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 0x5714a4
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 0x5714a4
mov eax, dword [ecx + 0xc]
mov edx, dword [esp + 0x20]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x10], 1
je 0x57526a
mov edx, dword [esi + 0xd0]
test edx, edx
je 0x579428
cmp dword [ecx + 4], 0
jne 0x579428
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.0057a690
mov ecx, dword [esp + 0x14]
add esp, 4
cmp dword [ecx + 8], 4
jne 0x57169d
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 0x5714a4
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 0x57170e
push ecx
call fcn.0051e070
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 0x5714a4
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 0x5714a4
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 0x571763
push edx
call fcn.0051e070
add esp, 4
mov edx, eax
jmp 0x57176c
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 0x5714a4
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 0x5717ba
push ecx
call fcn.0051e070
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 0x5714a4
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 0x571811
push esi
call fcn.0051e070
add esp, 4
mov esi, eax
jmp 0x57181a
mov eax, 4
mov word [esi + 0x10], ax
mov edx, dword [ebx + 0x10]
test edx, edx
jne 0x571825
xor ecx, ecx
jmp 0x571843
mov ecx, edx
lea edi, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x571830
sub ecx, edi
mov edi, dword [esp + 0x14]
and ecx, 0x3fffffff
cmp byte [esp + 0x38], 1
mov dword [ebx + 4], ecx
je 0x5718dd
push 0
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push edx
push esi
call fcn.0057c300
mov edi, eax
add esp, 0x18
mov dword [esp + 0x14], edi
test edi, edi
jne 0x573a57
test byte [esi + 0x10], 2
mov al, byte [esp + 0x38]
jne 0x571880
mov byte [esi + 0x12], al
jmp 0x57189a
cmp byte [esi + 0x12], al
je 0x57189a
push dword [esp + 0x38]
push esi
call fcn.0057c7c0
add esp, 8
test eax, eax
jne 0x57396b
mov ecx, dword [esp + 0x10]
mov eax, 0x2000
mov dword [esi + 0x18], 0
or word [esi + 0x10], ax
cmp byte [ecx + 1], 0xfa
jne 0x5718c9
mov eax, dword [ecx + 0x10]
test eax, eax
je 0x5718c9
push eax
push ebp
call fcn.0053c090
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 0x573a5e
mov byte [ebx], 0x49
jmp 0x5718f6
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 0x571918
push ecx
call fcn.0051e070
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 0x571f11
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 0x571a21
cmp dword [ebx + esi*8 + 4], edx
mov esi, dword [esp + 0x38c]
jne 0x571f11
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 0x5714a4
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 0x5719b5
push edx
call fcn.0051e070
add esp, 4
mov edx, eax
jmp 0x5719be
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 0x5787b9
mov eax, 0x9000
test word [esi + 0x28], ax
lea esi, [esi + 0x28]
je 0x571a0e
lea eax, [esi - 0x10]
push eax
call fcn.0058fe70
add esp, 4
mov eax, 0x9000
dec edi
mov word [esi], bx
mov dword [esi - 4], 0
test edi, edi
jg 0x5719f4
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 0x5714a4
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 0x5714a4
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 0x571a9f
push esi
call fcn.0051e070
add esp, 4
mov esi, eax
jmp 0x571aa8
mov eax, 4
mov word [esi + 0x10], ax
mov ecx, dword [edi + 0x10]
mov edi, dword [edi + 4]
test ecx, ecx
jne 0x571b24
test word [esi + 0x10], bx
jne 0x571abd
cmp dword [esi + 0x18], ecx
je 0x571ac6
push esi
call fcn.0058fe30
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.0057ba20
add esp, 4
test eax, eax
jne 0x57396b
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 0x5714a4
push 0
push 0
mov eax, edi
cdq
push edx
push eax
push ecx
push esi
call fcn.0057c300
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 0x5714a4
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 0x571b92
mov ecx, dword [ebx + edi*8 - 0x1c]
test eax, 0x400
je 0x571b85
add ecx, dword [ebx + edi*8 - 0x28]
mov eax, dword [ebx + edi*8 - 0x14]
cmp ecx, dword [eax + 0x78]
jg 0x573a5e
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 0x571bb7
push esi
call fcn.0058fe70
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 0x5714a4
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 0x571c31
cmp dword [esi + 0x18], 0
je 0x571c3a
push esi
call fcn.0058fe30
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 0x571cb1
test al, 0x12
je 0x571ca8
test eax, 0x400
je 0x571c89
push esi
call fcn.0057ba20
add esp, 4
test eax, eax
jne 0x57396b
cmp dword [esi + 0x18], 0
je 0x571c97
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x20]
je 0x571ca8
push esi
call fcn.0058fde0
add esp, 4
test eax, eax
jne 0x57396b
mov eax, 0xbfff
and word [esi + 0x10], ax
add edi, 0x28
add esi, 0x28
sub ebx, 1
jne 0x571c20
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 0x5714a4
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 0x571d1f
push 0x4000
push edi
push esi
call fcn.0058f010
add esp, 0xc
jmp 0x571d4e
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 0x571d4e
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 0x571da6
test cl, 0x12
je 0x571d99
test ecx, 0x400
je 0x571d7a
push esi
call fcn.0057ba20
add esp, 4
test eax, eax
jne 0x57396b
cmp dword [esi + 0x18], 0
je 0x571d88
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x20]
je 0x571d99
push esi
call fcn.0058fde0
add esp, 4
test eax, eax
jne 0x57396b
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 0x571dc3
test byte [ecx + 2], 2
je 0x571dc3
and eax, 0xf7ff
mov word [esi + 0x10], ax
mov eax, ebx
dec ebx
test eax, eax
je 0x571dd5
add esi, 0x28
add edi, 0x28
jmp 0x571d03
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x38c]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x5714a4
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 0x571e42
push 0x4000
push edx
push ecx
call fcn.0058f010
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x5714a4
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 0x575266
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 0x5714a4
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 0x571ed3
push eax
push edx
push ecx
call fcn.00591610
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x5714a4
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 0x5714a4
push 0
push esi
call fcn.00570a30
mov edx, eax
add esp, 8
mov dword [esp + 0x14], edx
test edx, edx
jne 0x579a92
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x5714a4
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 0x571fce
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x571f9f
push esi
call fcn.0058fe70
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 0x5714a4
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 0x5714a4
test cl, 0x12
jne 0x572000
mov ebx, dword [esp + 0x68]
push 0
push ebx
push ebp
call fcn.0057c700
add esp, 0xc
test eax, eax
jne 0x573967
mov ax, word [ebp + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx ecx, ax
mov dword [esp + 0x70], ecx
jmp 0x572030
test ecx, 0x400
je 0x57202c
push ebp
call fcn.0057ba20
add esp, 4
test eax, eax
jne 0x573967
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 0x57204a
push 0
push ebx
push edi
call fcn.0057c700
add esp, 0xc
jmp 0x57205a
test eax, 0x400
je 0x572075
push edi
call fcn.0057ba20
add esp, 4
test eax, eax
jne 0x573967
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 0x573a57
jl 0x5720a0
cmp ebx, eax
ja 0x573a57
xor eax, eax
cmp esi, edi
sete al
push eax
lea eax, [ecx + 2]
push eax
push esi
call fcn.0057bc50
add esp, 0xc
test eax, eax
jne 0x573967
mov ax, word [esi + 0x10]
mov ecx, 0xf242
and ax, cx
or ax, 2
mov word [esi + 0x10], ax
cmp esi, edi
je 0x5720ee
push dword [edi + 0xc]
push dword [edi + 8]
push dword [esi + 8]
call fcn.00427770
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.00427770
mov cl, byte [esp + 0x44]
add esp, 0xc
mov eax, dword [esp + 0x70]
mov word [ebp + 0x10], ax
cmp cl, 1
jbe 0x57211f
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 0x5714a4
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 0x5721ed
or cl, bl
test cl, 1
jne 0x572577
and edx, 0x2d
je 0x5721c1
mov ebx, edx
jmp 0x5721cd
push esi
call fcn.004e4aa0
add esp, 4
movzx ebx, ax
mov ax, word [ebp + 0x10]
and ax, 0x2d
jne 0x5721e0
push ebp
call fcn.004e4aa0
add esp, 4
movzx eax, ax
and al, bl
test al, 4
je 0x57238b
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.0x572216
jmp dword [eax*4 + 0x579ef4]
push esi
lea eax, [esp + 0x80]
push edi
push eax
call fcn.0052ee40
add esp, 0xc
test eax, eax
jne 0x572383
mov ebp, dword [esp + 0x80]
mov ebx, dword [esp + 0x7c]
jmp 0x572531
test edi, edi
jne 0x57226e
cmp esi, 0x80000000
jne 0x57226e
test ebp, ebp
jg 0x572383
jl 0x572265
test ebx, ebx
jae 0x572383
sub ebx, edi
sbb ebp, esi
jmp 0x572531
neg edi
adc esi, 0
neg esi
jmp case.0x572216.106
test esi, esi
jl 0x5722d4
jg 0x572281
test edi, edi
je 0x5722ca
push esi
push edi
push 0x7fffffff
push 0xffffffffffffffff
call fcn.005a7270
cmp ebp, edx
jg 0x572383
jl 0x5722a1
cmp ebx, eax
ja 0x572383
push esi
push edi
push 0x80000000
push 0
call fcn.005a7270
cmp ebp, edx
jg 0x57234a
jl 0x572383
cmp ebx, eax
jae 0x57234a
jmp 0x572383
test esi, esi
jg 0x57234a
jl 0x5722d4
test edi, edi
jae 0x57234a
test ebp, ebp
jl 0x572309
jg 0x5722de
test ebx, ebx
je 0x5722ff
push ebp
push ebx
push 0x80000000
push 0
call fcn.005a7270
cmp esi, edx
jg 0x57234a
jl 0x572383
cmp edi, eax
jae 0x57234a
jmp 0x572383
test ebp, ebp
jg 0x57234a
jl 0x572309
test ebx, ebx
jae 0x57234a
test edi, edi
jne 0x572315
cmp esi, 0x80000000
je 0x572383
test ebx, ebx
jne 0x572321
cmp ebp, 0x80000000
je 0x572383
push esi
push edi
push 0x80000000
push 1
call fcn.005a7270
mov ecx, ebx
neg ecx
mov dword [esp + 0x24], ecx
mov ecx, ebp
adc ecx, 0
neg ecx
cmp ecx, edx
jg 0x572383
jl 0x57234a
cmp dword [esp + 0x24], eax
ja 0x572383
push esi
push edi
push ebp
push ebx
call fcn.005a6b40
jmp 0x57252d
mov eax, edi
or eax, esi
je 0x572577
mov eax, edi
and eax, esi
cmp eax, 0xffffffff
jne 0x572503
test ebx, ebx
jne 0x572503
cmp ebp, 0x80000000
jne 0x572503
mov ebp, dword [esp + 0x34]
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x30]
movzx eax, word [ebx + 0x10]
test al, 8
je 0x5723ac
movsd xmm0, qword [ebx]
movsd qword [esp + 0x24], xmm0
movsd xmm0, qword [esp + 0x94]
jmp 0x572402
test al, 0x24
je 0x5723cb
mov edx, dword [ebx + 4]
mov ecx, dword [ebx]
call fcn.005a70f0
movsd qword [esp + 0x24], xmm0
movsd xmm0, qword [esp + 0x94]
jmp 0x572402
test al, 0x12
je 0x5723f3
push ebx
call fcn.0051a490
fstp qword [esp + 0x28]
movsd xmm0, qword [esp + 0x28]
add esp, 4
movsd qword [esp + 0x24], xmm0
movsd xmm0, qword [esp + 0x94]
jmp 0x572402
movsd xmm0, qword [esp + 0x94]
movsd qword [esp + 0x24], xmm0
movzx eax, word [ebp + 0x10]
test al, 8
je 0x572411
movsd xmm0, qword [ebp]
jmp 0x572439
test al, 0x24
je 0x572422
mov edx, dword [ebp + 4]
mov ecx, dword [ebp]
call fcn.005a70f0
jmp 0x572439
test al, 0x12
je 0x572439
push ebp
call fcn.0051a490
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.0x572444
jmp dword [eax*4 + 0x579f04]
addsd xmm0, qword [esp + 0x24]
jmp 0x5724bf
subsd xmm0, qword [esp + 0x24]
jmp 0x5724bf
mulsd xmm0, qword [esp + 0x24]
jmp 0x5724bf
movsd xmm1, qword [esp + 0x24]
ucomisd xmm1, qword [esp + 0x94]
lahf
test ah, 0x44
jnp 0x572577
divsd xmm0, xmm1
jmp 0x5724bf
push ebx
call fcn.0057b050
push ebp
mov esi, eax
mov edi, edx
call fcn.0057b050
mov ecx, esi
add esp, 8
or ecx, edi
je 0x572577
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x5724af
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.005a7140
mov ecx, eax
call fcn.005a70f0
movsd qword [esp + 0x24], xmm0
mov ecx, dword [esp + 0x28]
mov eax, ecx
and eax, 0x7ff00000
cmp eax, 0x7ff00000
jne 0x5724e9
mov eax, dword [esp + 0x24]
and ecx, 0xfffff
or eax, ecx
jne 0x572577
mov ecx, dword [esp + 0x2c]
mov edx, 0xf248
movsd qword [ecx], xmm0
mov ax, word [ecx + 0x10]
and ax, dx
or ax, 8
jmp 0x57254a
push esi
push edi
push ebp
push ebx
call fcn.005a7270
jmp 0x57252d
mov eax, edi
or eax, esi
je 0x572577
mov eax, edi
and eax, esi
cmp eax, 0xffffffff
jne 0x572524
mov edi, 1
xor esi, esi
push esi
push edi
push ebp
push ebx
call fcn.005a7140
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 0x5714a4
mov eax, dword [esp + 0x2c]
mov ecx, 0x9000
test word [eax + 0x10], cx
je 0x57258c
push eax
jmp 0x571f71
mov ecx, 1
mov word [eax + 0x10], cx
jmp 0x571f79
mov eax, dword [ecx + 4]
test eax, eax
je 0x57526a
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
push 0
push 0
lea eax, [ecx + eax*8]
push eax
call fcn.0057c160
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x5714a4
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 0x572653
mov eax, 0x9000
test word [ebp + 0x10], ax
je 0x57262f
push ebp
call fcn.0058fe70
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 0x5714a4
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 0x5714a4
push ecx
call fcn.0057b050
mov edi, eax
mov esi, edx
push ebx
mov dword [esp + 0xf0], edi
mov dword [esp + 0xf4], esi
call fcn.0057b050
mov ebx, eax
add esp, 8
mov eax, dword [esp + 0x10]
mov cl, byte [eax]
cmp cl, 0x66
jne 0x572687
and edi, ebx
and esi, edx
jmp 0x5726ed
cmp cl, 0x67
jne 0x572692
or edi, ebx
or esi, edx
jmp 0x5726ed
mov eax, ebx
or eax, edx
je 0x5726ed
test edx, edx
jg 0x5726c6
jl 0x5726a2
test ebx, ebx
jae 0x5726bb
mov al, 0xd1
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x5726c6
jg 0x5726b4
cmp ebx, 0xffffffc0
jbe 0x5726c6
neg ebx
adc edx, 0
neg edx
test edx, edx
jl 0x57270c
jg 0x5726c6
cmp ebx, 0x40
jb 0x57270c
test esi, esi
jg 0x5726dc
jl 0x5726d0
test edi, edi
jae 0x5726dc
cmp cl, 0x68
je 0x5726dc
or edi, 0xffffffff
or esi, edi
jmp 0x5726ed
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 0x571f79
movq xmm1, qword [esp + 0xe8]
movd xmm0, ebx
cmp cl, 0x68
jne 0x57272a
psllq xmm1, xmm0
movq qword [esp + 0x24], xmm1
jmp 0x5726e5
psrlq xmm1, xmm0
movq qword [esp + 0x24], xmm1
test esi, esi
jg 0x5726e5
jl 0x57273e
test edi, edi
jae 0x5726e5
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, ebx
or edx, 0xffffffff
call fcn.005a7250
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x28]
or edi, eax
or esi, edx
jmp 0x5726ed
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.0057b050
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 0x5714a4
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 0x572821
test cl, 0x28
jne 0x5727f2
test cl, 2
je 0x5727ed
push 1
push esi
call fcn.004db390
movzx eax, word [esi + 0x10]
add esp, 8
movzx ecx, ax
jmp 0x5727ff
push esi
call fcn.0057b0c0
movzx ecx, word [esi + 0x10]
add esp, 4
movzx eax, cx
test cl, 4
jne 0x572821
mov ebp, dword [esp + 0x10]
cmp dword [ebp + 8], 0
je 0x5794dd
mov esi, dword [esp + 0x38c]
jmp 0x57524e
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 0x5714a4
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 0x57526a
push eax
call fcn.0057c050
mov ecx, dword [esp + 0x14]
add esp, 4
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x5714a4
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 0x5728b6
push esi
call fcn.0057ba20
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x5794f7
push dword [esp + 0x68]
movzx eax, byte [edi + 8]
push eax
push esi
call fcn.0057b830
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
jne 0x5794f7
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 0x5714a4
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 0x572a02
mov ecx, dword [esi + 4]
mov eax, dword [edi + 4]
mov ebp, dword [esi]
mov edx, dword [edi]
cmp ecx, eax
jl 0x572988
jg 0x572941
cmp ebp, edx
jbe 0x57297e
mov eax, dword [0x635f20]
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x38c]
cmp byte [ebx + eax], 0
jne 0x57524a
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 0x5714a4
cmp ecx, eax
jg 0x5729c5
jl 0x572988
cmp ebp, edx
jae 0x5729c5
mov eax, dword [0x635f18]
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x38c]
cmp byte [ebx + eax], 0
jne 0x57524a
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 0x5714a4
mov eax, dword [0x635f1c]
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x38c]
cmp byte [ebx + eax], 0
jne 0x57524a
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 0x5714a4
mov ebx, dword [esp + 0x24]
mov eax, ebx
or eax, edx
test al, 1
je 0x572a88
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 2]
test al, al
jns 0x572a56
test cl, 1
je 0x572a43
test ebx, 0x100
jne 0x572a43
mov eax, dword [esp + 0x10]
mov dword [esp + 0x58], 0
movzx ecx, byte [eax]
mov eax, dword [0x635f1c]
mov al, byte [ecx + eax]
jmp 0x572bbf
mov eax, ebx
not eax
and eax, 1
lea eax, [eax*2 - 1]
jmp 0x572b59
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x38c]
test al, 0x10
jne 0x57524a
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x58], 1
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x5714a4
mov ebp, dword [esp + 0x10]
mov cl, byte [ebp + 2]
and cl, 0x47
cmp cl, 0x43
jb 0x572acf
test al, 2
je 0x572b48
mov al, dl
and al, 0x2e
cmp al, 2
jne 0x572ab6
push 0
push edi
call fcn.004db390
movzx ebx, word [esi + 0x10]
add esp, 8
mov al, bl
and al, 0x2e
cmp al, 2
jne 0x572b48
push 0
push esi
call fcn.004db390
add esp, 8
jmp 0x572b48
cmp cl, 0x42
jne 0x572b48
test al, 2
je 0x572b48
test dl, 2
jne 0x572b19
test dl, 0x2c
je 0x572b19
push 1
push dword [esp + 0x6c]
push edi
call fcn.0057c700
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 0x572b19
mov eax, edx
or eax, 2
movzx ebx, ax
test bl, 2
jne 0x572b48
test bl, 0x2c
je 0x572b48
push 1
push dword [esp + 0x6c]
push esi
call fcn.0057c700
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.00557ef0
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 0x572b82
mov eax, dword [esp + 0x10]
movzx ecx, byte [eax]
mov eax, dword [0x635f18]
mov al, byte [ecx + eax]
jmp 0x572bbf
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 0x572ba5
mov eax, dword [0x635f1c]
mov al, byte [ecx + eax]
jmp 0x572bbf
mov eax, dword [0x635f20]
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 0x575262
jmp 0x57524a
cmp dword [esp + 0x58], 0
je 0x57524a
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x5714a4
mov edx, dword [esp + 0x10]
test byte [edx + 2], 1
jne 0x572c07
xor ebp, ebp
jmp 0x572c0d
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 0x571f7d
lea edi, [edx + 0x14]
nop word [eax + eax]
test ebp, ebp
je 0x572c4a
mov ecx, dword [ebp + esi*4]
jmp 0x572c4c
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.00557ef0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x58], edx
test edx, edx
jne 0x572ca7
mov edx, dword [esp + 0x30]
inc esi
add edi, 4
cmp esi, dword [esp + 0x2c]
jl 0x572c40
jmp 0x571f79
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x10]
test byte [esi + eax], 2
je 0x572cce
mov eax, dword [esp + 0x70]
test byte [eax + 0x10], 1
jne 0x572cc8
mov eax, dword [esp + 0x60]
test byte [eax + 0x10], 1
je 0x572cce
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.0x5714ca.89
neg edx
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x5714a4
mov ebx, dword [esp + 0x58]
mov edx, dword [esp + 0x10]
test ebx, ebx
jns 0x572d31
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 0x5714a4
jne 0x572d56
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 0x5714a4
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 0x5714a4
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 0x572dd1
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jne 0x572e10
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 0x572e17
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jne 0x572e5a
xor eax, eax
cmp byte [edx], 0x2c
lea eax, [eax + esi*2]
jne 0x572e64
mov dl, byte [esi + eax + 0x608a5c]
jmp 0x572e6b
test al, 1
je 0x572ddc
mov esi, 2
jmp 0x572d9b
test al, 8
je 0x572de6
movsd xmm0, qword [ecx]
jmp 0x572e01
test al, 0x12
je 0x572d99
push ecx
call fcn.0051a490
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 0x572d99
mov esi, 1
jmp 0x572d9b
test al, 1
je 0x572e22
mov eax, 2
jmp 0x572db9
test al, 8
je 0x572e2c
movsd xmm0, qword [ecx]
jmp 0x572e47
test al, 0x12
je 0x572db7
push ecx
call fcn.0051a490
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 0x572db7
mov eax, 1
jmp 0x572db9
mov dl, byte [esi + eax + 0x608aac]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
lea ecx, [eax + eax*4]
cmp dl, 2
jne 0x572eb1
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 0x5714a4
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 0x5714a4
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 0x572f5c
mov eax, dword [edx]
or eax, dword [edx + 4]
jne 0x572f90
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 0x572f97
push edx
push eax
push ecx
call fcn.00591610
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x5714a4
test al, 1
jne 0x572f18
test al, 8
je 0x572f6a
movsd xmm0, qword [edx]
jmp 0x572f81
test al, 0x12
je 0x572f16
push edx
call fcn.0051a490
fstp qword [esp + 0x28]
movsd xmm0, qword [esp + 0x28]
add esp, 4
ucomisd xmm0, qword [esp + 0x94]
lahf
test ah, 0x44
jnp 0x572f16
mov ecx, 1
jmp 0x572f18
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 0x5714a4
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 0x573054
push 0
push ecx
call fcn.005707f0
add esp, 8
mov ecx, 0x9000
neg eax
sbb eax, eax
inc eax
test word [esi + 0x10], cx
je 0x573024
push 0
push eax
push esi
call fcn.00591610
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 0x5714a4
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 0x5714a4
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x573086
push esi
call fcn.0058fe70
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 0x5714a4
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 0x5714a4
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 0x5730df
push esi
call fcn.0058fe70
add esp, 4
jmp 0x5730e8
mov eax, 1
mov word [esi + 0x10], ax
test byte [edi + 0x10], 1
jne 0x571a1d
mov eax, 4
push edi
mov word [esi + 0x10], ax
call fcn.0057b050
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 0x5714a4
mov edi, dword [esi + 0xd0]
test edi, edi
je 0x5731a4
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 0x57579b
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 0x5714a4
mov eax, dword [esi + 0x68]
mov edi, dword [esp + 0x10]
mov eax, dword [eax + 4]
cmp eax, dword [edi + 4]
je 0x57941f
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 0x5714a4
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.005707f0
add esp, 8
test eax, eax
jne 0x57524a
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x5714a4
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.005707f0
add esp, 8
test eax, eax
jne 0x575266
jmp 0x57524a
mov eax, dword [ecx + 4]
mov edx, dword [esp + 0x20]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x10], 1
jne 0x57524a
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x5714a4
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 4]
test ecx, ecx
js 0x5732bb
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 0x5732b2
mov eax, dword [ecx + edx*4 + 0x5c]
cmp eax, 0xc
jb 0x5732a9
test al, 1
mov eax, 0
sete al
lea eax, [eax*4 + 4]
jmp 0x5732e1
movzx eax, byte [eax + 0x608ab8]
jmp 0x5732e4
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x10]
jmp 0x5732d8
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 + 0x608430]
dec ecx
mov eax, 1
shl ax, cl
movzx eax, ax
mov ecx, dword [esp + 0x10]
test word [ecx + 2], ax
jne 0x57524a
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x5714a4
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 0x573354
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 1
jne 0x573354
mov eax, dword [edx + 8]
push 0
push 0
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push eax
call fcn.0057c160
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x5714a4
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 0x57338d
push eax
call fcn.0058fe70
mov ecx, dword [esp + 0x14]
add esp, 4
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x5714a4
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 0x5714a4
mov eax, dword [ecx + 4]
mov edx, dword [esp + 0x20]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x10], 1
je 0x57524a
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x5714a4
mov ecx, dword [ecx + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x575266
cmp byte [eax + 2], 0
je 0x575266
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 0x57341a
push eax
call fcn.0058fe70
add esp, 4
jmp 0x57524a
mov ecx, 1
mov word [eax + 0x10], cx
jmp 0x57524a
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 0x573483
cmp byte [esi + 2], 0
jne 0x5734f4
cmp byte [esi + 3], 0
mov edi, dword [esi + 0x2c]
je 0x57347c
mov eax, dword [esi + 0x10]
test eax, eax
je 0x5734ac
mov eax, dword [eax + ecx*4 + 4]
test eax, eax
je 0x5734ac
mov esi, dword [esi + 0x28]
lea ecx, [eax - 1]
jmp 0x57343f
cmp byte [edi], 0
je 0x5734c3
jmp 0x57348f
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
je 0x573610
push esi
call fcn.0057adb0
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x579a8b
mov ecx, dword [esp + 0x4c]
jmp 0x573443
push esi
call fcn.0057a580
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x579a8b
push edi
call fcn.0050d9d0
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 0x5734ec
xor edx, edx
mov ecx, eax
test eax, eax
cmovs ecx, edx
mov dword [esi + 0x54], ecx
mov ecx, dword [edi + 0x28]
jmp 0x57351d
cmp byte [esi], 3
jne 0x5735a0
mov eax, dword [esi + 0x24]
test eax, eax
jle 0x5735a0
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 0x573541
mov eax, 1
jmp 0x573550
push ebp
push dword [esi + 0x4c]
call fcn.00552d70
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 0x573594
mov dword [esi + 0x4c], 0
mov dword [esi + 0x54], 0
mov eax, dword [ebp]
cmp eax, 0x18003
ja 0x573800
cmp eax, dword [esi + 0x50]
ja 0x573800
mov ecx, dword [esp + 0x4c]
jmp 0x573613
mov edx, dword [esi + 0x4c]
mov dword [esp + 0x60], edx
jmp 0x573691
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 0x5735e6
push eax
call fcn.0058fe70
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 0x5714a4
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 0x5714a4
lea edi, [esi + 0x3e]
movzx eax, word [edi]
cmp eax, ecx
ja 0x5738cd
mov eax, dword [esi + 0x34]
lea ebx, [esi + 0x34]
mov dword [esp + 0x30], ebx
cmp eax, dword [ebp]
jae 0x573821
mov edx, dword [esi + 0x4c]
mov dword [esp + 0x60], edx
test edx, edx
jne 0x573689
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.0057bbf0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
jne 0x5794f7
mov edx, dword [esp + 0x170]
mov dword [esp + 0x60], edx
jmp 0x57368d
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 0x5736e2
movzx eax, byte [ebx + 0x607be0]
inc edi
cdq
add ebp, eax
adc dword [esp + 0x34], edx
jmp 0x573726
lea eax, [esp + 0x3c]
push eax
push edi
call fcn.00552d70
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 0x57370e
lea eax, [ebx - 0xc]
shr eax, 1
jmp 0x573715
movzx eax, byte [ebx + 0x607be0]
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 0x573757
cmp edi, dword [esp + 0x70]
jb 0x5736c0
mov eax, dword [esp + 0x70]
jmp 0x57375f
mov eax, dword [esp + 0x70]
cmp edi, eax
jb 0x5737b8
cmp edi, eax
ja 0x5737c3
cmp ebp, dword [esi + 0x50]
jne 0x5737c3
test edx, edx
jne 0x5737c3
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 0x5737ae
test dword [esp + 0x178], 0x9000
jne 0x57379e
cmp dword [esp + 0x180], 0
je 0x5737ae
lea eax, [esp + 0x168]
push eax
call fcn.0058fe30
add esp, 4
mov edi, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
jmp 0x573823
test edx, edx
jb 0x57376c
ja 0x5737c3
cmp ebp, dword [esi + 0x50]
jbe 0x57376c
mov ebp, dword [esp + 0x48]
cmp dword [ebp], 0
jne 0x5737d3
xor ecx, ecx
mov edi, eax
jmp 0x573770
cmp dword [esi + 0x4c], 0
jne 0x573800
test dword [esp + 0x178], 0x9000
jne 0x5737f0
cmp dword [esp + 0x180], 0
je 0x573800
lea eax, [esp + 0x168]
push eax
call fcn.0058fe30
add esp, 4
mov edx, dword [esp + 0x44]
mov eax, dword [edx + 0xc]
test eax, eax
jle 0x5794e4
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edi, [edx + eax*4]
mov dword [esp + 0x10], edi
jmp 0x571f79
xor ebx, ebx
movzx eax, word [edi]
cmp eax, ecx
ja 0x5738d1
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 0x5738b7
mov edx, dword [edi + 0x10]
test word [ecx + 0x10], ax
je 0x573867
push 0x2000
push edx
push ecx
call fcn.0058f010
add esp, 0xc
jmp 0x571f79
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 0x575fac
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 0x5714a4
test word [ecx + 0x10], ax
je 0x5738c3
push ecx
jmp 0x571f71
mov eax, 1
jmp 0x57254d
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 0x5738fe
push edi
call fcn.0058fe70
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 0x5739c6
mov eax, dword [esp + 0x48]
mov ebp, dword [esi + 0x4c]
add ebp, dword [eax + ecx*4]
cmp ebx, 0xc
jae 0x57392a
push edi
push ebx
push ebp
call fcn.0057db90
add esp, 0xc
jmp 0x572551
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 0x573990
mov ecx, dword [esp + 0x18]
cmp esi, dword [ecx + 0x78]
jg 0x573a57
push 0
push eax
mov ecx, 1
push edi
mov word [edi + 0x10], cx
call fcn.0057bc50
add esp, 0xc
test eax, eax
je 0x573996
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x38c]
push ebp
call fcn.00558640
push 0x603b54
push esi
call fcn.00571390
add esp, 0xc
mov edx, 7
jmp 0x5794f3
mov eax, dword [edi + 0x20]
mov dword [edi + 8], eax
push esi
push ebp
push dword [edi + 8]
call fcn.00427770
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 + 0x608af4]
mov word [edi + 0x10], ax
jmp 0x572551
mov al, byte [esp + 0x38]
mov byte [edi + 0x12], al
mov al, byte [edx + 2]
and al, 0xc0
je 0x5739e6
cmp al, 0x80
je 0x573a00
cmp ebx, 0xc
jb 0x5739e6
test bl, 1
je 0x573a00
cmp al, 0xc0
je 0x573a00
cmp ebx, 0x80
jb 0x5739f5
lea eax, [ebx - 0xc]
shr eax, 1
jmp 0x5739fc
movzx eax, byte [ebx + 0x607be0]
test eax, eax
jne 0x573a14
push edi
push ebx
push 0x6041f0
call fcn.0057db90
add esp, 0xc
jmp 0x572551
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.0058f030
mov edx, eax
add esp, 0x20
mov dword [esp + 0x14], edx
test edx, edx
je 0x572551
cmp edx, 7
je 0x573967
cmp edx, 0x12
jne 0x5794f7
mov esi, dword [esp + 0x38c]
push str.string_or_blob_too_big
push esi
call fcn.00571390
add esp, 8
mov edx, 0x12
jmp 0x5794f3
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 0x571a21
add ebx, 8
mov dword [esp + 0x24], ebx
movzx eax, word [ebx + 6]
test al, 0x60
je 0x573ad0
test al, 0x20
jne 0x573b8c
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xc], 0
jne 0x573b89
push dword [esp + 0x68]
movzx eax, byte [ebx]
push eax
push esi
call fcn.004db320
movzx ecx, word [esi + 0x10]
add esp, 0xc
mov ebp, ecx
mov edi, ecx
test cl, 1
jne case.default.0x573b07
mov eax, dword [ebx - 4]
shr eax, 4
and eax, 0xf
lea edx, [eax - 2]
cmp edx, 4
ja case.default.0x573b07
jmp dword [edx*4 + 0x579f14]
test cl, 0x10
jmp 0x573b7b
test cl, 4
jmp 0x573b7b
test cl, 2
jmp 0x573b7b
test cl, 4
je 0x573b78
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 0x573b56
jb 0x573b41
cmp edx, 0xffffffff
ja 0x573b56
or ecx, 0x20
movzx eax, cx
and eax, 0xfffb
mov word [esi + 0x10], ax
mov ebx, dword [esp + 0x24]
jmp case.default.0x573b07
mov edx, ebx
mov ecx, edi
call fcn.005a70f0
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.0x573b07
test cl, 0x28
je 0x57951a
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 0x573ab2
jmp 0x572551
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.004db320
add esp, 0xc
cmp byte [ebx], 0x45
jne 0x573c31
movzx ecx, word [esi + 0x10]
mov edi, ecx
test cl, 4
je 0x573c31
mov ebp, dword [esi]
mov edx, ebp
mov eax, dword [esi + 4]
add edx, 0
adc eax, 0x8000
cmp eax, 0xffff
ja 0x573c16
jb 0x573c07
cmp edx, 0xffffffff
ja 0x573c16
and ecx, 0xfffb
or ecx, 0x20
mov word [esi + 0x10], cx
jmp 0x573c31
mov edx, dword [esi + 4]
mov ecx, ebp
call fcn.005a70f0
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 0x575fa8
add esi, 0x28
jmp 0x573bbf
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 0x573ce5
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.004db320
add esp, 0xc
cmp byte [edi], 0x45
jne 0x573ccb
movzx eax, word [esi]
test al, 4
je 0x573ccb
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 0x573ca0
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 0x573d31
and ebx, 0x400
neg ebx
sbb ebx, ebx
and ebx, 0xa
inc ecx
mov dword [ebp], ebx
jmp 0x573f6d
test bl, 0x24
je 0x573ebd
mov eax, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
test eax, eax
jg 0x573d52
jl 0x573d4a
test esi, esi
jae 0x573d52
mov ecx, esi
not eax
not ecx
jmp 0x573d54
mov ecx, esi
inc dword [esp + 0x34]
test eax, eax
ja 0x573e3f
jb 0x573d67
cmp ecx, 0x7f
ja 0x573db4
mov eax, esi
xor ebx, ebx
and eax, 1
cmp eax, esi
jne 0x573d96
cmp ebx, dword [ebp - 0x18]
jne 0x573d96
mov eax, dword [esp + 0x38c]
cmp byte [eax + 0x95], 4
jb 0x573d96
lea eax, [ecx + 8]
mov ecx, dword [esp + 0x34]
mov dword [ebp], eax
jmp 0x573f71
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 0x573f71
test eax, eax
ja 0x573e3f
jb 0x573dc6
cmp ecx, 0x7fff
ja 0x573de5
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 0x573f71
test eax, eax
ja 0x573e3f
jb 0x573df3
cmp ecx, 0x7fffff
ja 0x573e12
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 0x573f71
test eax, eax
ja 0x573e3f
jb 0x573e20
cmp ecx, 0x7fffffff
ja 0x573e3f
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 0x573f71
cmp eax, 0x7fff
ja 0x573e6c
jb 0x573e4d
cmp ecx, 0xffffffff
ja 0x573e6c
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 0x573f71
add edx, 8
mov dword [esp + 0x48], edx
adc edi, 0
mov dword [esp + 0x4c], edi
test bl, 0x20
je 0x573eac
mov edx, dword [ebp - 0x18]
mov ecx, esi
call fcn.005a70f0
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 0x573f71
mov ecx, dword [esp + 0x34]
mov eax, 6
mov dword [ebp], eax
jmp 0x573f71
test bl, 8
je 0x573edd
inc ecx
mov dword [ebp], 7
add edx, 8
mov dword [esp + 0x48], edx
adc edi, 0
mov dword [esp + 0x4c], edi
jmp 0x573f6d
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 0x573f2e
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 0x573f1f
push esi
call fcn.0057ba20
add esp, 4
test eax, eax
jne 0x573967
add edi, dword [esi]
jmp 0x573f2a
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 0x573f5f
shrd edx, ecx, 7
inc esi
shr ecx, 7
mov eax, edx
or eax, ecx
jne 0x573f51
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 0x573f86
mov edx, dword [esp + 0x48]
sub ebp, 0x28
jmp 0x573d0e
cmp ecx, 0x7e
jle 0x573fe6
mov eax, ecx
mov ebx, 1
cdq
mov esi, eax
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x573fb0
shrd esi, edx, 7
inc ebx
shr edx, 7
mov eax, esi
or eax, edx
jne 0x573fa2
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 0x573fde
nop
shrd esi, edx, 7
inc edi
shr edx, 7
mov eax, esi
or eax, edx
jne 0x573fd0
mov ecx, dword [esp + 0x34]
cmp ebx, edi
jge 0x573feb
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 0x57402a
jl 0x57401e
cmp ecx, eax
ja 0x57402a
mov edx, dword [esp + 0x50]
mov eax, dword [edx + 0x20]
mov dword [edx + 8], eax
jmp 0x574074
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x78]
cdq
cmp ebx, edx
jg 0x573a57
jl 0x574044
cmp ecx, eax
ja 0x573a57
cmp edi, esi
jge 0x574065
push 0
push esi
push dword [esp + 0x58]
call fcn.0057bc50
add esp, 0xc
test eax, eax
jne 0x573967
mov edx, dword [esp + 0x50]
jmp 0x574074
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 0x574097
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 0x5740ad
mov byte [ebx], al
inc ebx
jmp 0x5740bd
push ebp
push dword [esp + 0x40]
push ebx
call fcn.005625c0
add esp, 0xc
add ebx, eax
mov edi, dword [esp + 0x30]
add edi, 0xc
mov edx, dword [edi + 0x10]
cmp edx, 7
ja 0x574147
mov byte [ebx], dl
inc ebx
test edx, edx
je 0x574182
movzx ebp, byte [edx + 0x607be0]
mov ecx, dword [edi - 0xc]
mov eax, dword [edi - 8]
lea edx, [ebp - 1]
cmp edx, 5
ja case.0x5740f0.5
jmp dword [edx*4 + 0x579f28]
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 0x574182
cmp edx, 0x80
jae 0x57415f
mov byte [ebx], dl
inc ebx
cmp edx, 0xe
jb 0x574182
mov eax, dword [edi]
test eax, eax
jle 0x574182
jmp 0x574173
push 0
push edx
push ebx
call fcn.005625c0
add ebx, eax
add esp, 0xc
mov eax, dword [edi]
test eax, eax
je 0x574182
push eax
push dword [edi - 4]
push esi
call fcn.00427770
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 0x575fa8
add edi, 0x28
jmp 0x5740c4
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 0x5741c9
call fcn.005368e0
add esp, 4
mov ebx, eax
mov ebp, edx
jmp 0x5742fb
xorps xmm0, xmm0
movlpd qword [esp + 0x28], xmm0
movlpd qword [esp + 0x40], xmm0
call fcn.0051ae10
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
cmp edx, 0x10
jne 0x574207
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 0x5742fb
test edx, edx
jne 0x5742e7
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 0x5742e7
mov edi, dword [esi + 0x74]
mov cl, byte [edi + 8]
test cl, cl
jne 0x574240
cmp byte [edi + 1], cl
jne 0x57429a
movzx eax, word [edi + 0x18]
cdq
add ebx, eax
adc ebp, edx
test cl, cl
je 0x57429a
nop dword [eax]
mov dl, byte [esi + 0x44]
test dl, dl
je 0x574334
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.0055b380
mov edi, dword [esi + 0x74]
add esp, 4
movzx eax, word [esi + 0x46]
cmp ax, word [edi + 0x18]
jae 0x574250
inc eax
mov word [esi + 0x46], ax
movzx ecx, word [esi + 0x46]
movzx eax, word [edi + 0x18]
cmp ecx, eax
jne 0x5742b3
movzx ecx, byte [edi + 9]
mov eax, dword [edi + 0x38]
mov eax, dword [ecx + eax + 8]
jmp 0x5742cd
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.0051aac0
mov edx, eax
add esp, 8
mov dword [esp + 0x14], edx
test edx, edx
je 0x574220
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
test edx, edx
jne 0x5794f7
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 0x574345
push eax
call fcn.0051e070
add esp, 4
mov dword [eax], ebx
mov dword [eax + 4], ebp
mov ebp, dword [esp + 0x18]
jmp 0x577192
push esi
call fcn.0051ae10
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
jmp 0x5742ef
mov ecx, 4
mov word [eax + 0x10], cx
mov dword [eax], ebx
mov dword [eax + 4], ebp
mov ebp, dword [esp + 0x18]
jmp 0x577192
mov edx, dword [esp + 0x10]
mov edi, dword [edx + 4]
mov ebx, dword [edx + 0x10]
mov dword [esp + 0x50], edi
test edi, edi
jne 0x57443e
cmp dword [ebp + 0xc4], edi
jg 0x579565
test ebx, ebx
jne 0x574386
xor esi, esi
jmp 0x57439f
mov esi, ebx
lea ecx, [esi + 1]
nop dword [eax + eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x574390
sub esi, ecx
and esi, 0x3fffffff
mov eax, dword [ebp + 0x1fc]
add eax, dword [ebp + 0x1f8]
push eax
push 0
push ebp
call fcn.0057ff20
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
jne 0x5794f7
push edx
lea eax, [esi + 0x21]
push eax
push ebp
call fcn.0053c1d0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x5746e1
lea ecx, [esi + 1]
push ecx
lea edx, [edi + 0x20]
push ebx
push edx
mov dword [edi], edx
call fcn.00427770
add esp, 0xc
cmp byte [ebp + 0x55], 0
je 0x574400
mov byte [ebp + 0x55], 0
mov byte [ebp + 0x5d], 1
jmp 0x574406
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 0x5746e1
mov eax, dword [esp + 0x18]
xor ebp, ebp
mov esi, dword [eax + 0x1ec]
test esi, esi
je 0x574467
nop
push ebx
push dword [esi]
call fcn.0056ab20
add esp, 8
test eax, eax
je 0x57448b
mov esi, dword [esi + 0x18]
inc ebp
test esi, esi
jne 0x574450
mov ebp, dword [esp + 0x38c]
push ebx
push str.no_such_savepoint:__s
push ebp
call fcn.00571390
mov edx, 1
add esp, 0xc
mov dword [esp + 0x14], edx
jmp 0x5794fe
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x50]
cmp dword [edx + 0xc4], 0
jle 0x5744a5
cmp ecx, 1
je 0x57957d
cmp dword [esi + 0x18], 0
jne 0x57451c
cmp byte [edx + 0x5d], 0
je 0x57451c
mov edi, 1
mov dword [esp + 0x2c], edi
cmp ecx, edi
jne 0x574524
mov ebx, dword [esp + 0x38c]
push edi
push ebx
call fcn.00570a30
mov ecx, eax
add esp, 8
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x57998d
mov eax, dword [esp + 0x18]
push ebx
mov byte [eax + 0x55], 1
call fcn.0057a990
add esp, 4
cmp eax, 5
je 0x5795af
mov edx, dword [ebx + 0x24]
mov dword [esp + 0x14], edx
test edx, edx
jne 0x5795a0
mov eax, dword [esp + 0x18]
mov dword [esp + 0x2c], edi
mov byte [eax + 0x5d], dl
lea ebx, [eax + 0x1f8]
jmp 0x574626
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 0x574592
mov eax, dword [edx + 0x18]
xor ebx, ebx
and eax, 1
mov dword [esp + 0x30], eax
cmp dword [edx + 0x14], ebx
jle 0x574598
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.00537640
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
jne 0x5794f7
mov edx, dword [esp + 0x18]
inc ebx
mov eax, dword [esp + 0x3c]
add edi, 0x10
cmp ebx, dword [edx + 0x14]
jl 0x574554
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x50]
jmp 0x574598
xor eax, eax
mov dword [esp + 0x30], eax
xor ebx, ebx
cmp dword [edx + 0x14], ebx
jle 0x5745db
xor edi, edi
jmp 0x5745a5
mov edx, eax
mov eax, dword [edx + 0x10]
push ebp
push ecx
push dword [edi + eax + 4]
call fcn.00536950
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
jne 0x5794f7
mov eax, dword [esp + 0x18]
inc ebx
mov ecx, dword [esp + 0x50]
add edi, 0x10
cmp ebx, dword [eax + 0x14]
jl 0x5745a3
mov eax, dword [esp + 0x30]
jmp 0x5745df
mov edx, dword [esp + 0x14]
test eax, eax
je 0x57461a
mov ebx, dword [esp + 0x18]
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x574609
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 0x5745f0
push ebx
call fcn.00563930
mov edx, dword [esp + 0x18]
add esp, 4
or dword [ebx + 0x18], 1
mov ebx, dword [esp + 0x24]
test edx, edx
jne 0x5794f7
mov edi, dword [esp + 0x18]
mov ecx, dword [edi + 0x1ec]
cmp ecx, esi
je 0x574653
mov eax, dword [ecx + 0x18]
push ecx
push edi
mov dword [edi + 0x1ec], eax
call fcn.0053c090
dec dword [ebx]
add esp, 8
mov ecx, dword [edi + 0x1ec]
cmp ecx, esi
jne 0x574634
mov edi, dword [esp + 0x50]
cmp edi, 1
jne 0x57467e
mov ecx, dword [esp + 0x18]
mov eax, dword [esi + 0x18]
push esi
push ecx
mov dword [ecx + 0x1ec], eax
call fcn.0053c090
add esp, 8
cmp dword [esp + 0x2c], 0
jne 0x5746dd
dec dword [ebx]
jmp 0x5746b2
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 0x5746b2
cmp edi, 2
jne 0x5746d9
push ebp
mov ebp, dword [esp + 0x1c]
push edi
push ebp
call fcn.0057ff20
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
je 0x5746e1
mov edi, ebp
mov ebp, dword [esp + 0x38c]
jmp 0x579502
mov ebp, edx
jmp 0x5746e1
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x38c]
cmp byte [esi + 0x97], 3
je 0x5795e2
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x5714a4
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x30], 0
mov edi, dword [ebx + 8]
test edi, edi
je 0x57473b
mov edx, dword [ebp + 0x20]
mov eax, edx
mov ecx, dword [ebp + 0x24]
and eax, 0x100000
and ecx, 2
or eax, ecx
jne 0x5795ec
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 0x574853
lea eax, [esp + 0x30]
push eax
push edi
push esi
call fcn.005334c0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
jne 0x579622
mov edi, dword [esp + 0x38c]
test byte [edi + 0x98], 0x20
je 0x57485f
cmp dword [ebx + 8], eax
je 0x57485f
mov ecx, dword [esp + 0x18]
cmp byte [ecx + 0x55], al
je 0x5747a3
cmp dword [ecx + 0xc0], 1
jle 0x57485f
mov eax, dword [edi + 0x30]
test eax, eax
jne 0x5747bf
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.0057ff20
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
jne 0x57482b
mov edi, dword [edi + 0x30]
mov ebx, dword [esi + 4]
cmp byte [esi + 9], al
je 0x5747f0
inc dword [esi + 0xc]
cmp byte [esi + 0xa], al
jne 0x5747f0
push esi
call fcn.004df120
add esp, 4
mov eax, dword [ebx]
cmp edi, dword [eax + 0x68]
jle 0x574809
cmp byte [eax + 6], 0
je 0x574809
push edi
push eax
call fcn.0051e9c0
add esp, 8
jmp 0x57480b
xor eax, eax
cmp byte [esi + 9], 0
mov dword [esp + 0x14], eax
je 0x574824
add dword [esi + 0xc], 0xffffffff
jne 0x574824
push esi
call fcn.0058c360
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 0x5794f7
mov edi, dword [esp + 0x10]
cmp word [edi + 2], 0
je 0x571f79
mov eax, dword [esp + 0x30]
cmp eax, dword [edi + 0xc]
jne 0x574886
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
cmp eax, dword [edi + 0x10]
je 0x572551
mov ebp, dword [esp + 0x38c]
mov eax, dword [ebp + 0x7c]
test eax, eax
je 0x5748a1
push eax
push dword [esp + 0x1c]
call fcn.0053c090
add esp, 8
push 0
push 0x1c
push dword [esp + 0x20]
call fcn.0053c1d0
add esp, 0xc
test eax, eax
je 0x5748d5
movups xmm0, xmmword [str.database_schema_has_changed]
movups xmmword [eax], xmm0
movq xmm0, qword [0x60c4f4]
movq qword [eax + 0x10], xmm0
mov ecx, dword [0x60c4fc]
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 0x5748ff
push edx
push dword [esp + 0x1c]
call fcn.005639b0
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 0x5794fe
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.005348d0
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 0x57498c
push ecx
call fcn.0051e070
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 0x5714a4
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 0x5714a4
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.00537740
mov dword [esp + 0x20], eax
add esp, 0xc
mov eax, dword [edi + 8]
cmp eax, 1
jne 0x574a75
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 0x574a50
nop dword [eax]
mov esi, dword [edi + 8]
cmp byte [esi + 0x2b], 0
jne 0x574a4a
mov esi, dword [esi + 0x30]
test esi, esi
je 0x574a4a
push dword [esi + 0x1c]
push ebp
call fcn.004f0940
mov dword [esi + 0x1c], 0
push dword [esi + 0x20]
push ebp
call fcn.004f0940
mov dword [esi + 0x20], 0
add esp, 0x10
mov esi, dword [esi + 4]
test esi, esi
jne 0x574a20
mov edi, dword [edi]
test edi, edi
jne 0x574a10
mov edi, dword [esp + 0x10]
cmp dword [edi + 4], 1
jne 0x574a85
push 0
push ebp
call fcn.0053ee70
mov esi, dword [esp + 0x394]
add esp, 8
and dword [esi + 0x98], 0xfffffffc
jmp 0x574a8c
cmp eax, 2
jne 0x574a54
mov ecx, dword [esi + 0xc]
mov al, byte [edi + 0xc]
mov byte [ecx + 0x4c], al
jmp 0x574a54
mov esi, dword [esp + 0x38c]
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x5794f7
mov ecx, dword [esp + 0x10]
mov edi, edx
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x5714a4
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 0x574ae4
mov eax, dword [esi + 0x38]
cmp eax, dword [edi + 8]
jne 0x574ae4
push dword [esi + 0x2c]
call fcn.00533640
mov edx, dword [esp + 0x18]
add esp, 4
jmp 0x574bf5
mov edi, dword [esp + 0x10]
jmp 0x574aeb
mov esi, dword [esp + 0x38c]
mov eax, dword [esi + 0x98]
and al, 3
cmp al, 1
je 0x57965c
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 0x574b3d
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 0x574b3f
mov byte [esi + 0x95], al
jmp 0x574b3f
xor edi, edi
mov ecx, dword [esp + 0x10]
test byte [ecx + 2], 0x10
je 0x574b82
mov ecx, dword [esp + 0x20]
lea eax, [ebx + ebx*4]
lea esi, [ecx + eax*8]
push esi
call fcn.0057b050
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 0x574b92
mov ebp, dword [ecx + 0x10]
movzx eax, word [ebp + 8]
jmp 0x574b9d
cmp al, 0xfd
jne 0x574b9b
mov eax, dword [ecx + 0x10]
jmp 0x574b9d
mov eax, ebp
push 0
push eax
push dword [ecx + 4]
push esi
call fcn.004d9410
mov esi, eax
add esp, 0x10
test esi, esi
je 0x573967
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.00534160
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 0x5794f7
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 0x5714a4
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.004d9410
mov esi, eax
add esp, 0x10
test esi, esi
je 0x57396b
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.00534160
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 0x5714a4
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0xc]
test eax, eax
jle 0x574cf3
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], 0x5ea000
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x60]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x574d6a
test byte [esi + 8], 8
jne 0x574d6a
movsx eax, word [esi + 0x3c]
cmp dword [edi + 8], eax
jg 0x574d6a
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.005336c0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
mov dword [esp + 0x24], edx
test edx, edx
jne 0x5794f7
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 0x5714a4
push 0
push dword [edi + 8]
push ecx
push dword [esp + 0x398]
call fcn.004d9410
mov esi, eax
add esp, 0x10
test esi, esi
je 0x57396b
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.00535d40
mov edx, eax
add esp, 0x18
mov dword [esp + 0x14], edx
test edx, edx
jne 0x5794f7
mov eax, dword [edi]
cmp byte [eax + 9], dl
jne 0x574de8
mov cl, byte [eax + 8]
test cl, cl
je 0x574de8
cmp cl, 1
je 0x574de8
mov ecx, dword [eax + 4]
mov eax, dword [eax]
push dword [eax + 0x1f8]
push dword [ecx]
call fcn.0055a790
add esp, 8
jmp 0x574df5
push 0
push 1
push eax
call fcn.004ddf10
add esp, 0xc
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x574e72
mov eax, dword [esp + 0x10]
lea ebx, [esi + 0x38]
mov ebp, dword [eax + 0x10]
mov dword [esi + 0x30], ebp
test ebp, ebp
je 0x574e4b
movzx eax, word [eax + 2]
or eax, 2
push eax
push ebx
push dword [edi]
call fcn.00534110
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
jne 0x574e45
push dword [esi + 0x2c]
push ebp
push 4
push dword [ebx]
push dword [edi]
call fcn.00534160
mov edx, eax
add esp, 0x14
mov dword [esp + 0x14], edx
mov byte [esi + 4], 0
jmp 0x574e6e
mov dword [ebx], 1
push dword [esi + 0x2c]
push 0
push 4
push 1
push dword [edi]
call fcn.00534160
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 0x579666
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 0x5714a4
mov edi, dword [esp + 0x10]
push 1
push dword [edi + 8]
push dword [edi + 4]
push esi
call fcn.004d9410
add esp, 0x10
test eax, eax
je 0x573972
mov ecx, dword [edi + 0x10]
push eax
mov dword [eax + 0x30], ecx
push dword [edi + 0xc]
push ebp
call fcn.0057e1a0
add esp, 0xc
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x5794f7
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x5714a4
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 0x575266
jmp 0x57524a
mov edx, dword [esp + 0x10]
push 3
push dword [edx + 0xc]
push dword [edx + 4]
push esi
call fcn.004d9410
add esp, 0x10
test eax, eax
je 0x573972
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], 0x63d104
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x5714a4
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 0x574fba
push eax
push esi
call fcn.0057a770
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 0x5714a4
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 0x575116
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 0x575036
push 0
push esi
call fcn.004db390
add esp, 8
push esi
call fcn.0057b050
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 0x5750e0
test cl, 8
jne 0x5750b3
test cl, 1
jne 0x57579b
cmp ebx, 0x17
jae 0x57579b
mov eax, dword [edi + 0x2c]
cmp byte [eax], 0
jne 0x575092
test byte [eax + 1], 8
je 0x575092
xor edi, edi
mov dword [esp + 0x5c], 0
mov dword [esp + 0x14], edi
jmp 0x572555
lea ecx, [esp + 0x5c]
push ecx
push eax
call fcn.004df090
mov edx, eax
add esp, 8
mov dword [esp + 0x14], edx
test edx, edx
jne 0x5794f7
jmp 0x575295
movsd xmm0, qword [esi]
sub esp, 8
movsd qword [esp], xmm0
push dword [esp + 0x38]
push ebp
call fcn.00555800
add esp, 0x10
test eax, eax
jle 0x5750d8
test bl, 1
jne 0x5750e0
dec ebx
jmp 0x5750e0
jns 0x5750e0
test bl, 1
je 0x5750e0
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.00537010
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 0x5794f7
jmp 0x5751b8
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.00534ab0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
jne 0x5794f7
cmp byte [esp + 0x57], al
je 0x5751b8
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x2c], eax
cmp byte [esp + 0x25a], dl
je 0x575295
mov eax, dword [esp + 0x5c]
cmp ebx, 0x17
jl 0x57527d
test eax, eax
js 0x57520e
jne 0x5751d0
cmp ebx, 0x18
je 0x57520e
mov dword [esp + 0x5c], 0
cmp dword [esp + 0x2c], 0
mov ebp, dword [esp + 0x18]
je 0x575fac
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 0x5714a4
push 0
push dword [esi]
mov dword [esp + 0x64], 0
call fcn.00535ca0
mov edx, eax
add esp, 8
mov dword [esp + 0x14], edx
test edx, edx
je 0x5751d8
cmp edx, 0x65
jne 0x5794f7
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 0x5714a4
test eax, eax
jg 0x5752a5
jne 0x575288
cmp ebx, 0x15
je 0x5752a5
mov eax, dword [esi]
xor ecx, ecx
cmp byte [eax], cl
setne cl
mov dword [esp + 0x5c], ecx
cmp dword [esp + 0x5c], 0
jne 0x57579b
jmp 0x5751d8
push 0
push dword [esi]
mov dword [esp + 0x64], 0
call fcn.005366e0
jmp 0x57521f
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 0x57526a
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.0050d9d0
mov edx, dword [esi + 0x2c]
xor eax, eax
add esp, 4
mov ecx, edx
add ecx, 0xffffffff
adc eax, 0xffffffff
test eax, eax
ja 0x579679
jb 0x57533f
cmp ecx, 0x7ffffffe
ja 0x579679
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.0057bbf0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
jne 0x5794f7
push eax
lea eax, [esp + 0x2b4]
push eax
push dword [esp + 0x270]
push dword [esp + 0x278]
call fcn.0057d150
add esp, 0x10
mov esi, eax
cmp dword [esp + 0x278], 0
je 0x5753b2
lea eax, [esp + 0x260]
push eax
call fcn.0058fe30
add esp, 4
xor ebp, ebp
mov dword [esp + 0x14], ebp
test esi, esi
jle 0x5753c8
mov eax, dword [esp + 0x10]
cmp word [eax + 2], bp
je 0x575445
test esi, esi
jns 0x57579b
test edi, edi
jle 0x575fa8
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 0x5753f3
push ecx
call fcn.004df2a0
jmp 0x575427
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 0x575413
push ecx
mov word [ecx + 0x46], si
call fcn.004df2a0
jmp 0x575427
cmp byte [edx + 8], 0
mov ebp, dword [esp + 0x18]
jne 0x575310
push ecx
call fcn.0051aba0
mov ebp, dword [esp + 0x1c]
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
je 0x575310
cmp edx, 0x65
jne 0x5746cb
add dword [esp + 0x10], 0x14
jmp 0x57523d
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 0x575486
mov word [eax + 0xc], cx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x5714a4
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0xc]
cmp edx, ecx
jle 0x575266
mov word [eax + 0xc], cx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x5714a4
mov ecx, dword [ecx + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
je case.0x5714ca.9
cmp byte [eax + 2], 0
je 0x575266
jmp case.0x5714ca.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 0x57526a
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 0x57554d
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.00534ab0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
jmp 0x5755bb
mov eax, 0x400
test word [ecx + 0x10], ax
je 0x575569
push ecx
call fcn.0057ba20
add esp, 4
test eax, eax
jne 0x57396b
push dword [esi + 0x30]
call fcn.00570740
mov edi, eax
add esp, 4
test edi, edi
je 0x57396b
mov ecx, dword [esp + 0x1d4]
push edi
push dword [ecx + 8]
push dword [ecx + 0xc]
push dword [esi + 0x30]
call fcn.0057d8c0
lea ebx, [esi + 0x24]
mov byte [edi + 0x16], 0
push ebx
push edi
push dword [esi + 0x2c]
call fcn.00534ab0
push edi
push ebp
mov dword [esp + 0x38], eax
call fcn.0053c090
mov edx, dword [esp + 0x38]
add esp, 0x24
mov edi, dword [esp + 0x10]
test edx, edx
jne 0x5794f7
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 0x575603
test ecx, ecx
je 0x57579b
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 0x5714a4
test ecx, ecx
jne 0x57579b
cmp al, 0x1b
jne 0x575663
movzx edx, word [esp + 0x1e4]
test edx, edx
je 0x575fac
mov eax, dword [esp + 0x1d4]
add eax, 0x10
nop dword [eax]
test byte [eax], 1
jne 0x57579b
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x575630
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 0x5714a4
cmp al, 0x1a
jne 0x575fac
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 0x5714a4
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 0x575729
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 0x575715
test al, 0x28
jne 0x5756f6
test al, 2
je 0x57570d
lea eax, [esp + 0x218]
push 1
push eax
call fcn.004db390
add esp, 8
jmp 0x575706
lea eax, [esp + 0x218]
push eax
call fcn.0057b0c0
add esp, 4
mov al, byte [esp + 0x228]
test al, 4
je 0x57524a
mov edi, dword [esp + 0x218]
mov ebx, dword [esp + 0x21c]
jmp 0x57573a
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.00537010
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 0x574c01
mov edi, dword [esp + 0x10]
cmp dword [edi + 8], 0
je 0x5796a1
mov edi, dword [esp + 0x14]
jmp 0x575243
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 0x5757cc
push edx
call fcn.0051e070
add esp, 4
mov edx, eax
jmp 0x5757d5
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 0x5714a4
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 0x575854
push edx
call fcn.0051e070
add esp, 4
mov dword [esp + 0x24], eax
jmp 0x57585d
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 0x5758f6
mov eax, dword [ebp + 0x2c]
cmp byte [eax], 0
jne 0x5758b3
test byte [eax + 1], 8
je 0x5758b3
xor eax, eax
mov dword [esp + 0x14], eax
mov esi, dword [ebp + 0x2c]
push esi
call fcn.0050d9d0
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 0x5758e6
jg 0x5758ad
cmp edi, 0xffffffff
jb 0x5758e6
or dword [ebp + 8], 2
jmp 0x5758fe
lea ecx, [esp + 0x2c]
push ecx
push eax
call fcn.004df090
mov edx, eax
add esp, 8
mov dword [esp + 0x14], edx
test edx, edx
jne 0x5794f7
cmp dword [esp + 0x2c], eax
je 0x575884
mov edi, 1
xor esi, esi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], esi
jmp 0x5758fe
add edi, 1
mov dword [esp + 0x3c], edi
adc esi, 0
mov dword [esp + 0x40], esi
jmp 0x5758fe
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x5759a1
mov eax, dword [esp + 0x38c]
mov edx, dword [eax + 0xd0]
test edx, edx
je 0x575935
mov eax, dword [edx + 4]
test eax, eax
je 0x57592a
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x575921
mov eax, dword [edx + 0xc]
lea ecx, [ecx + ecx*4]
lea ebx, [eax + ecx*8]
jmp 0x57593f
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x20]
lea ebx, [ecx + eax*8]
push ebx
call fcn.0057b050
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 0x575976
cmp eax, 0x7fffffff
je 0x575a06
test byte [ebp + 8], 2
jne 0x575a06
add ecx, 1
adc eax, 0
cmp esi, eax
jg 0x57599c
jl 0x575990
cmp edi, ecx
jae 0x57599c
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 0x575a10
xor ebx, ebx
nop dword [eax]
lea eax, [esp + 0x3c]
push eax
push 8
call fcn.004d6a70
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.00537010
mov edx, eax
add esp, 0x1c
mov dword [esp + 0x14], edx
test edx, edx
jne 0x5794f7
cmp dword [esp + 0x2c], eax
jne 0x575a10
inc ebx
cmp ebx, 0x64
jl 0x5759b0
mov edx, 0xd
jmp 0x5794f3
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 0x572551
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 0x575a7f
cmp dword [ebp + 0xfc], 0
je 0x575a7f
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 0x575a83
xor edi, edi
xor ebx, ebx
mov eax, dword [esp + 0x10]
test byte [eax + 2], 1
je 0x575ab6
mov ecx, dword [esp + 0x38c]
add dword [ecx + 0x28], 1
adc dword [ecx + 0x2c], 0
test byte [eax + 2], 0x20
je 0x575ab6
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 0x575adf
mov ecx, dword [esi + 0x24]
jmp 0x575ae1
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 0x575b0d
mov eax, dword [esp + 0x20]
mov eax, dword [eax + edx*8]
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x10]
jmp 0x575b18
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.00535010
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 0x5746cb
test edi, edi
je 0x575fac
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 0x5714a4
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 0x575bed
mov ebx, dword [esp + 0x20]
lea eax, [eax + eax*4]
mov ecx, dword [ebx + eax*8]
mov eax, dword [ebx + eax*8 + 4]
jmp 0x575bfe
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.00537270
add esp, 0x10
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x5794f7
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 0x5714a4
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 0x575ca4
cmp dword [ebx], 0
je 0x575ca4
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 0x575ca8
cmp byte [edi + 4], 0
je 0x575ca8
mov esi, dword [edi + 0x2c]
push esi
call fcn.0050d9d0
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 0x575ca8
xor esi, esi
xor ebp, ebp
movzx eax, byte [edx + 2]
push eax
push dword [edi + 0x2c]
call fcn.005342b0
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 0x5794f7
test byte [esp + 0x3c], 1
je 0x575fa8
mov eax, dword [esp + 0x38c]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], edx
mov eax, dword [ebx]
test eax, eax
je 0x575fa8
test ebp, ebp
je 0x575fa8
test byte [ebp + 0x1c], 0x80
jne 0x575fa8
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 0x5714a4
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 0x5714a4
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 0x575dc5
push ebx
call fcn.00570740
mov ebp, eax
add esp, 4
mov dword [edi + 0x20], ebp
test ebp, ebp
je 0x573986
mov word [ebp + 0x14], si
lea eax, [esp + 0xd4]
push eax
push edi
call fcn.00592670
push ebp
push eax
push dword [esp + 0xe4]
push ebx
call fcn.0057d8c0
add esp, 0x18
xor ecx, ecx
test esi, esi
jle 0x575e02
mov eax, dword [ebp + 4]
add eax, 0x10
test byte [eax], 1
jne 0x57523d
inc ecx
add eax, 0x28
cmp ecx, esi
jl 0x575df1
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.0057d150
xor edx, edx
add esp, 0x10
mov dword [esp + 0x14], edx
test eax, eax
jne 0x57579b
mov dword [esp + 0x14], edx
jmp 0x572551
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.00592670
mov edi, dword [esp + 0xe0]
add esp, 8
mov ebx, eax
cmp dword [esi + 0x18], edi
jge 0x575e8c
push 0
push edi
push esi
call fcn.0057bc50
add esp, 0xc
test eax, eax
jne 0x573986
jmp 0x575e97
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.00427770
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 0x5714a4
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 0x575f17
push esi
call fcn.0051e070
add esp, 4
mov esi, eax
jmp 0x575f20
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.0050d9d0
mov eax, dword [edi + 0x2c]
add esp, 4
cmp eax, dword [ebp + 0x78]
ja 0x573a57
push esi
push eax
push edi
call fcn.0057bbf0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
jne 0x5794f7
mov edi, dword [esp + 0x10]
cmp dword [edi + 0xc], eax
jne 0x575fac
mov eax, 0x4000
test word [esi + 0x10], ax
je 0x575fac
push esi
call fcn.0057be80
mov esi, dword [esp + 0x390]
add esp, 4
test eax, eax
jne 0x573972
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x5714a4
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 0x5714a4
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 0x575ff6
push edi
call fcn.0051e070
add esp, 4
mov edi, eax
jmp 0x575fff
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 0x57603d
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 0x5714a4
cmp byte [esi + 3], 0
je 0x57604e
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
jmp 0x57611c
cmp byte [esi], 2
mov ecx, dword [esi + 0x2c]
jne 0x5760b5
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.0057fbf0
mov edx, dword [esp + 0x24]
add esp, 0x10
test edx, edx
jne 0x5794f7
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 0x5714a4
cmp byte [ecx], 0
je 0x5760d3
push esi
call fcn.0057adb0
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x5794f7
jmp 0x5760d9
xor eax, eax
mov dword [esp + 0x14], eax
cmp byte [esi + 2], 0
je 0x57610a
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 0x5714a4
mov esi, dword [esi + 0x2c]
push esi
call fcn.0050d9d0
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 0x5714a4
mov ecx, dword [ecx + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
jne 0x57618a
push 3
push 1
push ecx
push esi
call fcn.004d9410
add esp, 0x10
test eax, eax
je 0x573972
mov dword [eax + 0x24], 0
mov byte [eax + 4], 1
or dword [eax + 8], 8
mov dword [eax + 0x2c], 0x63d104
mov byte [eax + 2], 1
mov dword [eax + 0x20], 0
cmp byte [eax], 0
jne 0x575266
push dword [eax + 0x2c]
call fcn.00533640
mov ecx, dword [esp + 0x14]
add esp, 4
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x5714a4
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 0x57624a
mov dword [esi + 0x24], 0xffffffff
cmp byte [ecx], al
je 0x5787b9
lea eax, [esp + 0x24]
push eax
push ecx
call fcn.004df090
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 0x5794f3
mov edi, edx
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 8], 0
jle 0x571617
test eax, eax
jne 0x57579b
mov esi, dword [esp + 0x38c]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x5714a4
cmp byte [ecx], al
jne 0x5761ea
test byte [ecx + 1], 8
je 0x5761ea
mov byte [esi + 2], al
xor edi, edi
mov byte [esi + 3], al
mov dword [esp + 0x14], edi
mov dword [esi + 0x20], eax
jmp 0x57621a
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.00534800
mov edx, eax
add esp, 8
mov dword [esp + 0x14], edx
test edx, edx
jne 0x5794f7
cmp dword [esp + 0xb0], eax
jne 0x57579b
push esi
call fcn.005368e0
add esp, 4
test edx, edx
jl 0x571a1d
jg 0x5762bc
test eax, eax
jb 0x571a1d
push edx
push eax
call fcn.00557460
cwde
add esp, 8
cmp eax, dword [edi + 0xc]
jge 0x571a1d
mov edi, dword [esp + 0x14]
mov dword [esp + 0xb0], 1
jmp 0x575243
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 0x576355
xor eax, eax
mov dword [esp + 0x14], eax
cmp byte [esi + 0x40], al
jne 0x57632c
cmp dword [esi + 0x28], 0
lea eax, [esi + 0x28]
je 0x576389
push eax
lea eax, [esi + 0x48]
xor ebx, ebx
push eax
call fcn.00592980
add esp, 8
mov dword [esp + 0x14], eax
jmp 0x576389
push esi
call fcn.00591df0
push eax
push esi
call fcn.00591f50
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
jne 0x576389
push esi
call fcn.005926d0
add esp, 4
mov dword [esp + 0x14], eax
xor ebx, ebx
jmp 0x576389
push esi
call fcn.0051ae10
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x576373
push esi
xor ebx, ebx
call fcn.0051aba0
add esp, 4
jmp 0x57637a
cmp eax, 0x10
jne 0x57637e
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 0x5794f7
mov byte [edi + 2], bl
mov edi, dword [esp + 0x10]
cmp dword [edi + 8], edx
jle 0x571a1d
test ebx, ebx
je 0x571a1d
mov edi, edx
jmp 0x575243
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 0x576442
cmp byte [edi + 0x41], 0
je 0x576408
push dword [edi + 0x10]
call fcn.00590c40
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x576483
mov eax, dword [edi + 0x10]
cmp dword [eax + 0x18], 0
jne 0x576483
mov edi, dword [esp + 0x10]
mov eax, 0x65
mov dword [esp + 0x14], eax
mov edx, eax
jmp 0x5764c8
lea eax, [esp + 0x24]
mov dword [esp + 0x24], 0
push eax
push dword [edi + 0x14]
call fcn.005905b0
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
jne 0x576483
cmp dword [esp + 0x24], eax
je 0x576483
mov edi, dword [esp + 0x10]
mov eax, 0x65
mov dword [esp + 0x14], eax
mov edx, eax
jmp 0x5764c8
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 0x576472
mov esi, dword [ecx + 4]
push ecx
push ebp
call fcn.0053c090
add esp, 8
mov ecx, esi
test esi, esi
jne 0x576458
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 0x5764c8
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.005366e0
jmp 0x5764bf
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.00535ca0
mov edx, eax
add esp, 8
mov dword [esp + 0x14], edx
mov dword [ebx + 0x20], 0
test edx, edx
jne 0x5764e6
mov byte [ebx + 2], dl
movzx eax, word [edi + 2]
inc dword [esi + eax*4 + 0xa4]
jmp 0x578c1a
cmp edx, 0x65
jne 0x5794f7
xor edi, edi
mov byte [ebx + 2], 1
mov dword [esp + 0x14], edi
jmp 0x577192
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 0x57652f
mov eax, dword [esp + 0x38c]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
mov eax, 0x400
test word [esi + 0x10], ax
je 0x576555
push esi
call fcn.0057ba20
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x5794f7
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 0x57659a
mov ecx, dword [edi + 0x24]
jmp 0x57659c
xor ecx, ecx
push ecx
and eax, 0x8a
push eax
lea eax, [esp + 0x318]
push eax
push dword [edi + 0x2c]
call fcn.00535010
mov edx, eax
mov dword [edi + 0x20], 0
add esp, 0x10
mov dword [esp + 0x14], edx
test edx, edx
jne 0x5794f7
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 0x5714a4
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 0x576627
push esi
call fcn.0057ba20
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x5794f7
push esi
push edi
call fcn.0057e7b0
add esp, 8
jmp 0x575c0e
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.00534ab0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
jne 0x5794f7
cmp dword [esp + 0xdc], eax
jne 0x5766cc
push 4
push edi
call fcn.005342b0
mov edx, eax
add esp, 8
mov dword [esp + 0x14], edx
test edx, edx
jne 0x5794f7
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], eax
jmp 0x575c1c
mov edi, dword [esp + 0x10]
cmp word [edi + 2], 0
je 0x5766e8
mov eax, dword [ebp + 0x20]
and eax, 0x10000001
cmp eax, 1
jne 0x5796c9
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
jmp 0x575c1c
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 0x57672b
push ebp
call fcn.0057adb0
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x5794f7
mov edi, eax
jmp 0x576731
xor edi, edi
mov dword [esp + 0x14], edi
cmp byte [ebp + 2], 0
jne 0x5768e2
mov esi, dword [ebp + 0x2c]
push esi
call fcn.0050d9d0
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.0057bbf0
mov edx, eax
add esp, 0x10
mov dword [esp + 0x14], edx
test edx, edx
jne 0x5794f7
mov ebx, dword [esp + 0x1f8]
movzx esi, byte [ebx]
mov dword [esp + 0x24], esi
cmp esi, 0x80
jb 0x5767af
lea eax, [esp + 0x24]
push eax
push ebx
call fcn.00552d70
mov esi, dword [esp + 0x2c]
add esp, 8
cmp esi, 3
jb 0x5796e5
mov edi, dword [esp + 0x1fc]
cmp esi, edi
ja 0x5796e5
lea eax, [ebx - 1]
add eax, esi
movzx ecx, byte [eax]
mov dword [esp + 0x24], ecx
cmp ecx, 0x80
jb 0x5767ed
lea ecx, [esp + 0x24]
push ecx
push eax
call fcn.00552d70
mov ecx, dword [esp + 0x2c]
add esp, 8
lea eax, [ecx - 1]
cmp eax, 8
ja 0x5796e5
cmp ecx, 7
je 0x5796e5
movzx edx, byte [ecx + 0x607be0]
lea eax, [edx + esi]
cmp edi, eax
jb 0x5796e5
lea eax, [esp + 0x338]
sub edi, edx
push eax
push ecx
add edi, ebx
push edi
call fcn.0057db90
add esp, 0xc
cmp dword [esp + 0x208], 0
je 0x576844
lea eax, [esp + 0x1f0]
push eax
call fcn.0058fe30
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 0x5768aa
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 0x5714a4
push eax
push esi
call fcn.0051e030
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 0x5714a4
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 0x576922
push eax
call fcn.0058fe70
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 0x5714a4
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 0x5714a4
mov ecx, dword [ecx + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 3], 0
je 0x575266
push eax
call fcn.0057a580
add esp, 4
jmp 0x574eee
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.0050d9d0
mov eax, dword [esi + 0x2c]
add esp, 4
test eax, eax
je 0x579727
cmp eax, 0x7fffffff
ja 0x579727
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.0057bbf0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
jne 0x5794f7
push eax
lea eax, [esp + 0x2f4]
push eax
push dword [esp + 0x298]
push dword [esp + 0x2a0]
call fcn.0057d150
add esp, 0x10
mov esi, eax
cmp dword [esp + 0x2a0], 0
je 0x576a3f
lea eax, [esp + 0x288]
push eax
call fcn.0058fe30
add esp, 4
test byte [edi], 1
jne 0x576a48
neg esi
jmp 0x576a49
inc esi
test esi, esi
jg 0x57579b
jmp 0x575c1c
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 0x576a80
push edi
call fcn.0051e070
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 0x579731
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 0x576ad5
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x576ad5
push esi
call fcn.004df120
add esp, 4
lea eax, [esp + 0x24]
push eax
push ebp
push esi
call fcn.004de970
add esp, 0xc
mov dword [esp + 0x14], eax
cmp byte [esi + 9], 0
je 0x576afd
add dword [esi + 0xc], 0xffffffff
jne 0x576afd
push esi
call fcn.0058c360
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 0x5794f7
mov ebp, dword [esp + 0x18]
test esi, esi
je 0x571a1d
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 0x576b51
nop
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x14], esi
jne 0x576b4b
mov dword [ecx + 0x14], edx
mov eax, dword [eax]
test eax, eax
jne 0x576b40
mov eax, dword [edi + ebx*8 + 0xc]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x576b71
nop dword [eax]
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x2c], esi
jne 0x576b6b
mov dword [ecx + 0x2c], edx
mov eax, dword [eax]
test eax, eax
jne 0x576b60
mov al, byte [esp + 0x3c]
inc al
mov byte [esp + 0x67], al
jmp 0x575c1c
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.005336c0
add esp, 0xc
mov edx, eax
cmp dword [edi + 0xc], 0
mov dword [esp + 0x14], edx
je 0x574ef4
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 0x574ef4
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 0x574ef4
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 0x576c34
push dword [eax + 0x2c]
push ebp
call fcn.0057e460
mov ecx, dword [esp + 0x18]
add esp, 8
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x5714a4
mov eax, dword [eax + 0x2c]
push 0
push dword [eax + 0x40]
push dword [eax + 8]
call fcn.005336c0
jmp 0x574eeb
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 0x576c71
push esi
call fcn.0051e070
add esp, 4
mov esi, eax
jmp 0x576c7a
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.00534110
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
jne 0x5794f7
mov eax, dword [esp + 0x24]
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x575c1c
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 0x576ce6
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.004d46f0
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 0x576d1d
test edx, edx
je 0x575c1c
push esi
push 0x60c824
push dword [esp + 0x394]
call fcn.00571390
push esi
call fcn.004d6820
mov edx, dword [esp + 0x24]
add esp, 0x10
cmp edx, 7
je 0x57396b
jmp 0x5794f7
mov edi, dword [esp + 0x10]
cmp dword [edi + 0x10], 0
mov esi, dword [edi + 4]
jne 0x576da2
mov eax, dword [ebp + 0x10]
mov ecx, esi
add ecx, ecx
push dword [eax + ecx*8 + 0xc]
call fcn.005653d0
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.00553d80
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 0x576ea1
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.00557700
mov esi, eax
add esp, 0x14
test esi, esi
je 0x579742
push 0
lea eax, [esp + 0x100]
mov byte [ebp + 0xb1], 1
push eax
push fcn.00553af0
push esi
push ebp
mov dword [esp + 0x11c], 0
mov dword [esp + 0x124], 0
call fcn.004d46f0
add esp, 0x14
mov dword [esp + 0x14], eax
test eax, eax
jne 0x576e85
mov eax, dword [esp + 0x108]
mov dword [esp + 0x14], eax
test eax, eax
jne 0x576e85
cmp dword [esp + 0x110], eax
jne 0x576e85
push 0x6128ec
push 0x184e4
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004c6060
mov eax, 0xb
add esp, 0x14
mov dword [esp + 0x14], eax
push esi
push ebp
call fcn.0053c090
mov edx, dword [esp + 0x1c]
add esp, 8
mov esi, dword [esp + 0x38c]
mov byte [ebp + 0xb1], 0
test edx, edx
je 0x571f11
push ebp
call fcn.00563930
mov edx, dword [esp + 0x18]
add esp, 4
cmp edx, 7
je 0x573972
jmp 0x5794f3
mov edx, dword [esp + 0x10]
push dword [edx + 4]
push ebp
call fcn.005306f0
add esp, 8
jmp 0x574eee
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.00553040
add esp, 0xc
test eax, eax
je 0x576f17
cmp dword [ebp + 0x210], 0
jne 0x576f0d
add dword [eax + 0x18], 0xffffffff
jne 0x576f17
push eax
push ebp
call fcn.004e7c50
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 0x5714a4
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.00553040
mov esi, eax
add esp, 0xc
test esi, esi
je 0x576fe8
mov edx, dword [esi + 0xc]
mov ecx, dword [edx + 8]
cmp ecx, esi
jne 0x576f99
mov eax, dword [esi + 0x14]
push esi
push ebp
mov dword [edx + 8], eax
call fcn.00548650
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 0x5714a4
test ecx, ecx
je 0x576fde
nop dword [eax]
lea edx, [ecx + 0x14]
mov ecx, dword [edx]
cmp ecx, esi
je 0x576fd9
test ecx, ecx
jne 0x576fa0
push esi
push ebp
call fcn.00548650
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 0x5714a4
mov eax, dword [esi + 0x14]
mov dword [edx], eax
push esi
push ebp
call fcn.00548650
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 0x5714a4
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.00553040
mov esi, eax
add esp, 0xc
test esi, esi
je 0x571a21
mov eax, dword [esi + 0x18]
cmp dword [esi + 0x14], eax
jne 0x57709e
push 0
push dword [esi + 4]
add eax, 8
push eax
call fcn.004ede00
add esp, 0xc
mov edx, dword [eax + 8]
test edx, edx
je 0x57709e
mov eax, dword [edx + 0x38]
add edx, 0x38
test eax, eax
je 0x57709e
nop
cmp eax, esi
je 0x577099
lea edx, [eax + 0x20]
mov eax, dword [edx]
test eax, eax
jne 0x577060
push esi
push ebp
call fcn.0053d430
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 0x5714a4
mov eax, dword [eax + 0x20]
mov dword [edx], eax
push esi
push ebp
call fcn.0053d430
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 0x5714a4
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.00535550
mov ebp, eax
add esp, 0x1c
mov eax, 0x9000
mov dword [esp + 0x14], ebp
test word [esi + 0x10], ax
je 0x577132
push esi
call fcn.0058fe70
add esp, 4
jmp 0x57713b
mov eax, 1
mov word [esi + 0x10], ax
mov eax, dword [esp + 0xe0]
test eax, eax
je 0x577172
test ebp, ebp
jne 0x579750
push fcn.004d6820
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.0057c300
add esp, 0x18
test byte [esi + 0x10], 2
jne 0x57721e
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 0x579a66
mov ecx, dword [esp + 0x78]
cmp dword [esp + 0x84], ecx
jb 0x571a1d
mov ebx, dword [esp + 0x6c]
ja 0x5771c2
mov eax, dword [esp + 0x1c]
cmp eax, ebx
jb 0x579118
mov eax, dword [ebp + 0x174]
test eax, eax
je 0x579114
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 0x57982f
mov ecx, dword [esp + 0x78]
cmp dword [esp + 0x84], ecx
ja 0x5771c2
mov eax, dword [esp + 0x1c]
jb 0x57720b
cmp eax, ebx
jae 0x5771c2
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x5714a4
mov al, byte [esp + 0x38]
cmp byte [esi + 0x12], al
je 0x577183
push dword [esp + 0x38]
push esi
call fcn.0057c7c0
add esp, 8
jmp 0x577183
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 0x57726c
push esi
call fcn.0057c220
add esp, 4
test eax, eax
jne 0x57396b
push dword [ebx + edi*8 + 4]
push dword [ebx + edi*8]
push dword [esi + 8]
call fcn.005644c0
add esp, 0xc
jmp 0x575c1c
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 0x577304
mov esi, dword [edi + 8]
movzx eax, word [esi + 0x1a]
test al, 2
jne 0x5772bd
test al, 1
jne 0x5772b8
push dword [esi + 8]
call fcn.0052b470
add esp, 4
mov dword [esi + 8], eax
or word [esi + 0x1a], 3
mov eax, dword [esi + 8]
test eax, eax
je 0x5772fd
mov edi, dword [eax]
mov ebx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esi + 8], eax
test eax, eax
jne 0x5772dc
push esi
call fcn.005643b0
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.0057c160
add esp, 0xc
jmp 0x577187
mov esi, dword [esp + 0x38c]
mov eax, 0x9000
test word [edi + 0x10], ax
je 0x57731d
push edi
call fcn.0058fe70
add esp, 4
jmp 0x578c1a
mov eax, 1
mov word [edi + 0x10], ax
jmp 0x578c1a
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 0x577361
push esi
call fcn.0057c220
add esp, 4
test eax, eax
jne 0x57396b
mov ecx, dword [esp + 0x20]
test ebx, ebx
je 0x577382
push dword [ecx + edi*8 + 4]
push dword [ecx + edi*8]
push ebx
push dword [esi + 8]
call fcn.005645b0
add esp, 0x10
test eax, eax
jne 0x57579b
test ebx, ebx
js 0x571a1d
mov ebx, dword [esp + 0x20]
jmp 0x57726c
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 0x5773d1
mov eax, dword [esi + 0xd0]
mov ecx, dword [ebx + 0x14]
test eax, eax
je 0x5773d1
cmp dword [eax + 0x18], ecx
je 0x575262
mov eax, dword [eax + 4]
test eax, eax
jne 0x5773c1
mov ecx, dword [esp + 0x18]
mov eax, dword [esi + 0xd8]
cmp eax, dword [ecx + 0xa0]
jge 0x579768
test byte [ebp + 0x10], 0x10
jne 0x577506
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 0x577416
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.0053c1d0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x573967
push ebx
push 0
push esi
call fcn.00423ff0
mov eax, 0x9000
add esp, 0xc
test word [ebp + 0x10], ax
jne 0x577457
cmp dword [ebp + 0x18], 0
je 0x577460
push ebp
call fcn.0058fe30
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], 0x57a670
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 0x577500
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 0x5774f0
mov edi, dword [esp + 0x14]
jmp 0x577510
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.00423ff0
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 0x577192
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 0x577605
push esi
call fcn.0051e070
add esp, 4
mov esi, eax
jmp 0x57760e
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 0x57766b
push 0x4000
push ecx
push esi
call fcn.0058f010
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 0x5714a4
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 0x571a21
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 0x5714a4
mov eax, dword [ebp + 0x20]
and eax, 0x80000
or eax, 0
mov eax, dword [esp + 0x10]
mov ecx, eax
je 0x5776f2
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 0x5714a4
cmp dword [eax + 4], 0
mov eax, dword [eax + 8]
cdq
je 0x57771b
add dword [ebp + 0x200], eax
mov eax, dword [esp + 0x1c]
adc dword [ebp + 0x204], edx
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x5714a4
add dword [esi + 0x40], eax
mov eax, dword [esp + 0x1c]
adc dword [esi + 0x44], edx
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x5714a4
cmp dword [ecx + 4], 0
je 0x577771
mov eax, dword [ebp + 0x200]
or eax, dword [ebp + 0x204]
jne 0x57526a
mov eax, dword [ebp + 0x208]
or eax, dword [ebp + 0x20c]
je 0x57524a
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x5714a4
mov eax, dword [esi + 0x40]
or eax, dword [esi + 0x44]
jmp 0x577746
mov edx, dword [esi + 0xd0]
test edx, edx
je 0x5777af
mov eax, dword [edx + 4]
test eax, eax
je 0x577799
nop word [eax + eax]
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x577790
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 0x5777c0
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.0057b050
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.0057b050
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 0x571a1d
jl 0x577826
cmp dword [edi], eax
jae 0x579110
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x575c1c
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 0x571a1d
jg 0x577857
test ecx, ecx
je 0x571a1d
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 0x575243
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 0x5778a7
push esi
call fcn.0051e070
add esp, 4
mov esi, eax
jmp 0x5778b0
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 0x577923
jg 0x5778d3
test ecx, ecx
je 0x577923
mov ecx, dword [edx + ebx*8 + 4]
mov eax, dword [edx + ebx*8]
test ecx, ecx
jl 0x5778e4
jg 0x5778f5
test eax, eax
jne 0x5778f5
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.0052ee40
add esp, 0xc
test eax, eax
jne 0x577923
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc4]
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x575c1c
mov dword [esi], 0xffffffff
mov dword [esi + 4], 0xffffffff
jmp 0x575c1c
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 0x571a21
test edx, edx
jl 0x575243
jg 0x577966
test ecx, ecx
je 0x575243
sub ecx, 1
mov dword [ebx + esi*8], ecx
sbb edx, 0
mov dword [ebx + esi*8 + 4], edx
jmp 0x575243
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 0x5779a8
jg 0x57799b
test eax, eax
je 0x5779a8
sub eax, 1
mov dword [ebx + edx*8], eax
sbb ecx, 0
mov dword [ebx + edx*8 + 4], ecx
or eax, ecx
je 0x57524a
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x5714a4
mov edi, dword [esp + 0x10]
push 0
movzx ebx, word [edi + 2]
lea eax, [ebx*4 + 0x44]
push eax
push ebp
call fcn.0053c1d0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x57396b
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 0x577a5d
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 0x577aa2
mov dword [esi + 8], edi
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
js 0x577aa2
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 0x577a88
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 0x577ac1
mov eax, dword [ecx + 0x1c]
jmp 0x577ac4
mov eax, dword [ecx + 0x10]
call eax
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x579110
jle 0x577b2d
mov ecx, dword [esi]
test ecx, ecx
jne 0x577ae0
xor eax, eax
jmp 0x577b11
movzx edx, word [ecx + 0x10]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x577afd
cmp byte [ecx + 0x12], 1
jne 0x577afd
mov eax, dword [ecx + 8]
jmp 0x577b11
test dl, 1
je 0x577b06
xor eax, eax
jmp 0x577b11
push 1
push ecx
call fcn.0058ed20
add esp, 8
push eax
push 0x60c824
push dword [esp + 0x394]
call fcn.00571390
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x14], eax
cmp byte [esi + 0x19], 0
je 0x577b51
mov eax, dword [edi - 0x10]
test eax, eax
je 0x577b4d
push 0
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push 1
push eax
call fcn.0057c160
add esp, 0xc
mov byte [esi + 0x19], 0
mov eax, dword [esi]
mov ecx, 0x9000
test word [eax + 0x10], cx
jne 0x577b64
cmp dword [eax + 0x18], 0
je 0x577b6d
push eax
call fcn.0058fe30
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 0x575c14
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 0x577c2b
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 0x577bd6
push edi
call fcn.0058fe70
add esp, 4
jmp 0x577bdf
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 0x577c37
push ebx
push esi
call fcn.0057ba80
add esp, 8
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x579789
test byte [esi + 0x10], 2
jne 0x577c55
mov eax, dword [esp + 0x38]
mov byte [esi + 0x12], al
jmp 0x575c1c
mov al, byte [esp + 0x38]
cmp byte [esi + 0x12], al
je 0x579110
push dword [esp + 0x38]
push esi
call fcn.0057c7c0
add esp, 8
jmp 0x575c1c
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.00537a30
mov edx, eax
add esp, 0x14
mov dword [esp + 0x14], edx
test edx, edx
je 0x577cdc
cmp edx, 5
jne 0x5794f7
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 0x577d0e
push edx
push eax
push esi
call fcn.00591610
add esp, 0xc
jmp 0x577d17
mov dword [esi], eax
mov dword [esi + 4], edx
mov word [esi + 0x10], bp
inc edi
add esi, 0x28
cmp edi, 3
jl 0x577cf3
jmp 0x572551
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 0x577d53
push eax
call fcn.0051e070
add esp, 4
mov dword [esp + 0x24], eax
jmp 0x577d5c
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 0x577d9c
mov eax, dword [esi + 0x44]
cmp dword [eax], 0
je 0x577d9e
cmp dword [esi + 0x54], 0
jg 0x577d9c
jl 0x577d9e
cmp dword [esi + 0x50], 0
jbe 0x577d9e
mov ebx, ebp
cmp byte [esi + 0xf], 0
jne 0x577db4
cmp dword [esi], 0x6367b8
je 0x577db4
mov ecx, dword [esi + 0xb8]
jmp 0x577db9
mov ecx, 0x604574
cmp ebx, 5
jne 0x577df9
test ecx, ecx
je 0x577df2
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x577dc5
sub ecx, edx
test ecx, 0x3fffffff
je 0x577df2
cmp byte [esi + 0xd], 0
mov eax, dword [esi + 0x40]
mov eax, dword [eax]
jne 0x577df2
cmp byte [esi + 4], 0
jne 0x577df9
cmp dword [eax], 2
jl 0x577df2
cmp dword [eax + 0x34], 0
jne 0x577df9
mov ebx, ebp
jmp 0x577f43
cmp ebx, ebp
je 0x577f43
cmp ebp, 5
je 0x577e0f
cmp ebx, 5
jne 0x577f43
mov eax, dword [esp + 0x18]
cmp byte [eax + 0x55], 0
je 0x5797ae
cmp dword [eax + 0xc0], 1
jg 0x5797ae
cmp ebp, 5
jne 0x577f13
xor edi, edi
cmp dword [esi + 0xe8], edi
jne 0x577e95
push 1
push esi
mov dword [esp + 0xbc], edi
call fcn.0051e970
mov edi, eax
add esp, 8
test edi, edi
jne 0x577efd
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 0x577efd
cmp dword [esp + 0xb4], eax
je 0x577e95
push esi
call fcn.0051eae0
mov edi, eax
add esp, 4
test edi, edi
jne 0x577efd
cmp dword [esi + 0xe8], 0
je 0x577efd
push esi
call fcn.0051e710
mov edi, eax
add esp, 4
test edi, edi
jne 0x577efd
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.00580730
push esi
mov edi, eax
mov dword [esp + 0x2c], eax
mov dword [esi + 0xe8], 0
call fcn.0051e790
add esp, 0x18
test edi, edi
je 0x577efd
cmp byte [esi + 4], 0
jne 0x577efd
push 1
push esi
call fcn.0051f400
add esp, 8
jmp 0x577f47
mov eax, edi
mov dword [esp + 0x14], eax
test edi, edi
jne 0x577f47
push ebx
push esi
call fcn.0055ac70
add esp, 8
jmp 0x577f27
cmp ebp, 4
jne 0x577f23
push 2
push esi
call fcn.0055ac70
add esp, 8
test edi, edi
jne 0x577f47
xor eax, eax
cmp ebx, 5
sete al
inc eax
push eax
push dword [esp + 0x40]
call fcn.00536f20
mov edi, eax
add esp, 8
mov dword [esp + 0x14], edi
test edi, edi
je 0x577f49
mov ebx, ebp
push ebx
push esi
call fcn.0055ac70
mov ebx, dword [esp + 0x2c]
add esp, 8
mov ecx, 0x2202
mov word [ebx + 0x10], cx
cmp eax, 6
jne 0x577f70
mov dword [ebx + 8], 0
xor ecx, ecx
jmp 0x577f90
mov ecx, dword [eax*4 + 0x6095b8]
mov dword [ebx + 8], ecx
test ecx, ecx
je 0x577f90
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x577f81
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 0x577fab
push dword [esp + 0x38]
push ebx
call fcn.0057c7c0
add esp, 8
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x5794f7
jmp 0x572551
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
test eax, eax
je 0x577fd3
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
jmp 0x577fd5
xor eax, eax
push eax
push dword [edx + 4]
lea eax, [esi + 0x7c]
push ebp
push eax
call fcn.00564c40
add esp, 0x10
jmp 0x574eee
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 0x578016
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x578016
push esi
call fcn.004df120
add esp, 4
cmp byte [edi + 0x11], 0
jne 0x578026
mov eax, 0x65
jmp 0x5780dd
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.004ed620
add esp, 0xc
mov dword [esp + 0x24], eax
cmp ebp, eax
jb 0x5780b6
cmp ebx, ebp
jae 0x5780b6
test ebx, ebx
je 0x5780af
mov eax, dword [edi + 8]
test eax, eax
je 0x57806b
push 0
push 0
push eax
call fcn.0052b900
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
jne 0x5780a9
push edi
call fcn.00510c30
push 0
push ebp
push dword [esp + 0x30]
push edi
call fcn.0050fee0
add esp, 0x14
mov dword [esp + 0x14], eax
test eax, eax
jne 0x5780a9
mov eax, dword [edi + 0xc]
push dword [eax + 0x48]
call fcn.0055b4a0
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 0x5780e1
mov eax, 0x65
jmp 0x5780d9
push 0x6128ec
push 0x121df
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004c6060
add esp, 0x14
mov eax, 0xb
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x14], eax
cmp byte [esi + 9], 0
je 0x5780f6
add dword [esi + 0xc], 0xffffffff
jne 0x5780f6
push esi
call fcn.0058c360
add esp, 4
mov edx, dword [esp + 0x14]
test edx, edx
je 0x571a1d
cmp edx, 0x65
jne 0x5794f7
jmp 0x57523d
cmp dword [ecx + 4], 0
jne 0x578139
push dword [ecx + 8]
push ebp
call fcn.0053ee70
mov ecx, dword [esp + 0x18]
add esp, 8
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x5714a4
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 0x5714a4
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 0x5714a4
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 0x5714a4
mov ebx, dword [esp + 0x10]
mov bl, byte [ebx + 0xc]
test bl, bl
jne 0x5781c5
test dword [ebp + 0x24], 4
jne 0x575266
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 0x578296
inc dword [esi + 0xc]
inc bl
mov byte [esp + 0xe4], bl
cmp byte [esi + 0xa], dl
jne 0x578201
push esi
call fcn.004df120
add esp, 4
push dword [esp + 0xe4]
push edi
push esi
call fcn.00525a50
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
jne 0x57827d
mov ebp, dword [esi + 4]
mov ecx, dword [ebp + 0x4c]
test ecx, ecx
je 0x578236
cmp dword [ecx + 4], edi
jne 0x57822f
cmp dword [ecx], esi
je 0x578264
mov ecx, dword [ecx + 0xc]
test ecx, ecx
jne 0x578226
push 0
push 0x10
call fcn.00557720
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x578270
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 0x57826c
mov byte [ecx + 8], bl
xor edx, edx
jmp 0x578275
mov edx, 7
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x14], edx
cmp byte [esi + 9], 0
je 0x578296
add dword [esi + 0xc], 0xffffffff
jne 0x578296
push esi
call fcn.0058c360
mov edx, dword [esp + 0x18]
add esp, 4
test edx, edx
je 0x575c1c
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0x38c]
cmp dl, 6
jne 0x579a9d
push dword [esi + 0x10]
push str.database_table_is_locked:__s
push ebp
call fcn.00571390
mov edx, dword [esp + 0x20]
add esp, 0xc
mov edi, dword [esp + 0x18]
jmp 0x579506
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 0x578310
cmp dword [ebp + 0x198], eax
jne 0x578310
mov dword [esp + 0x24], 6
mov edx, 6
mov dword [esp + 0x14], edx
lea eax, [esi + 8]
test esi, esi
je 0x5794f7
jmp 0x5783ce
test esi, esi
jne 0x578338
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 0x5714a4
mov eax, dword [esi + 8]
mov ebx, dword [eax]
cmp dword [ebx + 0x38], 0
je 0x5783cb
xor ecx, ecx
test edx, edx
jle 0x578363
mov eax, dword [ebp + 0x198]
cmp dword [eax], esi
je 0x5783e9
inc ecx
add eax, 4
cmp ecx, edx
jl 0x578353
push ebp
call fcn.0050f3e0
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x5783cb
push dword [esi + 8]
mov eax, dword [ebx + 0x38]
call eax
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x5783cb
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 0x5783cb
cmp dword [ebx + 0x50], 0
je 0x5783cb
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.0057fbf0
mov edx, dword [esp + 0x1c]
add esp, 8
jmp 0x574ef4
xor eax, eax
jmp 0x5783c7
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.0057b9b0
mov dword [esp + 0x1c], eax
add esp, 8
mov eax, dword [esp + 0x128]
and eax, 0x202
cmp eax, 0x202
jne 0x57845c
cmp byte [esp + 0x12a], 1
jne 0x57845c
mov edx, dword [esp + 0x120]
jmp 0x57847e
test byte [esp + 0x128], 1
jne 0x578549
lea eax, [esp + 0x118]
push 1
push eax
call fcn.0058ed20
add esp, 8
mov edx, eax
test edx, edx
je 0x578549
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.00545970
mov ebx, eax
push 0
mov ecx, dword [ebx + 0x30]
mov edi, dword [ecx]
lea ecx, [ebp + 0x184]
push edi
push ecx
call fcn.004ede00
add esp, 0x18
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x578528
mov eax, dword [ecx]
mov edx, dword [eax + 4]
test edx, edx
je 0x578528
cmp dword [eax + 0x14], 0
je 0x578528
push esi
push edx
push ecx
push ebx
push ebp
call fcn.00593240
add esp, 0x14
mov dword [esp + 0x14], eax
test eax, eax
jne 0x578542
mov eax, dword [ebx + 0x34]
test eax, eax
je 0x578542
cmp dword [eax], ebp
je 0x5784f3
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x5784e6
jmp 0x578542
push ebp
call fcn.0050f3e0
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x578542
push ebx
push ebp
call fcn.00552bb0
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 0x578542
push edi
push str.no_such_module:__s
push ebp
call fcn.00557700
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 0x578560
cmp dword [esp + 0x130], 0
je 0x578570
lea eax, [esp + 0x118]
push eax
call fcn.0058fe30
add esp, 4
mov edx, dword [esp + 0x14]
jmp 0x574ef4
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.00545970
mov edi, eax
add esp, 0xc
test edi, edi
je 0x578631
cmp byte [edi + 0x2b], 1
jne 0x578631
mov ecx, dword [edi + 0x34]
test ecx, ecx
je 0x578631
nop dword [eax + eax]
mov eax, dword [ecx + 8]
cmp dword [eax + 4], 0
jg 0x5797e7
mov ecx, dword [ecx + 0x18]
test ecx, ecx
jne 0x5785c0
push edi
push ebp
call fcn.00593770
mov esi, eax
add esp, 8
mov ecx, dword [esi + 4]
mov eax, dword [ecx]
mov ecx, dword [eax + 0x14]
test ecx, ecx
jne 0x5785ef
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 0x578611
mov dword [esi + 8], eax
push esi
mov dword [edi + 0x34], eax
call fcn.00580060
add esp, 4
cmp dword [ebp + 0x210], 0
jne 0x578620
add dword [edi + 0x18], 0xffffffff
jne 0x57862a
push edi
push ebp
call fcn.004e7c50
add esp, 8
mov esi, dword [esp + 0x38c]
dec dword [ebp + 0xcc]
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x5794f7
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 0x5714a4
mov edx, dword [esp + 0x10]
mov dword [esp + 0x8c], 0
mov eax, dword [edx + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x57980d
mov edi, dword [esi]
test edi, edi
je 0x57980d
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.0057fbf0
mov edx, dword [esp + 0x24]
add esp, 0x10
test edx, edx
jne 0x579a8b
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.004d9410
add esp, 0x10
test eax, eax
je 0x5797f7
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 0x5714a4
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 0x578736
push edi
call fcn.0058fe70
add esp, 4
jmp 0x57873f
mov eax, 1
mov word [edi + 0x10], ax
mov ebx, dword [ebx + 0x10]
mov eax, dword [ebx + 0x34]
test eax, eax
je 0x571f11
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.00580060
add esp, 0x18
test ebp, ebp
jne 0x579817
mov eax, dword [esp + 0x9c]
test eax, eax
je 0x57910c
push fcn.004d6820
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
push edi
call fcn.0057c300
add esp, 0x18
jmp 0x572551
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 0x5714a4
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
call fcn.0058a370
test eax, eax
jne 0x57396b
push eax
push 8
call fcn.00557720
mov edi, eax
add esp, 8
test edi, edi
je 0x57396b
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 0x57884c
push esi
call fcn.0051e070
add esp, 4
mov esi, eax
mov eax, 1
push esi
mov word [esi + 0x10], ax
call fcn.0058fe30
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], 0x57ec90
jmp 0x575c1c
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 0x5789cb
cmp edi, 0x10
jb 0x5789b3
cmp dword [0x63a500], 2
jl 0x5789b3
movaps xmm2, xmmword [0x600f80]
mov eax, edi
and eax, 0x8000000f
jns 0x578904
dec eax
or eax, 0xfffffff0
inc eax
movaps xmm1, xmmword [0x612af0]
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 0x578920
cmp ecx, edi
jge 0x5789cb
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 0x5789c0
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.0057fbf0
mov edx, dword [esp + 0x30]
add esp, 0x1c
test edx, edx
jne 0x5794fe
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 0x571f79
mov edi, dword [esp + 0x14]
jmp 0x575243
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 0x578a78
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x578a6a
push esi
call fcn.0058fe70
add esp, 4
jmp 0x575c1c
mov eax, 1
mov word [esi + 0x10], ax
jmp 0x575c1c
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 0x578af7
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x578ae6
push esi
call fcn.0058fe70
add esp, 4
mov eax, 0x401
mov word [esi + 0x10], ax
mov dword [esi], 0
jmp 0x578b0b
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.0057fbf0
add esp, 0x14
lea edi, [esi + 0x12]
cmp dword [esp + 0x1c4], 0
jle 0x578b8e
movzx ecx, word [esi + 0x10]
mov eax, ecx
and eax, 0x202
cmp eax, 0x202
jne 0x578b60
cmp byte [edi], 1
jne 0x578b60
mov eax, dword [esi + 8]
jmp 0x578b74
test cl, 1
je 0x578b69
xor eax, eax
jmp 0x578b74
push 1
push esi
call fcn.0058ed20
add esp, 8
push eax
push 0x60c824
push ebp
call fcn.00571390
mov eax, dword [esp + 0x1d0]
add esp, 0xc
mov dword [esp + 0x14], eax
test byte [esi + 0x10], 2
jne 0x578b9c
mov eax, dword [esp + 0x38]
mov byte [edi], al
jmp 0x578bb1
mov al, byte [esp + 0x38]
cmp byte [edi], al
je 0x578bb1
push dword [esp + 0x38]
push esi
call fcn.0057c7c0
add esp, 8
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x5794fe
jmp 0x572551
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 0x571f11
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.0057fbf0
mov edx, dword [esp + 0x20]
add esp, 0xc
test edx, edx
jne 0x5794f7
push dword [edi + 0x2c]
mov eax, dword [ebx + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x57718e
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 0x577192
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 0x578c75
mov byte [esi + 0x12], 1
jmp 0x578c94
cmp byte [esi + 0x12], 1
je 0x578c94
push 1
push esi
call fcn.0057c7c0
mov edx, eax
add esp, 8
mov dword [esp + 0x14], edx
test edx, edx
jne 0x5794f7
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 0x578cb7
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.0057fbf0
mov edx, dword [esp + 0x1c]
add esp, 8
and dword [esi + 0x98], 0xfffffffc
jmp 0x574ef4
xorps xmm0, xmm0
movlpd qword [esp + 0xf0], xmm0
cmp byte [ebp + 0x57], 0
jne 0x573972
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x10]
mov edi, dword [eax + 8]
test edi, edi
je 0x57980d
mov ebx, dword [edi]
test ebx, ebx
je 0x57980d
cmp dword [ebx + 0x34], 0
mov edx, dword [edx + 8]
je 0x571f11
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 0x578d43
mov dword [esi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x578d38
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.0057fbf0
mov edx, dword [esp + 0x2c]
add esp, 0x18
test edx, edx
jne 0x578dab
mov edi, dword [esp + 0x10]
cmp dword [edi + 4], edx
je 0x578d9e
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 0x574ef4
cmp dl, 0x13
jne 0x578d9e
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x10]
cmp byte [eax + 0x10], 0
je 0x578d9e
movzx ecx, word [edi + 2]
cmp ecx, 4
jne 0x579847
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 0x5714a4
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 0x578e0f
push edx
call fcn.0051e070
add esp, 4
mov edx, eax
jmp 0x578e18
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 0x5714a4
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 0x578e7a
push ebx
call fcn.0051e070
mov edx, dword [esp + 0x14]
add esp, 4
mov ebx, eax
jmp 0x578e83
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 0x578ea3
mov eax, dword [esi + 4]
mov edi, dword [eax + 0x30]
cmp edi, ecx
cmovb edi, ecx
cmp byte [esi + 9], 0
je 0x578ebb
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x578ebb
push esi
call fcn.004df120
add esp, 4
mov eax, dword [esi + 4]
mov eax, dword [eax]
test edi, edi
je 0x578eca
mov dword [eax + 0xa0], edi
cmp byte [esi + 9], 0
mov edi, dword [eax + 0xa0]
je 0x578ee5
add dword [esi + 0xc], 0xffffffff
jne 0x578ee5
push esi
call fcn.0058c360
add esp, 4
mov dword [ebx], edi
mov dword [ebx + 4], 0
jmp 0x575c1c
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 0x578f5e
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 0x578f5e
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 0x578f40
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 0x579114
jle 0x578fe1
movzx ecx, word [esi + 0x10]
mov eax, ecx
and eax, 0x202
cmp eax, 0x202
jne 0x578fb1
cmp byte [esi + 0x12], 1
jne 0x578fb1
mov eax, dword [esi + 8]
jmp 0x578fc5
test cl, 1
je 0x578fba
xor eax, eax
jmp 0x578fc5
push 1
push esi
call fcn.0058ed20
add esp, 8
push eax
push 0x60c824
push dword [esp + 0x394]
call fcn.00571390
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 0x5790f0
test ebx, ebx
js 0x579029
cmp dword [esi], ebx
jne 0x579021
mov ecx, dword [esi + 4]
test ecx, ecx
js 0x579021
cmp ecx, 0x1f
jg 0x579029
mov eax, 1
shl eax, cl
test ebp, eax
je 0x579029
lea edi, [esi + 0x10]
jmp 0x5790e6
mov eax, dword [esi + 0xc]
test eax, eax
je 0x579038
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 0x57907c
cmp esi, dword [ecx + 0x15c]
jb 0x579064
mov eax, dword [ecx + 0x158]
mov dword [esi], eax
mov dword [ecx + 0x158], esi
jmp 0x5790e6
cmp esi, dword [ecx + 0x160]
jb 0x57907c
mov eax, dword [ecx + 0x150]
mov dword [esi], eax
mov dword [ecx + 0x150], esi
jmp 0x5790e6
cmp dword [ecx + 0x210], 0
je 0x579091
push esi
push ecx
call fcn.0051a400
add esp, 8
jmp 0x5790e6
cmp dword [0x635d20], 0
je 0x5790dc
mov eax, dword [0x63cf30]
test eax, eax
je 0x5790ad
push eax
call dword [0x635d70]
add esp, 4
push esi
call dword [0x635d4c]
sub dword [0x63ced0], eax
dec dword [0x63cef4]
push esi
call dword [0x635d44]
mov eax, dword [0x63cf30]
add esp, 8
test eax, eax
je 0x5790e6
push eax
call dword [0x635d78]
jmp 0x5790e3
push esi
call dword [0x635d44]
add esp, 4
mov esi, dword [edi]
test esi, esi
jne 0x579002
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
mov dword [eax + 0x14], 0
test edx, edx
jne 0x5794f7
jmp 0x572551
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 0x5714a4
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 0x5714a4
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 0x57918a
movzx eax, byte [ebx + edx*8 + 0x13]
jmp 0x572f2e
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x5791b5
push ecx
call fcn.0058fe70
mov ecx, dword [esp + 0x14]
add esp, 4
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x5714a4
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 0x5714a4
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 0x579215
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 0x5714a4
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 0x5714a4
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.004ed2e0
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.005a6b80
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 0x575c1c
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.004ed2e0
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.005a6b80
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 0x5792ed
inc dword [esi + 0xc4]
jmp 0x57524a
inc dword [esi + 0xc0]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x5714a4
mov cl, byte [ebp + 0x5e]
test cl, 0x41
je 0x5793c7
cmp byte [esi + 0x95], 0xfe
je 0x5793c7
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x57933c
mov eax, dword [esi + 0xc8]
test eax, eax
je 0x5793c7
push eax
test cl, 0x40
je 0x57936b
push esi
call fcn.00579f40
mov ecx, dword [ebp + 0xd8]
mov esi, eax
push esi
push dword [ebp + 0xdc]
call ecx
push esi
call fcn.004d6820
mov esi, dword [esp + 0x3a0]
add esp, 0x14
jmp 0x5793c7
cmp dword [ebp + 0xc8], 1
jle 0x5793b3
push str.____s
push ebp
call fcn.00557700
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 0x5793aa
push esi
push ebp
call fcn.0053c090
add esp, 8
mov esi, dword [esp + 0x38c]
jmp 0x5793c7
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 [0x635e2c]
jl 0x57940c
cmp byte [ecx], 0xb8
je 0x57526a
mov edx, 1
cmp dword [esi + 0x6c], edx
jle 0x57940a
mov eax, 0x14
nop
mov ecx, dword [esi + 0x68]
cmp byte [ecx + eax], 0xf
jne 0x579401
mov dword [ecx + eax + 4], 0
inc edx
add eax, 0x14
cmp edx, dword [esi + 0x6c]
jl 0x5793f0
xor eax, eax
mov ebp, dword [esp + 0x10]
inc eax
mov dword [ebp + 4], eax
inc dword [esi + 0xbc]
jmp 0x57524e
mov edi, dword [esp + 0x14]
jmp 0x57524a
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 0x5794c1
movzx eax, word [edi + 2]
test ax, ax
je 0x57947f
push dword [eax*4 + 0x608a24]
push str._s_constraint_failed
push esi
call fcn.00571390
mov eax, dword [edi + 0x10]
add esp, 0xc
test eax, eax
je 0x579490
push eax
push dword [esi + 0x7c]
push str._z:__s
push ebp
call fcn.00557700
add esp, 0x10
mov dword [esi + 0x7c], eax
jmp 0x579490
push dword [edi + 0x10]
push 0x60c824
push esi
call fcn.00571390
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.004c6060
add esp, 0x14
push esi
call fcn.0057a990
mov ebp, eax
add esp, 4
cmp ebp, 5
jne 0x579978
mov dword [esi + 0x24], eax
jmp 0x579991
mov edx, 0x14
jmp 0x5794f3
push 0x175fd
call fcn.0053a5e0
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 0x579aa6
mov edx, 7
jmp 0x579ad1
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 + 0x635f24]
movzx eax, byte [edi + 0x608430]
push dword [eax*4 + 0x63680c]
push str.cannot_store__s_value_in__s_column__s._s
push ebp
call fcn.00571390
mov edx, 0xc13
add esp, 0x18
mov dword [esp + 0x14], edx
jmp 0x5794fe
push str.cannot_open_savepoint___SQL_statements_in_progress
push esi
call fcn.00571390
add esp, 8
mov edx, 5
jmp 0x5794f3
mov ebp, dword [esp + 0x38c]
push str.cannot_release_savepoint___SQL_statements_in_progress
push ebp
call fcn.00571390
mov edx, 5
add esp, 8
mov dword [esp + 0x14], edx
jmp 0x5794fe
mov edi, dword [esp + 0x18]
mov ebp, ebx
mov byte [edi + 0x55], 0
jmp 0x579502
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 0x579999
mov ebp, 0x65
jmp 0x579991
mov edi, dword [esp + 0x18]
and edx, 0x100000
or edx, 0
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0x38c]
je 0x579614
mov edx, 8
mov dword [esp + 0x14], edx
jmp 0x579506
mov edx, 0xb
mov dword [esp + 0x14], edx
jmp 0x579506
mov esi, dword [esp + 0x10]
cmp dl, 5
jne 0x579a02
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 0x579995
mov edx, 0x204
jmp 0x5794f3
push dword [edi]
call fcn.00533780
mov edx, dword [esp + 0x18]
add esp, 4
jmp 0x5794f7
push 0x6128ec
push 0x15db9
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004c6060
add esp, 0x14
mov edx, 0xb
jmp 0x5794f3
push 0x6128ec
push 0x17ec5
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004c6060
add esp, 0x14
mov edx, 0xb
jmp 0x5794f3
push str.index_corruption
push 0x182ff
push 0x30b
call fcn.005637b0
add esp, 0xc
jmp 0x5794f1
cmp dword [esp + 0x208], 0
je 0x5796ff
lea eax, [esp + 0x1f0]
push eax
call fcn.0058fe30
add esp, 4
push 0x6128ec
push 0x15d98
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004c6060
add esp, 0x14
mov edx, 0xb
jmp 0x5794f3
push 0x183cc
jmp 0x5794e9
mov edx, 6
mov byte [esi + 0x94], 2
jmp 0x5794f3
push ebp
call fcn.00563930
add esp, 4
jmp 0x57396b
push dword [esp + 0x90]
call fcn.004d6820
mov edx, dword [esp + 0x18]
add esp, 4
jmp 0x5794f7
mov eax, 1
push str.too_many_levels_of_trigger_recursion
push esi
mov dword [esp + 0x1c], eax
call fcn.00571390
add esp, 8
mov edx, 1
jmp 0x5794f7
push esi
call fcn.004bd280
mov ebp, dword [esp + 0x390]
push eax
push 0x60c824
push ebp
call fcn.00571390
mov edx, dword [esp + 0x24]
add esp, 0x10
jmp 0x5794fe
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.00571390
add esp, 0xc
mov edx, 1
jmp 0x5794fe
dec dword [ebp + 0xcc]
mov edx, 6
jmp 0x5794f3
push dword [esp + 0x8c]
mov eax, dword [edi + 0x1c]
call eax
add esp, 4
mov esi, ebx
jmp 0x573972
mov edx, 6
jmp 0x5794f3
push dword [esp + 0x9c]
call fcn.004d6820
mov edx, dword [esp + 0x18]
add esp, 4
jmp 0x5794f7
or ecx, 0xffffffff
mov edx, 9
or eax, 0xffffffff
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x78], eax
jmp 0x5794f3
cmp ecx, 5
movzx eax, cl
mov edi, 2
cmove eax, edi
mov byte [esi + 0x94], al
jmp 0x5794f7
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 0x573972
test byte [ebp + 0x5e], 4
je 0x5798a6
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 0x579991
mov edi, dword [esp + 0x10]
movzx eax, byte [ebp + 0x55]
mov ebx, dword [edi + 4]
mov ecx, dword [edi + 8]
cmp ebx, eax
je 0x579a12
test ecx, ecx
je 0x5798f7
push 0x204
push ebp
call fcn.00564210
add esp, 8
mov al, 1
jmp 0x579933
test ebx, ebx
je 0x57991c
cmp dword [ebp + 0xc4], 0
jle 0x57991c
push str.cannot_commit_transaction___SQL_statements_in_progress
push esi
call fcn.00571390
add esp, 8
mov edx, 5
jmp 0x5794f3
push 1
push esi
call fcn.00570a30
mov ebp, eax
add esp, 8
test ebp, ebp
jne 0x579991
mov ebp, dword [esp + 0x18]
mov al, bl
push esi
mov byte [ebp + 0x55], al
call fcn.0057a990
add esp, 4
cmp eax, 5
jne 0x57996f
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 0x579991
push ebp
call fcn.00538180
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 0x579bdd
mov edx, dword [esp + 0x6c]
ja 0x5799bd
cmp dword [esp + 0x1c], edx
jb 0x579bdd
mov eax, dword [ecx + 0x174]
test eax, eax
je 0x579bdd
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 0x5799a0
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 0x579506
test ebx, ebx
jne 0x579a2d
mov eax, str.cannot_start_a_transaction_within_a_transaction
push eax
push esi
call fcn.00571390
add esp, 8
lea edx, [ebx + 1]
jmp 0x5794f3
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.00571390
add esp, 8
mov edx, 1
jmp 0x5794f3
mov eax, dword [esp + 0x80]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x1c], eax
mov edx, 9
jmp 0x5794f3
mov eax, dword [esp + 0x80]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x1c], eax
jmp 0x573972
mov ebp, ebx
jmp 0x5794fe
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0x38c]
mov edi, dword [esp + 0x18]
jmp 0x579506
cmp edx, 0x210a
jne 0x579ad5
push 0x6128ec
push 0x18cd0
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004c6060
add esp, 0x14
mov edx, 0xb
mov dword [esp + 0x14], edx
cmp dword [ebp + 0x7c], 0
jne 0x579b34
cmp edx, 0xc0a
je 0x579b34
mov eax, edx
mov ecx, str.unknown_error
sub eax, 0x64
je 0x579b20
sub eax, 1
je 0x579b19
sub eax, 0x19f
je 0x579b12
movzx eax, dl
cmp eax, 0x1d
jae 0x579b25
mov eax, dword [eax*4 + 0x6089a8]
test eax, eax
je 0x579b25
mov ecx, eax
jmp 0x579b25
mov ecx, str.abort_due_to_ROLLBACK
jmp 0x579b25
mov ecx, str.no_more_rows_available
jmp 0x579b25
mov ecx, str.another_row_available
push ecx
push 0x60c824
push ebp
call fcn.00571390
add esp, 0xc
mov ebx, dword [esp + 0x14]
push ebx
push dword [esp + 0x1c]
mov dword [ebp + 0x24], ebx
call fcn.0056af90
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.004c6060
add esp, 0x1c
cmp byte [ebp + 0x97], 2
jne 0x579b86
push ebp
call fcn.0057a990
add esp, 4
cmp ebx, 0xc0a
jne 0x579bc2
push dword [esp + 0x18]
call fcn.00558640
add esp, 4
mov ecx, dword [esp + 0x18]
mov al, byte [esp + 0x67]
mov ebp, 1
test al, al
je 0x579999
movzx eax, al
dec eax
push eax
push ecx
call fcn.005639b0
add esp, 8
jmp 0x579995
cmp ebx, 0xb
jne 0x579b9a
mov ecx, dword [esp + 0x18]
cmp byte [ecx + 0x55], 0
jne 0x579b9e
mov eax, dword [ecx + 0x20]
mov dword [ecx + 0x20], eax
or dword [ecx + 0x24], 2
jmp 0x579b9e
mov eax, dword [esp + 0x38c]
mov ecx, dword [esp + 0x1c]
add dword [eax + 0xb4], ecx
cmp dword [eax + 0xa0], 0
je 0x579c00
push eax
call fcn.0058fd80
add esp, 4
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x378
ret