Function at 0x52f1b0
Capabilities:
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x300
mov eax, dword [0x5ab3e8]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov ecx, dword [eax + 0x68]
mov esi, dword [eax]
mov edi, dword [eax + 0x58]
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x14], ecx
xor cl, cl
mov byte [ebp - 0x65], cl
mov cl, byte [esi + 0x4e]
push eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], esi
mov byte [ebp - 0x5c], cl
mov byte [ebp - 0x88], cl
mov byte [ebp - 0x9c], cl
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x28], edi
call fcn.0052f100
mov ecx, dword [ebp - 0x1c]
add esp, 4
cmp dword [esi + 0x158], 0
je 0x52f235
mov ebx, dword [esi + 0x160]
xor edx, edx
mov eax, dword [ecx + 0xb4]
div ebx
sub ebx, edx
jmp 0x52f238
or ebx, 0xffffffff
cmp dword [ecx + 0x28], 7
mov dword [ebp - 0x70], ebx
je 0x5366e5
mov dword [ecx + 0x28], 0
mov dword [ecx + 0x38], 0
mov dword [ecx + 0x3c], 0
mov dword [ecx + 0x78], 0
mov dword [esi + 0x1ac], 0
cmp dword [esi + 0x110], 0
jne 0x5366b1
mov eax, dword [ecx + 0x24]
mov ecx, dword [ebp - 0x54]
fldz
mov dword [ebp - 0xc8], 0x3e40
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*4]
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x94], eax
xor eax, eax
fstp qword [ebp - 0xac]
mov dl, byte [ecx]
inc eax
movzx ebx, dl
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x18], eax
cmp ebx, 0xaa
ja case.0x52f2c5.85
jmp dword [ebx*4 + 0x536800]
mov edx, dword [ebp - 0x14]
mov ecx, edx
sub ecx, dword [ebp - 0x54]
mov eax, dword [edx + 4]
lea esi, [eax + eax*4]
mov eax, 4
mov word [edi + esi*8 + 8], ax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [edi + esi*8], eax
mov dword [edi + esi*8 + 4], edx
mov esi, dword [ebp - 0x14]
mov eax, dword [esi + 8]
mov ecx, dword [ebp - 0x54]
mov edi, dword [ebp - 0x28]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea esi, [ecx + eax*4]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], esi
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 4]
mov edx, dword [ebp - 0x54]
lea ecx, [eax + eax*4]
mov eax, dword [edi + ecx*8]
lea eax, [eax + eax*4]
lea edi, [edx + eax*4]
mov eax, 0x80
mov dword [ebp - 0x14], edi
mov edi, dword [ebp - 0x28]
mov word [edi + ecx*8 + 8], ax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
dec eax
cdq
mov dword [edi + ecx*8], eax
mov eax, 4
mov dword [edi + ecx*8 + 4], edx
mov word [edi + ecx*8 + 8], ax
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + 8], 0
jne 0x52f2fd
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 4]
mov edx, dword [ebp - 0x54]
lea ecx, [eax + eax*4]
mov eax, dword [edi + ecx*8]
lea eax, [eax + eax*4]
mov eax, dword [edx + eax*4 + 8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
jmp 0x52f335
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 4]
sub edx, dword [ebp - 0x54]
lea esi, [eax + eax*4]
mov eax, 4
mov word [edi + esi*8 + 8], ax
mov eax, 0x66666667
mov ecx, dword [edi + esi*8]
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [edi + esi*8], eax
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0x54]
mov dword [edi + esi*8 + 4], edx
lea esi, [ecx + eax*4]
mov dword [ebp - 0x14], esi
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 1
je 0x52f832
mov ecx, dword [ebp - 0x14]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x54]
mov edi, dword [ebp - 0x1c]
imul ecx
sar edx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 4]
test ecx, ecx
jne 0x5360e4
mov edx, dword [edi + 0xc8]
test edx, edx
je 0x5360e1
mov eax, dword [edx + 4]
mov ecx, edi
mov esi, dword [ebp - 0x20]
push edx
mov dword [ecx + 0xc8], eax
dec dword [ecx + 0xd0]
mov eax, dword [ecx + 0x2c]
mov dword [esi + 0x64], eax
add dword [esi + 0x68], eax
call fcn.00537320
mov edx, dword [edi + 0x68]
mov ecx, eax
mov eax, dword [ebp - 0x14]
add esp, 4
mov dword [ebp - 0x54], edx
cmp dword [eax + 8], 4
jne 0x52f480
lea eax, [ecx + ecx*4]
mov ecx, dword [edx + eax*4 + 8]
dec ecx
mov edi, dword [edi + 0x58]
lea eax, [ecx + ecx*4]
lea ecx, [edx + eax*4]
mov dword [ebp - 0x28], edi
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov ebx, 0x2400
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x58]
test word [eax + ecx*8 + 8], bx
lea ecx, [eax + ecx*8]
je 0x52f4da
push ecx
call fcn.004f5db0
mov ecx, eax
add esp, 4
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov eax, dword [ebp - 0x18]
mov dword [ecx + 4], edx
mov ecx, dword [ebp - 0x14]
add ecx, 0x14
jmp 0x52f2ad
mov eax, 4
mov word [ecx + 8], ax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov eax, dword [ebp - 0x18]
mov dword [ecx + 4], edx
mov ecx, dword [ebp - 0x14]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x2400
test word [edx + 8], ax
je 0x52f527
push edx
call fcn.004f5db0
add esp, 4
mov edx, eax
jmp 0x52f530
mov eax, 4
mov word [edx + 8], ax
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x14]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x2400
test word [ecx + 8], ax
je 0x52f576
push ecx
call fcn.004f5db0
add esp, 4
mov ecx, eax
mov eax, 8
mov word [ecx + 8], ax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x10]
fld qword [eax]
mov eax, dword [ebp - 0x18]
fstp qword [ecx]
mov ecx, dword [ebp - 0x14]
add ecx, 0x14
jmp 0x52f2ad
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x58]
lea edi, [eax + ecx*8]
mov eax, 0x2400
test word [edi + 8], ax
je 0x52f5c1
push edi
call fcn.004f5db0
add esp, 4
mov edi, eax
jmp 0x52f5ca
mov eax, 4
mov word [edi + 8], ax
mov edx, dword [ebx + 0x10]
mov dword [ebp - 0x2c], edx
test edx, edx
jne 0x52f5d8
xor ecx, ecx
jmp 0x52f5f2
mov ecx, edx
lea edx, [ecx + 1]
lea ecx, [ecx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x52f5e0
sub ecx, edx
mov edx, dword [ebp - 0x2c]
and ecx, 0x3fffffff
cmp byte [ebp - 0x5c], 1
mov dword [ebx + 4], ecx
je 0x52f6f9
test edx, edx
jne 0x52f62b
mov eax, 0x2400
test word [edi + 8], ax
je 0x52f61d
push edi
call fcn.00548b90
movzx eax, word [edi + 8]
add esp, 4
jmp 0x52f692
mov eax, 1
mov word [edi + 8], ax
movzx eax, ax
jmp 0x52f692
mov eax, dword [edi + 0x20]
test eax, eax
je 0x52f637
mov ebx, dword [eax + 0x6c]
jmp 0x52f63c
mov ebx, 0x3b9aca00
mov esi, edx
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x52f641
sub esi, ecx
mov eax, 0x2400
and esi, 0x7fffffff
test word [edi + 8], ax
jne 0x52f661
cmp dword [edi + 0x18], 0
je 0x52f66d
push edi
call fcn.00548b50
mov edx, dword [ebp - 0x2c]
add esp, 4
mov dword [edi + 0x10], edx
mov eax, 0xa02
mov dword [edi + 0x24], 0
mov dword [edi + 0xc], esi
mov word [edi + 8], ax
mov byte [edi + 0xa], 1
cmp esi, ebx
jg 0x535f97
mov esi, dword [ebp - 0x20]
test al, 2
je 0x52f6b2
mov al, byte [ebp - 0x5c]
cmp byte [edi + 0xa], al
je 0x52f6b2
push dword [ebp - 0x5c]
push edi
call fcn.00538f10
add esp, 8
test eax, eax
jne 0x536458
mov ecx, dword [ebp - 0x14]
mov eax, 0x800
mov dword [edi + 0x18], 0
or word [edi + 8], ax
cmp byte [ecx + 1], 0xf9
jne 0x52f6df
mov eax, dword [ecx + 0x10]
test eax, eax
je 0x52f6df
push eax
push esi
call fcn.0050c300
mov ecx, dword [ebp - 0x14]
add esp, 8
mov ebx, dword [ebp - 0x14]
mov byte [ecx + 1], 0xf9
mov eax, dword [edi + 0x10]
mov dword [ecx + 0x10], eax
mov ecx, dword [edi + 0xc]
mov dword [ebx + 4], ecx
mov dword [ebp - 0x24], 0
cmp ecx, dword [esi + 0x6c]
jg 0x535f97
mov edi, dword [ebp - 0x28]
mov byte [ebx], 0x47
jmp 0x52f70d
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x2400
test word [ecx + 8], ax
je 0x52f732
push ecx
call fcn.004f5db0
add esp, 4
mov ecx, eax
mov eax, 0xa02
mov word [ecx + 8], ax
mov eax, dword [ebx + 0x10]
mov dword [ecx + 0x10], eax
mov eax, dword [ebx + 4]
mov dword [ecx + 0xc], eax
mov al, byte [ebp - 0x5c]
mov byte [ecx + 0xa], al
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xc]
test eax, eax
jle 0x52f82f
lea esi, [eax + eax*4]
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 2]
cdq
cmp dword [edi + esi*8], eax
jne 0x52f3e9
cmp dword [edi + esi*8 + 4], edx
mov esi, dword [ebp - 0x20]
jne 0x52f82f
mov eax, 0xa10
mov word [ecx + 8], ax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x2400
test word [edx + 8], ax
je 0x52f7bd
push edx
call fcn.004f5db0
add esp, 4
mov edx, eax
jmp 0x52f7c6
mov eax, 4
mov word [edx + 8], ax
cmp dword [ebx + 4], 0
lea esi, [edx + 8]
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 0x52f829
mov eax, 0x2400
jmp 0x52f800
test word [esi + 0x28], ax
lea esi, [esi + 0x28]
je 0x52f81a
lea eax, [esi - 8]
push eax
call fcn.00548b90
add esp, 4
mov eax, 0x2400
dec edi
mov word [esi], bx
mov dword [esi + 4], 0
test edi, edi
jg 0x52f800
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov eax, dword [ecx + 4]
mov edx, 0xff41
lea ecx, [eax + eax*4]
mov ax, word [edi + ecx*8 + 8]
and ax, dx
or ax, 1
mov word [edi + ecx*8 + 8], ax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov esi, dword [ebp - 0x14]
mov edx, 0x2400
mov eax, dword [esi + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x58]
test word [eax + ecx*8 + 8], dx
lea ebx, [eax + ecx*8]
je 0x52f897
push ebx
call fcn.004f5db0
add esp, 4
mov ebx, eax
mov edx, 0x2400
jmp 0x52f8a0
mov eax, 4
mov word [ebx + 8], ax
mov edi, dword [esi + 0x10]
mov esi, dword [esi + 4]
test edi, edi
jne 0x52f8f6
test word [ebx + 8], dx
je 0x52f8d3
push ebx
call fcn.00548b90
mov al, byte [ebp - 0x5c]
add esp, 4
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x14]
mov byte [ebx + 0xa], al
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov esi, dword [ebp - 0x20]
mov eax, 1
mov edi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x14]
mov word [ebx + 8], ax
mov al, byte [ebp - 0x5c]
mov byte [ebx + 0xa], al
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov ecx, dword [ebx + 0x20]
test ecx, ecx
je 0x52f902
mov ecx, dword [ecx + 0x6c]
jmp 0x52f907
mov ecx, 0x3b9aca00
mov eax, 0x10
mov dword [ebp - 0x2c], eax
test esi, esi
jns 0x52f938
xor esi, esi
test ecx, ecx
js 0x52f930
lea esp, [esp]
mov al, byte [esi + edi + 1]
or al, byte [esi + edi]
je 0x52f930
add esi, 2
cmp esi, ecx
jle 0x52f920
mov eax, 0x210
mov dword [ebp - 0x2c], eax
test word [ebx + 8], dx
jne 0x52f944
cmp dword [ebx + 0x18], 0
je 0x52f94d
push ebx
call fcn.00548b50
add esp, 4
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x14]
or eax, 0x800
mov dword [ebx + 0x10], edi
mov edi, dword [ebp - 0x28]
mov dword [ebx + 0x24], 0
mov dword [ebx + 0xc], esi
mov esi, dword [ebp - 0x20]
mov word [ebx + 8], ax
mov al, byte [ebp - 0x5c]
mov byte [ebx + 0xa], al
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebx + 4]
lea esi, [eax + eax*4]
mov eax, dword [ebp - 0x1c]
mov edi, dword [eax + 0x64]
movzx eax, word [edi + esi*8 - 0x20]
test al, 0x12
je 0x52f9b4
mov ecx, dword [edi + esi*8 - 0x1c]
test eax, 0x4000
je 0x52f9a7
add ecx, dword [edi + esi*8 - 0x28]
mov eax, dword [edi + esi*8 - 8]
cmp ecx, dword [eax + 0x6c]
jg 0x535f97
mov eax, dword [ebx + 8]
mov ecx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov eax, 0x2400
test word [ebx + 8], ax
je 0x52f9d4
push ebx
call fcn.00548b90
add esp, 4
mov eax, dword [edi + esi*8 - 0x28]
mov ecx, 0xebff
mov dword [ebx], eax
mov eax, dword [edi + esi*8 - 0x24]
mov dword [ebx + 4], eax
mov eax, dword [edi + esi*8 - 0x20]
mov dword [ebx + 8], eax
mov eax, dword [edi + esi*8 - 0x1c]
mov dword [ebx + 0xc], eax
mov eax, dword [edi + esi*8 - 0x18]
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp - 0x28]
mov dword [ebx + 0x10], eax
mov ax, word [ebx + 8]
and ax, cx
mov ecx, 0x840
or ax, cx
mov ecx, dword [ebp - 0x14]
mov word [ebx + 8], ax
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x4c], eax
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
mov eax, dword [edx + 8]
mov dword [ebp - 0x2c], esi
lea eax, [eax + eax*4]
lea ebx, [edi + eax*8]
mov eax, 0x2400
test word [ebx + 8], ax
jne 0x52fa51
cmp dword [ebx + 0x18], 0
je 0x52fa5a
push ebx
call fcn.00548b50
add esp, 4
mov ecx, 0xa
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x2c]
mov eax, 1
mov word [esi + 8], ax
mov dword [esi + 0x18], 0
movzx ecx, word [ebx + 8]
test ecx, 0x1000
je 0x52fafe
test cl, 0x12
je 0x52faf5
test ecx, 0x4000
je 0x52fad6
mov eax, dword [ebx]
add eax, dword [ebx + 0xc]
test eax, eax
jg 0x52faa2
test cl, 0x10
je 0x52fad6
mov eax, 1
push 1
push eax
push ebx
call fcn.005385a0
add esp, 0xc
test eax, eax
jne 0x536458
push dword [ebx]
push eax
mov eax, dword [ebx + 0x10]
add eax, dword [ebx + 0xc]
push eax
call fcn.0048e2e0
mov eax, dword [ebx]
add esp, 0xc
add dword [ebx + 0xc], eax
mov eax, 0xbdff
and word [ebx + 8], ax
cmp dword [ebx + 0x18], 0
je 0x52fae4
mov eax, dword [ebx + 0x10]
cmp eax, dword [ebx + 0x14]
je 0x52faf5
push ebx
call fcn.00548af0
add esp, 4
test eax, eax
jne 0x536458
mov eax, 0xefff
and word [ebx + 8], ax
add esi, 0x28
add ebx, 0x28
sub dword [ebp - 0x4c], 1
mov dword [ebp - 0x2c], esi
jne 0x52fa40
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x2400
test word [esi + 8], ax
je 0x52fb5c
push 0x1000
push edi
push esi
call fcn.00547a50
add esp, 0xc
jmp 0x52fb9b
mov eax, dword [edi]
mov dword [esi], eax
mov eax, dword [edi + 4]
mov dword [esi + 4], eax
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
mov eax, dword [edi + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [edi + 0x10]
mov dword [esi + 0x10], eax
mov eax, 0x800
test word [edi + 8], ax
jne 0x52fb9b
mov ax, word [esi + 8]
mov ecx, 0xf3ff
and ax, cx
mov ecx, 0x1000
or ax, cx
mov word [esi + 8], ax
movzx ecx, word [esi + 8]
test ecx, 0x1000
je 0x52fc23
test cl, 0x12
je 0x52fc1a
test ecx, 0x4000
je 0x52fbfb
mov eax, dword [esi]
add eax, dword [esi + 0xc]
test eax, eax
jg 0x52fbc7
test cl, 0x10
je 0x52fbfb
mov eax, 1
push 1
push eax
push esi
call fcn.005385a0
add esp, 0xc
test eax, eax
jne 0x536458
push dword [esi]
push eax
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0xc]
push eax
call fcn.0048e2e0
mov eax, dword [esi]
add esp, 0xc
add dword [esi + 0xc], eax
mov eax, 0xbdff
and word [esi + 8], ax
cmp dword [esi + 0x18], 0
je 0x52fc09
mov eax, dword [esi + 0x10]
cmp eax, dword [esi + 0x14]
je 0x52fc1a
push esi
call fcn.00548af0
add esp, 4
test eax, eax
jne 0x536458
mov eax, 0xefff
and word [esi + 8], ax
mov eax, ebx
dec ebx
test eax, eax
je 0x52f829
add esi, 0x28
add edi, 0x28
jmp 0x52fb40
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edx, [edi + eax*8]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
mov eax, 0x2400
test word [ecx + 8], ax
je 0x52fc79
push 0x1000
push edx
push ecx
call fcn.00547a50
mov ecx, dword [ebp - 0x14]
add esp, 0xc
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov eax, dword [edx]
mov ebx, 0x800
mov dword [ecx], eax
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
mov eax, dword [edx + 8]
mov dword [ecx + 8], eax
mov eax, dword [edx + 0xc]
mov dword [ecx + 0xc], eax
mov eax, dword [edx + 0x10]
mov dword [ecx + 0x10], eax
test word [edx + 8], bx
jne 0x52f82f
mov ax, word [ecx + 8]
mov edx, 0xf3ff
and ax, dx
mov edx, 0x1000
or ax, dx
mov word [ecx + 8], ax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov ebx, 0x2400
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
mov edx, dword [edi + eax*8]
mov eax, dword [edi + eax*8 + 4]
test word [ecx + 8], bx
je 0x52fd07
push eax
push edx
push ecx
call fcn.00549e10
mov ecx, dword [ebp - 0x14]
add esp, 0xc
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov dword [ecx], edx
mov dword [ecx + 4], eax
mov eax, 4
mov word [ecx + 8], ax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ebx, [edi + eax*8]
mov eax, dword [edx + 0xc]
movzx edx, word [esi + 8]
mov ecx, edx
mov dword [ebp - 0x4c], ecx
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov eax, edx
mov dword [ebp - 0x34], eax
mov al, byte [ebx + 8]
or al, cl
test al, 1
je 0x52fd9d
mov eax, 0x2400
test word [edi + 8], ax
je 0x52fd80
push edi
call fcn.00548b90
add esp, 4
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov esi, dword [ebp - 0x20]
mov eax, 1
mov ecx, dword [ebp - 0x14]
mov word [edi + 8], ax
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
test cl, 0x12
jne 0x52fdcc
push 0
push dword [ebp - 0x6c]
push esi
call fcn.00538df0
add esp, 0xc
test eax, eax
jne 0x536458
mov ax, word [esi + 8]
mov ecx, 0xfffd
and ax, cx
movzx eax, ax
mov dword [ebp - 0x4c], eax
jmp 0x52fe30
test ecx, 0x4000
je 0x52fe30
mov eax, dword [esi]
add eax, dword [esi + 0xc]
test eax, eax
jg 0x52fdef
test dl, 0x10
jne 0x52fdea
mov eax, dword [ebp - 0x34]
movzx ecx, ax
jmp 0x52fe27
mov eax, 1
push 1
push eax
push esi
call fcn.005385a0
add esp, 0xc
test eax, eax
jne 0x536458
push dword [esi]
push eax
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0xc]
push eax
call fcn.0048e2e0
mov eax, dword [esi]
add esp, 0xc
add dword [esi + 0xc], eax
mov eax, 0xbdff
and word [esi + 8], ax
movzx ecx, word [esi + 8]
and ecx, 0xfffd
mov dword [ebp - 0x4c], ecx
movzx edx, word [ebx + 8]
mov dword [ebp - 0x2c], edx
test dl, 0x12
jne 0x52fe66
push 0
push dword [ebp - 0x6c]
push ebx
call fcn.00538df0
add esp, 0xc
test eax, eax
jne 0x536458
mov ax, word [ebx + 8]
mov ecx, 0xfffd
and ax, cx
movzx edx, ax
mov dword [ebp - 0x2c], edx
jmp 0x52fe91
test edx, 0x4000
je 0x52fe91
push ebx
call fcn.00538370
add esp, 4
test eax, eax
jne 0x536458
mov ax, word [ebx + 8]
mov ecx, 0xfffd
and ax, cx
movzx eax, ax
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebx + 0xc]
add ecx, dword [esi + 0xc]
mov dword [ebp - 0x34], ecx
cmp ecx, dword [eax + 0x6c]
jg 0x535f97
xor eax, eax
cmp edi, ebx
sete al
push eax
lea eax, [ecx + 3]
push eax
push edi
call fcn.005385a0
add esp, 0xc
test eax, eax
jne 0x536458
mov ax, word [edi + 8]
mov ecx, 0x3e40
and ax, cx
or ax, 2
mov word [edi + 8], ax
cmp edi, ebx
je 0x52fef3
push dword [ebx + 0xc]
push dword [ebx + 0x10]
push dword [edi + 0x10]
call fcn.0048d7e0
mov eax, dword [ebp - 0x2c]
add esp, 0xc
mov word [ebx + 8], ax
push dword [esi + 0xc]
mov eax, dword [edi + 0x10]
push dword [esi + 0x10]
add eax, dword [ebx + 0xc]
push eax
call fcn.0048d7e0
mov ecx, dword [ebp - 0x34]
add esp, 0xc
mov eax, dword [ebp - 0x4c]
mov word [esi + 8], ax
mov eax, dword [edi + 0x10]
mov esi, dword [ebp - 0x20]
mov byte [ecx + eax], 0
mov eax, dword [edi + 0x10]
mov byte [eax + ecx + 1], 0
mov eax, dword [edi + 0x10]
mov byte [eax + ecx + 2], 0
mov eax, 0x200
or word [edi + 8], ax
mov al, byte [ebp - 0x5c]
mov dword [edi + 0xc], ecx
mov ecx, dword [ebp - 0x14]
mov byte [edi + 0xa], al
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov esi, dword [ebp - 0x14]
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
movzx ecx, word [edi + eax*8 + 8]
lea edi, [edi + eax*8]
mov eax, ecx
mov dword [ebp - 0x38], edi
and eax, 0x2c
je 0x52ff6e
mov ebx, eax
jmp 0x52ff83
test cl, 0x12
je 0x52ff81
push edi
call fcn.004e3420
add esp, 4
movzx ebx, ax
jmp 0x52ff83
xor ebx, ebx
mov eax, dword [esi + 8]
mov ecx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
movzx eax, word [ecx + 8]
mov dword [ebp - 0x40], ecx
mov esi, eax
test al, 0x2c
je 0x52ffa0
mov ecx, eax
jmp 0x52ffbd
test al, 0x12
je 0x52ffbb
push ecx
call fcn.004e3420
movzx ecx, ax
add esp, 4
mov eax, dword [ebp - 0x40]
movzx eax, word [eax + 8]
mov edx, eax
jmp 0x52ffc1
xor ecx, ecx
mov edx, eax
mov eax, esi
mov edi, dword [ebp - 0x28]
and cl, bl
movzx esi, ax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x3c], esi
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov edi, dword [ebp - 0x38]
mov dword [ebp - 0x2c], eax
movzx eax, word [edi + 8]
or eax, edx
movzx eax, ax
test cl, 4
je 0x530220
mov eax, dword [ebp - 0x40]
mov esi, dword [ebp - 0x38]
mov edi, dword [edi]
mov ecx, dword [eax + 4]
mov ebx, dword [eax]
mov eax, dword [ebp - 0x14]
mov esi, dword [esi + 4]
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x84], ebx
movzx eax, byte [eax]
add eax, 0xffffff97
mov dword [ebp - 0x80], ecx
cmp eax, 3
ja case.default.0x53001e
jmp dword [eax*4 + 0x536aac]
push esi
lea eax, [ebp - 0x84]
push edi
push eax
call fcn.00502590
add esp, 0xc
test eax, eax
je 0x5301e4
mov edi, dword [ebp - 0x38]
mov esi, dword [ebp - 0x3c]
movzx eax, word [edi + 8]
test al, 8
je 0x53022d
fld qword [edi]
fstp qword [ebp - 0x48]
fld qword [ebp - 0xac]
jmp 0x530266
test edi, edi
jne 0x53008d
cmp esi, 0x80000000
jne 0x53008d
test ecx, ecx
jg 0x53003e
jl 0x530076
test ebx, ebx
jae 0x53003e
add ebx, 0
mov dword [ebp - 0x84], ebx
adc ecx, 0x80000000
mov dword [ebp - 0x80], ecx
jmp 0x5301e4
neg edi
adc esi, 0
neg esi
jmp case.0x53001e.105
test esi, esi
jl 0x5300f7
jg 0x5300a0
test edi, edi
je 0x5300e5
push esi
push edi
push 0x7fffffff
push 0xffffffffffffffff
call fcn.0048bf10
cmp dword [ebp - 0x30], edx
jg 0x53003e
jl 0x5300b9
cmp ebx, eax
ja 0x53003e
push esi
push edi
push 0x80000000
push 0
call fcn.0048bf10
mov ecx, dword [ebp - 0x30]
cmp ecx, edx
jg 0x53017f
jl 0x53003e
cmp ebx, eax
jae 0x53017f
jmp 0x53003e
test esi, esi
jg 0x53017f
jl 0x5300f7
test edi, edi
jae 0x53017f
test ecx, ecx
jl 0x53012c
jg 0x530101
test ebx, ebx
je 0x530122
push ecx
push ebx
push 0x80000000
push 0
call fcn.0048bf10
cmp esi, edx
jg 0x53017c
jl 0x53003e
cmp edi, eax
jae 0x53017c
jmp 0x53003e
test ecx, ecx
jg 0x53017f
jl 0x53012c
test ebx, ebx
jae 0x53017f
test edi, edi
jne 0x53013c
cmp esi, 0x80000000
je 0x53003e
test ebx, ebx
jne 0x53014c
cmp ecx, 0x80000000
je 0x53003e
push esi
push edi
push 0x80000000
push 1
call fcn.0048bf10
mov ecx, ebx
neg ecx
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0x30]
adc ecx, 0
neg ecx
cmp ecx, edx
jg 0x53003e
jl 0x53017c
cmp dword [ebp - 0x34], eax
ja 0x53003e
mov ecx, dword [ebp - 0x30]
push ecx
push ebx
push esi
push edi
call fcn.0048cb10
jmp 0x5301db
mov eax, edi
or eax, esi
je 0x5303f1
mov eax, edi
and eax, esi
cmp eax, 0xffffffff
jne 0x5301ad
test ebx, ebx
jne 0x5301ad
cmp ecx, 0x80000000
je 0x53003e
push esi
push edi
push ecx
push ebx
call fcn.0048bf10
jmp 0x5301db
mov eax, edi
or eax, esi
je 0x5303f1
mov eax, edi
and eax, esi
cmp eax, 0xffffffff
jne 0x5301d2
mov edi, 1
xor esi, esi
push esi
push edi
push ecx
push ebx
call fcn.0055aab0
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], edx
mov ecx, dword [ebp - 0x2c]
mov edx, 0x3e40
mov eax, dword [ebp - 0x84]
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp - 0x28]
mov dword [ecx], eax
mov eax, dword [ebp - 0x80]
mov dword [ecx + 4], eax
mov ax, word [ecx + 8]
and ax, dx
or ax, 4
movzx eax, ax
mov word [ecx + 8], ax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
test al, 1
jne 0x5303f1
jmp 0x530044
test al, 0x24
je 0x53023e
fild qword [edi]
fstp qword [ebp - 0x48]
fld qword [ebp - 0xac]
jmp 0x530266
test al, 0x12
je 0x53025d
push edi
call fcn.004f2f50
mov ebx, dword [ebp - 0x40]
add esp, 4
fstp qword [ebp - 0x48]
fld qword [ebp - 0xac]
movzx eax, word [ebx + 8]
jmp 0x53026c
fld qword [ebp - 0xac]
fst qword [ebp - 0x48]
mov ebx, dword [ebp - 0x40]
movzx eax, si
movzx eax, ax
test al, 8
je 0x530279
fstp st(0)
fld qword [ebx]
jmp 0x530292
test al, 0x24
je 0x530283
fstp st(0)
fild qword [ebx]
jmp 0x530292
test al, 0x12
je 0x530292
fstp st(0)
push ebx
call fcn.004f2f50
add esp, 4
mov eax, dword [ebp - 0x14]
movzx eax, byte [eax]
add eax, 0xffffff97
cmp eax, 3
ja case.default.0x5302a0
jmp dword [eax*4 + 0x536abc]
fadd qword [ebp - 0x48]
jmp 0x53039c
fsub qword [ebp - 0x48]
jmp 0x53039c
fmul qword [ebp - 0x48]
jmp 0x53039c
fld qword [ebp - 0xac]
fld qword [ebp - 0x48]
fucomi st(1)
fstp st(1)
lahf
test ah, 0x44
jnp 0x5303ed
fdivp st(1)
jmp 0x53039c
movzx eax, word [edi + 8]
fstp st(0)
test al, 0x24
je 0x5302ee
mov esi, dword [edi]
mov edi, dword [edi + 4]
jmp 0x530325
test al, 8
je 0x530308
fld qword [edi]
sub esp, 8
fstp qword [esp]
call fcn.004e6380
add esp, 8
mov esi, eax
mov edi, edx
jmp 0x530325
test al, 0x12
je 0x530321
cmp dword [edi + 0x10], 0
je 0x530321
push edi
call fcn.004f2f10
add esp, 4
mov esi, eax
mov edi, edx
jmp 0x530325
xor esi, esi
xor edi, edi
movzx eax, word [ebx + 8]
test al, 0x24
je 0x530334
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
jmp 0x530367
test al, 8
je 0x53034c
fld qword [ebx]
sub esp, 8
fstp qword [esp]
call fcn.004e6380
add esp, 8
mov ecx, eax
jmp 0x530367
test al, 0x12
je 0x530363
cmp dword [ebx + 0x10], 0
je 0x530363
push ebx
call fcn.004f2f10
add esp, 4
mov ecx, eax
jmp 0x530367
xor ecx, ecx
xor edx, edx
mov eax, esi
or eax, edi
je 0x5303f1
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x530381
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push ecx
call fcn.0055aab0
mov dword [ebp - 0x190], eax
mov dword [ebp - 0x18c], edx
fild qword [ebp - 0x190]
fst qword [ebp - 0x48]
mov ecx, dword [ebp - 0x44]
mov eax, ecx
and eax, 0x7ff00000
cmp eax, 0x7ff00000
jne 0x5303bd
mov eax, dword [ebp - 0x48]
and ecx, 0xfffff
or eax, ecx
jne 0x5303ef
mov ecx, dword [ebp - 0x2c]
mov edx, 0x3e40
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp - 0x28]
fstp qword [ecx]
mov ax, word [ecx + 8]
and ax, dx
or ax, 8
movzx eax, ax
mov word [ecx + 8], ax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
fstp st(1)
fstp st(0)
mov eax, dword [ebp - 0x2c]
mov ecx, 0x2400
test word [eax + 8], cx
je 0x530405
push eax
jmp 0x52fd64
mov esi, dword [ebp - 0x20]
mov ecx, 1
mov edi, dword [ebp - 0x28]
mov word [eax + 8], cx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov eax, dword [ecx + 4]
test eax, eax
je 0x52f832
lea eax, [eax + eax*4]
mov edx, 0x2400
test word [edi + eax*8 + 8], dx
lea eax, [edi + eax*8]
je 0x53045a
push 0
push 0
push eax
call fcn.00549e10
mov ecx, dword [ebp - 0x14]
add esp, 0xc
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov dword [eax], 0
mov edx, 4
mov dword [eax + 4], 0
mov word [eax + 8], dx
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea edx, [edi + eax*8]
mov eax, dword [ebx + 8]
mov dword [ebp - 0x2c], edx
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
mov eax, dword [ebx + 0xc]
movzx ebx, word [edx + 8]
mov dword [ebp - 0x34], ebx
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
movzx eax, word [ecx + 8]
or al, bl
mov dword [ebp - 0x4c], esi
test al, 1
je 0x5304ef
mov eax, 0x2400
test word [esi + 8], ax
je 0x5304d5
push esi
call fcn.00548b90
mov esi, dword [ebp - 0x20]
add esp, 4
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov ecx, dword [ebp - 0x14]
mov eax, 1
mov word [esi + 8], ax
mov esi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
movzx eax, word [ecx + 8]
test al, 0x24
je 0x5304fe
mov ebx, dword [ecx]
mov edi, dword [ecx + 4]
jmp 0x530541
test al, 8
je 0x530521
fld qword [ecx]
sub esp, 8
fstp qword [esp]
call fcn.004e6380
mov ebx, eax
mov edi, edx
mov eax, dword [ebp - 0x34]
add esp, 8
mov edx, dword [ebp - 0x2c]
movzx eax, ax
jmp 0x530545
test al, 0x12
je 0x53053d
cmp dword [ecx + 0x10], 0
je 0x53053d
push ecx
call fcn.004f2f10
mov edi, edx
add esp, 4
mov edx, dword [ebp - 0x2c]
mov ebx, eax
jmp 0x530541
xor ebx, ebx
xor edi, edi
movzx eax, word [edx + 8]
movzx eax, ax
test al, 0x24
je 0x530553
mov esi, dword [edx]
mov edx, dword [edx + 4]
jmp 0x530586
test al, 8
je 0x53056b
fld qword [edx]
sub esp, 8
fstp qword [esp]
call fcn.004e6380
add esp, 8
mov esi, eax
jmp 0x530586
test al, 0x12
je 0x530582
cmp dword [edx + 0x10], 0
je 0x530582
push edx
call fcn.004f2f10
add esp, 4
mov esi, eax
jmp 0x530586
xor esi, esi
xor edx, edx
mov eax, dword [ebp - 0x14]
mov cl, byte [eax]
cmp cl, 0x65
jne 0x530599
and ebx, esi
and edi, edx
jmp 0x53064a
cmp cl, 0x66
jne 0x5305a7
or ebx, esi
or edi, edx
jmp 0x53064a
mov eax, esi
or eax, edx
je 0x53064a
test edx, edx
jg 0x5305df
jl 0x5305bb
test esi, esi
jae 0x5305d4
mov al, 0xcf
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x5305df
jg 0x5305cd
cmp esi, 0xffffffc0
jbe 0x5305df
neg esi
adc edx, 0
neg edx
test edx, edx
jl 0x5305fb
jg 0x5305df
cmp esi, 0x40
jb 0x5305fb
test edi, edi
jg 0x5305f5
jl 0x5305e9
test ebx, ebx
jae 0x5305f5
cmp cl, 0x67
je 0x5305f5
or ebx, 0xffffffff
or edi, ebx
jmp 0x53064a
xor ebx, ebx
xor edi, edi
jmp 0x53064a
cmp cl, 0x67
mov eax, ebx
mov edx, edi
mov ecx, esi
jne 0x530611
call fcn.0048c4d0
mov ecx, eax
mov eax, edx
jmp 0x530646
call fcn.0048c2e0
mov ecx, eax
mov eax, edx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x60], eax
test edi, edi
jg 0x530646
jl 0x53062a
test ebx, ebx
jae 0x530646
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, esi
or edx, 0xffffffff
call fcn.0048c4d0
mov ecx, dword [ebp - 0x34]
or ecx, eax
mov eax, dword [ebp - 0x60]
or eax, edx
mov ebx, ecx
mov edi, eax
mov ecx, dword [ebp - 0x4c]
mov edx, 0x3e40
mov esi, dword [ebp - 0x20]
mov dword [ecx], ebx
mov dword [ecx + 4], edi
mov ax, word [ecx + 8]
mov edi, dword [ebp - 0x28]
and ax, dx
or ax, 4
mov word [ecx + 8], ax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
push esi
call fcn.00538700
mov eax, dword [ebp - 0x14]
add esp, 4
mov ecx, dword [ebp - 0x14]
mov eax, dword [eax + 8]
cdq
add dword [esi], eax
mov eax, dword [ebp - 0x18]
adc dword [esi + 4], edx
mov esi, dword [ebp - 0x20]
add ecx, 0x14
jmp 0x52f2ad
mov esi, dword [ebp - 0x14]
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
movzx eax, word [esi + 8]
mov ecx, eax
test al, 4
jne 0x530701
test al, 8
jne 0x5306d7
test al, 2
je 0x5306e0
push 1
push esi
call fcn.004dbb90
add esp, 8
jmp 0x5306e0
push esi
call fcn.00537910
add esp, 4
movzx eax, word [esi + 8]
mov ecx, eax
test al, 4
jne 0x530701
mov esi, dword [ebp - 0x14]
cmp dword [esi + 8], 0
jne 0x52f300
mov eax, 0x14
jmp 0x536385
mov eax, dword [ebp - 0x18]
and ecx, 0x3e40
or ecx, 4
mov word [esi + 8], cx
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
add ecx, 0x14
jmp 0x52f2ad
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 0x24
lea eax, [edi + eax*8]
je 0x52f832
push eax
call fcn.00538890
mov ecx, dword [ebp - 0x14]
add esp, 4
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
movzx ecx, word [edi + eax*8 + 8]
lea esi, [edi + eax*8]
test ecx, 0x4000
je 0x5307aa
mov eax, dword [esi]
add eax, dword [esi + 0xc]
test eax, eax
jg 0x530776
test cl, 0x10
je 0x5307aa
mov eax, 1
push 1
push eax
push esi
call fcn.005385a0
add esp, 0xc
test eax, eax
jne 0x5366fd
push dword [esi]
push eax
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0xc]
push eax
call fcn.0048e2e0
mov eax, dword [esi]
add esp, 0xc
add dword [esi + 0xc], eax
mov eax, 0xbdff
and word [esi + 8], ax
mov eax, dword [ebp - 0x14]
push dword [ebp - 0x6c]
movzx eax, byte [eax + 8]
push eax
push esi
call fcn.005381e0
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x536385
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea ebx, [edi + eax*8]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
movzx esi, word [edi + eax*8 + 8]
lea edi, [edi + eax*8]
movzx eax, word [ebx + 8]
mov ecx, esi
mov edx, ecx
mov dword [ebp - 0x40], eax
or edx, eax
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x14]
test dl, 1
je 0x53089c
movzx eax, word [eax + 2]
test al, al
jns 0x530842
mov al, byte [ebp - 0x30]
and al, byte [ebp - 0x40]
test al, 1
je 0x530831
test ecx, 0x100
jne 0x530831
xor ecx, ecx
jmp 0x5309aa
not ecx
and ecx, 1
lea ecx, [ecx*2 - 1]
jmp 0x5309aa
test al, 0x20
je 0x530880
mov eax, dword [ebp - 0x14]
mov edx, 0x3e40
mov edi, dword [ebp - 0x28]
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0x74], 1
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov ax, word [edi + ecx*8 + 8]
and ax, dx
or ax, 1
mov word [edi + ecx*8 + 8], ax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
test al, 0x10
jne 0x52f2fd
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov al, byte [eax + 2]
and al, 0x47
cmp al, 0x43
jb 0x53092b
mov ecx, esi
test dl, 2
je 0x5308e7
mov al, byte [ebp - 0x40]
and al, 0x2e
cmp al, 2
jne 0x5308cb
push 0
push ebx
call fcn.004dbb90
movzx eax, word [edi + 8]
add esp, 8
mov dword [ebp - 0x30], eax
mov al, byte [ebp - 0x30]
movzx ecx, word [ebp - 0x30]
and al, 0x2e
cmp al, 2
jne 0x5308e7
push 0
push edi
call fcn.004dbb90
movzx ecx, word [edi + 8]
add esp, 8
and cl, byte [ebx + 8]
test cl, 4
je 0x530998
mov ecx, dword [edi + 4]
mov eax, dword [ebx + 4]
mov esi, dword [edi]
mov edx, dword [ebx]
cmp ecx, eax
jl 0x530923
jg 0x530907
cmp esi, edx
jbe 0x530911
mov ecx, 1
jmp 0x5309aa
cmp ecx, eax
jg 0x53082a
jl 0x530923
cmp esi, edx
jae 0x53082a
or ecx, 0xffffffff
jmp 0x5309aa
cmp al, 0x42
jne 0x530998
mov al, byte [ebp - 0x40]
mov esi, dword [ebp - 0x6c]
test al, 2
jne 0x53096d
test al, 0x2c
je 0x53096d
push 1
push esi
push ebx
call fcn.00538df0
mov ax, word [ebx + 8]
mov ecx, 0x3e40
xor ax, word [ebp - 0x40]
add esp, 0xc
and ax, cx
xor word [ebp - 0x40], ax
cmp ebx, edi
jne 0x53096d
mov eax, dword [ebp - 0x40]
or eax, 2
movzx eax, ax
mov dword [ebp - 0x30], eax
mov al, byte [ebp - 0x30]
test al, 2
jne 0x530998
test al, 0x2c
je 0x530998
push 1
push esi
push edi
call fcn.00538df0
mov ax, word [edi + 8]
mov ecx, 0x3e40
xor ax, word [ebp - 0x30]
add esp, 0xc
and ax, cx
xor word [ebp - 0x30], ax
mov eax, dword [ebp - 0x14]
push dword [eax + 0x10]
push ebx
push edi
call fcn.0051ce60
add esp, 0xc
mov ecx, eax
mov eax, dword [ebp - 0x14]
movzx eax, byte [eax]
test ecx, ecx
jns 0x5309bc
mov al, byte [eax + 0x58cca4]
jmp 0x5309cc
jne 0x5309c6
mov al, byte [eax + 0x58ccac]
jmp 0x5309cc
mov al, byte [eax + 0x58ccb4]
movzx edx, al
movzx eax, word [ebp - 0x30]
mov word [edi + 8], ax
movzx eax, word [ebp - 0x40]
mov word [ebx + 8], ax
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 2]
test al, 0x20
je 0x530a41
mov dword [ebp - 0x74], ecx
test al, 8
je 0x530a04
mov esi, dword [ebp - 0x14]
xor eax, eax
cmp byte [esi], 0x35
sete al
cmp eax, edx
je 0x52f829
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
mov eax, dword [eax + 8]
lea esi, [eax + eax*4]
mov eax, 0x3e40
mov cx, word [edi + esi*8 + 8]
and cx, ax
mov eax, edx
or cx, 4
cdq
mov word [edi + esi*8 + 8], cx
mov ecx, dword [ebp - 0x14]
mov dword [edi + esi*8], eax
mov eax, dword [ebp - 0x18]
mov dword [edi + esi*8 + 4], edx
mov esi, dword [ebp - 0x20]
add ecx, 0x14
jmp 0x52f2ad
test edx, edx
jne 0x52f2fd
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
cmp dword [ebp - 0x74], 0
jne 0x52f2fd
add ecx, 0x14
jmp 0x52f2ad
mov esi, dword [ebp - 0x14]
test byte [esi + 2], 1
jne 0x530a7c
xor eax, eax
jmp 0x530a82
mov eax, dword [esi - 4]
add eax, 4
mov ebx, dword [esi + 4]
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
mov dword [ebp - 0x58], ebx
mov ebx, dword [esi + 8]
xor esi, esi
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x30], ebx
test ecx, ecx
jle 0x52f3e9
lea ebx, [edx + 0x14]
lea ebx, [ebx]
test eax, eax
je 0x530ab9
mov edi, dword [eax + esi*4]
jmp 0x530abb
mov edi, esi
mov eax, dword [edx + 0x10]
mov ecx, dword [ebp - 0x28]
push dword [ebx]
movzx eax, byte [eax + esi]
and eax, 1
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x30]
add eax, edi
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
mov eax, dword [ebp - 0x58]
add eax, edi
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.0051ce60
mov edx, eax
add esp, 0xc
mov dword [ebp - 0x74], edx
test edx, edx
jne 0x530b19
mov eax, dword [ebp - 0x2c]
inc esi
mov edx, dword [ebp - 0x4c]
add ebx, 4
cmp esi, dword [ebp - 0x34]
jl 0x530ab0
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax + 0x10]
test byte [esi + eax], 2
je 0x530b4b
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x28]
add eax, edi
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
jne 0x530b46
mov eax, dword [ebp - 0x30]
add eax, edi
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
je 0x530b4b
neg edx
mov dword [ebp - 0x74], edx
cmp dword [ebp - 0x60], 0
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
je case.0x52f2c5.85
neg edx
mov dword [ebp - 0x74], edx
add ecx, 0x14
jmp 0x52f2ad
mov ebx, dword [ebp - 0x74]
mov edx, dword [ebp - 0x14]
test ebx, ebx
jns 0x530b92
mov eax, dword [edx + 4]
mov ecx, dword [ebp - 0x54]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*4]
mov eax, dword [ebp - 0x18]
add ecx, 0xffffffec
add ecx, 0x14
jmp 0x52f2ad
jne 0x530bae
mov eax, dword [edx + 8]
mov ecx, dword [ebp - 0x54]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*4]
mov eax, dword [ebp - 0x18]
add ecx, 0xffffffec
add ecx, 0x14
jmp 0x52f2ad
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0x54]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*4]
mov eax, dword [ebp - 0x18]
add ecx, 0xffffffec
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
movzx eax, word [ecx + 8]
test al, 0x24
je 0x530c0d
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jne 0x530c42
xor esi, esi
mov eax, dword [edx + 8]
push 2
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
push eax
call fcn.0052e540
mov ecx, dword [ebp - 0x14]
add esp, 8
lea eax, [eax + esi*2]
cmp byte [ecx], 0x2c
jne 0x530c49
mov dl, byte [esi + eax + 0x58ccf0]
jmp 0x530c50
test al, 1
je 0x530c18
mov esi, 2
jmp 0x530be5
test al, 8
je 0x530c20
fld qword [ecx]
jmp 0x530c30
test al, 0x12
je 0x530be3
push ecx
call fcn.004f2f50
mov edx, dword [ebp - 0x14]
add esp, 4
fld qword [ebp - 0xac]
fxch st(1)
fucompi st(1)
fstp st(0)
lahf
test ah, 0x44
jnp 0x530be3
mov esi, 1
jmp 0x530be5
mov dl, byte [esi + eax + 0x58ccfc]
mov eax, dword [ecx + 0xc]
lea ecx, [eax + eax*4]
cmp dl, 2
jne 0x530c85
mov ax, word [edi + ecx*8 + 8]
mov edx, 0x3e40
mov esi, dword [ebp - 0x20]
and ax, dx
or ax, 1
movzx eax, ax
mov word [edi + ecx*8 + 8], ax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov esi, dword [ebp - 0x20]
movzx eax, dl
cdq
mov dword [edi + ecx*8], eax
mov dword [edi + ecx*8 + 4], edx
mov edx, 0x3e40
mov ax, word [edi + ecx*8 + 8]
and ax, dx
or ax, 4
movzx eax, ax
mov word [edi + ecx*8 + 8], ax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 4]
push dword [edx + 0xc]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
push eax
call fcn.0052e540
mov ecx, dword [ebp - 0x14]
mov ebx, 0x2400
add esp, 8
xor eax, dword [ecx + 0x10]
mov ecx, dword [ecx + 8]
cdq
lea ecx, [ecx + ecx*4]
test word [edi + ecx*8 + 8], bx
lea ecx, [edi + ecx*8]
je 0x530d07
push edx
push eax
push ecx
call fcn.00549e10
mov ecx, dword [ebp - 0x14]
add esp, 0xc
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov dword [ecx], eax
mov eax, 4
mov dword [ecx + 4], edx
mov word [ecx + 8], ax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov esi, dword [ebp - 0x14]
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 1
lea ecx, [edi + eax*8]
mov eax, dword [esi + 8]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
jne 0x5304b0
push 0
push ecx
call fcn.0052e540
add esp, 8
mov ecx, 0x2400
neg eax
sbb eax, eax
inc eax
test word [esi + 8], cx
je 0x530d7b
push 0
push eax
push esi
call fcn.00549e10
mov esi, dword [ebp - 0x20]
add esp, 0xc
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov ecx, dword [ebp - 0x14]
mov dword [esi], eax
mov eax, 4
mov dword [esi + 4], 0
mov word [esi + 8], ax
mov esi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov esi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov eax, dword [esi + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x2400
test word [esi + 8], ax
je 0x530dcc
push esi
call fcn.00548b90
add esp, 4
jmp 0x530dd5
mov eax, 1
mov word [esi + 8], ax
test byte [edi + 8], 1
jne 0x52f829
mov eax, 4
push edi
mov word [esi + 8], ax
call fcn.004d05d0
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x52fd69
mov eax, dword [ebp - 0x1c]
mov edi, dword [eax + 0xc8]
test edi, edi
je 0x530e64
mov ecx, dword [ebp - 0x14]
sub ecx, dword [eax + 0x68]
mov eax, 0x66666667
mov edi, dword [edi + 0x18]
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 0x52f2fd
mov eax, dword [ebp - 0x1c]
bts edx, ecx
mov byte [esi + edi], dl
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp - 0x28]
mov ecx, dword [eax + 0x68]
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov ecx, dword [eax + 0x68]
mov edi, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
cmp eax, dword [edi + 4]
je 0x52f2fd
mov ecx, edi
mov edi, dword [ebp - 0x28]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 4]
push dword [edx + 0xc]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
push eax
call fcn.0052e540
add esp, 8
test eax, eax
jne 0x52f2fd
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
xor eax, eax
cmp dword [edx + 0xc], eax
sete al
push eax
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
push eax
call fcn.0052e540
add esp, 8
test eax, eax
je 0x52f2fd
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 1
jne 0x52f2fd
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 1
je 0x52f2fd
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 2], 0
je 0x52f82f
mov eax, dword [ebp - 0x14]
mov ecx, 0x2400
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
test word [edi + eax*8 + 8], cx
lea eax, [edi + eax*8]
je 0x530f5f
push eax
call fcn.00548b90
add esp, 4
jmp 0x52f2fd
mov ecx, 1
mov word [eax + 8], cx
jmp 0x52f2fd
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov edx, dword [edx + 8]
mov dword [ebp - 0x4c], edx
mov edi, dword [eax + ecx*4]
mov dword [ebp - 0x30], edi
cmp byte [edi + 3], 0
je 0x531012
mov eax, dword [edi + 0x18]
test eax, eax
je 0x53100a
mov eax, dword [eax + edx*4 + 4]
test eax, eax
jle 0x53100a
cmp byte [edi + 2], 0
jne 0x53100a
mov edi, dword [edi + 0x24]
dec eax
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x24], 0
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x1c]
mov ebx, dword [edi + 0x48]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x2c], ebx
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [edi + 0x1c]
mov dword [ebp - 0x38], ecx
cmp eax, dword [edx + 0x20]
je 0x531127
cmp byte [edi + 2], 0
je 0x531079
cmp byte [edi], 3
jne 0x53103a
mov eax, dword [edi + 0x20]
mov esi, dword [ebp - 0x28]
lea ecx, [eax + eax*4]
mov eax, dword [esi + ecx*8 + 0xc]
mov dword [edi + 0x54], eax
mov dword [edi + 0x50], eax
mov ecx, dword [esi + ecx*8 + 0x10]
mov dword [edi + 0x4c], ecx
jmp 0x5310c3
push edi
call fcn.00537290
jmp 0x531020
mov eax, dword [edi + 0x28]
cmp byte [eax], 0
je 0x530fae
push edi
call fcn.004efeb0
add esp, 4
mov dword [ebp - 0x24], eax
test eax, eax
je 0x530fb5
mov esi, dword [ebp - 0x18]
mov edi, 7
mov edx, dword [ebp - 0x1c]
jmp 0x536390
mov eax, 0x2400
test word [ecx + 8], ax
je 0x53105f
push ecx
call fcn.00548b90
mov ecx, dword [ebp - 0x14]
add esp, 4
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edi, dword [ebp - 0x28]
mov eax, 1
mov word [ecx + 8], ax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov esi, dword [edi + 0x28]
push esi
call fcn.004eefc0
mov edx, dword [esi + 0x2c]
add esp, 4
mov dword [edi + 0x50], edx
mov eax, dword [esi + 0x74]
movzx ecx, word [esi + 0x30]
mov eax, dword [eax + 0x3c]
sub eax, dword [esi + 0x28]
cmp ecx, eax
jle 0x5310ab
test eax, eax
mov dword [ebp - 0x34], 0
mov ecx, eax
cmovs ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x20]
mov dword [edi + 0x54], ecx
mov ecx, dword [esi + 0x28]
mov dword [edi + 0x4c], ecx
cmp edx, dword [eax + 0x6c]
ja 0x535f97
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x20]
mov dword [edi + 0x1c], eax
mov al, byte [ecx]
cmp al, 0x80
jae 0x5310d8
movzx eax, al
mov dword [ebx], eax
mov al, 1
jmp 0x5310e2
push ebx
push ecx
call fcn.005188c0
add esp, 8
movzx esi, al
lea edx, [edi + 0x3a]
mov dword [edi + 0x30], esi
xor eax, eax
mov word [edx], ax
mov ecx, dword [ebx]
mov dword [ebp - 0x40], edx
cmp dword [edi + 0x54], ecx
jae 0x53111a
mov dword [edi + 0x4c], eax
mov dword [edi + 0x54], eax
mov eax, dword [ebx]
cmp eax, 0x18003
ja 0x53131e
mov dword [ebp - 0x40], edx
cmp eax, dword [edi + 0x50]
jbe 0x53112d
jmp 0x53131e
mov eax, dword [edi + 0x4c]
mov dword [ebp - 0x3c], eax
xor eax, eax
jmp 0x5311cd
lea edx, [edi + 0x3a]
mov dword [ebp - 0x40], edx
movzx edx, word [edx]
mov esi, dword [ebp - 0x4c]
mov eax, edx
cmp eax, esi
jg 0x5313ff
mov esi, dword [edi + 0x30]
mov ecx, dword [ebx]
cmp esi, ecx
jae 0x53134c
mov eax, dword [edi + 0x4c]
mov dword [ebp - 0x3c], eax
test eax, eax
jne 0x5311c5
mov dword [ebp - 0x158], eax
mov dword [ebp - 0x154], eax
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x14c], eax
mov dword [ebp - 0x148], eax
mov dword [ebp - 0x144], eax
mov dword [ebp - 0x140], eax
mov dword [ebp - 0x13c], eax
mov dword [ebp - 0x138], eax
mov dword [ebp - 0x134], eax
lea eax, [ebp - 0x158]
push eax
push dword [ebx]
push dword [edi + 0x28]
call fcn.00538540
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x536385
mov eax, dword [ebp - 0x148]
mov ecx, dword [ebx]
mov esi, dword [edi + 0x30]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x40]
movzx eax, word [eax]
jmp 0x5311cd
mov eax, edx
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x40], edx
add ecx, dword [ebp - 0x3c]
xor edx, edx
add esi, dword [ebp - 0x3c]
mov dword [ebp - 0x58], ecx
mov ecx, dword [ebp - 0x30]
movzx edi, ax
add ecx, 0x58
mov dword [ebp - 0x60], edi
mov eax, dword [ebx + edi*4]
lea edi, [ecx + edi*4]
lea ebx, [ebx]
movzx ebx, byte [esi]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x8c], ebx
mov dword [edi], ebx
cmp ebx, 0x80
jae 0x531218
movzx eax, byte [ebx + 0x58cc08]
mov ecx, 1
cdq
jmp 0x53124b
lea eax, [ebp - 0x8c]
push eax
push esi
call fcn.005188c0
mov ebx, dword [ebp - 0x8c]
add esp, 8
movzx ecx, al
mov dword [edi], ebx
cmp ebx, 0x80
jb 0x531242
lea eax, [ebx - 0xc]
shr eax, 1
jmp 0x531249
movzx eax, byte [ebx + 0x58cc08]
xor edx, edx
add eax, dword [ebp - 0x34]
adc edx, dword [ebp - 0x44]
add esi, ecx
mov ecx, dword [ebp - 0x60]
add edi, 4
mov dword [ebp - 0x44], edx
inc ecx
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x60], ecx
mov dword [edx + ecx*4], eax
mov edx, dword [ebp - 0x44]
cmp ecx, dword [ebp - 0x4c]
jg 0x53127c
cmp esi, dword [ebp - 0x58]
jb 0x5311f0
mov edi, dword [ebp - 0x58]
jmp 0x531283
mov edi, dword [ebp - 0x58]
cmp esi, edi
jb 0x531293
cmp esi, edi
ja 0x5312e2
mov edi, dword [ebp - 0x30]
cmp eax, dword [edi + 0x50]
jne 0x5312e2
test edx, edx
jne 0x5312e2
test edx, edx
jb 0x5312a1
mov edx, dword [ebp - 0x30]
ja 0x5312e5
cmp eax, dword [edx + 0x50]
ja 0x5312e5
mov eax, dword [ebp - 0x40]
mov edi, dword [ebp - 0x30]
sub esi, dword [ebp - 0x3c]
mov word [eax], cx
mov dword [edi + 0x30], esi
cmp dword [edi + 0x4c], 0
jne 0x5312dd
test dword [ebp - 0x150], 0x2400
jne 0x5312cb
cmp dword [ebp - 0x140], 0
je 0x5312dd
lea eax, [ebp - 0x158]
push eax
call fcn.00548b50
mov eax, dword [ebp - 0x40]
add esp, 4
movzx eax, word [eax]
jmp 0x531356
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
cmp dword [eax], 0
jne 0x5312f4
mov esi, dword [ebp - 0x58]
xor ecx, ecx
jmp 0x5312a1
cmp dword [edx + 0x4c], 0
jne 0x53131e
test dword [ebp - 0x150], 0x2400
jne 0x53130f
cmp dword [ebp - 0x140], 0
je 0x53131e
lea eax, [ebp - 0x158]
push eax
call fcn.00548b50
add esp, 4
mov edx, dword [ebp - 0x54]
mov eax, dword [edx + 0xc]
test eax, eax
jle 0x5361aa
mov edi, dword [ebp - 0x28]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea esi, [edx + eax*4]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], esi
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
add ecx, 0x14
jmp 0x52f2ad
xor ebx, ebx
mov eax, edx
mov dword [ebp - 0x8c], ebx
mov esi, dword [ebp - 0x4c]
movzx eax, ax
cmp eax, esi
jg 0x531409
mov eax, dword [ebp - 0x14]
cmp byte [eax + 1], 0xf5
jne 0x5313f7
mov edx, dword [ebp - 0x38]
mov ecx, dword [eax + 0x10]
mov eax, 0x2400
test word [edx + 8], ax
je 0x5313a5
push 0x800
push ecx
push edx
call fcn.00547a50
mov esi, dword [ebp - 0x20]
add esp, 0xc
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov eax, dword [ecx]
mov ebx, 0x800
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp - 0x28]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov eax, dword [ecx + 8]
mov dword [edx + 8], eax
mov eax, dword [ecx + 0xc]
mov dword [edx + 0xc], eax
mov eax, dword [ecx + 0x10]
mov dword [edx + 0x10], eax
test word [ecx + 8], bx
jne 0x52f82f
mov ax, word [edx + 8]
mov ecx, 0xebff
and ax, cx
mov ecx, dword [ebp - 0x14]
or ax, bx
mov word [edx + 8], ax
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov eax, dword [ebp - 0x38]
jmp 0x5303f4
mov ebx, dword [edi + esi*4 + 0x58]
mov dword [ebp - 0x8c], ebx
mov ecx, dword [ebp - 0x38]
mov eax, 0x2400
test word [ecx + 8], ax
je 0x531423
push ecx
call fcn.00548b90
mov ecx, dword [ebp - 0x38]
add esp, 4
mov edx, dword [ebp - 0x2c]
mov eax, dword [edi + 0x54]
cmp eax, dword [edx + esi*4 + 4]
jb 0x5314de
mov edi, dword [edi + 0x4c]
add edi, dword [edx + esi*4]
cmp ebx, 0xc
jae 0x53145d
push ecx
push ebx
push edi
call fcn.0053a310
mov esi, dword [ebp - 0x20]
add esp, 0xc
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov al, byte [ebp - 0x5c]
lea esi, [ebx - 0xc]
shr esi, 1
mov dword [ecx + 0xc], esi
mov byte [ecx + 0xa], al
lea eax, [esi + 2]
cmp dword [ecx + 0x18], eax
jge 0x531498
push 0
push eax
mov edx, 1
push ecx
mov word [ecx + 8], dx
call fcn.005385a0
add esp, 0xc
test eax, eax
jne 0x536458
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
jmp 0x53149e
mov eax, dword [ecx + 0x14]
mov dword [ecx + 0x10], eax
push esi
push edi
push eax
call fcn.0048d7e0
mov ecx, dword [ebp - 0x38]
add esp, 0xc
mov edi, dword [ebp - 0x28]
and ebx, 1
mov eax, dword [ecx + 0x10]
mov byte [esi + eax], 0
mov eax, dword [ecx + 0x10]
mov byte [eax + esi + 1], 0
mov ax, word [ebx*2 + 0x58cd08]
mov esi, dword [ebp - 0x20]
mov word [ecx + 8], ax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov al, byte [ebp - 0x5c]
mov byte [ecx + 0xa], al
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 2]
test al, 0xc0
je 0x5314fd
cmp ebx, 0xc
jb 0x5314f9
test bl, 1
je 0x531517
test al, al
js 0x531517
cmp ebx, 0x80
jb 0x53150c
lea eax, [ebx - 0xc]
shr eax, 1
jmp 0x531513
movzx eax, byte [ebx + 0x58cc08]
test eax, eax
jne 0x53153a
push ecx
push ebx
push 0x58b780
call fcn.0053a310
mov esi, dword [ebp - 0x20]
add esp, 0xc
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
push ecx
push eax
push dword [edx + esi*4]
push dword [edi + 0x28]
call fcn.00538470
add esp, 0x10
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x536385
mov esi, dword [ebp - 0x38]
push esi
push ebx
push dword [esi + 0x10]
call fcn.0053a310
mov ecx, dword [ebp - 0x14]
mov eax, 0xefff
mov edi, dword [ebp - 0x28]
add esp, 0xc
and word [esi + 8], ax
mov esi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
mov al, byte [ebx]
push dword [ebp - 0x6c]
mov byte [ebp - 0xbc], al
push dword [ebp - 0xbc]
push esi
call fcn.004dbb20
add esp, 0xc
cmp byte [ebx], 0x45
jne 0x531606
movzx ecx, word [esi + 8]
mov edx, ecx
test cl, 4
je 0x531606
mov edi, dword [esi]
mov eax, dword [esi + 4]
mov dword [ebp - 0x1c0], edi
add edi, 0
mov dword [ebp - 0x1bc], eax
adc eax, 0x8000
cmp eax, 0xffff
ja 0x5315f1
jb 0x5315e2
cmp edi, 0xffffffff
ja 0x5315f1
and ecx, 0xfffb
or ecx, 0x20
mov word [esi + 8], cx
jmp 0x531606
fild qword [ebp - 0x1c0]
and edx, 0xfffb
or edx, 8
fstp qword [esi]
mov word [esi + 8], dx
mov al, byte [ebx + 1]
inc ebx
test al, al
je 0x52f829
add esi, 0x28
jmp 0x531593
mov esi, dword [ebp - 0x14]
xor edx, edx
mov ecx, dword [ebp - 0x28]
xor ebx, ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], edx
mov eax, dword [esi + 4]
mov edi, dword [esi + 0x10]
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x2c], edx
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [esi + 8]
mov dword [ebp - 0x60], ecx
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x1c]
mov al, byte [eax + 0x93]
mov byte [ebp - 0x4d], al
mov eax, dword [esi + 0xc]
mov esi, dword [ebp - 0x28]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [ebp - 0x58], eax
test edi, edi
je 0x5316c0
mov al, byte [edi]
lea esi, [ecx + 8]
mov ebx, dword [ebp - 0x6c]
mov byte [ebp - 0xc4], al
mov edi, edi
push ebx
push dword [ebp - 0xc4]
lea eax, [esi - 8]
push eax
call fcn.004dbb20
add esp, 0xc
cmp byte [edi], 0x45
jne 0x5316aa
movzx eax, word [esi]
test al, 4
je 0x5316aa
and eax, 0xfffb
or eax, 0x20
mov word [esi], ax
mov al, byte [edi + 1]
inc edi
add esi, 0x28
mov byte [ebp - 0xc4], al
test al, al
jne 0x531680
mov ebx, dword [ebp - 0x40]
mov edx, ebx
mov eax, dword [ebp - 0x34]
add eax, 0x1c
movzx ecx, word [eax - 0x14]
mov dword [ebp - 0x30], eax
test cl, 1
je 0x5316ea
and ecx, 0x4000
neg ecx
sbb ecx, ecx
and ecx, 0xa
mov dword [eax], ecx
mov ecx, dword [ebp - 0x38]
inc ecx
jmp 0x53191b
test cl, 0x24
je 0x53187c
mov edi, dword [eax - 0x18]
mov edx, dword [eax - 0x1c]
mov dword [ebp - 0x198], edx
mov dword [ebp - 0x194], edi
test edi, edi
jg 0x531719
jl 0x53170f
test edx, edx
jae 0x531719
mov esi, edx
mov eax, edi
not esi
not eax
jmp 0x53171d
mov esi, edx
mov eax, edi
inc dword [ebp - 0x38]
test eax, eax
ja 0x531800
jb 0x53172f
cmp esi, 0x7f
ja 0x531775
mov eax, edx
xor ecx, ecx
and eax, 1
cmp eax, edx
jne 0x531757
cmp ecx, edi
jne 0x531757
cmp byte [ebp - 0x4d], 4
jb 0x531757
mov ecx, dword [ebp - 0x38]
lea eax, [esi + 8]
mov esi, dword [ebp - 0x30]
mov dword [esi], eax
mov eax, dword [ebp - 0x30]
jmp 0x53191e
mov esi, dword [ebp - 0x30]
add ebx, 1
mov eax, 1
mov dword [ebp - 0x40], ebx
adc dword [ebp - 0x3c], ecx
mov ecx, dword [ebp - 0x38]
mov dword [esi], eax
mov eax, dword [ebp - 0x30]
jmp 0x53191e
test eax, eax
ja 0x531800
jb 0x531787
cmp esi, 0x7fff
ja 0x5317a6
mov esi, dword [ebp - 0x30]
add ebx, 2
mov ecx, dword [ebp - 0x38]
mov eax, 2
adc dword [ebp - 0x3c], 0
mov dword [ebp - 0x40], ebx
mov dword [esi], eax
mov eax, dword [ebp - 0x30]
jmp 0x53191e
test eax, eax
ja 0x531800
jb 0x5317b4
cmp esi, 0x7fffff
ja 0x5317d3
mov esi, dword [ebp - 0x30]
add ebx, 3
mov ecx, dword [ebp - 0x38]
mov eax, 3
adc dword [ebp - 0x3c], 0
mov dword [ebp - 0x40], ebx
mov dword [esi], eax
mov eax, dword [ebp - 0x30]
jmp 0x53191e
test eax, eax
ja 0x531800
jb 0x5317e1
cmp esi, 0x7fffffff
ja 0x531800
mov esi, dword [ebp - 0x30]
add ebx, 4
mov ecx, dword [ebp - 0x38]
mov eax, 4
adc dword [ebp - 0x3c], 0
mov dword [ebp - 0x40], ebx
mov dword [esi], eax
mov eax, dword [ebp - 0x30]
jmp 0x53191e
cmp eax, 0x7fff
ja 0x53182d
jb 0x53180e
cmp esi, 0xffffffff
ja 0x53182d
mov esi, dword [ebp - 0x30]
add ebx, 6
mov ecx, dword [ebp - 0x38]
mov eax, 5
adc dword [ebp - 0x3c], 0
mov dword [ebp - 0x40], ebx
mov dword [esi], eax
mov eax, dword [ebp - 0x30]
jmp 0x53191e
add ebx, 8
mov dword [ebp - 0x40], ebx
adc dword [ebp - 0x3c], 0
test cl, 0x20
je 0x531867
mov esi, dword [ebp - 0x30]
and ecx, 0xffdf
fild qword [ebp - 0x198]
or ecx, 8
mov eax, 7
fstp qword [esi - 0x1c]
mov word [esi - 0x14], cx
mov ecx, dword [ebp - 0x38]
mov dword [esi], eax
mov eax, dword [ebp - 0x30]
jmp 0x53191e
mov esi, dword [ebp - 0x30]
mov eax, 6
mov ecx, dword [ebp - 0x38]
mov dword [esi], eax
mov eax, dword [ebp - 0x30]
jmp 0x53191e
test cl, 8
je 0x53189c
mov ecx, dword [ebp - 0x38]
inc ecx
mov dword [eax], 7
add ebx, 8
mov dword [ebp - 0x40], ebx
adc edx, 0
mov dword [ebp - 0x3c], edx
jmp 0x53191b
mov edi, dword [eax - 0x10]
mov eax, ecx
shr eax, 1
and eax, 1
lea ebx, [edi + 6]
lea ebx, [eax + ebx*2]
test ecx, 0x4000
je 0x5318e4
mov esi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x40]
add esi, 0xffffffe4
or eax, edx
mov ecx, dword [esi]
lea ebx, [ebx + ecx*2]
je 0x5318db
push esi
call fcn.00538370
add esp, 4
test eax, eax
jne 0x536458
add edi, dword [esi]
jmp 0x5318e4
mov eax, ecx
cdq
add dword [ebp - 0x4c], eax
adc dword [ebp - 0x2c], edx
add dword [ebp - 0x40], edi
mov edx, ebx
mov esi, 1
adc dword [ebp - 0x3c], 0
xor ecx, ecx
shr edx, 7
mov eax, edx
or eax, ecx
je 0x53190e
lea ecx, [ecx]
shrd edx, ecx, 7
inc esi
shr ecx, 7
mov eax, edx
or eax, ecx
jne 0x531900
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x38]
add ecx, esi
mov dword [eax], ebx
mov ebx, dword [ebp - 0x40]
mov dword [ebp - 0x38], ecx
add eax, 0xffffffe4
cmp eax, dword [ebp - 0x60]
je 0x531934
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x3c]
sub eax, 0x28
jmp 0x5316c6
cmp ecx, 0x7e
jle 0x531995
mov eax, ecx
mov ebx, 1
cdq
mov esi, eax
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x53195e
shrd esi, edx, 7
inc ebx
shr edx, 7
mov eax, esi
or eax, edx
jne 0x531950
mov eax, dword [ebp - 0x38]
mov edi, 1
add eax, ebx
mov dword [ebp - 0x38], eax
cdq
mov esi, eax
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x53198e
jmp 0x531980
shrd esi, edx, 7
inc edi
shr edx, 7
mov eax, esi
or eax, edx
jne 0x531980
mov ecx, dword [ebp - 0x38]
cmp ebx, edi
jge 0x531999
inc ecx
mov dword [ebp - 0x38], ecx
mov ebx, dword [ebp - 0x58]
mov eax, ecx
cdq
mov ecx, eax
mov eax, edx
mov esi, ecx
mov dword [ebp - 0x30], ecx
add esi, dword [ebp - 0x40]
mov ecx, eax
mov ebx, dword [ebx + 0x18]
mov edi, esi
adc ecx, dword [ebp - 0x3c]
add edi, dword [ebp - 0x4c]
mov dword [ebp - 0x44], eax
mov eax, ebx
adc ecx, dword [ebp - 0x2c]
cdq
cmp ecx, edx
jg 0x5319d6
jl 0x5319cb
cmp edi, eax
ja 0x5319d6
mov edx, dword [ebp - 0x58]
mov eax, dword [edx + 0x14]
mov dword [edx + 0x10], eax
jmp 0x531a1e
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x6c]
cdq
cmp ecx, edx
jg 0x535f97
jl 0x5319ef
cmp edi, eax
ja 0x535f97
cmp ebx, esi
jge 0x531a06
push 0
push esi
push dword [ebp - 0x58]
call fcn.005385a0
mov edx, dword [ebp - 0x58]
add esp, 0xc
jmp 0x531a16
mov edx, dword [ebp - 0x58]
mov eax, dword [edx + 0x14]
mov dword [edx + 0x10], eax
and word [edx + 8], 0x2d
xor eax, eax
test eax, eax
jne 0x536458
mov ecx, dword [ebp - 0x4c]
mov eax, 0x10
mov dword [edx + 0xc], esi
mov word [edx + 8], ax
mov eax, ecx
or eax, dword [ebp - 0x2c]
je 0x531a3f
mov eax, 0x4010
mov dword [edx], ecx
mov word [edx + 8], ax
mov ecx, dword [ebp - 0x38]
mov edi, dword [edx + 0x10]
lea eax, [edi + ecx]
mov dword [ebp - 0x2c], eax
cmp ecx, 0x80
jae 0x531a5c
mov byte [edi], cl
mov eax, 1
jmp 0x531a6b
push dword [ebp - 0x44]
push dword [ebp - 0x30]
push edi
call fcn.00523840
add esp, 0xc
mov esi, dword [ebp - 0x60]
movzx eax, al
add edi, eax
add esi, 0xc
jmp 0x531a80
mov ebx, dword [esi + 0x10]
cmp ebx, 0x80
jae 0x531a94
mov byte [edi], bl
mov eax, 1
jmp 0x531aa0
push 0
push ebx
push edi
call fcn.00523840
add esp, 0xc
movzx eax, al
add edi, eax
lea eax, [ebx - 1]
mov dword [ebp - 0x44], edi
cmp eax, 6
ja 0x531ad3
movzx edx, byte [ebx + 0x58cc08]
mov ecx, dword [esi - 0xc]
mov edi, edx
mov eax, dword [esi - 8]
mov ebx, dword [ebp - 0x2c]
dec edx
mov byte [ebx + edx], cl
shrd ecx, eax, 8
shr eax, 8
test edx, edx
jne 0x531ac2
jmp 0x531af2
cmp ebx, 0xc
jb 0x531af0
mov edi, dword [esi]
test edi, edi
je 0x531af2
mov ebx, dword [ebp - 0x2c]
push edi
push dword [esi + 4]
push ebx
call fcn.0048d7e0
add esp, 0xc
jmp 0x531af2
xor edi, edi
add dword [ebp - 0x2c], edi
add esi, 0x28
mov edi, dword [ebp - 0x44]
lea eax, [esi - 0xc]
cmp eax, dword [ebp - 0x34]
jbe 0x531a80
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
cmp dword [edx + 0xc], 0
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x28]
push esi
je 0x531b45
call fcn.00507fc0
add esp, 4
mov edi, eax
mov ebx, edx
jmp 0x531c2d
xor edi, edi
xor eax, eax
mov dword [ebp - 0x34], edi
xor ebx, ebx
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x2c], eax
call fcn.004f3410
add esp, 4
mov dword [ebp - 0x24], eax
cmp eax, 0x10
jne 0x531b6c
mov dword [ebp - 0x24], ebx
jmp 0x531c2d
test eax, eax
jne 0x531c22
jmp 0x531b80
mov ecx, dword [ebp - 0x20]
cmp dword [ecx + 0x110], 0
jne 0x531c1f
mov edi, dword [esi + 0x74]
mov cl, byte [edi + 8]
test cl, cl
jne 0x531b9f
cmp byte [edi + 2], cl
jne 0x531bd5
movzx eax, word [edi + 0x18]
cdq
add ebx, eax
adc dword [ebp - 0x2c], edx
test cl, cl
je 0x531bd5
lea ecx, [ecx]
cmp byte [esi + 0x44], 0
push esi
je 0x531c55
call fcn.004f32d0
mov edi, dword [esi + 0x74]
add esp, 4
movzx eax, word [esi + 0x46]
cmp ax, word [edi + 0x18]
jae 0x531bb0
inc eax
mov word [esi + 0x46], ax
movzx ecx, word [esi + 0x46]
movzx eax, word [edi + 0x18]
cmp ecx, eax
jne 0x531bee
movzx ecx, byte [edi + 9]
mov eax, dword [edi + 0x38]
mov eax, dword [ecx + eax + 8]
jmp 0x531c08
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.004f3190
add esp, 8
mov dword [ebp - 0x24], eax
test eax, eax
je 0x531b80
mov edi, dword [ebp - 0x34]
mov ebx, dword [ebp - 0x44]
test eax, eax
jne 0x536385
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x58]
lea eax, [eax + ecx*8]
mov ecx, 0x2400
test word [eax + 8], cx
je 0x531c67
push eax
call fcn.004f5db0
add esp, 4
jmp 0x531c70
mov edi, ebx
mov ebx, dword [ebp - 0x2c]
call fcn.004f3410
add esp, 4
mov dword [ebp - 0x24], eax
jmp 0x531c25
mov ecx, 4
mov word [eax + 8], cx
mov dword [eax], edi
mov dword [eax + 4], ebx
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x1c]
cmp dword [esi + 0x110], 0
jne 0x5366b1
mov ebx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x18]
cmp eax, ebx
jb 0x531cd1
jmp 0x531ca0
mov eax, dword [esi + 0x158]
test eax, eax
je 0x52f82f
add ebx, dword [esi + 0x160]
push dword [esi + 0x15c]
mov dword [ebp - 0x70], ebx
call eax
add esp, 4
test eax, eax
jne 0x53646a
mov eax, dword [ebp - 0x18]
cmp eax, ebx
jae 0x531ca0
mov ecx, dword [ebp - 0x14]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 4]
mov edi, dword [edx + 0x10]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x44], edi
test eax, eax
jne 0x531dcf
cmp dword [esi + 0xb8], eax
jg 0x5361bc
test edi, edi
jne 0x531d07
xor esi, esi
jmp 0x531d1f
mov esi, edi
lea ecx, [esi + 1]
lea esp, [esp]
mov al, byte [esi]
inc esi
test al, al
jne 0x531d10
sub esi, ecx
and esi, 0x3fffffff
mov ebx, dword [ebp - 0x20]
mov eax, dword [ebx + 0x1e0]
add eax, dword [ebx + 0x1dc]
push eax
push 0
push ebx
call fcn.0053be90
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x536385
lea eax, [esi + 0x21]
push 0
push eax
push ebx
call fcn.0050c410
mov edi, eax
add esp, 0xc
test edi, edi
je 0x535fb2
lea ecx, [esi + 1]
push ecx
push dword [ebp - 0x44]
lea edx, [edi + 0x20]
push edx
mov dword [edi], edx
call fcn.0048d7e0
mov esi, ebx
add esp, 0xc
cmp byte [esi + 0x4f], 0
je 0x531d85
mov byte [esi + 0x4f], 0
mov byte [esi + 0x57], 1
jmp 0x531d8b
inc dword [esi + 0x1dc]
mov eax, dword [esi + 0x1d0]
mov ecx, dword [ebp - 0x14]
mov dword [edi + 0x18], eax
mov dword [esi + 0x1d0], edi
mov eax, dword [esi + 0x1e8]
mov dword [edi + 8], eax
mov eax, dword [esi + 0x1ec]
mov dword [edi + 0xc], eax
mov eax, dword [esi + 0x1f0]
mov dword [edi + 0x10], eax
mov eax, dword [esi + 0x1f4]
mov dword [edi + 0x14], eax
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov esi, dword [esi + 0x1d0]
xor ebx, ebx
test esi, esi
je 0x531df7
jmp 0x531de0
push edi
push dword [esi]
call fcn.0052a920
add esp, 8
test eax, eax
je 0x531e0d
mov esi, dword [esi + 0x18]
inc ebx
test esi, esi
jne 0x531de0
push edi
push str.no_such_savepoint:__s
push dword [ebp - 0x1c]
call fcn.0052f180
add esp, 0xc
jmp 0x536380
mov edx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x30]
cmp dword [edx + 0xb8], 0
jle 0x531e25
cmp edi, 1
je 0x5361d6
cmp dword [esi + 0x18], 0
jne 0x531e93
cmp byte [edx + 0x57], 0
je 0x531e93
mov dword [ebp - 0x58], 1
cmp edi, 1
jne 0x531e9a
push edi
push dword [ebp - 0x1c]
call fcn.0052e730
mov ecx, eax
add esp, 8
mov dword [ebp - 0x24], ecx
test ecx, ecx
jne 0x536674
mov eax, dword [ebp - 0x20]
push dword [ebp - 0x1c]
mov byte [eax + 0x4f], 1
call fcn.005375c0
add esp, 4
cmp eax, 5
je 0x5361dd
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
mov eax, dword [eax + 0x28]
mov dword [ebp - 0x24], eax
test eax, eax
je 0x531e8a
mov byte [edx + 0x4f], 0
jmp 0x531f85
mov byte [edx + 0x57], 0
jmp 0x531f8d
mov dword [ebp - 0x58], 0
mov ecx, dword [edx + 0x1dc]
sub ecx, ebx
dec ecx
cmp edi, 2
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x2c], ecx
mov eax, dword [edi + 0x14]
jne 0x531f0f
mov edx, dword [edx + 0x18]
xor ebx, ebx
and edx, 1
mov dword [ebp - 0x4c], edx
test eax, eax
jle 0x531f14
mov ecx, edx
xor ecx, 1
xor edi, edi
mov dword [ebp - 0x44], ecx
lea ebx, [ebx]
mov eax, dword [ebp - 0x20]
push ecx
push 0x204
mov eax, dword [eax + 0x10]
push dword [edi + eax + 4]
call fcn.00508560
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x536385
mov eax, dword [ebp - 0x20]
inc ebx
mov ecx, dword [ebp - 0x44]
add edi, 0x10
mov eax, dword [eax + 0x14]
cmp ebx, eax
jl 0x531ed0
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x20]
jmp 0x531f14
xor edx, edx
mov dword [ebp - 0x4c], edx
xor ebx, ebx
test eax, eax
jle 0x531f58
xor edi, edi
lea esp, [esp]
mov eax, dword [ebp - 0x20]
push ecx
push dword [ebp - 0x30]
mov eax, dword [eax + 0x10]
push dword [eax + edi + 4]
call fcn.00508030
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x536385
mov ecx, dword [ebp - 0x20]
inc ebx
add edi, 0x10
cmp ebx, dword [ecx + 0x14]
mov ecx, dword [ebp - 0x2c]
jl 0x531f20
mov edx, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x20]
jmp 0x531f5b
mov eax, dword [ebp - 0x24]
test edx, edx
je 0x531f7c
push 0
push edi
call fcn.0050e2c0
push edi
call fcn.00524510
mov edx, dword [ebp - 0x20]
add esp, 0xc
mov eax, dword [ebp - 0x24]
or dword [edx + 0x18], 1
jmp 0x531f7f
mov edx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x2c]
test eax, eax
jne 0x536385
mov ecx, dword [edx + 0x1d0]
cmp ecx, esi
je 0x531fc9
mov edi, dword [ebp - 0x20]
lea ebx, [ebx]
mov eax, dword [ecx + 0x18]
push ecx
push edi
mov dword [edi + 0x1d0], eax
call fcn.0050c300
dec dword [edi + 0x1dc]
add esp, 8
mov ecx, dword [edi + 0x1d0]
cmp ecx, esi
jne 0x531fa0
mov edi, dword [ebp - 0x30]
mov edx, dword [ebp - 0x20]
cmp edi, 1
jne 0x531ff6
mov eax, dword [esi + 0x18]
push esi
mov esi, dword [ebp - 0x20]
push esi
mov dword [edx + 0x1d0], eax
call fcn.0050c300
add esp, 8
cmp dword [ebp - 0x58], 0
jne 0x52f82c
dec dword [esi + 0x1dc]
jmp 0x53202c
cmp dword [ebp - 0x58], 0
mov eax, dword [esi + 8]
mov dword [edx + 0x1e8], eax
mov eax, dword [esi + 0xc]
mov dword [edx + 0x1ec], eax
mov eax, dword [esi + 0x10]
mov dword [edx + 0x1f0], eax
mov eax, dword [esi + 0x14]
mov esi, dword [ebp - 0x20]
mov dword [esi + 0x1f4], eax
je 0x53202c
cmp edi, 2
jne 0x52f82c
push ebx
push edi
push esi
call fcn.0053be90
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x536385
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0xa4], 0
mov edx, dword [edx + 8]
test edx, edx
je 0x532078
mov eax, dword [esi + 0x20]
and eax, 0x100000
or eax, 0
jne 0x536218
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
test esi, esi
je 0x532193
lea eax, [ebp - 0xa4]
push eax
push edx
push esi
call fcn.00505410
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x536222
mov edi, dword [ebp - 0x1c]
test byte [edi + 0x98], 0x40
je 0x53219e
mov ebx, dword [ebp - 0x14]
cmp dword [ebx + 8], eax
je 0x53219e
mov edx, dword [ebp - 0x20]
cmp byte [edx + 0x4f], al
je 0x5320dc
cmp dword [edx + 0xb4], 1
jle 0x5321a3
mov ebx, edi
mov eax, dword [ebx + 0x30]
test eax, eax
jne 0x5320fa
inc dword [edx + 0x1e0]
mov eax, dword [edx + 0x1dc]
add eax, dword [edx + 0x1e0]
mov dword [ebx + 0x30], eax
dec eax
push eax
push 0
push edx
call fcn.0053be90
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x532162
mov edi, dword [ebx + 0x30]
mov ebx, dword [esi + 4]
cmp byte [esi + 9], al
je 0x53212a
inc dword [esi + 0xc]
cmp byte [esi + 0xa], al
jne 0x53212a
push esi
call fcn.004df2d0
add esp, 4
mov eax, dword [ebx]
cmp edi, dword [eax + 0x60]
jle 0x532146
cmp byte [eax + 6], 0
je 0x532146
push edi
push eax
call fcn.004f6790
add esp, 8
mov dword [ebp - 0x24], eax
jmp 0x53214d
mov dword [ebp - 0x24], 0
cmp byte [esi + 9], 0
je 0x532162
add dword [esi + 0xc], 0xffffffff
jne 0x532162
push esi
call fcn.005464e0
add esp, 4
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
mov edi, ecx
mov eax, dword [esi + 0x1e8]
mov dword [ecx + 0x48], eax
mov eax, dword [esi + 0x1ec]
mov dword [ecx + 0x4c], eax
mov eax, dword [esi + 0x1f0]
mov dword [ecx + 0x50], eax
mov eax, dword [esi + 0x1f4]
mov dword [ecx + 0x54], eax
mov eax, dword [ebp - 0x24]
jmp 0x5321a5
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp - 0x1c]
jmp 0x5321a5
mov esi, dword [ebp - 0x20]
jmp 0x5321a5
mov esi, edx
mov ecx, dword [ebp - 0x14]
cmp word [ecx + 2], 0
je 0x5321de
mov eax, dword [ebp - 0xa4]
cmp eax, dword [ecx + 0xc]
jne 0x53625f
mov eax, ecx
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov ecx, dword [ebp - 0x14]
mov eax, dword [eax + 4]
cmp eax, dword [ecx + 0x10]
jne 0x53625f
mov eax, dword [ebp - 0x24]
test eax, eax
jne 0x536385
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0xf4]
push eax
mov eax, dword [esi + 0x10]
mov ecx, dword [edx + 4]
push dword [edx + 0xc]
add ecx, ecx
push dword [eax + ecx*8 + 4]
call fcn.00506300
mov eax, dword [ebp - 0x14]
add esp, 0xc
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x2400
test word [ecx + 8], ax
je 0x532257
push ecx
call fcn.004f5db0
mov ecx, eax
add esp, 4
mov eax, dword [ebp - 0xf4]
cdq
mov dword [ecx], eax
mov eax, dword [ebp - 0x18]
mov dword [ecx + 4], edx
mov ecx, dword [ebp - 0x14]
add ecx, 0x14
jmp 0x52f2ad
mov eax, 4
mov word [ecx + 8], ax
mov eax, dword [ebp - 0xf4]
cdq
mov dword [ecx], eax
mov eax, dword [ebp - 0x18]
mov dword [ecx + 4], edx
mov ecx, dword [ebp - 0x14]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov esi, dword [edx + 4]
push dword [edx + 0xc]
shl esi, 4
add esi, dword [eax + 0x10]
push dword [edx + 8]
push dword [esi + 4]
call fcn.00508650
mov edx, dword [ebp - 0x14]
add esp, 0xc
mov dword [ebp - 0x24], eax
mov eax, dword [edx + 8]
cmp eax, 1
jne 0x5322b9
mov ecx, dword [esi + 0xc]
mov esi, dword [ebp - 0x20]
mov eax, dword [edx + 0xc]
mov dword [ecx], eax
or dword [esi + 0x18], 1
jmp 0x5322ca
cmp eax, 2
jne 0x5322c7
mov ecx, dword [esi + 0xc]
mov al, byte [edx + 0xc]
mov byte [ecx + 0x4c], al
mov esi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
cmp dword [eax + 4], 1
jne 0x5322e8
push 0
push esi
call fcn.0050e2c0
mov eax, dword [ebp - 0x1c]
add esp, 8
and dword [eax + 0x98], 0xfffffffc
mov eax, dword [ebp - 0x24]
test eax, eax
jne 0x536385
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov ebx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x532320
mov eax, dword [esi + 0x34]
cmp eax, dword [ebx + 8]
je 0x53241c
mov esi, dword [ebp - 0x20]
jmp 0x532328
mov edi, dword [ebp - 0x1c]
mov eax, dword [edi + 0x98]
and al, 3
cmp al, 1
je 0x5362e1
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x2c], 0
mov ecx, dword [eax + 0xc]
mov ebx, dword [eax + 8]
mov eax, ecx
shl eax, 4
add eax, dword [esi + 0x10]
cmp dl, 0x61
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x44], ecx
mov esi, dword [eax + 4]
mov dword [ebp - 0x60], esi
jne 0x53238b
mov eax, dword [eax + 0xc]
movzx edi, word [edx + 2]
mov esi, dword [ebp - 0x1c]
and edi, 8
or edi, 4
mov al, byte [eax + 0x4c]
cmp al, byte [esi + 0x93]
jae 0x53238d
mov byte [esi + 0x93], al
jmp 0x53238d
xor edi, edi
test byte [edx + 2], 0x10
je 0x5323ad
mov ecx, dword [ebp - 0x28]
lea eax, [ebx + ebx*4]
lea esi, [ecx + eax*8]
push esi
call fcn.00538700
mov ebx, dword [esi]
add esp, 4
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x14]
mov al, byte [edx + 1]
cmp al, 0xf7
jne 0x5323c0
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x2c], eax
movzx eax, word [eax + 8]
jmp 0x5323cc
cmp al, 0xfd
jne 0x5323c9
mov eax, dword [edx + 0x10]
jmp 0x5323cc
mov eax, dword [ebp - 0x34]
push 0
push ecx
push eax
push dword [edx + 4]
push dword [ebp - 0x1c]
call fcn.004da610
mov esi, eax
add esp, 0x14
test esi, esi
je 0x536458
mov byte [esi + 2], 1
or dword [esi + 8], 4
mov dword [esi + 0x34], ebx
push dword [esi + 0x28]
push dword [ebp - 0x2c]
push edi
push ebx
push dword [ebp - 0x60]
call fcn.00505e70
mov dword [ebp - 0x24], eax
add esp, 0x14
mov eax, dword [ebp - 0x2c]
mov dword [esi + 0x2c], eax
mov eax, dword [ebp - 0x14]
cmp byte [eax + 1], 0xf7
setne al
mov byte [esi + 4], al
mov eax, dword [ebp - 0x14]
mov cl, byte [eax + 2]
mov eax, dword [esi + 0x28]
and cl, 3
mov byte [eax + 3], cl
mov eax, dword [ebp - 0x24]
test eax, eax
jne 0x536385
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x1c]
push 0
push 0xffffffffffffffff
mov ecx, dword [edx + 8]
mov eax, dword [edi + 0x60]
mov ebx, dword [eax + ecx*4]
movsx eax, word [ebx + 0x38]
push eax
push dword [edx + 4]
push edi
call fcn.004da610
mov edi, eax
add esp, 0x14
test edi, edi
je 0x536458
mov byte [edi + 2], 1
or dword [edi + 8], 1
mov esi, dword [ebx + 0x2c]
mov dword [edi + 0x2c], esi
mov al, byte [ebx + 4]
mov byte [edi + 4], al
mov edx, dword [ebx + 0x34]
mov dword [edi + 0x34], edx
mov eax, dword [ebx + 8]
xor eax, dword [edi + 8]
and eax, 4
xor dword [edi + 8], eax
push dword [edi + 0x28]
push esi
push 4
push edx
push dword [ebx + 0xc]
call fcn.00505e70
mov esi, dword [ebp - 0x20]
mov ecx, eax
mov edi, dword [ebp - 0x28]
add esp, 0x14
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x14]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x1c]
mov ecx, dword [edx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x53250e
mov eax, dword [esi + 0xc]
test eax, eax
je 0x53250e
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
push 0
mov dword [esi + 0x1c], 0
push dword [esi + 0x34]
push eax
call fcn.005057b0
add esp, 0xc
mov dword [ebp - 0x24], eax
jmp 0x5325f6
push 0
push 0xffffffffffffffff
push dword [edx + 8]
push ecx
push edi
call fcn.004da610
mov esi, eax
add esp, 0x14
test esi, esi
je 0x536458
mov eax, dword [ebp - 0x14]
lea edi, [esi + 0xc]
or dword [esi + 8], 1
push 0x41e
movzx ecx, word [eax + 2]
mov eax, dword [ebp - 0x20]
or ecx, 5
push ecx
push edi
push eax
push 0
push dword [eax]
call fcn.00507580
add esp, 0x18
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x5325d6
push eax
push 1
push dword [edi]
call fcn.00505410
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x5325d6
mov ecx, dword [ebp - 0x14]
lea ebx, [esi + 0x34]
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x44], eax
mov dword [esi + 0x2c], eax
test eax, eax
je 0x5325b6
movzx eax, word [ecx + 2]
or eax, 2
push eax
push ebx
push dword [edi]
call fcn.00505e20
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x5325b0
push dword [esi + 0x28]
push dword [ebp - 0x44]
push 4
push dword [ebx]
push dword [edi]
call fcn.00505e70
add esp, 0x14
mov dword [ebp - 0x24], eax
mov byte [esi + 4], 0
jmp 0x5325d6
mov dword [ebx], 1
push dword [esi + 0x28]
push 0
push 4
push 1
push dword [edi]
call fcn.00505e70
add esp, 0x14
mov dword [ebp - 0x24], eax
mov byte [esi + 4], 1
mov eax, dword [ebp - 0x14]
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 eax, dword [ebp - 0x24]
mov dword [esi + 8], ecx
test eax, eax
jne 0x536385
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
mov byte [esi + 2], 1
mov esi, dword [ebp - 0x20]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
push 1
push 0xffffffffffffffff
push dword [edx + 8]
push dword [edx + 4]
push dword [ebp - 0x1c]
call fcn.004da610
add esp, 0x14
test eax, eax
je 0x536458
mov edx, dword [ebp - 0x14]
push eax
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x2c], ecx
push dword [edx + 0xc]
push esi
call fcn.0053a730
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x536385
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov edx, dword [eax + ecx*4]
mov edi, dword [edx + 0x10]
mov ecx, edi
mov esi, dword [edx + 0x14]
add ecx, 1
mov eax, esi
mov dword [edx + 0x10], ecx
adc eax, 0
or edi, esi
mov dword [edx + 0x14], eax
je 0x52f2fd
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
push 3
push 0xffffffffffffffff
push dword [edx + 0xc]
push dword [edx + 4]
push dword [ebp - 0x1c]
call fcn.004da610
add esp, 0x14
test eax, eax
je 0x536458
mov ecx, dword [ebp - 0x14]
mov byte [eax + 2], 1
mov ecx, dword [ecx + 8]
mov dword [eax + 0x20], ecx
mov ecx, dword [ebp - 0x14]
mov byte [eax + 4], 1
mov dword [eax + 0x28], 0x5b6fa3
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 4]
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x60]
push dword [eax + ecx*4]
push edx
call fcn.005373a0
mov eax, dword [ebp - 0x14]
add esp, 8
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x60]
mov dword [eax + ecx*4], 0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x2c], 0
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
mov byte [esi + 2], 0
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
cmp byte [esi + 4], 0
je 0x53283b
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
movzx eax, word [edi + 8]
mov dword [ebp - 0x44], eax
and al, 0x2e
cmp al, 2
jne 0x532775
push 0
push edi
call fcn.004dbb90
add esp, 8
push edi
call fcn.004d05d0
movzx ecx, word [edi + 8]
add esp, 4
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0xe0], edx
mov word [edi + 8], ax
test cl, 0x24
jne 0x532801
test cl, 8
jne 0x5327d0
test cl, 1
jne 0x52f2fd
cmp ebx, 0x18
jae 0x52f2fd
lea eax, [ebp - 0x64]
push eax
push dword [esi + 0x28]
call fcn.00506e70
add esp, 8
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x536385
jmp 0x532958
fld qword [edi]
fild qword [ebp - 0xe4]
fstp qword [ebp - 0x48]
fld qword [ebp - 0x48]
fcomi st(1)
jbe 0x5327f3
test bl, 1
lea eax, [ebx - 1]
fstp st(0)
cmove eax, ebx
fstp st(0)
mov ebx, eax
jmp 0x532801
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x532801
test bl, 1
jne 0x532801
inc ebx
mov edi, dword [ebp - 0xe4]
lea eax, [ebp - 0x64]
push eax
push 0
push edx
push edi
push 0
push dword [esi + 0x28]
call fcn.00506f00
mov dword [ebp - 0x24], eax
add esp, 0x18
mov eax, dword [ebp - 0xe0]
mov dword [esi + 0x40], edi
mov dword [esi + 0x44], eax
mov eax, dword [ebp - 0x24]
test eax, eax
jne 0x536385
jmp 0x5328cc
mov eax, dword [esi + 0x28]
mov ecx, dword [edx + 0x10]
mov al, byte [eax + 3]
and al, 2
mov byte [ebp - 0x4d], al
mov eax, 0
setne al
test bl, 1
mov dword [ebp - 0x2c], eax
mov eax, dword [esi + 0x2c]
mov dword [ebp - 0x168], eax
sete al
mov word [ebp - 0x160], cx
lea eax, [eax*2 - 1]
mov byte [ebp - 0x15e], al
mov eax, dword [edx + 0xc]
mov byte [ebp - 0x15a], 0
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [ebp - 0x164], eax
lea eax, [ebp - 0x64]
push eax
push 0
push 0
push 0
lea eax, [ebp - 0x168]
push eax
push dword [esi + 0x28]
call fcn.00506f00
add esp, 0x18
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x536385
cmp byte [ebp - 0x4d], al
je 0x5328cc
cmp byte [ebp - 0x15a], 0
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], eax
je 0x532958
mov eax, dword [ebp - 0x64]
cmp ebx, 0x18
jl 0x532940
test eax, eax
js 0x532909
jne 0x5328df
cmp ebx, 0x19
je 0x532909
mov dword [ebp - 0x64], 0
mov ecx, dword [ebp - 0x14]
cmp dword [ebp - 0x2c], 0
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp - 0x28]
lea eax, [ecx + 0x14]
cmove eax, ecx
mov dword [ebp - 0x14], eax
mov ecx, eax
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
push 0
push dword [esi + 0x28]
mov dword [ebp - 0x64], 0
call fcn.00507520
add esp, 8
mov dword [ebp - 0x24], eax
test eax, eax
je 0x5328e6
cmp eax, 0x65
jne 0x536385
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x64], 1
jmp 0x52f2fd
test eax, eax
jg 0x532964
jne 0x53294b
cmp ebx, 0x16
je 0x532964
mov eax, dword [esi + 0x28]
xor ecx, ecx
cmp byte [eax], cl
setne cl
mov dword [ebp - 0x64], ecx
cmp dword [ebp - 0x64], 0
jne 0x52f2fd
jmp 0x5328e6
mov ecx, dword [esi + 0x28]
xor eax, eax
mov dword [ebp - 0x64], 0
and byte [ecx + 1], 0xf1
mov word [ecx + 0x32], ax
cmp byte [ecx], al
jne 0x5329a1
movzx edx, word [ecx + 0x46]
test dx, dx
je 0x5329a1
mov eax, dword [ecx + 0x74]
cmp byte [eax + 8], 0
je 0x5329a1
lea eax, [edx - 1]
mov dword [ebp - 0x24], 0
mov word [ecx + 0x46], ax
jmp 0x5328e6
push ecx
call fcn.004dfb30
add esp, 4
mov dword [ebp - 0x24], eax
test eax, eax
je 0x5328e6
cmp eax, 0x65
jne 0x536385
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x64], 1
jmp 0x52f2fd
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov ecx, dword [eax + ecx*4]
mov eax, edx
mov eax, dword [eax + 8]
shl eax, 3
xor eax, dword [ecx + 8]
and eax, 8
xor dword [ecx + 8], eax
mov ecx, edx
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x60]
cmp dword [eax + ecx*4], 0
je case.0x52f2c5.11
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ecx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
test byte [eax + 8], 8
jne 0x52f82c
jmp 0x532a3a
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x14]
mov eax, dword [edi + 0x60]
mov edx, dword [ebp - 0x28]
mov ecx, dword [esi + 4]
mov ebx, dword [eax + ecx*4]
mov ecx, esi
cmp dword [ecx + 0x10], 0
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
jle 0x532a7e
mov eax, dword [ebx + 0x2c]
lea edi, [ebp - 0x260]
mov dword [ebp - 0x260], eax
mov ax, word [ecx + 0x10]
mov dword [ebp - 0x25c], esi
xor esi, esi
mov word [ebp - 0x258], ax
jmp 0x532ac9
mov eax, 0x4000
test word [esi + 8], ax
je 0x532a9a
push esi
call fcn.00538370
add esp, 4
test eax, eax
jne 0x536458
push dword [ebx + 0x2c]
call fcn.0052e490
mov edi, eax
add esp, 4
mov dword [ebp - 0x44], edi
test edi, edi
je 0x536458
push edi
push dword [esi + 0x10]
push dword [esi + 0xc]
push dword [ebx + 0x2c]
call fcn.00539e60
mov ecx, dword [ebp - 0x14]
add esp, 0x10
mov esi, edi
mov byte [edi + 0xa], 0
cmp byte [ecx], 0x1c
mov dword [ebp - 0x34], 0
jne 0x532b06
movzx edx, word [edi + 8]
xor ecx, ecx
test edx, edx
je 0x532b06
mov eax, dword [edi + 4]
add eax, 8
lea esp, [esp]
test byte [eax], 1
jne 0x532aff
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x532af0
jmp 0x532b06
mov dword [ebp - 0x34], 1
lea eax, [ebp - 0xf8]
push eax
push 0
push 0
push 0
push edi
push dword [ebx + 0x28]
call fcn.00506f00
add esp, 0x18
mov dword [ebp - 0x24], eax
test esi, esi
je 0x532b38
push esi
mov esi, dword [ebp - 0x20]
push esi
call fcn.0050c300
mov eax, dword [ebp - 0x24]
add esp, 8
jmp 0x532b3b
mov esi, dword [ebp - 0x20]
test eax, eax
jne 0x536385
mov eax, dword [ebp - 0xf8]
xor ecx, ecx
mov edi, dword [ebp - 0x14]
test eax, eax
mov dword [ebx + 0x20], eax
sete cl
test eax, eax
setne al
mov byte [ebx + 2], al
mov byte [ebx + 3], 0
mov dword [ebx + 0x1c], 0
cmp byte [edi], 0x1e
jne 0x532b86
test ecx, ecx
jne 0x52f2fd
mov eax, dword [ebp - 0x18]
mov ecx, edi
mov edi, dword [ebp - 0x28]
add ecx, 0x14
jmp 0x52f2ad
cmp dword [ebp - 0x34], 0
jne 0x52f2fd
test ecx, ecx
je 0x52f2fd
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov esi, dword [ebp - 0x14]
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 0x24
lea esi, [edi + eax*8]
jne case.0x52f2c5.32
mov ecx, 0xa
lea edi, [ebp - 0x2b0]
rep movsd dword es:[edi], dword [esi]
mov ax, word [ebp - 0x2a8]
test al, 4
jne 0x532c0d
test al, 8
jne 0x532bef
test al, 2
je 0x532c05
lea eax, [ebp - 0x2b0]
push 1
push eax
call fcn.004dbb90
add esp, 8
jmp 0x532bfe
lea eax, [ebp - 0x2b0]
push eax
call fcn.00537910
add esp, 4
mov ax, word [ebp - 0x2a8]
test al, 4
je 0x52f2fd
mov edi, dword [ebp - 0x2b0]
mov ebx, dword [ebp - 0x2ac]
jmp 0x532c2e
mov esi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*4]
mov edi, dword [edi + eax*8]
mov ebx, dword [ecx + eax*8 + 4]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0xcc], 0
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
lea eax, [ebp - 0xcc]
push eax
push 0
push ebx
push edi
push 0
push dword [esi + 0x28]
call fcn.00506f00
mov dword [esi + 0x40], edi
add esp, 0x18
mov dword [esi + 0x44], ebx
mov byte [esi + 2], 0
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0xcc]
mov dword [esi + 0x1c], 0
mov byte [esi + 3], 0
mov dword [esi + 0x20], eax
test eax, eax
je 0x53242b
mov esi, dword [ebp - 0x14]
cmp dword [esi + 8], 0
jne 0x52f300
push 0x596084
push 0x15ebf
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004d8420
add esp, 0x14
mov eax, 0xb
jmp 0x536385
mov ebx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x1c]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x2400
test word [edx + 8], ax
je 0x532ce7
push edx
call fcn.004f5db0
add esp, 4
mov edx, eax
jmp 0x532cf0
mov eax, 4
mov word [edx + 8], ax
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x10]
mov dword [edx], eax
mov eax, dword [ecx + 0x14]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x60]
mov edi, dword [ebp - 0x28]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x14]
add dword [eax + 0x10], 1
adc dword [eax + 0x14], 0
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov ebx, dword [ebp - 0x14]
xor esi, esi
xor edi, edi
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x90], esi
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x2400
mov dword [ebp - 0x34], edx
test word [edx + 8], ax
je 0x532d67
push edx
call fcn.004f5db0
add esp, 4
mov dword [ebp - 0x34], eax
jmp 0x532d70
mov eax, 4
mov word [edx + 8], ax
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebx + 4]
mov eax, dword [edx + 0x60]
mov ebx, dword [eax + ecx*4]
mov dword [ebp - 0x2c], ebx
test byte [ebx + 8], 2
jne 0x532ded
lea eax, [ebp - 0x90]
push eax
push dword [ebx + 0x28]
call fcn.00506e70
add esp, 8
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x536385
cmp dword [ebp - 0x90], esi
je 0x532db1
lea edi, [eax + 1]
xor esi, esi
jmp 0x532de4
mov esi, dword [ebx + 0x28]
push esi
call fcn.004eefc0
mov edi, dword [esi + 0x20]
add esp, 4
mov esi, dword [esi + 0x24]
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x78], esi
cmp esi, 0x7fffffff
jl 0x532dde
jg 0x532dd8
cmp edi, 0xffffffff
jb 0x532dde
or dword [ebx + 8], 2
jmp 0x532dea
add edi, 1
adc esi, 0
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x7c], edi
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x532e73
mov edx, dword [edx + 0xc8]
test edx, edx
je 0x532e1c
mov eax, dword [edx + 4]
test eax, eax
je 0x532e11
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x532e08
mov eax, dword [edx + 0x10]
lea ecx, [ecx + ecx*4]
lea ebx, [eax + ecx*8]
jmp 0x532e25
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0x28]
lea ebx, [ecx + eax*8]
push ebx
call fcn.00538700
mov eax, dword [ebx]
add esp, 4
mov ecx, dword [ebx + 4]
cmp eax, 0xffffffff
jne 0x532e44
cmp ecx, 0x7fffffff
je 0x532ed7
mov edx, dword [ebp - 0x2c]
test byte [edx + 8], 2
jne 0x532ed7
add eax, 1
adc ecx, 0
cmp esi, ecx
jg 0x532e6b
jl 0x532e61
cmp edi, eax
jae 0x532e6b
mov edi, eax
mov esi, ecx
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x78], esi
mov dword [ebx], edi
mov dword [ebx + 4], esi
mov ebx, dword [ebp - 0x2c]
test byte [ebx + 8], 2
je 0x532ee4
xor ebx, ebx
jmp 0x532e80
lea eax, [ebp - 0x7c]
push eax
push 8
call fcn.004cda60
mov esi, dword [ebp - 0x78]
lea eax, [ebp - 0x90]
mov edi, dword [ebp - 0x7c]
and esi, 0x3fffffff
push eax
mov eax, dword [ebp - 0x2c]
add edi, 1
push 0
adc esi, 0
mov dword [ebp - 0x7c], edi
push esi
push edi
push 0
push dword [eax + 0x28]
mov dword [ebp - 0x78], esi
call fcn.00506f00
add esp, 0x20
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x536385
cmp dword [ebp - 0x90], eax
jne 0x532ee1
inc ebx
cmp ebx, 0x64
jl 0x532e80
mov eax, 0xd
jmp 0x536385
mov ebx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x14]
mov byte [ebx + 3], 0
mov dword [ebx + 0x1c], 0
mov dword [eax], edi
mov edi, dword [ebp - 0x28]
mov dword [eax + 4], esi
mov esi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x44], esi
lea eax, [eax + eax*4]
mov edi, dword [edi + eax*8]
mov dword [ebp - 0x220], edi
mov eax, dword [ecx + eax*8 + 4]
mov dword [ebp - 0x21c], eax
cmp byte [ebx + 1], 0xfa
jne 0x532f65
mov eax, dword [ebp - 0x20]
cmp dword [eax + 0xf0], 0
je 0x532f65
movsx ecx, byte [esi + 1]
mov eax, dword [eax + 0x10]
add ecx, ecx
mov ebx, dword [ebx + 0x10]
mov eax, dword [eax + ecx*8]
mov dword [ebp - 0x34], eax
jmp 0x532f6a
xor ebx, ebx
mov dword [ebp - 0x34], ebx
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 2]
mov ecx, eax
test al, 1
je 0x532f8a
mov eax, dword [ebp - 0x1c]
inc dword [eax + 0x2c]
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 0x220]
movzx ecx, word [eax + 2]
test cl, 0x20
je 0x532f9e
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x28], edi
mov eax, dword [ebp - 0x21c]
mov dword [ecx + 0x2c], eax
mov edi, dword [ebp - 0x28]
mov eax, dword [edi + edx*8 + 0x10]
mov dword [ebp - 0x218], eax
mov eax, dword [edi + edx*8 + 0xc]
mov dword [ebp - 0x20c], eax
mov eax, dword [ebp - 0x14]
test byte [eax + 2], 0x10
je 0x532fc3
mov ecx, dword [esi + 0x20]
jmp 0x532fc5
xor ecx, ecx
mov esi, 0x4000
test word [edi + edx*8 + 8], si
mov esi, dword [ebp - 0x44]
je 0x532fe2
mov eax, dword [edi + edx*8]
mov dword [ebp - 0x208], eax
mov eax, dword [ebp - 0x14]
jmp 0x532fec
mov dword [ebp - 0x208], 0
mov dword [ebp - 0x228], 0
movzx eax, word [eax + 2]
push ecx
and eax, 0xa
push eax
lea eax, [ebp - 0x228]
push eax
push dword [esi + 0x28]
call fcn.005063c0
add esp, 0x10
mov byte [esi + 3], 0
mov dword [ebp - 0x24], eax
mov dword [esi + 0x1c], 0
test eax, eax
jne 0x536385
mov esi, dword [ebp - 0x20]
test ebx, ebx
je 0x52f82f
push dword [ebp - 0x21c]
mov eax, dword [ebp - 0x14]
mov ecx, 0x17
push dword [ebp - 0x220]
push dword [ebx]
test byte [eax + 2], 4
mov eax, 0x12
push dword [ebp - 0x34]
cmovne eax, ecx
push eax
push dword [esi + 0xec]
mov eax, dword [esi + 0xf0]
call eax
mov ecx, dword [ebp - 0x14]
add esp, 0x18
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
cmp byte [edx + 1], 0xfa
mov eax, dword [edx + 8]
mov ecx, dword [edx + 4]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x60]
mov edi, dword [eax + ecx*4]
jne 0x5330d9
cmp dword [esi + 0xf0], 0
je 0x5330d9
movsx ecx, byte [edi + 1]
mov eax, dword [esi + 0x10]
add ecx, ecx
test byte [edx + 2], 2
mov ebx, dword [edx + 0x10]
mov esi, dword [eax + ecx*8]
mov dword [ebp - 0x44], esi
je 0x5330dd
cmp byte [edi + 4], 0
je 0x5330dd
mov esi, dword [edi + 0x28]
push esi
call fcn.004eefc0
mov eax, dword [esi + 0x20]
add esp, 4
mov edx, dword [ebp - 0x14]
mov dword [edi + 0x40], eax
mov eax, dword [esi + 0x24]
mov esi, dword [ebp - 0x44]
mov dword [edi + 0x44], eax
jmp 0x5330dd
xor esi, esi
xor ebx, ebx
movzx eax, byte [edx + 2]
push eax
push dword [edi + 0x28]
call fcn.00505ee0
add esp, 8
mov dword [edi + 0x1c], 0
mov dword [ebp - 0x24], eax
mov dword [edi + 0x20], 0
test eax, eax
jne 0x536385
test byte [ebp - 0x34], 1
je 0x52f829
mov eax, dword [ebp - 0x1c]
inc dword [eax + 0x2c]
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0xf0]
test eax, eax
je 0x52f829
test byte [ebx + 0x24], 0x80
jne 0x52f829
push dword [edi + 0x44]
push dword [edi + 0x40]
push dword [ebx]
push esi
mov esi, dword [ebp - 0x20]
push 9
push dword [esi + 0xec]
call eax
mov ecx, dword [ebp - 0x14]
add esp, 0x18
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x2c]
mov dword [esi + 0x64], eax
add dword [esi + 0x68], eax
mov eax, dword [ebp - 0x18]
mov dword [edx + 0x2c], 0
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov esi, dword [edx + 0x10]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov edi, dword [ecx + 0x28]
mov ebx, dword [ecx + 0x2c]
lea eax, [eax + eax*4]
mov dword [ebp - 0x44], eax
mov eax, dword [edi + 0x20]
mov dword [ebp - 0x34], eax
test eax, eax
jne 0x5331bf
push ebx
call fcn.0052e490
add esp, 4
mov dword [ebp - 0x34], eax
mov dword [edi + 0x20], eax
test eax, eax
je 0x5366fd
mov word [eax + 8], si
lea eax, [ebp - 0xfc]
push eax
push edi
call fcn.0054ac60
mov edi, dword [ebp - 0x34]
push edi
push eax
push dword [ebp - 0xfc]
push ebx
call fcn.00539e60
add esp, 0x18
xor ecx, ecx
test esi, esi
jle 0x533201
mov eax, dword [edi + 4]
add eax, 8
lea esp, [esp]
test byte [eax], 1
jne 0x53531c
inc ecx
add eax, 0x28
cmp ecx, esi
jl 0x5331f0
mov eax, dword [ebp - 0x44]
push 0
push edi
mov edi, dword [ebp - 0x28]
push dword [edi + eax*8 + 0x10]
push dword [edi + eax*8 + 0xc]
call fcn.00539790
xor ecx, ecx
add esp, 0x10
mov dword [ebp - 0x24], ecx
test eax, eax
jne 0x52f2fd
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 8]
mov ecx, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
lea eax, [ebp - 0x100]
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
push dword [eax + 0x28]
call fcn.0054ac60
mov edi, dword [ebp - 0x100]
add esp, 8
mov ebx, eax
cmp dword [esi + 0x18], edi
jge 0x533285
push 0
push edi
push esi
call fcn.005385a0
add esp, 0xc
test eax, eax
jne 0x5366fd
jmp 0x533290
mov eax, dword [esi + 0x14]
mov dword [esi + 0x10], eax
and word [esi + 8], 0x2d
mov dword [esi + 0xc], edi
mov ecx, 0x3e40
mov ax, word [esi + 8]
and ax, cx
push edi
or ax, 0x10
mov word [esi + 8], ax
push ebx
push dword [esi + 0x10]
call fcn.0048d7e0
mov eax, dword [ebp - 0x14]
add esp, 0xc
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp - 0x28]
mov dword [ebp - 0x24], 0
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x14]
mov dword [eax + 0x1c], 0
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x1c]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x2400
test word [esi + 8], ax
je 0x53330f
push esi
call fcn.004f5db0
add esp, 4
mov esi, eax
jmp 0x533318
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov edi, dword [eax + 0x28]
push edi
call fcn.004eefc0
mov ecx, dword [ebp - 0x20]
add esp, 4
mov eax, dword [edi + 0x2c]
cmp eax, dword [ecx + 0x6c]
ja 0x535f97
push esi
push eax
push edi
call fcn.00538540
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x536385
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + 0xc], eax
jne 0x533a2f
mov eax, 0x1000
test word [esi + 8], ax
je 0x533a2f
push esi
call fcn.00538770
add esp, 4
test eax, eax
jne 0x536458
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov esi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x1c]
mov eax, dword [esi + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
lea edi, [eax + ecx*8]
mov eax, 0x2400
test word [edi + 8], ax
je 0x5333c2
push edi
call fcn.004f5db0
mov edx, dword [ebp - 0x1c]
add esp, 4
mov edi, eax
jmp 0x5333cb
mov eax, 4
mov word [edi + 8], ax
mov ecx, dword [esi + 4]
mov eax, dword [edx + 0x60]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 2], 0
je 0x5333f7
mov esi, dword [ebp - 0x20]
mov eax, 1
mov ecx, dword [ebp - 0x14]
mov word [edi + 8], ax
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
cmp byte [esi + 3], 0
je 0x53342e
mov ecx, dword [esi + 0x40]
mov dword [ebp - 0xb4], ecx
mov eax, dword [esi + 0x44]
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0xb0], eax
mov dword [edi], ecx
mov eax, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0x14]
mov dword [edi + 4], eax
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
cmp byte [esi], 2
mov ecx, dword [esi + 0x28]
jne 0x533486
mov esi, dword [ecx]
lea edx, [ebp - 0xb4]
push edx
push ecx
mov eax, dword [esi]
mov eax, dword [eax + 0x30]
call eax
push esi
push dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
call fcn.0053bba0
mov eax, dword [ebp - 0x24]
add esp, 0x10
test eax, eax
jne 0x536385
mov ecx, dword [ebp - 0xb4]
mov esi, dword [ebp - 0x20]
mov dword [edi], ecx
mov eax, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0x14]
mov dword [edi + 4], eax
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
cmp byte [ecx], 0
je 0x5334a1
push esi
call fcn.004efeb0
add esp, 4
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x536385
jmp 0x5334a6
xor ecx, ecx
mov dword [ebp - 0x24], ecx
cmp byte [esi + 2], 0
je 0x5334c9
mov esi, dword [ebp - 0x20]
mov eax, 1
mov ecx, dword [ebp - 0x14]
mov word [edi + 8], ax
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov esi, dword [esi + 0x28]
push esi
call fcn.004eefc0
mov ecx, dword [esi + 0x20]
add esp, 4
mov dword [ebp - 0xb4], ecx
mov eax, dword [esi + 0x24]
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0xb0], eax
mov dword [edi], ecx
mov eax, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0x14]
mov dword [edi + 4], eax
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
mov byte [eax + 2], 1
mov dword [eax + 0x1c], 0
cmp byte [eax], 0
jne 0x52f82f
push dword [eax + 0x28]
call fcn.00505720
mov ecx, dword [ebp - 0x14]
add esp, 4
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0xd0], 0
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 0x28]
cmp dl, 0x81
jne 0x533570
mov dword [esi + 0x20], 0xffffffff
cmp byte [eax], 0
je 0x52f3e9
lea ecx, [ebp - 0xd0]
push ecx
push eax
call fcn.00506e70
mov dword [ebp - 0x24], eax
add esp, 8
cmp dword [ebp - 0x24], 0
mov eax, dword [ebp - 0xd0]
mov byte [esi + 2], al
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
jne 0x53641c
mov esi, dword [ebp - 0x14]
cmp dword [esi + 8], 0
jle 0x52f3e9
test eax, eax
jne 0x52f300
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x28]
push esi
call fcn.004f3410
add esp, 4
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x5335ff
xor ebx, ebx
push esi
mov dword [ebp - 0x94], ebx
call fcn.004f3210
add esp, 4
mov dword [ebp - 0x24], eax
jmp 0x53361c
cmp eax, 0x10
jne 0x533616
mov ebx, 1
xor eax, eax
mov dword [ebp - 0x94], ebx
mov dword [ebp - 0x24], eax
jmp 0x53361c
mov ebx, dword [ebp - 0x94]
test eax, eax
jne 0x536385
test ebx, ebx
jne 0x52f2fd
push esi
call fcn.00507fc0
add esp, 4
test edx, edx
jl 0x52f3e9
jg 0x533647
test eax, eax
jb 0x52f3e9
push edx
push eax
call fcn.0051c760
mov esi, dword [ebp - 0x14]
add esp, 8
cwde
cmp eax, dword [esi + 0xc]
jge 0x52f3e9
mov dword [ebp - 0x94], 1
jmp 0x52f300
mov eax, dword [ebp - 0x1c]
inc dword [eax + 0xac]
jmp 0x53367b
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x14]
mov ebx, 1
mov eax, dword [eax + 0x60]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov esi, dword [edi + 0x28]
cmp byte [edi], bl
jne 0x5336e4
cmp byte [esi + 0x38], 0
mov dword [ebp - 0x24], 0
jne 0x5336bd
cmp dword [esi + 0x24], 0
lea eax, [esi + 0x24]
je 0x53371b
push eax
lea eax, [esi + 0x40]
xor ebx, ebx
push eax
call fcn.0054af70
add esp, 8
mov dword [ebp - 0x24], eax
jmp 0x53371b
push esi
call fcn.0054a3c0
push eax
push esi
call fcn.0054a4f0
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x53371b
push esi
call fcn.0054acc0
add esp, 4
mov dword [ebp - 0x24], eax
xor ebx, ebx
jmp 0x53371b
push esi
call fcn.004f3410
add esp, 4
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x533704
push esi
xor ebx, ebx
call fcn.004f3210
add esp, 4
mov dword [ebp - 0x24], eax
jmp 0x533710
cmp eax, 0x10
jne 0x533710
mov dword [ebp - 0x24], 0
mov byte [edi + 3], 0
mov dword [edi + 0x1c], 0
mov eax, dword [ebp - 0x24]
test eax, eax
jne 0x536385
mov byte [edi + 2], bl
test ebx, ebx
jne 0x52f2fd
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov edi, dword [eax + ecx*4]
mov esi, dword [edi + 0x28]
cmp byte [esi + 0x38], 0
je 0x5337ca
cmp byte [esi + 0x39], 0
je 0x533792
push dword [esi + 0x10]
call fcn.005495b0
add esp, 4
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x533804
mov eax, dword [esi + 0x10]
cmp dword [eax + 0x18], 0
jne 0x533801
mov esi, dword [ebp - 0x20]
mov eax, 0x65
mov dword [ebp - 0x24], eax
jmp 0x533829
lea eax, [ebp - 0xd4]
mov dword [ebp - 0xd4], 0
push eax
push dword [esi + 0x14]
call fcn.00548f30
add esp, 8
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x533804
cmp dword [ebp - 0xd4], eax
je 0x533804
mov esi, dword [ebp - 0x20]
mov eax, 0x65
mov dword [ebp - 0x24], eax
jmp 0x533829
mov ecx, dword [esi + 0x24]
mov eax, dword [ecx + 4]
mov dword [esi + 0x24], eax
mov dword [ecx + 4], 0
cmp dword [esi + 0x28], 0
jne 0x5337ec
push ecx
push dword [ebp - 0x20]
call fcn.0054ab90
add esp, 8
xor ecx, ecx
mov eax, 0x65
cmp dword [esi + 0x24], ecx
mov esi, dword [ebp - 0x20]
cmovne eax, ecx
mov dword [ebp - 0x24], eax
jmp 0x533829
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp - 0x20]
jmp 0x533829
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
push dword [edx + 0xc]
mov edi, dword [eax + ecx*4]
mov eax, dword [edx + 0x10]
push dword [edi + 0x28]
call eax
add esp, 8
mov dword [ebp - 0x24], eax
mov dword [edi + 0x1c], 0
test eax, eax
jne 0x53384d
mov ecx, dword [ebp - 0x1c]
mov byte [edi + 2], al
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 2]
inc dword [ecx + eax*4 + 0xa4]
jmp 0x535b9d
cmp eax, 0x65
jne 0x536385
xor ecx, ecx
mov byte [edi + 2], 1
mov dword [ebp - 0x24], ecx
jmp 0x531c78
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov ecx, dword [edx + 4]
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x60]
mov edi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x14]
test byte [ecx + 2], 1
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
je 0x53388b
inc dword [edx + 0x2c]
mov eax, 0x4000
test word [esi + 8], ax
je 0x5338aa
push esi
call fcn.00538370
add esp, 4
test eax, eax
jne 0x536385
mov ecx, dword [ebp - 0x14]
mov eax, dword [esi + 0xc]
cdq
mov dword [ebp - 0x2d0], eax
mov dword [ebp - 0x2cc], edx
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x2d8], eax
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [ebp - 0x2c4], eax
mov ax, word [ecx + 0x10]
mov word [ebp - 0x2c0], ax
movzx eax, word [ecx + 2]
test al, 0x10
je 0x5338ea
mov ecx, dword [edi + 0x20]
jmp 0x5338ec
xor ecx, ecx
push ecx
and eax, 0xa
push eax
lea eax, [ebp - 0x2d8]
push eax
push dword [edi + 0x28]
call fcn.005063c0
add esp, 0x10
mov dword [ebp - 0x24], eax
mov dword [edi + 0x1c], 0
test eax, eax
jne 0x536385
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov edi, dword [eax + ecx*4]
mov eax, dword [edx + 8]
mov ecx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x4000
test word [esi + 8], ax
je 0x533960
push esi
call fcn.00538370
add esp, 4
test eax, eax
jne 0x536385
push esi
push edi
call fcn.0053ac00
add esp, 8
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x536385
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x28]
mov eax, dword [esi + 0x2c]
mov edi, dword [esi + 0x28]
mov dword [ebp - 0x1f0], eax
mov ax, word [edx + 0xc]
mov word [ebp - 0x1e8], ax
mov byte [ebp - 0x1e6], 0
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x1ec], eax
lea eax, [ebp - 0x104]
push eax
push 0
push 0
push 0
lea eax, [ebp - 0x1f0]
push eax
push edi
call fcn.00506f00
add esp, 0x18
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x536385
cmp dword [ebp - 0x104], eax
jne 0x533a13
push 4
push edi
call fcn.00505ee0
add esp, 8
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x536385
mov ecx, dword [ebp - 0x14]
jmp 0x533a21
mov ecx, dword [ebp - 0x14]
cmp word [ecx + 2], 0
jne 0x5362eb
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov ebx, dword [eax + ecx*4]
mov dword [ebp - 0x44], ebx
mov eax, dword [ebx + 0x28]
cmp byte [eax], 0
je 0x533a70
push ebx
call fcn.004efeb0
add esp, 4
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x536385
jmp 0x533a75
xor ecx, ecx
mov dword [ebp - 0x24], ecx
cmp byte [ebx + 2], 0
jne 0x533c5d
mov esi, dword [ebx + 0x28]
push esi
call fcn.004eefc0
mov eax, dword [esi + 0x2c]
xor ecx, ecx
mov word [ebp - 0x248], cx
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x230], ecx
lea ecx, [ebp - 0x250]
push ecx
push eax
push esi
mov dword [ebp - 0x238], 0
call fcn.00538540
add esp, 0x10
test eax, eax
jne 0x536385
mov ebx, dword [ebp - 0x240]
movzx esi, byte [ebx]
mov dword [ebp - 0xd8], esi
cmp esi, 0x80
jb 0x533aed
lea eax, [ebp - 0xd8]
push eax
push ebx
call fcn.005188c0
mov esi, dword [ebp - 0xd8]
add esp, 8
cmp esi, 3
jb 0x5362f5
mov edi, dword [ebp - 0x244]
cmp esi, edi
ja 0x5362f5
lea eax, [ebx - 1]
add eax, esi
movzx ecx, byte [eax]
mov dword [ebp - 0xdc], ecx
cmp ecx, 0x80
jb 0x533b30
lea ecx, [ebp - 0xdc]
push ecx
push eax
call fcn.005188c0
mov ecx, dword [ebp - 0xdc]
add esp, 8
lea eax, [ecx - 1]
cmp eax, 8
ja 0x5362f5
cmp ecx, 7
je 0x5362f5
movzx edx, byte [ecx + 0x58cc08]
lea eax, [edx + esi]
cmp edi, eax
jb 0x5362f5
lea eax, [ebp - 0x300]
sub edi, edx
push eax
push ecx
add edi, ebx
push edi
call fcn.0053a310
add esp, 0xc
test dword [ebp - 0x248], 0x2400
jne 0x533b81
cmp dword [ebp - 0x238], 0
je 0x533b90
lea eax, [ebp - 0x250]
push eax
call fcn.00548b50
add esp, 4
mov esi, dword [ebp - 0x14]
mov dword [ebp - 0x24], 0
cmp byte [esi], 0x85
jne 0x533be5
mov ecx, dword [esi + 0xc]
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x28]
mov eax, dword [eax + 0x60]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x300]
mov byte [ecx + 2], 0
mov dword [ecx + 0x40], eax
mov eax, dword [ebp - 0x2fc]
mov dword [ecx + 0x44], eax
mov byte [ecx + 3], 1
mov eax, dword [esi + 0x10]
mov esi, dword [ebp - 0x20]
mov dword [ecx + 0x18], eax
mov eax, dword [ebp - 0x44]
mov dword [ecx + 0x24], eax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov eax, dword [esi + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x2400
test word [ecx + 8], ax
je 0x533c2f
push ecx
call fcn.004f5db0
mov esi, dword [ebp - 0x20]
mov ecx, eax
mov eax, dword [ebp - 0x300]
add esp, 4
mov edi, dword [ebp - 0x28]
mov dword [ecx], eax
mov eax, dword [ebp - 0x2fc]
mov dword [ecx + 4], eax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov esi, dword [ebp - 0x20]
mov eax, 4
mov edi, dword [ebp - 0x28]
mov word [ecx + 8], ax
mov eax, dword [ebp - 0x300]
mov dword [ecx], eax
mov eax, dword [ebp - 0x2fc]
mov dword [ecx + 4], eax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov eax, dword [ebp - 0x14]
mov ecx, 0x2400
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
test word [edi + eax*8 + 8], cx
lea eax, [edi + eax*8]
je 0x533c8c
push eax
call fcn.00548b90
mov ecx, dword [ebp - 0x14]
add esp, 4
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov ecx, 1
mov word [eax + 8], cx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 3], 0
je 0x52f82f
push eax
call fcn.00537290
add esp, 4
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x536385
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov esi, dword [ebp - 0x14]
cmp dl, 0x28
mov eax, dword [ebp - 0x1c]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x60]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x2c]
mov dword [ebp - 0x200], eax
mov ax, word [esi + 0x10]
mov word [ebp - 0x1f8], ax
sbb al, al
mov byte [ebp - 0x1f6], al
mov eax, dword [esi + 0xc]
xor esi, esi
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov edi, dword [ecx + 0x28]
push edi
mov dword [ebp - 0x1fc], eax
call fcn.004eefc0
mov edx, dword [edi + 0x2c]
xor eax, eax
add esp, 4
mov ecx, edx
add ecx, 0xffffffff
adc eax, 0xffffffff
test eax, eax
ja 0x533dc6
jb 0x533d49
cmp ecx, 0x7ffffffe
ja 0x533dc6
xor eax, eax
mov dword [ebp - 0x270], esi
mov word [ebp - 0x280], ax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x268], eax
lea eax, [ebp - 0x288]
push eax
push edx
push edi
call fcn.00538540
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0x24], ecx
test ecx, ecx
jne 0x533ded
push eax
lea eax, [ebp - 0x200]
push eax
push dword [ebp - 0x278]
push dword [ebp - 0x27c]
call fcn.00539790
add esp, 0x10
mov esi, eax
test dword [ebp - 0x280], 0x2400
jne 0x533dae
cmp dword [ebp - 0x270], 0
je 0x533dbd
lea eax, [ebp - 0x288]
push eax
call fcn.00548b50
add esp, 4
mov dword [ebp - 0x24], 0
jmp 0x533ded
push 0x596084
push 0x1425f
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
xor esi, esi
call fcn.004d8420
add esp, 0x14
mov dword [ebp - 0x24], 0xb
mov eax, dword [ebp - 0x14]
mov cl, byte [eax]
mov eax, dword [ebp - 0x24]
and cl, 1
test eax, eax
jne 0x536385
lea eax, [esi + 1]
neg esi
test cl, cl
cmovne esi, eax
test esi, esi
jg 0x52f2fd
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x58]
lea edi, [eax + ecx*8]
mov eax, 0x2400
test word [edi + 8], ax
je 0x533e4e
push edi
call fcn.004f5db0
add esp, 4
mov edi, eax
mov eax, 1
mov word [edi + 8], ax
mov eax, dword [esi + 0xc0]
inc eax
cmp dword [esi + 0xb4], eax
jg 0x53633e
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0xb8], 0
mov eax, dword [ecx + 0xc]
mov ebx, dword [ecx + 4]
mov ecx, eax
shl ecx, 4
mov dword [ebp - 0x34], eax
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x44], ecx
mov esi, dword [eax + ecx + 4]
cmp byte [esi + 9], 0
je 0x533ea7
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x533ea7
push esi
call fcn.004df2d0
add esp, 4
lea eax, [ebp - 0xb8]
push eax
push ebx
push esi
call fcn.004debd0
add esp, 0xc
mov dword [ebp - 0x24], eax
cmp byte [esi + 9], 0
je 0x533ed0
add dword [esi + 0xc], 0xffffffff
jne 0x533ed0
push esi
call fcn.005464e0
add esp, 4
mov esi, dword [ebp - 0xb8]
mov eax, 4
mov word [edi + 8], ax
mov eax, esi
cdq
mov dword [edi], eax
mov eax, dword [ebp - 0x24]
mov dword [edi + 4], edx
test eax, eax
jne 0x536385
test esi, esi
je 0x52f829
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 0x44]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x20]
mov ebx, dword [eax + 0x10]
mov ecx, dword [ebx + edi + 0xc]
mov eax, dword [ecx + 0x10]
test eax, eax
je 0x533f29
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x1c], esi
jne 0x533f1f
mov dword [ecx + 0x1c], edx
mov eax, dword [eax]
test eax, eax
jne 0x533f14
mov ecx, dword [ebx + edi + 0xc]
mov eax, dword [ecx + 0x20]
test eax, eax
je 0x533f41
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x2c], esi
jne 0x533f3b
mov dword [ecx + 0x2c], edx
mov eax, dword [eax]
test eax, eax
jne 0x533f30
mov cl, byte [ebp - 0x34]
mov esi, dword [ebp - 0x20]
inc cl
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
mov byte [ebp - 0x65], cl
mov ecx, dword [ebp - 0x14]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0xa0]
mov dword [ebp - 0xa0], 0
xor ecx, ecx
cmp dword [edx + 0xc], ecx
cmove eax, ecx
mov ecx, dword [edx + 8]
push eax
mov eax, dword [esi + 0x10]
add ecx, ecx
push dword [edx + 4]
push dword [eax + ecx*8 + 4]
call fcn.005057b0
mov ecx, dword [ebp - 0x14]
add esp, 0xc
mov dword [ebp - 0x24], eax
cmp dword [ecx + 0xc], 0
je 0x533fc9
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xa0]
add dword [ecx + 0x2c], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xc]
test eax, eax
jle 0x533fc3
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xa0]
cdq
add dword [edi + ecx*8], eax
adc dword [edi + ecx*8 + 4], edx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
test eax, eax
jne 0x536385
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
cmp byte [eax], 1
jne 0x53400a
push dword [eax + 0x28]
push esi
call fcn.0053a8f0
mov ecx, dword [ebp - 0x14]
add esp, 8
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov eax, dword [eax + 0x28]
push 0
push dword [eax + 0x40]
push dword [eax + 8]
call fcn.005057b0
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x536385
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x2400
test word [esi + 8], ax
je 0x534063
push esi
call fcn.004f5db0
mov edx, dword [ebp - 0x14]
add esp, 4
mov esi, eax
jmp 0x53406c
mov eax, 4
mov word [esi + 8], ax
mov ecx, dword [ebp - 0x20]
mov eax, dword [edx + 4]
push dword [edx + 0xc]
shl eax, 4
add eax, dword [ecx + 0x10]
lea ecx, [ebp - 0x9c]
push ecx
mov dword [ebp - 0x9c], 0
push dword [eax + 4]
call fcn.00505e20
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x536385
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0x14]
cdq
mov dword [esi], eax
mov eax, dword [ebp - 0x18]
mov dword [esi + 4], edx
mov esi, dword [ebp - 0x20]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
inc byte [esi + 0x5a]
push 0
push 0
push 0
push dword [edx + 0x10]
push esi
call fcn.004cbc40
dec byte [esi + 0x5a]
add esp, 0x14
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x536385
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
cmp dword [edx + 0x10], 0
mov esi, dword [edx + 4]
jne 0x534141
mov ebx, dword [ebp - 0x20]
mov ecx, esi
add ecx, ecx
mov eax, dword [ebx + 0x10]
push dword [eax + ecx*8 + 0xc]
call fcn.00526030
mov eax, dword [ebp - 0x1c]
and dword [ebx + 0x18], 0xffffffef
add eax, 0x7c
push 1
push eax
push esi
mov esi, ebx
push esi
call fcn.00519760
mov ecx, dword [ebp - 0x1c]
add esp, 0x14
or dword [esi + 0x18], 1
mov dword [ebp - 0x24], eax
and dword [ecx + 0x98], 0xfffffffc
jmp 0x53421c
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1b0], esi
add eax, 0x7c
mov dword [ebp - 0x1b8], ecx
add esi, esi
mov dword [ebp - 0x1b4], eax
mov dword [ebp - 0x1a8], 0
push dword [edx + 0x10]
mov eax, dword [ecx + 0x10]
push str.sqlite_master
push dword [eax + esi*8]
push str.SELECTFROM__w_._s_WHERE__s_ORDER_BY_rowid
push ecx
call fcn.0051c900
mov esi, eax
add esp, 0x14
test esi, esi
je 0x536352
mov eax, dword [ebp - 0x20]
lea ecx, [ebp - 0x1b8]
push 0
push ecx
push fcn.00519390
mov byte [eax + 0xa5], 1
push esi
push eax
mov dword [ebp - 0x1ac], 0
mov dword [ebp - 0x1a4], 0
call fcn.004cbc40
add esp, 0x14
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x534205
mov eax, dword [ebp - 0x1ac]
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x534205
cmp dword [ebp - 0x1a4], eax
jne 0x534205
push 0x596084
push 0x1646e
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004d8420
add esp, 0x14
mov dword [ebp - 0x24], 0xb
push esi
mov esi, dword [ebp - 0x20]
push esi
call fcn.0050c300
mov eax, dword [ebp - 0x24]
add esp, 8
mov byte [esi + 0xa5], 0
test eax, eax
jne 0x536359
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
push dword [edx + 4]
push esi
call fcn.00503630
add esp, 8
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x536385
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
push 0
mov eax, dword [edx + 4]
push dword [edx + 0x10]
shl eax, 4
add eax, dword [esi + 0x10]
mov eax, dword [eax + 0xc]
add eax, 8
push eax
call fcn.00518b50
add esp, 0xc
test eax, eax
je 0x534297
cmp dword [esi + 0x1f8], 0
jne 0x53428d
add dword [eax + 0x20], 0xffffffff
jne 0x534297
push eax
push esi
call fcn.004e5bc0
add esp, 8
or dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov eax, dword [esi + 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.00518b50
mov edx, eax
add esp, 0xc
test edx, edx
je 0x534297
mov esi, dword [edx + 0xc]
mov ecx, dword [esi + 8]
cmp ecx, edx
jne 0x5342e1
mov eax, dword [edx + 0x14]
mov dword [esi + 8], eax
jmp 0x5342fa
test ecx, ecx
je 0x5342fa
mov eax, dword [ecx + 0x14]
cmp eax, edx
je 0x5342f4
mov ecx, eax
test ecx, ecx
jne 0x5342e5
jmp 0x5342fa
mov eax, dword [edx + 0x14]
mov dword [ecx + 0x14], eax
mov esi, dword [ebp - 0x20]
push edx
push esi
call fcn.00515530
mov ecx, dword [ebp - 0x14]
add esp, 8
or dword [esi + 0x18], 1
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov eax, dword [esi + 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.00518b50
mov esi, eax
add esp, 0xc
test esi, esi
je 0x52f3e9
mov eax, dword [esi + 0x18]
cmp dword [esi + 0x14], eax
jne 0x534384
push 0
push dword [esi + 4]
add eax, 8
push eax
call fcn.004ea700
add esp, 0xc
mov edx, dword [eax + 8]
test edx, edx
je 0x534384
mov eax, dword [edx + 0x44]
add edx, 0x44
test eax, eax
je 0x534384
lea ecx, [ecx]
cmp eax, esi
je 0x53437f
lea edx, [eax + 0x20]
mov eax, dword [edx]
test eax, eax
jne 0x534370
jmp 0x534384
mov eax, dword [eax + 0x20]
mov dword [edx], eax
push esi
mov esi, dword [ebp - 0x20]
push esi
call fcn.0050d270
mov ecx, dword [ebp - 0x14]
add esp, 8
or dword [esi + 0x18], 1
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
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, [ebp - 0x108]
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]
mov edx, dword [ebp - 0x20]
add ecx, ecx
push eax
mov eax, dword [edx + 0x10]
push dword [eax + ecx*8 + 4]
push edx
call fcn.005067c0
mov ebx, eax
add esp, 0x18
mov eax, 0x2400
test word [esi + 8], ax
je 0x5343ff
push esi
call fcn.00548b90
add esp, 4
jmp 0x534408
mov eax, 1
mov word [esi + 8], ax
mov eax, dword [ebp - 0x108]
test eax, eax
je 0x534439
test ebx, ebx
je 0x536458
mov ecx, dword [ebp - 0x28]
dec eax
push fcn.004cd940
push 1
cdq
sub dword [ecx + edi*8], eax
push 0xffffffffffffffff
sbb dword [ecx + edi*8 + 4], edx
push ebx
push esi
call fcn.00538af0
add esp, 0x14
test byte [esi + 8], 2
je 0x531c75
mov al, byte [ebp - 0x5c]
cmp byte [esi + 0xa], al
je 0x531c75
push dword [ebp - 0x88]
push esi
call fcn.00538f10
add esp, 8
jmp 0x531c75
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 0x10
lea esi, [edi + eax*8]
mov eax, dword [edx + 8]
lea edi, [eax + eax*4]
jne 0x53448d
push esi
call fcn.00538a10
add esp, 4
test eax, eax
jne 0x536458
mov eax, dword [ebp - 0x28]
push dword [eax + edi*8 + 4]
push dword [eax + edi*8]
push dword [esi + 0x10]
call fcn.00524f50
mov esi, dword [ebp - 0x20]
add esp, 0xc
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
movzx eax, word [edi + 8]
mov ecx, eax
test al, 0x10
je 0x534541
mov esi, dword [edi + 0x10]
movzx ecx, word [esi + 0x1a]
test cl, 2
jne 0x5344fc
mov eax, ecx
test cl, 1
jne 0x5344f5
push dword [esi + 8]
call fcn.004ff3e0
mov dword [esi + 8], eax
add esp, 4
movzx eax, word [esi + 0x1a]
or eax, 3
mov word [esi + 0x1a], ax
mov eax, dword [esi + 8]
test eax, eax
je 0x53453d
mov edi, dword [eax]
mov ebx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esi + 8], eax
test eax, eax
jne 0x53451b
push esi
call fcn.00524e20
add esp, 4
mov eax, dword [ebp - 0x14]
push ebx
push edi
mov edi, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
push eax
call fcn.005389a0
mov esi, dword [ebp - 0x20]
add esp, 0xc
jmp 0x531c7b
movzx ecx, word [edi + 8]
test ecx, 0x2400
je 0x534557
push edi
call fcn.00548b90
add esp, 4
jmp 0x535b9d
mov eax, 1
mov word [edi + 8], ax
jmp 0x535b9d
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0x10]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 0x10
lea esi, [edi + eax*8]
mov eax, dword [edx + 0xc]
lea edi, [eax + eax*4]
jne 0x534592
push esi
call fcn.00538a10
add esp, 4
test eax, eax
jne 0x536458
test ebx, ebx
je 0x5345b6
mov eax, dword [ebp - 0x28]
push dword [eax + edi*8 + 4]
push dword [eax + edi*8]
push ebx
push dword [esi + 0x10]
call fcn.00524fe0
add esp, 0x10
test eax, eax
jne 0x52f2fd
test ebx, ebx
js 0x52f829
jmp 0x53448d
mov esi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x1c]
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 0x10]
mov dword [ebp - 0x44], edi
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x34], esi
cmp word [eax + 2], 0
je 0x534603
mov eax, dword [edx + 0xc8]
mov ecx, dword [edi + 0x14]
test eax, eax
je 0x534603
cmp dword [eax + 0x1c], ecx
je 0x52f829
mov eax, dword [eax + 4]
test eax, eax
jne 0x5345f3
mov ecx, dword [ebp - 0x20]
mov eax, dword [edx + 0xd0]
cmp eax, dword [ecx + 0x94]
jge 0x536372
test byte [esi + 8], 0x10
jne 0x53474c
mov ecx, dword [edi + 0xc]
mov eax, dword [edi + 8]
add eax, ecx
test ecx, ecx
lea ebx, [eax + 1]
cmovne ebx, eax
lea eax, [ebx + ebx*4]
lea ecx, [ecx + eax*2]
mov eax, dword [edi + 4]
add eax, 7
mov eax, eax
test eax, eax
jns 0x534647
add eax, 7
sar eax, 3
lea eax, [eax + ecx*4]
lea edi, [eax + 0x50]
cdq
add eax, 0x50
adc edx, 0
push edx
push eax
push dword [ebp - 0x20]
call fcn.0050c410
mov esi, eax
add esp, 0xc
test esi, esi
je 0x536458
push edi
push 0
push esi
call fcn.0048e2e0
add esp, 0xc
test esi, esi
je 0x536458
mov eax, dword [ebp - 0x34]
mov ecx, 0x2400
test word [eax + 8], cx
jne 0x534696
cmp dword [eax + 0x18], 0
je 0x5346a2
push eax
call fcn.00548b50
mov eax, dword [ebp - 0x34]
add esp, 4
mov ecx, 0x410
mov word [eax + 8], cx
mov dword [eax + 0x10], esi
mov dword [eax + 0xc], edi
mov edi, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x14]
sub ecx, dword [ebp - 0x54]
mov dword [eax + 0x24], 0x537300
mov eax, dword [ebp - 0x1c]
mov dword [esi], eax
mov dword [esi + 0x3c], ebx
mov eax, dword [edi + 0xc]
mov dword [esi + 0x40], eax
mov eax, 0x66666667
imul ecx
mov ecx, dword [ebp - 0x1c]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x30], eax
mov eax, dword [ecx + 0x58]
mov dword [esi + 0x10], eax
mov eax, dword [ecx + 0x18]
mov dword [esi + 0x38], eax
mov eax, dword [ecx + 0x60]
mov dword [esi + 0x14], eax
mov eax, dword [ecx + 0x1c]
mov dword [esi + 0x2c], eax
mov eax, dword [ecx + 0x68]
mov dword [esi + 8], eax
mov eax, dword [ecx + 0x6c]
mov dword [esi + 0x34], eax
mov eax, dword [edi + 0x14]
mov dword [esi + 0x1c], eax
lea eax, [ebx + 2]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
lea eax, [esi + 0x50]
cmp eax, ecx
je 0x53473e
mov edx, dword [ebp - 0x20]
mov ebx, 0x80
jmp 0x534730
mov word [eax + 8], bx
mov dword [eax + 0x20], edx
add eax, 0x28
cmp eax, ecx
jne 0x534730
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
mov eax, dword [edx + 0xd0]
jmp 0x53474f
mov esi, dword [esi + 0x10]
inc eax
lea ebx, [esi + 0x50]
mov dword [edx + 0xd0], eax
mov eax, dword [edx + 0xc8]
mov dword [esi + 4], eax
mov eax, dword [ecx + 0x28]
mov dword [esi + 0x20], eax
mov eax, dword [ecx + 0x2c]
mov ecx, dword [ebp - 0x1c]
mov dword [esi + 0x24], eax
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x28], ebx
mov eax, dword [ecx + 0x2c]
mov dword [esi + 0x44], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x64]
mov dword [esi + 0x48], eax
mov eax, dword [ecx + 0xdc]
mov dword [esi + 0x28], eax
mov dword [ecx + 0xdc], 0
mov dword [ecx + 0x2c], 0
mov dword [ecx + 0xc8], esi
mov dword [ecx + 0x58], ebx
mov ecx, dword [esi + 0x3c]
mov dword [edx + 0x18], ecx
movzx eax, word [esi + 0x40]
mov dword [edx + 0x1c], eax
lea eax, [ecx + ecx*4]
lea ecx, [ebx + eax*8]
mov dword [edx + 0x60], ecx
mov eax, dword [edi + 0xc]
lea ecx, [ecx + eax*4]
mov dword [esi + 0x18], ecx
mov eax, dword [edi + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
push 0
push ecx
call fcn.0048e2e0
mov edx, dword [edi]
add esp, 0xc
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x54], edx
lea esi, [edx - 0x14]
mov dword [ecx + 0x68], edx
mov eax, dword [edi + 4]
mov edi, ebx
mov dword [ebp - 0x14], esi
mov esi, dword [ebp - 0x20]
mov dword [ecx + 0x6c], eax
jmp 0x531c7e
mov edx, dword [ebp - 0x14]
mov ebx, 0x2400
mov edi, dword [ebp - 0x1c]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
test word [eax + ecx*8 + 8], bx
lea esi, [eax + ecx*8]
je 0x53482e
push esi
call fcn.004f5db0
add esp, 4
mov esi, eax
jmp 0x534837
mov eax, 4
mov word [esi + 8], ax
mov edx, dword [edi + 0xc8]
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 [ebp - 0x14]
add eax, dword [ecx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
lea ecx, [eax + ecx*8]
test word [esi + 8], bx
je 0x534870
push 0x1000
push ecx
push esi
call fcn.00547a50
jmp 0x53449f
mov eax, dword [ecx]
mov edi, dword [ebp - 0x28]
mov dword [esi], eax
mov eax, dword [ecx + 4]
mov dword [esi + 4], eax
mov eax, dword [ecx + 8]
mov dword [esi + 8], eax
mov eax, dword [ecx + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [ecx + 0x10]
mov dword [esi + 0x10], eax
mov eax, 0x800
test word [ecx + 8], ax
jne 0x52f3e9
mov ax, word [esi + 8]
mov ecx, 0xf3ff
and ax, cx
mov ecx, 0x1000
or ax, cx
mov ecx, dword [ebp - 0x14]
mov word [esi + 8], ax
mov esi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov eax, dword [esi + 0x20]
and eax, 0x80000
or eax, 0
mov eax, dword [ebp - 0x14]
je 0x5348f5
mov eax, dword [eax + 8]
mov ecx, dword [ebp - 0x14]
cdq
add dword [esi + 0x1f0], eax
mov eax, dword [ebp - 0x18]
adc dword [esi + 0x1f4], edx
add ecx, 0x14
jmp 0x52f2ad
cmp dword [eax + 4], 0
mov eax, dword [eax + 8]
cdq
je 0x534919
add dword [esi + 0x1e8], eax
mov ecx, dword [ebp - 0x14]
adc dword [esi + 0x1ec], edx
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov ecx, dword [ebp - 0x1c]
add dword [ecx + 0x40], eax
mov eax, dword [ebp - 0x18]
adc dword [ecx + 0x44], edx
mov ecx, dword [ebp - 0x14]
add ecx, 0x14
jmp 0x52f2ad
cmp dword [ecx + 4], 0
je 0x534965
mov eax, dword [esi + 0x1e8]
or eax, dword [esi + 0x1ec]
jne 0x52f832
mov eax, dword [esi + 0x1f0]
or eax, dword [esi + 0x1f4]
je 0x52f2fd
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x40]
or eax, dword [edx + 0x44]
jmp 0x534942
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + 0xc8]
test edx, edx
je 0x53499e
mov eax, dword [edx + 4]
test eax, eax
je 0x53498d
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x534984
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
lea edi, [eax + ecx*8]
jmp 0x5349aa
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
push edi
call fcn.00538700
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
push esi
call fcn.00538700
mov ecx, dword [esi + 4]
add esp, 8
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x52f829
jl 0x5349e0
cmp dword [edi], eax
jae 0x52f829
mov esi, dword [ebp - 0x20]
mov dword [edi], eax
mov eax, dword [ebp - 0x18]
mov dword [edi + 4], ecx
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
add ecx, 0x14
jmp 0x52f2ad
mov esi, dword [ebp - 0x14]
mov eax, dword [esi + 4]
lea esi, [eax + eax*4]
mov ecx, dword [edi + esi*8]
mov edi, dword [edi + esi*8 + 4]
test edi, edi
jl 0x52f829
jg 0x534a1b
test ecx, ecx
je 0x52f829
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xc]
cdq
sub ecx, eax
mov eax, dword [ebp - 0x28]
sbb edi, edx
mov dword [eax + esi*8], ecx
mov dword [eax + esi*8 + 4], edi
jmp 0x52f2fd
mov edx, dword [ebp - 0x14]
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 [ebp - 0x1c]
mov eax, dword [eax + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x2400
test word [esi + 8], ax
je 0x534a6b
push esi
call fcn.004f5db0
add esp, 4
mov esi, eax
jmp 0x534a74
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + edi*8]
mov eax, dword [eax + edi*8 + 4]
mov dword [ebp - 0xec], ecx
mov dword [ebp - 0xe8], eax
test eax, eax
jl 0x534ae3
jg 0x534a94
test ecx, ecx
je 0x534ae3
mov edi, dword [ebp - 0x28]
mov ecx, dword [edi + ebx*8 + 4]
mov eax, dword [edi + ebx*8]
test ecx, ecx
jl 0x534aa8
jg 0x534aac
test eax, eax
jne 0x534aac
xor eax, eax
xor ecx, ecx
push ecx
push eax
lea eax, [ebp - 0xec]
push eax
call fcn.00502590
add esp, 0xc
test eax, eax
jne 0x534ae6
mov eax, dword [ebp - 0xec]
mov ecx, dword [ebp - 0x14]
mov dword [esi], eax
mov eax, dword [ebp - 0xe8]
mov dword [esi + 4], eax
mov esi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov dword [esi], 0xffffffff
mov dword [esi + 4], 0xffffffff
mov esi, dword [ebp - 0x20]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 4]
lea esi, [eax + eax*4]
mov ecx, dword [edi + esi*8]
mov eax, ecx
mov edx, dword [edi + esi*8 + 4]
or eax, edx
je 0x52f3e9
test edx, edx
jl 0x52f2fd
jg 0x534b30
test ecx, ecx
je 0x52f2fd
sub ecx, 1
mov dword [edi + esi*8], ecx
sbb edx, 0
jmp 0x52f2f9
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 4]
lea edx, [eax + eax*4]
mov ecx, dword [edi + edx*8 + 4]
mov eax, dword [edi + edx*8]
cmp ecx, 0x80000000
jl 0x534b69
jg 0x534b5c
test eax, eax
je 0x534b69
sub eax, 1
mov dword [edi + edx*8], eax
sbb ecx, 0
mov dword [edi + edx*8 + 4], ecx
or eax, ecx
je 0x52f2fd
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
push 0
movzx ebx, word [edx + 2]
lea eax, [ebx*4 + 0x44]
push eax
push esi
call fcn.0050c410
mov esi, eax
add esp, 0xc
test esi, esi
je 0x536458
mov dword [esi + 8], 0
lea ecx, [ebx + 7]
lea ecx, [esi + ecx*4]
mov eax, 1
mov dword [esi], ecx
mov word [ecx + 8], ax
mov eax, dword [ebp - 0x20]
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x18], 0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0x10]
sub ecx, dword [ebp - 0x54]
mov dword [esi + 4], eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x14]
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0x1c]
mov dword [esi + 0xc], eax
mov byte [esi + 0x18], 0
mov dword [esi + 0x14], 0
mov byte [esi + 0x19], bl
mov byte [edx + 1], 0xf0
mov dword [edx + 0x10], esi
mov byte [edx], 0x9b
jmp 0x534c0e
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0xc]
mov esi, dword [edx + 0x10]
mov ebx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov dword [ebp - 0x44], edi
cmp dword [esi + 8], edi
je 0x534c59
mov dword [esi + 8], edi
movzx ecx, byte [esi + 0x19]
sub ecx, 1
js 0x534c59
mov edi, dword [ebp - 0x14]
lea edx, [ecx + 7]
lea edx, [esi + edx*4]
lea ebx, [ebx]
mov eax, dword [edi + 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 0x534c40
mov edi, dword [ebp - 0x44]
inc dword [edi + 0xc]
lea eax, [esi + 0x1c]
mov edi, dword [ebp - 0x14]
movzx edx, byte [esi + 0x19]
mov ecx, dword [esi + 4]
push eax
cmp dword [edi + 4], 0
push edx
push esi
je 0x534c77
mov eax, dword [ecx + 0x1c]
jmp 0x534c7a
mov eax, dword [ecx + 0x10]
call eax
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x52f829
jle 0x534cde
mov ecx, dword [esi]
test ecx, ecx
jne 0x534c96
xor eax, eax
jmp 0x534cc7
movzx edx, word [ecx + 8]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x534cb3
cmp byte [ecx + 0xa], 1
jne 0x534cb3
mov eax, dword [ecx + 0x10]
jmp 0x534cc7
test dl, 1
je 0x534cbc
xor eax, eax
jmp 0x534cc7
push 1
push ecx
call fcn.00547760
add esp, 8
push eax
push 0x58a8b8
push dword [ebp - 0x1c]
call fcn.0052f180
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [ebp - 0x24], eax
cmp byte [esi + 0x18], 0
je 0x534d29
mov eax, dword [ebp - 0x14]
mov eax, dword [eax - 0x10]
test eax, eax
je 0x534d25
lea eax, [eax + eax*4]
mov ecx, 0x2400
test word [ebx + eax*8 + 8], cx
lea eax, [ebx + eax*8]
je 0x534d0f
push 0
push 1
push eax
call fcn.00549e10
add esp, 0xc
jmp 0x534d25
mov dword [eax], 1
mov ecx, 4
mov dword [eax + 4], 0
mov word [eax + 8], cx
mov byte [esi + 0x18], 0
mov eax, dword [esi]
mov ecx, 0x2400
test word [eax + 8], cx
jne 0x534d3c
cmp dword [eax + 0x18], 0
je 0x534d47
push eax
call fcn.00548b50
mov eax, dword [esi]
add esp, 4
mov ecx, 1
mov word [eax + 8], cx
mov eax, dword [ebp - 0x24]
mov dword [esi + 0x14], 0
test eax, eax
jne 0x536385
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
mov eax, dword [edx + 0xc]
test eax, eax
je 0x534e1f
mov ebx, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
xor eax, eax
mov dword [ebp - 0x188], eax
mov dword [ebp - 0x184], eax
mov dword [ebp - 0x180], eax
mov dword [ebp - 0x17c], eax
mov dword [ebp - 0x178], eax
mov dword [ebp - 0x174], eax
mov dword [ebp - 0x170], eax
mov dword [ebp - 0x16c], eax
mov eax, 0x2400
test word [edi + 8], ax
je 0x534dde
push edi
call fcn.00548b90
add esp, 4
jmp 0x534de7
mov eax, 1
mov word [edi + 8], ax
lea eax, [ebp - 0x188]
mov dword [ebp - 0x188], edi
mov dword [ebp - 0x180], esi
mov dword [ebp - 0x184], ebx
push eax
mov eax, dword [ebx + 0x18]
call eax
mov eax, dword [ebp - 0x14]
add esp, 4
mov edi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x174]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
jmp 0x534e2d
push dword [edx + 0x10]
push esi
call fcn.005383d0
add esp, 8
mov ecx, eax
mov dword [ebp - 0x24], ecx
test ecx, ecx
jne 0x536405
movzx ecx, word [esi + 8]
mov eax, ecx
test cl, 2
je 0x534e5e
mov cl, byte [ebp - 0x5c]
cmp byte [esi + 0xa], cl
je 0x534e5e
push dword [ebp - 0x88]
push esi
call fcn.00538f10
movzx eax, word [esi + 8]
add esp, 8
test al, 0x12
je 0x52f3e9
mov ecx, dword [esi + 0xc]
test eax, 0x4000
je 0x534e72
add ecx, dword [esi]
mov eax, dword [esi + 0x20]
cmp ecx, dword [eax + 0x6c]
jg 0x535f97
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0xc]
mov dword [ebp - 0x10], 0
push eax
push dword [edx + 8]
mov dword [ebp - 8], 0xffffffff
push dword [edx + 4]
mov dword [ebp - 0xc], 0xffffffff
push esi
call fcn.00508920
add esp, 0x14
mov dword [ebp - 0x24], eax
test eax, eax
je 0x534edc
cmp eax, 5
jne 0x536385
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x10], 1
mov eax, dword [ebp - 0x14]
xor esi, esi
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
lea ebx, [ebx]
mov eax, dword [ebp + esi*4 - 0x10]
cdq
push edx
push eax
push edi
call fcn.005389a0
inc esi
add esp, 0xc
add edi, 0x28
cmp esi, 3
jl 0x534ef0
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x58]
lea edi, [eax + ecx*8]
mov eax, 0x2400
mov dword [ebp - 0x34], edi
test word [edi + 8], ax
je 0x534f4b
push edi
call fcn.004f5db0
add esp, 4
mov dword [ebp - 0x34], eax
jmp 0x534f54
mov eax, 4
mov word [edi + 8], ax
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov edx, dword [ebx + 0xc]
cmp edx, 0xffffffff
mov eax, dword [eax + ecx*8 + 4]
mov dword [ebp - 0x44], eax
mov eax, dword [eax + 4]
mov esi, dword [eax]
movzx ebx, byte [esi + 5]
mov ecx, ebx
cmovne ecx, edx
cmp byte [esi + 0x10], 3
jb 0x534f81
xor eax, eax
jmp 0x534fa0
mov eax, dword [esi + 0x40]
cmp dword [eax], 0
je 0x534f9b
cmp dword [esi + 0x4c], 0
jl 0x534f9b
jg 0x534f97
cmp dword [esi + 0x48], 0
jbe 0x534f9b
xor eax, eax
jmp 0x534fa0
mov eax, 1
test eax, eax
mov edi, ebx
cmovne edi, ecx
cmp byte [esi + 0xf], 0
mov ecx, 0x58bafc
jne 0x534fb8
mov ecx, dword [esi + 0xa8]
cmp edi, 5
jne 0x534ff6
test ecx, ecx
je 0x534fef
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x534fc4
sub ecx, edx
and ecx, 0x3fffffff
je 0x534fef
cmp byte [esi + 0xd], al
jne 0x534fef
cmp byte [esi + 4], al
jne 0x534ff6
mov eax, dword [esi + 0x3c]
mov eax, dword [eax]
cmp dword [eax], 2
jl 0x534fef
cmp dword [eax + 0x34], 0
jne 0x534ff6
mov eax, ebx
jmp 0x535142
mov eax, edi
cmp edi, ebx
je 0x535142
cmp ebx, 5
je 0x53500e
cmp edi, 5
jne 0x535142
mov eax, dword [ebp - 0x20]
cmp byte [eax + 0x4f], 0
je 0x536424
cmp dword [eax + 0xb4], 1
jg 0x536424
cmp ebx, 5
jne 0x53510f
cmp dword [esi + 0xd8], 0
mov dword [ebp - 0x24], 0
jne 0x5350a7
push 1
push esi
mov dword [ebp - 0xc0], 0
call fcn.004f6740
add esp, 8
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x535103
mov eax, dword [esi]
lea ecx, [ebp - 0xc0]
push ecx
push 0
push dword [esi + 0xdc]
push eax
mov eax, dword [eax + 0x20]
call eax
add esp, 0x10
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x535103
cmp dword [ebp - 0xc0], eax
je 0x53509e
push esi
call fcn.004f68b0
add esp, 4
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x535103
cmp dword [esi + 0xd8], 0
je 0x535103
push esi
call fcn.004f6590
add esp, 4
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x535103
push dword [esi + 0xd0]
movzx eax, byte [esi + 0xb]
push dword [esi + 0x98]
push eax
push dword [ebp - 0x20]
push dword [esi + 0xd8]
call fcn.0053c560
push esi
mov dword [ebp - 0x24], eax
mov dword [esi + 0xd8], 0
call fcn.004f6610
add esp, 0x18
cmp dword [ebp - 0x24], 0
je 0x535103
cmp byte [esi + 4], 0
jne 0x535103
push 1
push esi
call fcn.004f7140
add esp, 8
mov ecx, dword [ebp - 0x24]
mov eax, edi
test ecx, ecx
jne 0x535147
push edi
jmp 0x535116
cmp ebx, 4
jne 0x53511f
push 2
push esi
call fcn.0051ebe0
add esp, 8
mov ecx, dword [ebp - 0x24]
mov eax, edi
test ecx, ecx
jne 0x535147
xor eax, eax
cmp edi, 5
sete al
inc eax
push eax
push dword [ebp - 0x44]
call fcn.005084d0
mov dword [ebp - 0x24], eax
add esp, 8
mov eax, edi
mov ecx, dword [ebp - 0x24]
test ecx, ecx
cmove ebx, eax
push ebx
push esi
call fcn.0051ebe0
mov ebx, dword [ebp - 0x34]
add esp, 8
mov ecx, 0xa02
mov word [ebx + 8], cx
cmp eax, 6
jne 0x535169
xor ecx, ecx
jmp 0x535170
mov ecx, dword [eax*4 + 0x58cd68]
mov dword [ebx + 0x10], ecx
test ecx, ecx
je 0x53518f
lea edx, [ecx + 1]
lea ebx, [ebx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x535180
sub ecx, edx
and ecx, 0x3fffffff
cmp byte [ebp - 0x5c], 1
mov dword [ebx + 0xc], ecx
mov byte [ebx + 0xa], 1
je 0x5351ab
push dword [ebp - 0x88]
push ebx
call fcn.00538f10
add esp, 8
mov eax, dword [ebp - 0x24]
test eax, eax
jne 0x536385
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 8]
test eax, eax
je 0x5351dc
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
jmp 0x5351de
xor eax, eax
push eax
push dword [edx + 4]
mov eax, dword [ebp - 0x1c]
add eax, 0x7c
push esi
push eax
call fcn.005257e0
add esp, 0x10
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x536385
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov eax, dword [esi + 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 0x535235
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x535235
push esi
call fcn.004df2d0
add esp, 4
cmp byte [edi + 0x11], 0
je 0x5352ec
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x30]
mov dword [ebp - 0x34], ecx
mov eax, dword [eax + 0x38]
mov ebx, dword [eax + 0x24]
bswap ebx
push ebx
push ecx
push edi
call fcn.004ea3a0
add esp, 0xc
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x34], eax
jae 0x53528a
push 0x596084
push 0x10a76
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004d8420
add esp, 0x14
mov dword [ebp - 0x24], 0xb
jmp 0x5352f3
test ebx, ebx
je 0x5352ec
mov eax, dword [edi + 8]
test eax, eax
je 0x5352ab
push 0
push 0
push eax
call fcn.004ff780
mov edx, eax
add esp, 0xc
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x5352f3
push edi
call fcn.004f0a70
push 0
push dword [ebp - 0x34]
push dword [ebp - 0x44]
push edi
call fcn.004f0300
mov edx, eax
add esp, 0x14
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x5352f3
mov eax, dword [edi + 0xc]
push dword [eax + 0x48]
call fcn.0051f370
mov ecx, dword [edi + 0x30]
add esp, 4
mov dword [ebp - 0x24], eax
mov eax, dword [edi + 0xc]
bswap ecx
mov eax, dword [eax + 0x38]
mov dword [eax + 0x1c], ecx
jmp 0x5352f3
mov dword [ebp - 0x24], 0x65
cmp byte [esi + 9], 0
je 0x535308
add dword [esi + 0xc], 0xffffffff
jne 0x535308
push esi
call fcn.005464e0
add esp, 4
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x52f829
cmp eax, 0x65
jne 0x536385
mov dword [ebp - 0x24], 0
jmp 0x52f2fd
cmp dword [ecx + 4], 0
jne 0x535348
push dword [ecx + 8]
push esi
call fcn.0050e2c0
mov ecx, dword [ebp - 0x14]
add esp, 8
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edi, dword [ebp - 0x1c]
mov eax, dword [ecx + 8]
inc eax
xor eax, dword [edi + 0x98]
and eax, 3
xor dword [edi + 0x98], eax
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x14]
mov eax, dword [eax + 0x28]
or byte [eax + 1], 0x40
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x14]
mov eax, dword [eax + 0x28]
and byte [eax + 1], 0xbf
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov ebx, dword [ebp - 0x14]
mov bl, byte [ebx + 0xc]
test bl, bl
jne 0x5353c9
mov eax, dword [esi + 0x20]
and eax, 0x400
mov dword [ebp - 0x48], eax
jne 0x52f82f
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 4]
mov edi, dword [eax + 8]
add ecx, ecx
mov eax, dword [esi + 0x10]
mov esi, dword [eax + ecx*8 + 4]
xor eax, eax
mov dword [ebp - 0x24], eax
cmp byte [esi + 9], al
je 0x5354a2
inc dword [esi + 0xc]
inc bl
mov byte [ebp - 0xf0], bl
cmp byte [esi + 0xa], al
jne 0x535402
push esi
call fcn.004df2d0
add esp, 4
push dword [ebp - 0xf0]
push edi
push esi
call fcn.004fb250
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x53548a
mov eax, dword [esi + 4]
mov dword [ebp - 0x44], eax
mov ecx, dword [eax + 0x4c]
test ecx, ecx
je 0x535436
cmp dword [ecx + 4], edi
jne 0x53542f
cmp dword [ecx], esi
je 0x535478
mov ecx, dword [ecx + 0xc]
test ecx, ecx
jne 0x535426
push 0
push 0x10
call fcn.0051c920
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x535459
xor eax, eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], eax
test ecx, ecx
jne 0x535467
mov dword [ebp - 0x24], 7
mov eax, 7
jmp 0x53548a
mov edx, dword [ebp - 0x44]
mov dword [ecx + 4], edi
mov dword [ecx], esi
mov eax, dword [edx + 0x4c]
mov dword [ecx + 0xc], eax
mov dword [edx + 0x4c], ecx
cmp bl, byte [ecx + 8]
jbe 0x535480
mov byte [ecx + 8], bl
mov dword [ebp - 0x24], 0
mov eax, dword [ebp - 0x24]
cmp byte [esi + 9], 0
je 0x5354a2
add dword [esi + 0xc], 0xffffffff
jne 0x5354a2
push esi
call fcn.005464e0
mov eax, dword [ebp - 0x24]
add esp, 4
test eax, eax
je 0x52fd6c
cmp al, 6
jne 0x536385
mov eax, dword [ebp - 0x14]
push dword [eax + 0x10]
push str.database_table_is_locked:__s
push dword [ebp - 0x1c]
call fcn.0052f180
mov eax, dword [ebp - 0x24]
add esp, 0xc
jmp 0x536385
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x20]
mov dword [ebp - 0x24], 0
mov esi, dword [edx + 0x10]
mov edx, dword [ebx + 0x164]
test edx, edx
jle 0x5354ff
cmp dword [ebx + 0x17c], 0
jne 0x5354ff
mov dword [ebp - 0x24], 6
jmp 0x5355a8
test esi, esi
jne 0x535515
xor ecx, ecx
mov esi, ebx
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x14]
add ecx, 0x14
jmp 0x52f2ad
mov eax, dword [esi + 8]
mov edi, dword [eax]
cmp dword [edi + 0x38], 0
je 0x5355a5
xor ecx, ecx
test edx, edx
jle 0x535540
mov eax, dword [ebx + 0x17c]
cmp dword [eax], esi
je 0x5355d5
inc ecx
add eax, 4
cmp ecx, edx
jl 0x535530
push ebx
call fcn.004efde0
add esp, 4
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x5355a5
push dword [esi + 8]
mov eax, dword [edi + 0x38]
call eax
add esp, 4
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x5355a5
mov ecx, dword [ebx + 0x164]
mov eax, dword [ebx + 0x17c]
mov edx, dword [ebx + 0x1e0]
add edx, dword [ebx + 0x1dc]
mov dword [eax + ecx*4], esi
inc dword [ebx + 0x164]
inc dword [esi + 0xc]
test edx, edx
je 0x5355a5
cmp dword [edi + 0x50], 0
je 0x5355a5
lea eax, [edx - 1]
mov dword [esi + 0x14], edx
push eax
push dword [esi + 8]
mov eax, dword [edi + 0x50]
call eax
add esp, 8
mov dword [ebp - 0x24], eax
mov edi, dword [ebp - 0x28]
test esi, esi
je 0x5355ba
push dword [esi + 8]
push dword [ebp - 0x1c]
call fcn.0053bba0
add esp, 8
mov eax, dword [ebp - 0x24]
test eax, eax
jne 0x536385
mov ecx, dword [ebp - 0x14]
mov esi, ebx
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov dword [ebp - 0x24], 0
jmp 0x5355a5
mov edx, dword [ebp - 0x14]
xor eax, eax
mov dword [ebp - 0x110], eax
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x12c], eax
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x124], eax
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x10c], eax
mov dword [ebp - 0x110], esi
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
push eax
lea eax, [ebp - 0x130]
push eax
call fcn.005382f0
mov ecx, dword [ebp - 0x128]
add esp, 8
mov dword [ebp - 0x24], eax
mov eax, ecx
and eax, 0x202
cmp eax, 0x202
jne 0x535666
cmp byte [ebp - 0x126], 1
jne 0x535666
mov edx, dword [ebp - 0x120]
jmp 0x535688
test cl, 1
jne 0x535769
lea eax, [ebp - 0x130]
push 1
push eax
call fcn.00547760
mov ecx, dword [ebp - 0x128]
add esp, 8
mov edx, eax
test edx, edx
je 0x535769
mov eax, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x1c]
add esi, 0x7c
mov ecx, dword [eax + 4]
mov eax, dword [ebx + 0x10]
add ecx, ecx
push dword [eax + ecx*8]
push edx
push ebx
call fcn.005137b0
mov ebx, eax
push 0
mov ecx, dword [ebx + 0x3c]
mov edi, dword [ecx]
mov ecx, dword [ebp - 0x20]
add ecx, 0x168
push edi
push ecx
call fcn.004ea700
add esp, 0x18
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x535743
mov eax, dword [ecx]
mov edx, dword [eax + 4]
test edx, edx
je 0x535743
cmp dword [eax + 0x14], 0
je 0x535743
push esi
mov esi, dword [ebp - 0x20]
push edx
push ecx
push ebx
push esi
call fcn.0054b280
mov edx, eax
add esp, 0x14
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x535760
mov eax, dword [ebx + 0x40]
test eax, eax
je 0x535760
cmp dword [eax], esi
je 0x53570d
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x535700
jmp 0x535760
push esi
call fcn.004efde0
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x535760
push ebx
push esi
call fcn.00518700
mov edx, dword [esi + 0x164]
add esp, 8
mov ecx, dword [esi + 0x17c]
mov dword [ecx + edx*4], eax
inc dword [esi + 0x164]
inc dword [eax + 0xc]
jmp 0x535760
push edi
push str.no_such_module:__s
push dword [ebp - 0x20]
call fcn.0051c900
mov dword [esi], eax
add esp, 0xc
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0x24], 1
mov ecx, dword [ebp - 0x128]
mov edi, dword [ebp - 0x28]
test ecx, 0x2400
jne 0x53577a
cmp dword [ebp - 0x118], 0
je 0x535789
lea eax, [ebp - 0x130]
push eax
call fcn.00548b50
add esp, 4
mov eax, dword [ebp - 0x24]
test eax, eax
jne 0x536385
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
inc dword [esi + 0xc0]
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x24], 0
mov ecx, dword [edx + 4]
add ecx, ecx
push dword [eax + ecx*8]
push dword [edx + 0x10]
push esi
call fcn.005137b0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x53584c
mov ecx, dword [edi + 0x40]
test ecx, ecx
je 0x53584c
jmp 0x5357e0
mov eax, dword [ecx + 8]
cmp dword [eax + 4], 0
jg 0x53586e
mov ecx, dword [ecx + 0x18]
test ecx, ecx
jne 0x5357e0
push edi
push esi
call fcn.0054b7a0
mov esi, eax
add esp, 8
mov ecx, dword [esi + 4]
mov ecx, dword [ecx]
mov eax, dword [ecx + 0x14]
test eax, eax
jne 0x53580f
mov eax, dword [ecx + 0x10]
inc dword [edi + 0x20]
push dword [esi + 8]
call eax
add esp, 4
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x535830
mov dword [esi + 8], eax
push esi
mov dword [edi + 0x40], eax
call fcn.0053bf20
add esp, 4
mov esi, dword [ebp - 0x20]
cmp dword [esi + 0x1f8], 0
jne 0x535842
add dword [edi + 0x20], 0xffffffff
jne 0x53584c
push edi
push esi
call fcn.004e5bc0
add esp, 8
mov eax, dword [ebp - 0x24]
dec dword [esi + 0xc0]
test eax, eax
jne 0x536385
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov eax, 6
mov dword [ebp - 0x24], eax
jmp 0x53584f
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x98], 0
mov eax, dword [edx + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x536460
mov edi, dword [esi]
test edi, edi
je 0x536460
lea eax, [ebp - 0x98]
push eax
mov eax, dword [edi + 0x18]
push esi
call eax
push esi
push dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
call fcn.0053bba0
mov eax, dword [ebp - 0x24]
add esp, 0x10
test eax, eax
jne 0x536385
mov eax, dword [ebp - 0x98]
push 2
push 0xffffffffffffffff
push 0
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
push dword [eax + 4]
push dword [ebp - 0x1c]
call fcn.004da610
add esp, 0x14
test eax, eax
je 0x53644a
mov ecx, dword [ebp - 0x98]
mov edi, dword [ebp - 0x28]
mov dword [eax + 0x28], ecx
inc dword [esi + 4]
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 4]
lea edi, [eax + eax*4]
mov eax, dword [esi + 0x60]
mov esi, dword [esi + 0x5c]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x2c], eax
mov ebx, dword [eax + 0x28]
mov edx, dword [ecx + edi*8 + 0x28]
mov eax, dword [ebx]
mov dword [ebp - 0x60], eax
mov eax, dword [eax]
mov dword [ebp - 0x34], eax
mov eax, dword [ecx + edi*8]
mov dword [ebp - 0x44], eax
xor eax, eax
test edx, edx
jle 0x53595b
lea ecx, [ecx + edi*8]
add ecx, 0x50
lea esp, [esp]
mov dword [esi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x535950
mov eax, dword [ebp - 0x14]
push esi
mov esi, dword [ebp - 0x34]
push edx
push dword [eax + 0x10]
push dword [ebp - 0x44]
mov eax, dword [esi + 0x20]
push ebx
call eax
push dword [ebp - 0x60]
mov dword [ebp - 0x24], eax
push dword [ebp - 0x1c]
call fcn.0053bba0
mov eax, dword [ebp - 0x24]
add esp, 0x1c
test eax, eax
jne 0x536385
mov eax, dword [esi + 0x28]
push ebx
call eax
mov ecx, dword [ebp - 0x2c]
add esp, 4
mov byte [ecx + 2], 0
test eax, eax
je 0x52f829
jmp 0x52f2fd
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x60]
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 0xc]
mov ecx, dword [ebp - 0x28]
cmp byte [edi + 2], 0
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
je 0x5359f7
mov eax, 0x2400
test word [esi + 8], ax
je 0x5359da
push esi
jmp 0x52fd64
mov ecx, dword [ebp - 0x14]
mov eax, 1
mov edi, dword [ebp - 0x28]
mov word [esi + 8], ax
mov esi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov eax, dword [edi + 0x28]
mov edx, dword [ebp - 0x14]
mov ebx, dword [eax]
xor eax, eax
mov ecx, dword [ebx]
mov dword [ebp - 0x1e0], eax
mov dword [ebp - 0x1dc], eax
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0x1d4], eax
mov dword [ebp - 0x1d0], eax
mov dword [ebp - 0x1cc], eax
mov dword [ebp - 0x1c8], eax
mov dword [ebp - 0x1c4], eax
mov dword [ebp - 0x1e0], esi
test byte [edx + 2], 1
mov dword [ebp - 0x44], ecx
je 0x535a6d
mov eax, 0x2400
test word [esi + 8], ax
je 0x535a5c
push esi
call fcn.00548b90
mov ecx, dword [ebp - 0x44]
add esp, 4
mov edx, dword [ebp - 0x14]
mov eax, 0x4001
mov word [esi + 8], ax
mov dword [esi], 0
jmp 0x535a80
mov ax, word [esi + 8]
and ax, word [ebp - 0xc8]
or ax, 1
mov word [esi + 8], ax
push dword [edx + 8]
lea eax, [ebp - 0x1e0]
push eax
push dword [edi + 0x28]
mov eax, dword [ecx + 0x2c]
call eax
mov edi, dword [ebp - 0x1c]
push ebx
push edi
mov dword [ebp - 0x24], eax
call fcn.0053bba0
add esp, 0x14
cmp dword [ebp - 0x1cc], 0
jle 0x535af4
movzx ecx, word [esi + 8]
mov eax, ecx
and eax, 0x202
cmp eax, 0x202
jne 0x535ac8
cmp byte [esi + 0xa], 1
jne 0x535ac8
mov eax, dword [esi + 0x10]
jmp 0x535adc
test cl, 1
je 0x535ad1
xor eax, eax
jmp 0x535adc
push 1
push esi
call fcn.00547760
add esp, 8
push eax
push 0x58a8b8
push edi
call fcn.0052f180
mov eax, dword [ebp - 0x1cc]
add esp, 0xc
mov dword [ebp - 0x24], eax
movzx ecx, word [esi + 8]
mov eax, ecx
test cl, 2
je 0x535b1a
mov cl, byte [ebp - 0x5c]
cmp byte [esi + 0xa], cl
je 0x535b1a
push dword [ebp - 0x88]
push esi
call fcn.00538f10
movzx eax, word [esi + 8]
add esp, 8
test al, 0x12
je 0x535b36
mov ecx, dword [esi + 0xc]
test eax, 0x4000
je 0x535b2a
add ecx, dword [esi]
mov eax, dword [esi + 0x20]
cmp ecx, dword [eax + 0x6c]
jg 0x535f9a
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x52fd6c
mov edx, edi
mov edi, 7
jmp 0x53638d
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x60]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 2], 0
jne 0x52f82c
mov eax, dword [edi + 0x28]
push eax
mov esi, dword [eax]
mov ebx, dword [esi]
mov eax, dword [ebx + 0x24]
call eax
push esi
push dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
call fcn.0053bba0
mov eax, dword [ebp - 0x24]
add esp, 0xc
test eax, eax
jne 0x536385
push dword [edi + 0x28]
mov eax, dword [ebx + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x531c75
mov edi, dword [ebp - 0x28]
mov esi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x54]
mov esi, dword [esi + 8]
dec esi
lea esi, [esi + esi*4]
lea esi, [ecx + esi*4]
mov dword [ebp - 0x14], esi
mov esi, dword [ebp - 0x20]
jmp 0x531c7b
mov edi, dword [esi + 0x20]
or dword [esi + 0x20], 0x4000000
and edi, 0x4000000
mov edx, dword [ebp - 0x14]
mov eax, dword [esi + 0x24]
mov ecx, dword [ebp - 0x28]
mov dword [esi + 0x24], eax
mov eax, dword [edx + 0x10]
mov ebx, dword [eax + 8]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 2
lea esi, [ecx + eax*8]
je 0x535c06
cmp byte [esi + 0xa], 1
je 0x535c06
push 1
push esi
call fcn.00538f10
add esp, 8
test eax, eax
jne 0x536385
mov eax, dword [ebx]
push dword [esi + 0x10]
push ebx
mov eax, dword [eax + 0x4c]
call eax
mov esi, dword [ebp - 0x20]
add esp, 8
mov dword [ebp - 0x24], eax
test edi, edi
jne 0x535c2b
and dword [esi + 0x20], 0xfbffffff
mov eax, dword [esi + 0x24]
mov dword [esi + 0x24], eax
push ebx
push dword [ebp - 0x1c]
call fcn.0053bba0
mov eax, dword [ebp - 0x1c]
add esp, 8
and dword [eax + 0x98], 0xfffffffc
mov eax, dword [ebp - 0x24]
test eax, eax
jne 0x536385
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
cmp byte [esi + 0x51], 0
jne 0x536458
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0x10]
mov edi, dword [eax + 8]
test edi, edi
je 0x536460
mov ebx, dword [edi]
test ebx, ebx
je 0x536460
cmp dword [ebx + 0x34], 0
mov edx, dword [edx + 8]
je 0x52f82c
mov al, byte [esi + 0x56]
mov ecx, dword [ebp - 0x28]
mov byte [ebp - 0x4d], al
mov eax, dword [ebp - 0x1c]
mov esi, dword [eax + 0x5c]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test edx, edx
jle 0x535cbb
mov dword [esi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x535cb0
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x20]
mov al, byte [eax + 2]
mov byte [ecx + 0x56], al
lea eax, [ebp - 0x1a0]
push eax
mov eax, dword [ebx + 0x34]
push esi
push edx
push edi
call eax
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0x24], eax
mov al, byte [ebp - 0x4d]
push edi
mov edi, dword [ebp - 0x1c]
push edi
mov byte [esi + 0x56], al
call fcn.0053bba0
mov eax, dword [ebp - 0x24]
add esp, 0x18
mov ecx, dword [ebp - 0x14]
test eax, eax
jne 0x535d13
cmp dword [ecx + 4], eax
je 0x535d13
mov eax, dword [ebp - 0x1a0]
mov dword [esi + 0x28], eax
mov eax, dword [ebp - 0x19c]
mov dword [esi + 0x2c], eax
mov eax, dword [ebp - 0x24]
cmp al, 0x13
jne 0x535d55
mov eax, dword [ecx + 0x10]
cmp byte [eax + 0x10], 0
je 0x535d55
movzx ecx, word [ecx + 2]
cmp ecx, 4
jne 0x535d3f
mov edi, dword [ebp - 0x28]
xor ecx, ecx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x14]
add ecx, 0x14
jmp 0x52f2ad
movzx eax, cl
cmp ecx, 5
mov ecx, 2
cmove eax, ecx
mov byte [edi + 0x92], al
jmp 0x535d5a
mov eax, edi
inc dword [eax + 0x2c]
mov eax, dword [ebp - 0x24]
test eax, eax
jne 0x535b41
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
push dword [ebp - 0x14]
push dword [ebp - 0x1c]
call fcn.004f5d70
mov ecx, dword [ebp - 0x14]
add esp, 8
mov edx, dword [ecx + 4]
mov ecx, dword [esi + 0x10]
add edx, edx
mov ecx, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + 0x30]
and ecx, 0x7fffffff
mov dword [eax], ecx
mov ecx, dword [ebp - 0x14]
mov dword [eax + 4], 0
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
push dword [ebp - 0x14]
push dword [ebp - 0x1c]
call fcn.004f5d70
mov ecx, dword [esi + 0x10]
mov ebx, eax
mov eax, dword [ebp - 0x14]
add esp, 8
xor edi, edi
mov edx, dword [eax + 4]
add edx, edx
mov esi, dword [ecx + edx*8 + 4]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x535def
mov eax, dword [esi + 4]
mov edi, dword [eax + 0x30]
and edi, 0x7fffffff
cmp edi, ecx
cmovb edi, ecx
cmp byte [esi + 9], 0
je 0x535e07
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x535e07
push esi
call fcn.004df2d0
add esp, 4
mov eax, dword [esi + 4]
mov eax, dword [eax]
test edi, edi
jle 0x535e18
mov dword [eax + 0x9c], edi
jmp 0x535e1e
mov edi, dword [eax + 0x9c]
cmp byte [esi + 9], 0
je 0x535e33
add dword [esi + 0xc], 0xffffffff
jne 0x535e33
push esi
call fcn.005464e0
add esp, 4
mov esi, dword [ebp - 0x20]
mov eax, edi
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
cdq
mov dword [ebx], eax
mov eax, dword [ebp - 0x18]
mov dword [ebx + 4], edx
add ecx, 0x14
jmp 0x52f2ad
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x1c]
mov eax, dword [edx + 0xc]
mov edi, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov dword [ebp - 0x44], esi
cmp dword [edi], esi
je 0x535ea1
mov dword [edi + 0xc], ebx
mov dword [edi], esi
movzx ecx, byte [edi + 0x19]
sub ecx, 1
js 0x535ea1
mov esi, dword [ebp - 0x14]
lea edx, [edi + 0x1c]
mov ebx, dword [ebp - 0x28]
lea edx, [edx + ecx*4]
mov eax, dword [esi + 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 0x535e85
mov esi, dword [ebp - 0x44]
mov ebx, dword [ebp - 0x1c]
mov ax, word [esi + 8]
mov ecx, 0x3e40
and ax, cx
or ax, 1
mov word [esi + 8], ax
lea eax, [edi + 0x1c]
mov ecx, dword [edi + 4]
push eax
movzx eax, byte [edi + 0x19]
push eax
mov eax, dword [ecx + 0x10]
push edi
call eax
mov eax, dword [edi + 0x14]
add esp, 0xc
test eax, eax
je 0x535f48
jle 0x535f19
movzx ecx, word [esi + 8]
mov eax, ecx
and eax, 0x202
cmp eax, 0x202
jne 0x535ef0
cmp byte [esi + 0xa], 1
jne 0x535ef0
mov eax, dword [esi + 0x10]
jmp 0x535f04
test cl, 1
je 0x535ef9
xor eax, eax
jmp 0x535f04
push 1
push esi
call fcn.00547760
add esp, 8
push eax
push 0x58a8b8
push ebx
call fcn.0052f180
mov eax, dword [edi + 0x14]
add esp, 0xc
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x14]
push dword [eax + 4]
mov eax, dword [ebp - 0x1c]
push dword [edi + 0x10]
add eax, 0xdc
push eax
push dword [ebp - 0x20]
call fcn.0052ebb0
mov eax, dword [ebp - 0x24]
add esp, 0x10
mov dword [edi + 0x14], 0
test eax, eax
jne 0x536385
movzx ecx, word [esi + 8]
test cl, 0x12
je 0x52f829
mov eax, ecx
test cl, 2
je 0x535f77
mov cl, byte [ebp - 0x5c]
cmp byte [esi + 0xa], cl
je 0x535f77
push dword [ebp - 0x88]
push esi
call fcn.00538f10
movzx eax, word [esi + 8]
add esp, 8
test al, 0x12
je 0x52f829
mov ecx, dword [esi + 0xc]
test eax, 0x4000
je 0x535f8b
add ecx, dword [esi]
mov eax, dword [esi + 0x20]
cmp ecx, dword [eax + 0x6c]
jle 0x52fd6c
mov edi, dword [ebp - 0x1c]
push str.string_or_blob_too_big
push edi
call fcn.0052f180
add esp, 8
mov eax, 0x12
jmp 0x536385
mov ecx, dword [ebp - 0x14]
mov esi, ebx
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
add ecx, 0x14
jmp 0x52f2ad
mov cl, byte [esi + 0x58]
test cl, 0x41
je 0x536084
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x95], 0
jne 0x536084
mov edi, dword [ebp - 0x14]
mov eax, dword [edi + 0x10]
mov edi, dword [ebp - 0x1c]
test eax, eax
jne 0x535ffc
mov eax, dword [edi + 0xc0]
test eax, eax
je 0x536081
push eax
test cl, 0x40
je 0x53602c
push dword [ebp - 0x1c]
mov edi, dword [esi + 0xcc]
call fcn.00536ad0
mov esi, eax
mov eax, dword [ebp - 0x20]
push esi
push dword [eax + 0xd0]
call edi
push esi
call fcn.004cd940
add esp, 0x14
mov esi, dword [ebp - 0x20]
jmp 0x536081
cmp dword [esi + 0xbc], 1
jle 0x53606d
push str.____s
push esi
call fcn.0051c900
mov esi, eax
mov eax, dword [ebp - 0x20]
push esi
push edi
push dword [eax + 0xd0]
mov ecx, dword [eax + 0xcc]
push 1
call ecx
add esp, 0x1c
test esi, esi
je 0x536027
push esi
mov esi, dword [ebp - 0x20]
push esi
call fcn.0050c300
add esp, 8
jmp 0x536081
mov eax, dword [esi + 0xcc]
push edi
push dword [esi + 0xd0]
push 1
call eax
add esp, 0x10
mov edi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
cmp eax, dword [0x5ac2c4]
jl 0x5360cc
cmp byte [ecx], 0xaa
je 0x52f832
mov esi, dword [ebp - 0x1c]
mov edx, 1
cmp dword [esi + 0x6c], edx
jle 0x5360ca
mov eax, 0x14
lea ecx, [ecx]
mov ecx, dword [esi + 0x68]
cmp byte [eax + ecx], 0x11
jne 0x5360c1
mov dword [eax + ecx + 4], 0
inc edx
add eax, 0x14
cmp edx, dword [esi + 0x6c]
jl 0x5360b0
xor eax, eax
mov esi, dword [ebp - 0x14]
inc eax
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x1c]
inc dword [eax + 0xbc]
jmp 0x52f300
mov edx, dword [ebp - 0x14]
mov dword [edi + 0x28], ecx
mov al, byte [edx + 8]
mov byte [edi + 0x92], al
mov dword [edi + 0x24], esi
test ecx, ecx
je 0x536166
movzx eax, word [edx + 2]
test ax, ax
je 0x536138
push dword [eax*4 + 0x58ccc4]
push str._s_constraint_failed
push edi
call fcn.0052f180
mov eax, dword [ebp - 0x14]
add esp, 0xc
mov eax, dword [eax + 0x10]
test eax, eax
je 0x536149
push eax
push dword [edi + 0x7c]
push str._z:__s
push dword [ebp - 0x20]
call fcn.0051c900
add esp, 0x10
mov dword [edi + 0x7c], eax
jmp 0x536149
push dword [edx + 0x10]
push 0x58a8b8
push edi
call fcn.0052f180
add esp, 0xc
push dword [edi + 0x7c]
mov eax, dword [ebp - 0x14]
push dword [edi + 0xc0]
push esi
push str.abort_at__d_in___s_:__s
push dword [eax + 4]
call fcn.004d8420
add esp, 0x14
push edi
call fcn.005375c0
mov edx, dword [ebp - 0x20]
mov ecx, eax
mov esi, dword [ebp - 0x18]
add esp, 4
mov dword [ebp - 0x24], ecx
cmp ecx, 5
jne 0x53618c
mov dword [edi + 0x28], eax
mov ebx, eax
lea edi, [eax + 2]
jmp 0x536790
cmp dword [edi + 0x28], 0
mov eax, 1
mov ecx, 0x65
cmovne ecx, eax
mov dword [ebp - 0x24], ecx
mov ebx, ecx
lea edi, [eax + 6]
jmp 0x536790
push 0x157a8
call fcn.0050aba0
add esp, 4
jmp 0x536385
push str.cannot_open_savepoint___SQL_statements_in_progress
push dword [ebp - 0x1c]
call fcn.0052f180
add esp, 8
mov eax, 5
jmp 0x536385
push str.cannot_release_savepoint___SQL_statements_in_progress
jmp 0x5361c1
mov ecx, dword [ebp - 0x14]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x54]
mov ebx, 5
mov esi, dword [ebp - 0x18]
imul ecx
mov ecx, dword [ebp - 0x1c]
lea edi, [ebx + 2]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x20]
mov dword [ecx + 0x24], eax
mov byte [edx + 0x4f], 0
mov dword [ecx + 0x28], 5
jmp 0x536790
mov eax, 8
jmp 0x536385
mov esi, dword [ebp - 0x18]
mov edi, 7
cmp al, 5
jne 0x531032
mov ecx, dword [ebp - 0x14]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x54]
imul ecx
mov ecx, dword [ebp - 0x24]
mov ebx, ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x24], eax
mov dword [edx + 0x28], ecx
mov edx, dword [ebp - 0x20]
jmp 0x536790
mov eax, dword [edi + 0x7c]
test eax, eax
je 0x536270
push eax
push esi
call fcn.0050c300
add esp, 8
push 0
push 0x1c
push esi
call fcn.0050c410
add esp, 0xc
test eax, eax
je 0x536295
mov ecx, 7
mov esi, str.database_schema_has_changed
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp - 0x1c]
mov dword [edi + 0x7c], eax
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 4]
mov ecx, edx
mov eax, dword [esi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax]
cmp eax, dword [ebp - 0xa4]
je 0x5362bd
push edx
push esi
call fcn.00524590
add esp, 8
mov ecx, dword [ebp - 0x1c]
mov edx, ecx
mov eax, dword [ecx + 0x98]
and eax, 0xfffffffd
or eax, 1
mov dword [ecx + 0x98], eax
mov eax, 0x11
lea edi, [eax - 0xa]
jmp 0x53638d
mov eax, 0x204
jmp 0x536385
mov eax, 0x30b
jmp 0x536385
test dword [ebp - 0x248], 0x2400
jne 0x53630a
cmp dword [ebp - 0x238], 0
je 0x536319
lea eax, [ebp - 0x250]
push eax
call fcn.00548b50
add esp, 4
push 0x596084
push 0x1423e
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004d8420
add esp, 0x14
mov eax, 0xb
jmp 0x536385
mov edx, dword [ebp - 0x1c]
mov eax, 6
mov byte [edx + 0x92], 2
lea edi, [eax + 1]
jmp 0x53638d
mov dword [ebp - 0x24], 7
push dword [ebp - 0x20]
call fcn.00524510
mov eax, dword [ebp - 0x24]
add esp, 4
cmp eax, 7
je 0x536458
jmp 0x536385
push str.too_many_levels_of_trigger_recursion
push edx
call fcn.0052f180
add esp, 8
mov eax, 1
mov edi, 7
mov edx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x20]
cmp byte [ecx + 0x51], 0
cmovne eax, edi
cmp dword [edx + 0x7c], 0
mov dword [ebp - 0x24], eax
jne 0x5363ca
cmp eax, 0xc0a
je 0x5363ca
push eax
call fcn.004ce950
push eax
push 0x58a8b8
push dword [ebp - 0x1c]
call fcn.0052f180
mov eax, dword [ebp - 0x24]
add esp, 0x10
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x28], eax
cmp eax, 0xc0a
je 0x536711
movzx eax, al
cmp eax, 0xe
je 0x5363e9
cmp eax, 0xa
jne 0x536711
mov eax, dword [ecx]
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x536709
push 0
push 0
push eax
call ecx
add esp, 0xc
jmp 0x53670b
push esi
call fcn.004d0690
push eax
push 0x58a8b8
push dword [ebp - 0x1c]
call fcn.0052f180
add esp, 0x10
mov eax, dword [ebp - 0x24]
jmp 0x536385
mov ecx, str.out_of
cmp edi, 5
mov eax, str.into
cmovne eax, ecx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push dword [ebp - 0x1c]
call fcn.0052f180
add esp, 0xc
jmp 0x536380
push dword [ebp - 0x98]
mov eax, dword [edi + 0x1c]
call eax
add esp, 4
mov edx, dword [ebp - 0x20]
jmp 0x5366e7
mov eax, 6
jmp 0x536385
or ebx, 0xffffffff
mov eax, 9
mov dword [ebp - 0x70], ebx
jmp 0x536385
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x44], 0
jl 0x5364a4
jg 0x53648b
cmp dword [eax + 0x40], 0
jbe 0x5364a4
push str.FOREIGN_KEY_constraint_failed
mov dword [eax + 0x28], 0x313
mov byte [eax + 0x92], 2
push eax
jmp 0x536378
push 1
push eax
call fcn.0052ea70
mov edx, dword [ebp - 0x1c]
add esp, 8
mov ecx, dword [ebp - 0x14]
mov ebx, ecx
mov eax, dword [edx + 0x20]
add eax, 2
or eax, 1
mov dword [edx + 0x20], eax
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
xor edi, edi
mov dword [edx + 0x78], esi
cmp dword [ecx + 8], edi
jle 0x536558
add esi, 8
lea ecx, [ecx]
movzx eax, word [esi]
mov ecx, eax
test eax, 0x1000
je 0x536538
test al, 0x12
je 0x53652d
test eax, 0x4000
je 0x53650b
lea eax, [esi - 8]
push eax
call fcn.00538370
add esp, 4
test eax, eax
jne 0x536458
cmp dword [esi + 0x10], 0
je 0x536519
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
je 0x53652d
lea eax, [esi - 8]
push eax
call fcn.00548af0
add esp, 4
test eax, eax
jne 0x536458
mov eax, 0xefff
and word [esi], ax
movzx ecx, word [esi]
and ecx, 0x202
cmp ecx, 2
jne 0x53654f
lea eax, [esi - 8]
push eax
call fcn.00548af0
add esp, 4
inc edi
add esi, 0x28
cmp edi, dword [ebx + 8]
jl 0x5364e0
mov edx, dword [ebp - 0x20]
cmp byte [edx + 0x51], 0
jne 0x5366e7
test byte [edx + 0x58], 4
mov edi, dword [ebp - 0x1c]
je 0x536584
mov eax, dword [edx + 0xcc]
push 0
push edi
push dword [edx + 0xd0]
push 4
call eax
add esp, 0x10
mov esi, dword [ebp - 0x18]
mov ecx, ebx
sub ecx, dword [ebp - 0x54]
mov eax, 0x66666667
imul ecx
mov ebx, 0x64
sar edx, 3
mov eax, edx
inc edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x20]
mov dword [edi + 0x24], eax
lea edi, [ebx - 0x5d]
jmp 0x536790
mov edx, dword [ebp - 0x14]
movzx eax, byte [esi + 0x4f]
mov ebx, dword [edx + 4]
mov ecx, dword [edx + 8]
cmp ebx, eax
je 0x536687
test ecx, ecx
je 0x5365df
push 0x204
push esi
call fcn.00524ce0
mov edi, dword [ebp - 0x1c]
add esp, 8
mov al, 1
jmp 0x53660f
test ebx, ebx
je 0x5365f6
cmp dword [esi + 0xb8], 0
jle 0x5365f6
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x5361c1
mov edi, dword [ebp - 0x1c]
push 1
push edi
call fcn.0052e730
mov ecx, eax
add esp, 8
mov dword [ebp - 0x24], ecx
test ecx, ecx
jne 0x536674
mov al, bl
push edi
mov byte [esi + 0x4f], al
call fcn.005375c0
add esp, 4
cmp eax, 5
jne 0x536657
mov ecx, dword [ebp - 0x14]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x18]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x20]
mov dword [edi + 0x24], eax
mov al, 1
sub al, bl
mov ebx, 5
mov byte [edx + 0x4f], al
mov dword [edi + 0x28], ebx
lea edi, [ebx + 2]
jmp 0x536790
push esi
call fcn.00508e60
add esp, 4
mov ecx, 0x65
cmp dword [edi + 0x28], 0
mov eax, 1
cmovne ecx, eax
mov dword [ebp - 0x24], ecx
mov ebx, dword [ebp - 0x24]
mov edi, 7
mov edx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x18]
jmp 0x536790
test ebx, ebx
jne 0x536699
mov eax, str.cannot_start_a_transaction_within_a_transaction
push eax
push dword [ebp - 0x1c]
jmp 0x536378
test ecx, ecx
mov eax, str.cannot_rollback___no_transaction_is_active
mov edx, str.cannot_commit___no_transaction_is_active
cmove eax, edx
push eax
push dword [ebp - 0x1c]
jmp 0x536378
xor eax, eax
cmp byte [esi + 0x51], al
sete al
lea eax, [eax*2 + 7]
push eax
mov dword [ebp - 0x24], eax
mov dword [ecx + 0x28], eax
call fcn.004ce950
push eax
push 0x58a8b8
push dword [ebp - 0x1c]
call fcn.0052f180
mov eax, dword [ebp - 0x24]
add esp, 0x10
jmp 0x536385
mov edx, esi
push edx
call fcn.0051d2c0
push str.out_of_memory
push dword [ebp - 0x1c]
call fcn.0052f180
add esp, 0xc
mov eax, 7
mov edi, eax
jmp 0x53638a
xor eax, eax
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x48], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x14]
sub ecx, dword [ebp - 0x54]
push dword [eax + 0x7c]
push dword [eax + 0xc0]
mov eax, 0x66666667
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 dword [ebp - 0x24]
call fcn.004d8420
push dword [ebp - 0x1c]
call fcn.005375c0
mov edx, dword [ebp - 0x20]
add esp, 0x18
cmp dword [ebp - 0x24], 0xc0a
jne 0x536762
push edx
call fcn.0051d2c0
add esp, 4
mov al, byte [ebp - 0x65]
mov dword [ebp - 0x24], 1
test al, al
je 0x536786
movzx eax, al
dec eax
push eax
push edx
call fcn.00524590
mov ebx, dword [ebp - 0x24]
add esp, 8
mov edx, dword [ebp - 0x20]
jmp 0x536790
mov ebx, 1
jmp 0x536790
mov ecx, dword [ebp - 0x70]
cmp esi, ecx
jb 0x5367cf
mov eax, dword [edx + 0x158]
test eax, eax
je 0x5367cf
add ecx, dword [edx + 0x160]
push dword [edx + 0x15c]
mov dword [ebp - 0x70], ecx
call eax
mov edx, dword [ebp - 0x20]
add esp, 4
test eax, eax
je 0x536790
mov edx, dword [ebp - 0x1c]
or ebx, 0xffffffff
mov dword [ebp - 0x70], ebx
mov eax, 9
jmp 0x536390
mov ecx, dword [ebp - 0x1c]
add dword [ecx + 0xb4], esi
cmp dword [ecx + 0xa0], 0
je 0x5367ea
push ecx
call fcn.00548a90
add esp, 4
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0048bb19
mov esp, ebp
pop ebp
ret