Function at 0x100285f0
Capabilities:
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x31c
mov eax, dword [ecx + 4]
push ebx
push esi
mov esi, dword [ecx]
mov dword [ebp - 8], eax
push edi
xor edi, edi
mov dword [ebp - 0x1c], ecx
mov eax, dword [esi + 0x10]
mov dword [ebp - 4], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0xc], esi
mov eax, dword [eax + 0xc]
mov byte [ebp - 0x61], 0
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0x20], edi
mov bl, byte [eax + 0x4d]
mov eax, dword [ecx + 8]
mov dword [ebp - 0x18], eax
mov eax, dword [esi + 0x20]
mov byte [ebp - 0x48], bl
xor ebx, ebx
mov dword [ebp - 0x7c], eax
mov eax, dword [esi + 0x24]
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x94], ebx
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0x74], eax
call fcn.10021da0
mov ecx, dword [ebp - 0x1c]
cmp dword [ecx + 0x50], 7
je 0x1002a0bd
mov dword [ecx + 0x50], ebx
mov dword [ecx + 0x88], ebx
mov dword [ecx + 0x8c], ebx
mov dword [ecx + 0x14], ebx
mov dword [esi + 0x1c4], ebx
cmp dword [esi + 0xf0], ebx
jne 0x1002d432
cmp dword [esi + 0x124], ebx
je 0x100286b7
mov eax, dword [ecx + 0x7c]
mov ebx, dword [esi + 0x12c]
mov dword [ebp - 0x94], ebx
test eax, eax
je 0x100286b5
xor edx, edx
div ebx
mov dword [ebp - 0x94], edx
xor ebx, ebx
mov eax, dword [ecx + 0x4c]
xorps xmm0, xmm0
mov dword [ebp - 0xd4], 0xbe01
movsd qword [ebp - 0x180], xmm0
mov ecx, dword [ebp - 8]
mov dword [ebp - 4], eax
mov edx, dword [ebp - 0x18]
nop dword [eax + eax]
cmp byte [esi + 0x40], 0
jne 0x1002a0bd
inc ebx
mov dword [ebp - 0x10], ebx
lea ebx, [eax + eax*4]
test byte [ecx + ebx*4 + 2], 2
mov dword [ebp - 0x24], ebx
je 0x10028726
mov eax, dword [ecx + ebx*4 + 8]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, 0x2460
mov dword [ebp - 0x20], edi
test word [edi + 8], ax
je 0x1002871d
mov ecx, edi
call fcn.1001fff0
mov ecx, dword [ebp - 8]
mov eax, 4
mov word [edi + 8], ax
mov dl, byte [ecx + ebx*4]
movzx eax, dl
dec eax
cmp eax, 0x98
ja case.default.0x10028738
jmp dword [eax*4 + 0x1002d474]
mov ecx, dword [ecx + ebx*4 + 8]
dec ecx
mov dword [ebp - 4], ecx
jmp 0x1002ce45
mov ecx, dword [ecx + ebx*4 + 4]
mov edx, 4
mov eax, dword [ebp - 0x18]
mov esi, dword [ebp - 0x18]
lea ecx, [ecx + ecx*4]
mov word [eax + ecx*8 + 8], dx
mov eax, dword [ebp - 4]
cdq
mov dword [esi + ecx*8], eax
mov eax, esi
mov esi, dword [ebp - 0xc]
mov dword [eax + ecx*8 + 4], edx
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x18]
mov eax, dword [ecx + ebx*4 + 8]
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 4], eax
jmp 0x100286e0
mov eax, dword [ecx + ebx*4 + 4]
mov ebx, 0x80
mov edx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
mov edx, dword [edx + eax*8]
mov dword [ebp - 4], edx
mov edx, dword [ebp - 0x18]
mov word [edx + eax*8 + 8], bx
mov eax, dword [ebp - 4]
mov ebx, dword [ebp - 0x10]
inc eax
mov dword [ebp - 4], eax
jmp 0x100286e0
mov eax, dword [ecx + ebx*4 + 4]
mov edx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, dword [ecx + ebx*4 + 0xc]
dec eax
mov dword [ebp - 0x20], edi
cdq
mov dword [edi], eax
mov eax, 4
mov dword [edi + 4], edx
mov edx, dword [ebp - 0x18]
mov word [edi + 8], ax
mov eax, dword [ecx + ebx*4 + 8]
test eax, eax
mov ebx, dword [ebp - 0x10]
lea ecx, [eax - 1]
cmove ecx, dword [ebp - 4]
lea eax, [ecx + 1]
mov ecx, dword [ebp - 8]
mov dword [ebp - 4], eax
jmp 0x100286e0
mov eax, dword [ecx + ebx*4 + 4]
mov ebx, 0x80
mov edx, dword [ebp - 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + ecx*8]
lea eax, [eax + eax*4]
mov eax, dword [edx + eax*4 + 8]
mov edx, dword [ebp - 0x18]
mov dword [ebp - 4], eax
mov word [edx + ecx*8 + 8], bx
mov ecx, dword [ebp - 8]
mov ebx, dword [ebp - 0x10]
jmp 0x100286e0
mov eax, dword [ecx + ebx*4 + 4]
mov ebx, dword [ebp - 0x18]
lea esi, [eax + eax*4]
mov eax, 4
mov ecx, dword [ebx + esi*8]
mov word [ebx + esi*8 + 8], ax
mov eax, dword [ebp - 4]
cdq
mov dword [ebx + esi*8], eax
lea eax, [ecx + 1]
mov ecx, dword [ebp - 8]
mov dword [ebx + esi*8 + 4], edx
mov edx, ebx
mov esi, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 4], eax
jmp 0x100286e0
mov eax, dword [ecx + ebx*4 + 0xc]
mov edx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 1
je case.default.0x10028738
mov ecx, dword [ecx + ebx*4 + 4]
test ecx, ecx
jne 0x1002d0f9
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + 0xb0]
test edx, edx
je 0x1002d0f9
mov ecx, dword [ebp - 0x1c]
mov eax, dword [edx + 4]
dec dword [ecx + 0xb8]
mov dword [ecx + 0xb0], eax
mov eax, dword [ecx + 0x5c]
mov ecx, edx
add dword [esi + 0x54], eax
mov dword [esi + 0x50], eax
call fcn.10022810
mov edx, eax
mov eax, dword [esi + 0x20]
mov dword [ebp - 0x7c], eax
mov eax, dword [esi + 0x24]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 4], edx
cmp dword [eax + ebx*4 + 8], 4
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 4]
mov dword [ebp - 8], ecx
jne 0x100288f8
mov ebx, dword [ebp - 0x10]
lea eax, [edx + edx*4]
mov eax, dword [ecx + eax*4 + 8]
mov edx, dword [ebp - 0x1c]
dec eax
inc eax
mov dword [ebp - 4], eax
mov edx, dword [edx + 8]
mov dword [ebp - 0x18], edx
jmp 0x100286e0
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 4]
mov ebx, dword [ebp - 0x10]
inc eax
mov dword [ebp - 4], eax
mov edx, dword [edx + 8]
mov dword [ebp - 0x18], edx
jmp 0x100286e0
mov eax, dword [ecx + ebx*4 + 4]
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x18]
inc eax
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 4], eax
jmp 0x100286e0
mov ecx, dword [ecx + ebx*4 + 0x10]
mov eax, dword [ecx]
mov dword [edi], eax
mov eax, dword [ecx + 4]
mov dword [edi + 4], eax
jmp 0x10028a97
mov edx, dword [ebp - 0x18]
mov eax, 8
mov word [edi + 8], ax
mov eax, dword [ecx + ebx*4 + 0x10]
mov ebx, dword [ebp - 0x10]
movsd xmm0, qword [eax]
mov eax, dword [ebp - 4]
inc eax
movsd qword [edi], xmm0
mov dword [ebp - 4], eax
jmp 0x100286e0
mov edx, dword [ecx + ebx*4 + 0x10]
mov eax, edx
mov byte [ecx + ebx*4], 0x1b
test edx, edx
je 0x1002898d
cmp byte [edx], 0
je 0x10028986
nop dword [eax]
inc eax
cmp byte [eax], 0
jne 0x10028980
sub eax, edx
and eax, 0x3fffffff
cmp byte [ebp - 0x48], 1
mov dword [ecx + ebx*4 + 4], eax
je 0x10028a0d
push 0
push 1
push 0xffffffffffffffff
mov ecx, edi
call fcn.10020860
add esp, 0xc
mov dword [ebp - 0x14], eax
cmp eax, 0x12
je 0x1002d406
test byte [edi + 8], 2
je 0x100289d2
mov al, byte [ebp - 0x48]
cmp byte [edi + 0xa], al
je 0x100289d2
mov dl, al
mov ecx, edi
call fcn.10006b50
test eax, eax
jne 0x1002a0bd
mov ecx, dword [ebp - 8]
mov eax, 0x800
or word [edi + 8], ax
mov dword [edi + 0x18], 0
cmp byte [ecx + ebx*4 + 1], 0xff
jne 0x100289fa
mov edx, dword [ecx + ebx*4 + 0x10]
mov ecx, esi
call fcn.10004780
mov ecx, dword [ebp - 8]
mov byte [ecx + ebx*4 + 1], 0xff
mov eax, dword [edi + 0x10]
mov dword [ecx + ebx*4 + 0x10], eax
mov eax, dword [edi + 0xc]
mov dword [ecx + ebx*4 + 4], eax
cmp eax, dword [esi + 0x58]
jg 0x1002d406
mov eax, 0xa02
mov word [edi + 8], ax
mov eax, dword [ecx + ebx*4 + 0x10]
mov dword [edi + 0x10], eax
mov eax, dword [ecx + ebx*4 + 4]
mov dword [edi + 0xc], eax
mov al, byte [ebp - 0x48]
mov byte [edi + 0xa], al
mov eax, dword [ebp - 0x14]
jmp 0x1002a199
mov edx, dword [ebp - 8]
mov eax, 1
mov esi, dword [ecx + ebx*4 + 0xc]
mov ecx, dword [ecx + ebx*4 + 8]
cmp dword [edx + ebx*4 + 4], 0
mov edx, 0x101
mov ebx, dword [ebp - 0x20]
cmovne eax, edx
sub esi, ecx
movzx edi, ax
mov word [ebx + 8], di
test esi, esi
jle 0x10028a91
mov eax, 0x2460
nop dword [eax]
add ebx, 0x28
test word [ebx + 8], ax
je 0x10028a85
mov ecx, ebx
call fcn.1001fff0
mov eax, 0x2460
dec esi
mov word [ebx + 8], di
test esi, esi
jg 0x10028a70
mov dword [ebp - 0x20], ebx
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x20]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 8]
inc eax
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 4], eax
jmp 0x100286e0
mov eax, dword [ecx + ebx*4 + 4]
mov ebx, 0xff7f
mov edx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov ax, word [edi + 8]
and ax, bx
mov dword [ebp - 0x20], edi
mov ebx, dword [ebp - 0x10]
or ax, 1
mov word [edi + 8], ax
mov eax, dword [ebp - 4]
inc eax
mov dword [ebp - 4], eax
jmp 0x100286e0
mov edx, dword [ecx + ebx*4 + 0x10]
push 0
push 0
push dword [ecx + ebx*4 + 4]
mov ecx, edi
call fcn.10020860
mov al, byte [ebp - 0x48]
add esp, 0xc
mov byte [edi + 0xa], al
jmp 0x10028a97
mov eax, dword [ecx + ebx*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x3c]
lea esi, [eax + ecx*8]
lea ecx, [esi - 0x28]
call fcn.10020770
test eax, eax
jne 0x1002d403
push 0x800
lea edx, [esi - 0x28]
mov ecx, edi
call fcn.100207a0
mov esi, dword [ebp - 0xc]
add esp, 4
jmp 0x10028a97
mov eax, dword [ecx + ebx*4 + 4]
mov edx, dword [ebp - 0x18]
mov edi, dword [ecx + ebx*4 + 0xc]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ecx + ebx*4 + 8]
mov ecx, 1
lea eax, [eax + eax*4]
lea ebx, [edx + eax*8]
mov eax, 0x2460
nop dword [eax]
test word [ebx + 8], ax
jne 0x10028b6c
cmp dword [ebx + 0x18], 0
je 0x10028b7d
mov ecx, ebx
call fcn.10020070
mov eax, 0x2460
mov ecx, 1
movups xmm0, xmmword [esi]
movups xmmword [ebx], xmm0
movups xmm0, xmmword [esi + 0x10]
movups xmmword [ebx + 0x10], xmm0
movq xmm0, qword [esi + 0x20]
movq qword [ebx + 0x20], xmm0
add ebx, 0x28
mov word [esi + 8], cx
mov dword [esi + 0x18], 0
add esi, 0x28
sub edi, 1
jne 0x10028b60
jmp 0x10028a8e
mov eax, dword [ecx + ebx*4 + 4]
mov edx, dword [ebp - 0x18]
mov edi, dword [ecx + ebx*4 + 0xc]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ecx + ebx*4 + 8]
lea eax, [eax + eax*4]
lea ebx, [edx + eax*8]
push 0x1000
mov edx, esi
mov dword [ebp - 0x20], ebx
mov ecx, ebx
call fcn.100207a0
mov eax, 0x1000
add esp, 4
test word [ebx + 8], ax
je 0x10028bf9
mov ecx, ebx
call fcn.1001fce0
test eax, eax
jne 0x1002a0ba
mov eax, edi
dec edi
test eax, eax
je 0x10028a91
add ebx, 0x28
add esi, 0x28
jmp 0x10028bcb
mov eax, dword [ecx + ebx*4 + 8]
mov edx, dword [ebp - 0x18]
push 0x1000
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, dword [ecx + ebx*4 + 4]
mov ecx, edi
mov dword [ebp - 0x20], edi
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
call fcn.100207a0
add esp, 4
jmp 0x10028a97
mov eax, dword [esi + 0x124]
test eax, eax
je 0x10028c62
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x94]
jb 0x10028c62
push dword [esi + 0x128]
call eax
add esp, 4
test eax, eax
jne 0x1002d1c8
mov ecx, dword [ebp - 0x1c]
xor edx, edx
call fcn.10023350
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x1002a196
mov ecx, dword [ebp - 0x1c]
lea edx, [eax + 1]
call fcn.10023230
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x1002a199
mov edi, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
mov eax, dword [edi + 0x48]
add eax, 2
or eax, 1
mov dword [edi + 0x48], eax
mov eax, dword [ecx + ebx*4 + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov dword [edi + 0x14], esi
xor edi, edi
cmp dword [ecx + ebx*4 + 8], edi
jle 0x10028d03
nop word [eax + eax]
mov eax, 0x1000
test word [esi + 8], ax
je 0x10028cdd
mov ecx, esi
call fcn.1001fce0
test eax, eax
jne 0x1002a0ba
mov ecx, dword [ebp - 8]
mov ax, word [esi + 8]
mov edx, 0x202
and ax, dx
cmp ax, 2
jne 0x10028cf9
mov ecx, esi
call fcn.1001fde0
mov ecx, dword [ebp - 8]
inc edi
add esi, 0x28
cmp edi, dword [ecx + ebx*4 + 8]
jl 0x10028cc0
mov esi, dword [ebp - 0xc]
cmp byte [esi + 0x40], 0
jne 0x1002a0bd
mov ecx, dword [ebp - 0x1c]
mov esi, 0x64
mov eax, dword [ebp - 4]
inc eax
mov dword [ecx + 0x4c], eax
jmp 0x1002a12c
mov eax, dword [ecx + ebx*4 + 4]
mov edx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp - 0x2c], eax
mov eax, dword [ecx + ebx*4 + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ecx + ebx*4 + 0xc]
mov ebx, dword [ebp - 0x2c]
lea eax, [eax + eax*4]
movzx ecx, word [ebx + 8]
lea eax, [edx + eax*8]
mov dword [ebp - 0x20], eax
mov al, byte [esi + 8]
or al, cl
test al, 1
je 0x10028d96
mov ebx, dword [ebp - 0x20]
mov eax, 0x2460
test word [ebx + 8], ax
je 0x10028d75
mov ecx, ebx
call fcn.1001fff0
jmp 0x10028a91
mov edi, dword [ebp - 0x20]
mov eax, 1
mov esi, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
mov word [ebx + 8], ax
mov eax, dword [ebp - 4]
mov ebx, dword [ebp - 0x10]
inc eax
mov dword [ebp - 4], eax
jmp 0x100286e0
test ecx, 0x4000
je 0x10028dad
mov ecx, ebx
call fcn.1001fd80
test eax, eax
jne 0x1002a0ba
mov eax, 0x4000
test word [esi + 8], ax
je 0x10028dc7
mov ecx, esi
call fcn.1001fd80
test eax, eax
jne 0x1002a0ba
test byte [ebx + 8], 0x12
jne 0x10028de4
mov dl, byte [ebp - 0x48]
mov ecx, ebx
push 0
call fcn.1001fe20
add esp, 4
test eax, eax
jne 0x1002a0ba
test byte [esi + 8], 0x12
jne 0x10028e01
mov dl, byte [ebp - 0x48]
mov ecx, esi
push 0
call fcn.1001fe20
add esp, 4
test eax, eax
jne 0x1002a0ba
mov eax, dword [ebp - 0xc]
mov edi, dword [ebx + 0xc]
add edi, dword [esi + 0xc]
cmp edi, dword [eax + 0x58]
jg 0x1002d3ff
mov ecx, dword [ebp - 0x20]
lea edx, [edi + 2]
xor eax, eax
cmp ecx, esi
sete al
push eax
call fcn.1001fad0
add esp, 4
test eax, eax
jne 0x1002a0ba
mov ecx, dword [ebp - 0x20]
mov edx, 0xbe02
mov ax, word [ecx + 8]
and ax, dx
or ax, 2
mov word [ecx + 8], ax
cmp ecx, esi
je 0x10028e5d
push dword [esi + 0xc]
push dword [esi + 0x10]
push dword [ecx + 0x10]
call fcn.100a9420
add esp, 0xc
push dword [ebx + 0xc]
push dword [ebx + 0x10]
mov ebx, dword [ebp - 0x20]
mov eax, dword [ebx + 0x10]
add eax, dword [esi + 0xc]
push eax
call fcn.100a9420
mov eax, dword [ebx + 0x10]
add esp, 0xc
mov esi, dword [ebp - 0xc]
mov byte [edi + eax], 0
mov eax, dword [ebx + 0x10]
mov byte [edi + eax + 1], 0
mov eax, 0x200
or word [ebx + 8], ax
mov al, byte [ebp - 0x48]
mov dword [ebx + 0xc], edi
mov edi, ebx
mov byte [edi + 0xa], al
jmp 0x10028a97
mov eax, dword [ecx + ebx*4 + 4]
mov edi, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov ecx, eax
mov dword [ebp - 0x38], eax
call fcn.100285d0
mov esi, dword [ebp - 8]
movzx eax, ax
mov dword [ebp - 0x24], eax
mov eax, dword [esi + ebx*4 + 8]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov ecx, eax
mov dword [ebp - 0x40], eax
call fcn.100285d0
mov ecx, dword [ebp - 0x38]
movzx edx, ax
mov eax, dword [esi + ebx*4 + 0xc]
mov esi, dword [ebp - 0x40]
mov dword [ebp - 0x54], edx
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [ebp - 0x20], eax
mov al, byte [esi + 8]
or al, byte [ecx + 8]
test al, 1
jne 0x100291ab
mov al, dl
and al, byte [ebp - 0x24]
test al, 4
je 0x100290bf
mov eax, ecx
mov byte [ebp - 0x39], 1
mov edx, dword [eax]
mov esi, dword [eax + 4]
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax]
mov edi, dword [eax + 4]
mov eax, dword [ebp - 8]
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0x84], edi
movzx eax, byte [eax + ebx*4]
add eax, 0xffffffa7
cmp eax, 3
ja case.default.0x10028f3d
jmp dword [eax*4 + 0x1002d6d8]
test esi, esi
jl 0x10028fb0
jg 0x10028f4e
test edx, edx
jb 0x10028fb0
test edi, edi
jl 0x10028fe9
jg 0x10028f60
test ecx, ecx
je 0x10028fe9
or ecx, 0xffffffff
mov eax, 0x7fffffff
sub ecx, dword [ebp - 0x5c]
sbb eax, edi
cmp eax, esi
jg 0x10028fe6
jl 0x10028f77
cmp ecx, edx
jae 0x10028fe6
mov esi, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x38]
call fcn.100201d0
mov ecx, esi
movsd qword [ebp - 0x30], xmm0
call fcn.100201d0
mov eax, dword [ebp - 8]
movaps xmm1, xmm0
movsd qword [ebp - 0x50], xmm1
movzx eax, byte [eax + ebx*4]
add eax, 0xffffffa7
cmp eax, 3
ja case.default.0x10028fa9
jmp dword [eax*4 + 0x1002d6e8]
test edi, edi
jg 0x10028fe9
jl 0x10028fba
test ecx, ecx
jae 0x10028fe9
mov eax, 1
sub eax, ecx
mov ecx, 0x80000000
mov dword [ebp - 0x2c], eax
mov eax, edx
sbb ecx, edi
add eax, 1
mov dword [ebp - 0x4c], eax
mov eax, esi
adc eax, 0
cmp ecx, eax
jg 0x10028f77
jl 0x10028fe6
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 0x4c]
ja 0x10028f77
mov ecx, dword [ebp - 0x5c]
add ecx, edx
mov dword [ebp - 0x88], ecx
adc edi, esi
mov dword [ebp - 0x84], edi
jmp 0x1002908f
push esi
push edx
lea ecx, [ebp - 0x88]
call fcn.10008480
add esp, 8
test eax, eax
jne 0x10028f77
jmp 0x1002908f
push esi
push edx
lea ecx, [ebp - 0x88]
call fcn.100084d0
add esp, 8
test eax, eax
jne 0x10028f77
jmp 0x1002908f
mov eax, edx
or eax, esi
je 0x100291ab
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
jne 0x10029055
test ecx, ecx
jne 0x10029055
cmp edi, 0x80000000
je 0x10028f77
push esi
push edx
push edi
push ecx
call fcn.100c53a0
jmp 0x10029083
mov eax, edx
or eax, esi
je 0x100291ab
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
jne 0x1002907a
mov edx, 1
xor esi, esi
push esi
push edx
push edi
push ecx
call fcn.100c5450
mov dword [ebp - 0x84], edx
mov dword [ebp - 0x88], eax
mov edi, dword [ebp - 0x20]
mov ecx, 0xbe04
mov eax, dword [ebp - 0x88]
mov esi, dword [ebp - 0xc]
mov dword [edi], eax
mov eax, dword [ebp - 0x84]
mov dword [edi + 4], eax
mov ax, word [edi + 8]
and ax, cx
or ax, 4
mov word [edi + 8], ax
jmp 0x10028a97
mov byte [ebp - 0x39], 0
jmp 0x10028f7d
addsd xmm1, qword [ebp - 0x30]
jmp 0x1002914d
subsd xmm1, qword [ebp - 0x30]
jmp 0x1002914d
mulsd xmm1, qword [ebp - 0x30]
jmp 0x1002914d
movsd xmm0, qword [ebp - 0x30]
ucomisd xmm0, qword [ebp - 0x180]
lahf
test ah, 0x44
jnp 0x100291ab
divsd xmm1, xmm0
jmp 0x1002914d
movsd xmm0, qword [ebp - 0x30]
call fcn.100c5edb
movsd xmm0, qword [ebp - 0x50]
mov esi, eax
mov edi, edx
call fcn.100c5edb
mov ecx, esi
mov dword [ebp - 0x84], edx
or ecx, edi
mov ebx, eax
mov dword [ebp - 0x88], ebx
je 0x100291ab
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x1002913a
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push ebx
call fcn.100c5450
mov ecx, eax
call fcn.100c5ff0
movaps xmm1, xmm0
movsd qword [ebp - 0x30], xmm1
movsd xmm0, qword [ebp - 0x30]
movsd qword [ebp - 0x50], xmm0
movsd xmm0, qword [ebp - 0x30]
ucomisd xmm0, qword [ebp - 0x50]
lahf
test ah, 0x44
jp 0x100291ab
mov ebx, dword [ebp - 0x20]
mov ecx, 0xbe08
mov ax, word [ebx + 8]
and ax, cx
movsd qword [ebx], xmm1
or ax, 8
mov word [ebx + 8], ax
mov eax, dword [ebp - 0x54]
or al, byte [ebp - 0x24]
test al, 8
jne 0x10028a91
cmp byte [ebp - 0x39], 0
jne 0x10028a91
mov ecx, ebx
call fcn.10020230
jmp 0x10028a91
mov ebx, dword [ebp - 0x20]
mov ecx, 0x2460
mov eax, dword [ebp - 4]
inc eax
mov dword [ebp - 4], eax
test word [ebx + 8], cx
je 0x100291dd
mov ecx, ebx
call fcn.1001fff0
mov esi, dword [ebp - 0xc]
mov edi, ebx
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x10]
jmp 0x100286e0
mov edi, dword [ebp - 0x20]
mov ecx, 1
mov esi, dword [ebp - 0xc]
mov edx, dword [ebp - 0x18]
mov word [ebx + 8], cx
mov ecx, dword [ebp - 8]
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 4], eax
jmp 0x100286e0
mov eax, dword [ecx + ebx*4 + 4]
mov edx, dword [ebp - 0x18]
test eax, eax
je 0x10029243
lea eax, [eax + eax*4]
mov ebx, 0x2460
test word [edx + eax*8 + 8], bx
lea eax, [edx + eax*8]
je 0x1002922d
push 0
push 0
mov ecx, eax
call fcn.10020630
add esp, 8
jmp 0x10028a97
mov ebx, 4
mov dword [eax], 0
mov dword [eax + 4], 0
mov word [eax + 8], bx
mov eax, dword [ebp - 4]
mov ebx, dword [ebp - 0x10]
inc eax
mov dword [ebp - 4], eax
jmp 0x100286e0
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 0x18]
movzx ecx, byte [ecx + ebx*4 + 3]
mov edx, dword [eax + 0xc]
mov eax, dword [esi + ebx*4 + 0xc]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x24], edx
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x144], eax
mov eax, dword [esi + ebx*4 + 8]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
xor edi, edi
test ecx, ecx
je 0x100292c4
mov eax, 0x1000
mov dword [edx + edi*4], esi
test word [esi + 8], ax
je 0x100292b4
mov ecx, esi
call fcn.1001fce0
test eax, eax
jne 0x1002a0ba
mov ecx, dword [ebp - 0x2c]
mov eax, 0x1000
mov edx, dword [ebp - 0x24]
inc edi
add esi, 0x28
cmp edi, ecx
jl 0x10029291
mov esi, dword [ebp - 0x144]
jmp 0x100292c7
mov esi, dword [ebp - 0x4c]
mov edi, dword [ebp - 8]
push edx
push ecx
mov eax, dword [edi + ebx*4 + 0x10]
mov dword [ebp - 0x140], eax
mov eax, dword [ebp - 4]
mov dword [ebp - 0x134], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x138], eax
mov ax, word [esi + 8]
and ax, word [ebp - 0xd4]
or ax, 1
mov word [esi + 8], ax
mov esi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x7c]
mov byte [ebp - 0x12b], 0
mov dword [esi + 0x20], eax
mov eax, dword [ebp - 0x74]
mov dword [esi + 0x24], eax
lea eax, [ebp - 0x144]
push eax
mov eax, dword [ebp - 0x140]
mov eax, dword [eax + 0xc]
call eax
mov eax, dword [esi + 0x20]
add esp, 0xc
cmp byte [ebp - 0x12b], 0
mov dword [ebp - 0x7c], eax
mov eax, dword [esi + 0x24]
mov dword [ebp - 0x74], eax
je 0x10029382
cmp dword [ebp - 0x130], 0
je 0x10029370
mov ecx, dword [ebp - 0x144]
mov dl, 1
call fcn.10020c80
push eax
mov eax, dword [ebp - 0x1c]
push 0x100d66d0
add eax, 0x2c
push esi
push eax
call fcn.10004c10
mov eax, dword [ebp - 0x130]
add esp, 0x10
mov dword [ebp - 0x14], eax
push dword [edi + ebx*4 + 4]
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x1c]
call fcn.100239c0
add esp, 4
mov ecx, dword [ebp - 0x144]
test byte [ecx + 8], 2
je 0x100293a3
mov bl, byte [ebp - 0x48]
cmp byte [ecx + 0xa], bl
je 0x100293a3
mov dl, bl
call fcn.10006b50
mov ecx, dword [ebp - 0x144]
call fcn.10020770
test eax, eax
jne 0x1002d406
jmp 0x1002a190
mov eax, dword [ecx + ebx*4 + 4]
mov edx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, dword [ecx + ebx*4 + 8]
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov eax, dword [ebp - 8]
mov eax, dword [eax + ebx*4 + 0xc]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp - 0x20], eax
mov al, byte [ecx + 8]
or al, byte [edi + 8]
test al, 1
je 0x1002941e
mov ebx, dword [ebp - 0x20]
mov eax, 0x2460
test word [ebx + 8], ax
je 0x10029400
mov ecx, ebx
call fcn.1001fff0
jmp 0x10028a94
mov eax, 1
mov word [ebx + 8], ax
mov eax, dword [ebp - 4]
mov edi, dword [ebp - 0x20]
inc eax
mov ecx, dword [ebp - 8]
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 4], eax
jmp 0x100286e0
call fcn.10020130
mov esi, edx
mov dword [ebp - 0x5c], eax
mov ecx, edi
mov dword [ebp - 0x110], eax
mov dword [ebp - 0x10c], esi
call fcn.10020130
mov edi, eax
mov eax, dword [ebp - 8]
mov cl, byte [eax + ebx*4]
cmp cl, 0x55
jne 0x10029454
mov ecx, dword [ebp - 0x5c]
and ecx, edi
and esi, edx
jmp 0x1002951d
cmp cl, 0x56
jne 0x10029465
mov ecx, dword [ebp - 0x5c]
or ecx, edi
or esi, edx
jmp 0x1002951d
mov eax, edi
or eax, edx
je 0x1002951a
test edx, edx
jg 0x1002949d
jl 0x10029479
test edi, edi
jae 0x10029492
mov al, 0xaf
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x1002949d
jg 0x1002948b
cmp edi, 0xffffffc0
jbe 0x1002949d
neg edi
adc edx, 0
neg edx
test edx, edx
jl 0x100294c5
jg 0x1002949d
cmp edi, 0x40
jb 0x100294c5
test esi, esi
jg 0x100294b5
jl 0x100294a9
cmp dword [ebp - 0x5c], 0
jae 0x100294b5
cmp cl, 0x57
je 0x100294b5
or ecx, 0xffffffff
or esi, ecx
jmp 0x1002951d
xorps xmm0, xmm0
movlpd qword [ebp - 0x30], xmm0
mov esi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x30]
jmp 0x1002951d
movq xmm1, qword [ebp - 0x110]
movd xmm0, edi
cmp cl, 0x57
jne 0x100294e7
psllq xmm1, xmm0
movq qword [ebp - 0x30], xmm1
mov esi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x30]
jmp 0x1002951d
psrlq xmm1, xmm0
movq qword [ebp - 0x30], xmm1
test esi, esi
jg 0x100294bd
jl 0x100294fc
cmp dword [ebp - 0x5c], 0
jae 0x100294bd
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, edi
or edx, 0xffffffff
call fcn.100c5510
mov ecx, dword [ebp - 0x30]
mov esi, dword [ebp - 0x2c]
or ecx, eax
or esi, edx
jmp 0x1002951d
mov ecx, dword [ebp - 0x5c]
mov edi, dword [ebp - 0x20]
mov ax, word [edi + 8]
mov dword [edi], ecx
mov ecx, 0xbe04
and ax, cx
mov dword [edi + 4], esi
mov esi, dword [ebp - 0xc]
or ax, 4
mov word [edi + 8], ax
jmp 0x10028a97
mov eax, dword [ecx + ebx*4 + 4]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.10020130
mov dword [esi], eax
mov ecx, 0xbe04
mov ax, word [esi + 8]
and ax, cx
mov dword [esi + 4], edx
mov ecx, dword [ebp - 8]
or ax, 4
mov word [esi + 8], ax
mov eax, dword [ecx + ebx*4 + 8]
mov ebx, dword [ebp - 0x10]
cdq
add dword [esi], eax
mov eax, dword [ebp - 4]
adc dword [esi + 4], edx
inc eax
mov esi, dword [ebp - 0xc]
mov edx, dword [ebp - 0x18]
mov dword [ebp - 4], eax
jmp 0x100286e0
mov eax, dword [ecx + ebx*4 + 4]
mov edx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
movzx eax, word [esi + 8]
mov ecx, eax
test al, 4
jne 0x100295e3
push dword [ebp - 0x48]
mov dl, 0x43
mov ecx, esi
call fcn.100283e0
movzx eax, word [esi + 8]
add esp, 4
mov ecx, eax
test al, 4
jne 0x100295e0
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov eax, dword [ecx + ebx*4 + 8]
test eax, eax
je 0x1002d1d2
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 4], eax
jmp 0x100286e0
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
and ecx, 0xbe04
mov ebx, dword [ebp - 0x10]
or ecx, 4
mov word [esi + 8], cx
inc eax
mov esi, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
mov dword [ebp - 4], eax
jmp 0x100286e0
mov eax, dword [ecx + ebx*4 + 4]
mov edx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 4
lea esi, [edx + eax*8]
je 0x1002963e
mov ecx, esi
call fcn.100201d0
mov ax, word [esi + 8]
mov ecx, 0xbe08
mov edx, dword [ebp - 0x18]
and ax, cx
mov ecx, dword [ebp - 8]
or ax, 8
movsd qword [esi], xmm0
mov word [esi + 8], ax
mov eax, dword [ebp - 4]
mov esi, dword [ebp - 0xc]
inc eax
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 4], eax
jmp 0x100286e0
mov eax, dword [ecx + ebx*4 + 4]
mov edx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, 0x4000
test word [esi + 8], ax
je 0x10029677
mov ecx, esi
call fcn.1001fd80
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], eax
jmp 0x1002967e
mov dword [ebp - 0x14], 0
mov dl, byte [ecx + ebx*4 + 8]
mov ecx, esi
push dword [ebp - 0x48]
call fcn.100204c0
mov esi, dword [ebp - 0xc]
add esp, 4
jmp 0x1002a193
mov eax, dword [ecx + ebx*4 + 4]
mov esi, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [ebp - 8]
mov dword [ebp - 0x34], ecx
movzx ecx, word [ecx + 8]
mov eax, dword [eax + ebx*4 + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov eax, ecx
movzx esi, word [edi + 8]
mov dword [ebp - 0x5c], eax
mov eax, esi
mov dword [ebp - 0x44], eax
or al, cl
test al, 1
je 0x10029765
mov ecx, dword [ebp - 8]
mov al, byte [ecx + ebx*4 + 3]
test al, al
jns 0x10029709
mov ecx, esi
xor esi, esi
mov eax, ecx
and eax, dword [ebp - 0x5c]
bt ax, si
jae 0x100296fc
test ecx, 0x100
jne 0x100296fc
mov esi, dword [ebp - 0x34]
xor eax, eax
jmp 0x10029831
mov esi, dword [ebp - 0x34]
mov eax, 1
jmp 0x10029831
test al, 0x20
je 0x10029743
mov eax, dword [ecx + ebx*4 + 8]
mov ebx, 0xbe01
mov edx, dword [ebp - 0x18]
mov esi, dword [ebp - 0xc]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov ax, word [edi + 8]
and ax, bx
mov dword [ebp - 0x20], edi
mov ebx, dword [ebp - 0x10]
or ax, 1
mov word [edi + 8], ax
mov eax, dword [ebp - 4]
inc eax
mov dword [ebp - 4], eax
jmp 0x100286e0
test al, 0x10
je 0x100298ba
mov eax, dword [ecx + ebx*4 + 8]
mov edi, dword [ebp - 0x20]
dec eax
mov esi, dword [ebp - 0xc]
inc eax
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 4], eax
jmp 0x100286e0
mov eax, dword [ebp - 8]
mov al, byte [eax + ebx*4 + 3]
and al, 0x47
cmp al, 0x43
jb 0x1002979b
and cl, 0xe
mov eax, esi
cmp cl, 2
jne 0x1002978a
mov ecx, dword [ebp - 0x34]
xor edx, edx
call fcn.100282d0
movzx eax, word [edi + 8]
and al, 0xe
cmp al, 2
jne 0x100297d6
xor edx, edx
mov ecx, edi
call fcn.100282d0
jmp 0x100297d6
cmp al, 0x42
jne 0x100297d6
mov eax, esi
test cl, 2
jne 0x100297bf
test cl, 0xc
je 0x100297bf
mov dl, byte [ebp - 0x48]
mov ecx, dword [ebp - 0x34]
push 1
call fcn.1001fe20
movzx eax, word [edi + 8]
add esp, 4
test al, 2
jne 0x100297d6
test al, 0xc
je 0x100297d6
mov dl, byte [ebp - 0x48]
mov ecx, edi
push 1
call fcn.1001fe20
add esp, 4
mov esi, dword [ebp - 0x34]
mov eax, 0x4000
test word [esi + 8], ax
je 0x100297f7
mov ecx, esi
call fcn.1001fd80
and dword [ebp - 0x5c], 0xbfff
mov eax, 0x4000
test word [edi + 8], ax
je 0x1002980b
mov ecx, edi
call fcn.1001fd80
and dword [ebp - 0x44], 0xbfff
mov eax, dword [ebp - 0xc]
cmp byte [eax + 0x40], 0
jne 0x1002d46a
mov eax, dword [ebp - 8]
mov edx, esi
mov ecx, edi
push dword [eax + ebx*4 + 0x10]
call fcn.10024650
mov ecx, dword [ebp - 8]
add esp, 4
mov dl, byte [ecx + ebx*4]
movzx ecx, dl
add ecx, 0xffffffb2
cmp ecx, 4
ja case.default.0x1002983c
jmp dword [ecx*4 + 0x1002d6f8]
xor ecx, ecx
test eax, eax
sete cl
jmp 0x10029872
xor ecx, ecx
test eax, eax
setne cl
jmp 0x10029872
mov ecx, eax
jmp 0x1002986f
xor ecx, ecx
test eax, eax
setle cl
jmp 0x10029872
xor ecx, ecx
test eax, eax
setg cl
jmp 0x10029872
mov ecx, eax
not ecx
shr ecx, 0x1f
mov eax, dword [ebp - 8]
test byte [eax + ebx*4 + 3], 0x20
je 0x100298d2
mov eax, dword [eax + ebx*4 + 8]
mov ebx, 0xbe04
mov edx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov dword [edx], ecx
mov ax, word [edx + 8]
and ax, bx
mov dword [ebp - 0x20], edx
or ax, 4
mov dword [edx + 4], 0
mov word [edx + 8], ax
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x5c]
mov word [esi + 8], ax
mov eax, dword [ebp - 0x44]
mov word [edi + 8], ax
mov eax, dword [ebp - 4]
mov edi, dword [ebp - 0x20]
inc eax
mov esi, dword [ebp - 0xc]
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 4], eax
jmp 0x100286e0
test ecx, ecx
je 0x100298a9
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + ebx*4 + 8]
dec eax
mov dword [ebp - 4], eax
jmp 0x100298ac
mov eax, dword [ebp - 4]
mov ebx, dword [ecx + ebx*4 + 0x10]
inc eax
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x98], ebx
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 4], eax
jmp 0x100286e0
test byte [ecx + ebx*4 + 3], 1
mov edi, 0
mov eax, dword [ecx + ebx*4 + 0xc]
mov esi, dword [ebp - 8]
mov edx, dword [ecx + ebx*4 + 0x10]
cmovne edi, dword [ebp - 0x98]
mov ecx, dword [ecx + ebx*4 + 4]
mov dword [ebp - 0x98], ecx
mov ecx, dword [esi + ebx*4 + 8]
xor esi, esi
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x2c], ecx
test eax, eax
jle 0x1002999e
test edi, edi
je 0x10029941
mov ecx, dword [edi + esi*4]
jmp 0x10029943
mov ecx, esi
mov eax, dword [edx + 0x10]
push dword [edx + esi*4 + 0x14]
mov edx, dword [ebp - 0x18]
mov bl, byte [esi + eax]
mov eax, dword [ebp - 0x2c]
add eax, ecx
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [ebp - 0x98]
add eax, ecx
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.10024650
add esp, 4
mov dword [ebp - 0xb0], eax
test eax, eax
jne 0x10029992
mov edx, dword [ebp - 0x4c]
inc esi
cmp esi, dword [ebp - 0x24]
jl 0x10029938
mov dword [ebp - 0x98], eax
jmp 0x10028a91
test bl, bl
je 0x1002999e
neg eax
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0x98], 0
jmp 0x10028a91
mov eax, dword [ebp - 0xb0]
test eax, eax
jns 0x100299c9
mov eax, dword [ecx + ebx*4 + 4]
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 4], eax
jmp 0x100286e0
jne 0x100299dd
mov eax, dword [ecx + ebx*4 + 8]
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 4], eax
jmp 0x100286e0
mov eax, dword [ecx + ebx*4 + 0xc]
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 4], eax
jmp 0x100286e0
mov eax, dword [ecx + ebx*4 + 4]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea ecx, [ecx + eax*8]
je 0x10029a0a
mov esi, 6
jmp 0x10029a1c
call fcn.10020130
or eax, edx
je 0x10029a1a
mov esi, 3
jmp 0x10029a1c
xor esi, esi
mov edi, dword [ebp - 8]
mov ecx, dword [ebp - 0x18]
mov eax, dword [edi + ebx*4 + 8]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea ecx, [ecx + eax*8]
je 0x10029a3f
mov ecx, 0x100dbb96
mov eax, 0x100db946
jmp 0x10029a5e
call fcn.10020130
or eax, edx
je 0x10029a54
mov ecx, 0x100dbb95
mov eax, 0x100db945
jmp 0x10029a5e
mov ecx, 0x100dbb94
mov eax, 0x100db944
cmp byte [edi + ebx*4], 0x48
cmovne eax, ecx
mov ecx, dword [ebp - 0x18]
mov dl, byte [eax + esi]
mov eax, dword [edi + ebx*4 + 0xc]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
movzx ecx, word [ebx + 8]
mov dword [ebp - 0x20], ebx
cmp dl, 2
jne 0x10029a93
and ecx, 0xbe01
or ecx, 1
mov word [ebx + 8], cx
jmp 0x10028a91
movzx eax, dl
and ecx, 0xbe04
cdq
or ecx, 4
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov word [ebx + 8], cx
jmp 0x10028a91
mov eax, dword [ecx + ebx*4 + 4]
mov edx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ecx + ebx*4 + 8]
lea eax, [eax + eax*4]
lea ebx, [edx + eax*8]
mov eax, 0x2460
mov dword [ebp - 0x20], ebx
test word [ebx + 8], ax
je 0x10029adc
mov ecx, ebx
call fcn.1001fff0
jmp 0x10029ae5
mov eax, 1
mov word [ebx + 8], ax
test byte [esi + 8], 1
jne 0x10028a91
mov eax, 4
mov ecx, esi
mov word [ebx + 8], ax
call fcn.10020130
or eax, edx
jne 0x10029b14
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp 0x10028a91
xorps xmm0, xmm0
movlpd qword [ebp - 0x30], xmm0
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x30]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp 0x10028a91
mov eax, dword [ecx + ebx*4 + 4]
mov edx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ecx + ebx*4 + 8]
lea eax, [eax + eax*4]
lea ebx, [edx + eax*8]
mov eax, 0x2460
mov dword [ebp - 0x20], ebx
test word [ebx + 8], ax
je 0x10029b5a
mov ecx, ebx
call fcn.1001fff0
jmp 0x10029b63
mov eax, 1
mov word [ebx + 8], ax
test byte [esi + 8], 1
jne 0x10028a91
mov eax, 4
mov ecx, esi
mov word [ebx + 8], ax
call fcn.10020130
not eax
not edx
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp 0x10028a91
mov eax, dword [ecx + ebx*4 + 4]
mov ecx, dword [ebp - 0x1c]
mov ecx, dword [ecx + 0xc8]
cmp byte [eax + ecx], 0
je 0x10029bb3
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x18]
mov eax, dword [ecx + ebx*4 + 8]
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 4], eax
jmp 0x100286e0
mov byte [eax + ecx], 1
jmp 0x10028a97
mov eax, dword [ecx + ebx*4 + 4]
mov edx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 1
lea ecx, [edx + eax*8]
je 0x10029bd9
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + ebx*4 + 0xc]
jmp 0x10029c04
call fcn.100201d0
ucomisd xmm0, qword [ebp - 0x180]
lahf
test ah, 0x44
jnp 0x10029bf3
mov eax, 1
jmp 0x10029bf5
xor eax, eax
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x18]
cmp byte [ecx + ebx*4], 0x2e
jne 0x10029c04
xor eax, 1
test eax, eax
je 0x100287a5
mov eax, dword [ecx + ebx*4 + 8]
mov ebx, dword [ebp - 0x10]
dec eax
inc eax
mov dword [ebp - 4], eax
jmp 0x100286e0
mov eax, dword [ecx + ebx*4 + 4]
mov edx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 1
je 0x100287a5
mov eax, dword [ecx + ebx*4 + 8]
mov ebx, dword [ebp - 0x10]
dec eax
inc eax
mov dword [ebp - 4], eax
jmp 0x100286e0
mov eax, dword [ecx + ebx*4 + 4]
mov edx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 1
jne 0x100287a5
mov eax, dword [ecx + ebx*4 + 8]
mov ebx, dword [ebp - 0x10]
dec eax
inc eax
mov dword [ebp - 4], eax
jmp 0x100286e0
mov eax, dword [ecx + ebx*4 + 8]
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x44], eax
mov eax, dword [ecx + ebx*4 + 0xc]
mov ecx, dword [ecx + ebx*4 + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x5c], esi
mov eax, dword [eax + 0x38]
mov edi, dword [eax + ecx*4]
mov ecx, edi
mov dword [ebp - 0x38], edi
mov eax, dword [edi + 0x50]
mov dword [ebp - 0x40], eax
mov eax, dword [edi]
mov dword [ebp - 0x34], eax
call fcn.10023e50
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x1002b486
mov ecx, dword [ebp - 0x1c]
mov eax, dword [edi + 0x3c]
cmp eax, dword [ecx + 0x48]
je 0x10029de6
cmp byte [edi + 0x19], 0
je 0x10029d0f
cmp dword [ebp - 0x34], 0
jne 0x10029cea
mov eax, dword [edi + 0x10]
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x38]
lea eax, [eax + eax*4]
mov edi, dword [edx + eax*8 + 0xc]
mov dword [ecx + 0x44], edi
mov dword [ecx + 0x40], edi
mov esi, dword [edx + eax*8 + 0x10]
mov dword [ecx + 0x4c], esi
jmp 0x10029d7e
mov eax, 0x2460
test word [esi + 8], ax
je 0x10029d01
mov ecx, esi
call fcn.1001fff0
jmp 0x1002a074
mov eax, 1
mov word [esi + 8], ax
jmp 0x1002a074
test byte [edi + 0x1c], 4
mov esi, dword [ebp - 0x34]
mov ecx, esi
jne 0x10029d4a
call fcn.100188f0
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x118], eax
mov eax, dword [esi + 0x1c]
mov dword [ebp - 0x114], eax
movzx ecx, word [esi + 0x28]
mov esi, dword [esi + 0x20]
mov dword [edi + 0x4c], esi
mov eax, dword [ebp - 0x118]
mov edx, eax
mov dword [edi + 0x40], eax
mov eax, ecx
jmp 0x10029d5f
call fcn.100188f0
mov edx, dword [esi + 0x24]
mov dword [edi + 0x40], edx
movzx eax, word [esi + 0x28]
mov esi, dword [esi + 0x20]
mov dword [edi + 0x4c], esi
movzx edi, ax
mov ecx, edx
mov eax, dword [ebp - 0x38]
cmp edx, edi
cmova edx, edi
mov dword [eax + 0x44], edx
mov eax, dword [ebp - 0xc]
cmp ecx, dword [eax + 0x58]
ja 0x1002d3ff
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x48]
mov dword [ecx + 0x3c], eax
mov al, byte [esi]
cmp al, 0x80
jae 0x10029d97
movzx eax, al
mov dword [ebp - 0x78], eax
mov al, 1
jmp 0x10029da4
lea edx, [ebp - 0x78]
mov ecx, esi
call fcn.10008260
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x40]
movzx eax, al
mov dword [ecx + 0x48], eax
xor eax, eax
mov word [ecx + 0x16], ax
mov eax, dword [ebp - 0x78]
mov dword [edx], eax
mov eax, dword [ebp - 0x78]
cmp eax, 0x18003
ja 0x1002d1df
cmp eax, dword [ecx + 0x40]
ja 0x1002d1df
cmp edi, eax
mov edi, dword [ebp - 0x38]
jae 0x10029df6
mov dword [edi + 0x4c], 0
mov dword [edi + 0x44], 0
jmp 0x10029df6
movzx eax, word [edi + 0x16]
cmp eax, dword [ebp - 0x44]
jg 0x10029f92
mov edx, dword [ebp - 0x40]
mov eax, dword [edi + 0x48]
cmp eax, dword [edx]
jae 0x10029f60
mov eax, dword [edi + 0x4c]
mov dword [ebp - 0x54], eax
test eax, eax
jne 0x10029e5d
mov ecx, dword [ebp - 0x34]
lea eax, [ebp - 0x210]
push eax
xorps xmm0, xmm0
movups xmmword [ebp - 0x210], xmm0
movups xmmword [ebp - 0x200], xmm0
movq qword [ebp - 0x1f0], xmm0
mov eax, dword [edi + 0x1c]
shr eax, 2
not eax
and eax, 1
push eax
push dword [edx]
xor edx, edx
call fcn.10020ad0
add esp, 0xc
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x1002b845
mov eax, dword [ebp - 0x200]
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x54], eax
movzx edi, word [edi + 0x16]
mov ecx, dword [ebp - 0x38]
mov eax, dword [edx + edi*4]
mov dword [ebp - 0x78], eax
mov eax, dword [edx]
lea edx, [ecx + 0x54]
mov esi, dword [ecx + 0x48]
lea edx, [edx + edi*4]
add esi, dword [ebp - 0x54]
add eax, dword [ebp - 0x54]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x2c], edx
mov al, byte [esi]
cmp al, 0x80
jae 0x10029e97
movzx eax, al
mov ecx, 1
mov dword [ebp - 0x8c], eax
jmp 0x10029eb0
lea edx, [ebp - 0x8c]
mov ecx, esi
call fcn.10008260
mov edx, dword [ebp - 0x2c]
movzx ecx, al
mov eax, dword [ebp - 0x8c]
mov dword [edx], eax
add esi, ecx
mov eax, dword [ebp - 0x8c]
cmp eax, 0xc
jb 0x10029ec6
lea ecx, [eax - 0xc]
shr ecx, 1
jmp 0x10029ecd
movzx ecx, byte [eax + 0x100daa04]
mov eax, dword [ebp - 0x78]
add eax, ecx
mov dword [ebp - 0x78], eax
cmp eax, ecx
jb 0x10029ef4
mov ecx, dword [ebp - 0x40]
inc edi
add edx, 4
mov dword [ebp - 0x2c], edx
mov dword [ecx + edi*4], eax
mov ecx, dword [ebp - 0x4c]
cmp edi, dword [ebp - 0x44]
jg 0x10029efa
cmp esi, ecx
jb 0x10029e81
jmp 0x10029efa
mov ecx, dword [ebp - 0x4c]
lea esi, [ecx + 1]
mov eax, dword [ebp - 0x38]
mov word [eax + 0x16], di
mov eax, esi
mov edi, dword [ebp - 0x38]
sub eax, dword [ebp - 0x54]
cmp dword [edi + 0x4c], 0
mov dword [edi + 0x48], eax
jne 0x10029f41
test dword [ebp - 0x208], 0x2460
jne 0x10029f27
cmp dword [ebp - 0x1f8], 0
je 0x10029f35
lea ecx, [ebp - 0x210]
call fcn.10020070
mov ecx, dword [ebp - 0x4c]
mov eax, 1
mov word [ebp - 0x208], ax
mov eax, dword [ebp - 0x78]
cmp esi, ecx
jb 0x10029f57
ja 0x1002d208
cmp eax, dword [edi + 0x40]
jne 0x1002d208
cmp eax, dword [edi + 0x40]
ja 0x1002d208
movzx eax, word [edi + 0x16]
mov esi, dword [ebp - 0x5c]
cmp eax, dword [ebp - 0x44]
jg 0x10029f92
mov eax, dword [ebp - 8]
cmp byte [eax + ebx*4 + 1], 0xf8
jne 0x10029cea
mov edx, dword [eax + ebx*4 + 0x10]
mov ecx, esi
push 0x800
call fcn.100207a0
add esp, 4
jmp 0x1002a074
mov eax, 0x2460
test word [esi + 8], ax
je 0x10029fa4
mov ecx, esi
call fcn.1001fff0
mov eax, dword [ebp - 0x44]
mov ebx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x40]
mov edx, dword [edi + eax*4 + 0x54]
mov dword [ebp - 0x8c], edx
mov eax, dword [edi + 0x44]
cmp eax, dword [ecx + ebx*4 + 4]
mov ebx, dword [ebp - 0x24]
jb 0x10029fdd
mov eax, dword [ebp - 0x40]
mov ebx, dword [ebp - 0x44]
mov ecx, dword [edi + 0x4c]
push esi
add ecx, dword [eax + ebx*4]
call fcn.10024100
add esp, 4
jmp 0x1002a06e
mov eax, dword [ebp - 8]
mov al, byte [eax + ebx*4 + 3]
test al, 0xc0
je 0x10029ff6
cmp edx, 0xc
jb 0x10029ff2
test dl, 1
je 0x1002a00d
test al, al
js 0x1002a00d
cmp edx, 0xc
jb 0x1002a002
lea ecx, [edx - 0xc]
shr ecx, 1
jmp 0x1002a009
movzx ecx, byte [edx + 0x100daa04]
test ecx, ecx
jne 0x1002a026
xor eax, eax
lea ecx, [ebp - 0x118]
cmp edx, 0xd
push esi
cmova ecx, eax
call fcn.10024100
add esp, 4
jmp 0x1002a06e
mov eax, dword [edi + 0x1c]
shr eax, 2
not eax
and eax, 1
push esi
push eax
mov eax, dword [ebp - 0x40]
push ecx
mov ecx, dword [ebp - 0x44]
mov edx, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x34]
call fcn.10020ad0
add esp, 0xc
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x1002b845
mov edx, dword [ebp - 0x8c]
mov ecx, dword [esi + 0x10]
push esi
call fcn.10024100
mov eax, 0xefff
add esp, 4
and word [esi + 8], ax
mov al, byte [ebp - 0x48]
mov byte [esi + 0xa], al
movzx ecx, word [esi + 8]
test ecx, 0x1000
je 0x1002a18d
mov ebx, dword [esi + 0x10]
test ebx, ebx
je 0x1002a18d
mov eax, dword [ebp - 0x5c]
mov esi, ecx
and esi, 0x12
mov edi, dword [eax + 0xc]
lea edx, [edi + 2]
cmp dword [eax + 0x18], edx
jge 0x1002a154
push 0
mov ecx, eax
call fcn.1001fad0
add esp, 4
test eax, eax
je 0x1002a164
mov esi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x1c]
push str.out_of_memory
add eax, 0x2c
mov byte [esi + 0x40], 1
push esi
push eax
call fcn.10004c10
mov eax, 7
add esp, 0xc
mov dword [ebp - 0x14], eax
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x1c]
push dword [ecx + 0x2c]
mov dword [ecx + 0x50], eax
push dword [ecx + 0xa8]
push edx
push str.statement_aborts_at__d:___s___s
push eax
call fcn.100068b0
mov ecx, dword [ebp - 0x1c]
add esp, 0x14
call fcn.100233c0
cmp dword [ebp - 0x14], 0xc0a
jne 0x1002a114
mov byte [esi + 0x40], 1
mov al, byte [ebp - 0x61]
mov esi, 1
test al, al
je 0x1002a12c
mov ecx, dword [ebp - 0xc]
movzx edx, al
dec edx
call fcn.1003f3e0
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 0x20], ecx
mov ecx, dword [ebp - 0x74]
mov dword [eax + 0x24], ecx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x10]
add dword [eax + 0x7c], ecx
mov ecx, eax
call fcn.10021e10
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x5c]
and ecx, 0xd
mov eax, dword [eax + 0x14]
mov dword [edx + 0x10], eax
mov word [edx + 8], cx
push edi
push ebx
mov ebx, dword [ebp - 0x5c]
push dword [ebx + 0x10]
call fcn.100a9420
mov eax, dword [ebx + 0x10]
add esp, 0xc
or esi, 0x200
mov byte [edi + eax], 0
mov eax, dword [ebx + 0x10]
mov byte [edi + eax + 1], 0
mov word [ebx + 8], si
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
mov ebx, dword [ebp - 0x10]
inc edx
mov dword [ebp - 4], edx
test eax, eax
jne 0x1002a0e1
mov eax, edx
jmp 0x100286d5
mov eax, dword [ecx + ebx*4 + 4]
mov edx, dword [ebp - 0x18]
mov esi, dword [ecx + ebx*4 + 0x10]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov al, byte [esi]
test al, al
je 0x1002a1f1
nop dword [eax]
push dword [ebp - 0x48]
mov dl, al
lea esi, [esi + 1]
mov ecx, edi
call fcn.100283e0
mov al, byte [esi]
add esp, 4
add edi, 0x28
test al, al
jne 0x1002a1d0
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
mov edi, dword [ebp - 0x20]
inc eax
mov esi, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 4], eax
jmp 0x100286e0
mov esi, dword [ecx + ebx*4 + 0x10]
xor eax, eax
mov edi, dword [ebp - 8]
xorps xmm0, xmm0
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x24], eax
mov eax, dword [ecx + ebx*4 + 4]
mov ecx, dword [ebp - 0x18]
movlpd qword [ebp - 0x60], xmm0
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [edi + ebx*4 + 8]
mov dword [ebp - 0x4c], ecx
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x1c]
movzx edx, byte [eax + 0x57]
mov eax, dword [edi + ebx*4 + 0xc]
mov ebx, dword [ebp - 0x18]
mov dword [ebp - 0x2c], edx
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [ebp - 0x20], eax
test esi, esi
je 0x1002a27f
mov al, byte [esi]
mov edi, ecx
nop
push dword [ebp - 0x48]
mov dl, al
mov ecx, edi
call fcn.100283e0
mov al, byte [esi + 1]
lea esi, [esi + 1]
add esp, 4
add edi, 0x28
test al, al
jne 0x1002a260
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x5c]
mov ebx, dword [ebp - 0x54]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x40], eax
nop
mov ecx, ebx
call fcn.10023e80
mov esi, eax
mov dword [ebx + 0x1c], esi
cmp esi, 0xc
jb 0x1002a2a8
lea edi, [esi - 0xc]
shr edi, 1
jmp 0x1002a2af
movzx edi, byte [esi + 0x100daa04]
mov eax, 0x4000
test word [ebx + 8], ax
je 0x1002a2d2
mov eax, dword [ebp - 0x40]
or eax, dword [ebp - 0x34]
je 0x1002a2cb
mov ecx, ebx
call fcn.1001fd80
jmp 0x1002a2d2
mov ecx, dword [ebx]
add dword [ebp - 0x24], ecx
sub edi, ecx
mov eax, edi
mov edi, dword [ebp - 0x34]
cdq
add dword [ebp - 0x40], eax
adc edi, edx
mov dword [ebp - 0x34], edi
cmp esi, 0x7f
ja 0x1002a2ec
mov edx, 1
jmp 0x1002a303
xor ecx, ecx
xor edx, edx
shrd esi, ecx, 7
inc edx
shr ecx, 7
mov eax, esi
or eax, ecx
je 0x1002a303
cmp edx, 9
jl 0x1002a2f0
mov ecx, dword [ebp - 0x38]
sub ebx, 0x28
add ecx, edx
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], ecx
cmp ebx, dword [ebp - 0x4c]
jae 0x1002a290
cmp ecx, 0x7e
jle 0x1002a363
mov eax, ecx
xor edi, edi
cdq
mov ecx, eax
shrd ecx, edx, 7
inc edi
shr edx, 7
mov eax, ecx
or eax, edx
je 0x1002a339
cmp edi, 9
jl 0x1002a326
mov eax, dword [ebp - 0x38]
add eax, edi
xor esi, esi
mov dword [ebp - 0x38], eax
cdq
mov ecx, eax
shrd ecx, edx, 7
inc esi
shr edx, 7
mov eax, ecx
or eax, edx
je 0x1002a359
cmp esi, 9
jl 0x1002a346
mov ecx, dword [ebp - 0x38]
cmp edi, esi
mov edi, dword [ebp - 0x34]
jge 0x1002a367
inc ecx
mov dword [ebp - 0x38], ecx
mov eax, ecx
cdq
mov ebx, eax
mov esi, edx
mov eax, dword [ebp - 0xc]
add dword [ebp - 0x40], ebx
adc edi, esi
mov eax, dword [eax + 0x58]
cdq
cmp edi, edx
jg 0x1002d403
jl 0x1002a38d
cmp dword [ebp - 0x40], eax
ja 0x1002d403
mov edi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x40]
cmp dword [edi + 0x18], eax
jge 0x1002a3b3
push 0
mov edx, eax
mov ecx, edi
call fcn.1001fad0
add esp, 4
test eax, eax
jne 0x1002a0ba
mov ecx, dword [ebp - 0x38]
jmp 0x1002a3be
mov eax, dword [edi + 0x14]
and word [edi + 8], 0xd
mov dword [edi + 0x10], eax
mov edi, dword [edi + 0x10]
cmp ecx, 0x80
jae 0x1002a3d2
mov byte [edi], cl
mov eax, 1
jmp 0x1002a3de
push esi
push ebx
mov ecx, edi
call fcn.10008060
add esp, 8
mov ebx, dword [ebp - 0x4c]
movzx esi, al
mov ebx, dword [ebx + 0x1c]
lea ecx, [esi + edi]
cmp ebx, 0x80
jae 0x1002a3fb
mov byte [ecx], bl
mov eax, 1
jmp 0x1002a406
push 0
push ebx
call fcn.10008060
add esp, 8
mov ecx, dword [ebp - 0x38]
push ebx
mov ebx, dword [ebp - 0x4c]
mov edx, ebx
movzx eax, al
lea ecx, [ecx + edi]
add esi, eax
call fcn.10023f90
add dword [ebp - 0x38], eax
add ebx, 0x28
add esp, 4
mov dword [ebp - 0x4c], ebx
cmp ebx, dword [ebp - 0x54]
jbe 0x1002a3e4
mov ebx, dword [ebp - 0x20]
mov eax, 0x10
mov edx, dword [ebp - 0x40]
mov word [ebx + 8], ax
mov eax, dword [ebp - 0x24]
mov dword [ebx + 0xc], edx
test eax, eax
je 0x1002a451
mov dword [ebx], eax
mov eax, 0x4010
mov word [ebx + 8], ax
mov byte [ebx + 0xa], 1
jmp 0x10028a91
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0x120]
mov ecx, dword [ecx + ebx*4 + 4]
xorps xmm0, xmm0
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
movlpd qword [ebp - 0x120], xmm0
call fcn.1001d860
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x120]
mov dword [edi], eax
mov eax, dword [ebp - 0x11c]
mov dword [edi + 4], eax
jmp 0x1002a193
mov eax, dword [ecx + ebx*4 + 4]
mov ebx, dword [ecx + ebx*4 + 0x10]
mov dword [ebp - 0x34], eax
test eax, eax
jne 0x1002a575
cmp dword [esi + 0x9c], eax
jg 0x1002d231
mov esi, ebx
test ebx, ebx
je 0x1002a4d0
cmp byte [ebx], 0
je 0x1002a4c8
inc esi
cmp byte [esi], 0
jne 0x1002a4c2
sub esi, ebx
and esi, 0x3fffffff
mov edi, dword [ebp - 0xc]
xor edx, edx
mov ecx, edi
mov eax, dword [edi + 0x1f4]
add eax, dword [edi + 0x1f0]
push eax
call fcn.1006c8a0
add esp, 4
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x1002d34d
lea eax, [esi + 0x21]
mov ecx, edi
push 0
push eax
call fcn.100049f0
mov edi, eax
add esp, 8
test edi, edi
je 0x10028a91
lea ecx, [esi + 1]
push ecx
lea edx, [edi + 0x20]
push ebx
push edx
mov dword [edi], edx
call fcn.100a9420
mov esi, dword [ebp - 0xc]
add esp, 0xc
cmp byte [esi + 0x3e], 0
je 0x1002a537
mov byte [esi + 0x3e], 0
mov byte [esi + 0x45], 1
jmp 0x1002a53d
inc dword [esi + 0x1f0]
mov eax, dword [esi + 0x1e8]
mov dword [edi + 0x18], eax
mov eax, dword [esi + 0x1f8]
mov dword [esi + 0x1e8], edi
mov dword [edi + 8], eax
mov eax, dword [esi + 0x1fc]
mov dword [edi + 0xc], eax
mov eax, dword [esi + 0x200]
mov dword [edi + 0x10], eax
mov eax, dword [esi + 0x204]
mov dword [edi + 0x14], eax
jmp 0x10028a94
mov eax, dword [ebp - 0xc]
xor esi, esi
mov dword [ebp - 0x5c], esi
mov edi, dword [eax + 0x1e8]
test edi, edi
je 0x1002a5a1
push ebx
push dword [edi]
call fcn.10007400
add esp, 8
test eax, eax
je 0x1002a5cb
mov edi, dword [edi + 0x18]
inc esi
mov dword [ebp - 0x5c], esi
test edi, edi
jne 0x1002a587
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0xc]
add eax, 0x2c
push ebx
push str.no_such_savepoint:__s
push esi
push eax
call fcn.10004c10
mov edx, dword [ebp - 4]
mov eax, 1
add esp, 0x10
mov dword [ebp - 0x14], eax
inc edx
jmp 0x1002a0e1
mov edx, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x34]
cmp dword [edx + 0x9c], 0
jle 0x1002a5e3
cmp ebx, 1
je 0x1002d257
cmp dword [edi + 0x18], 0
jne 0x1002a638
cmp byte [edx + 0x45], 0
je 0x1002a638
mov dword [ebp - 0x4c], 1
cmp ebx, 1
jne 0x1002a63f
mov ecx, dword [ebp - 0x1c]
mov edx, ebx
call fcn.10023350
mov esi, eax
test esi, esi
jne 0x1002a12c
mov esi, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x1c]
mov byte [esi + 0x3e], bl
call fcn.100233c0
cmp eax, 5
je 0x1002d260
mov eax, dword [ebp - 0x1c]
mov byte [esi + 0x45], 0
mov eax, dword [eax + 0x50]
mov dword [ebp - 0x14], eax
jmp 0x1002a719
mov dword [ebp - 0x4c], 0
mov ecx, dword [edx + 0x1f0]
mov eax, dword [edx + 0x14]
sub ecx, esi
dec ecx
mov dword [ebp - 0x5c], ecx
cmp ebx, 2
jne 0x1002a6ac
mov edx, dword [edx + 0x18]
xor ebx, ebx
shr edx, 1
and edx, 1
mov dword [ebp - 0x24], edx
test eax, eax
jle 0x1002a6b1
mov ecx, edx
xor ecx, 1
xor esi, esi
mov dword [ebp - 0x2c], ecx
nop
mov eax, dword [ebp - 0xc]
mov edx, 0x204
push ecx
mov ecx, dword [eax + 0x10]
mov ecx, dword [esi + ecx + 4]
call fcn.100183c0
add esp, 4
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x1002b486
mov eax, dword [ebp - 0xc]
inc ebx
mov ecx, dword [ebp - 0x2c]
add esi, 0x10
mov eax, dword [eax + 0x14]
cmp ebx, eax
jl 0x1002a670
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x24]
jmp 0x1002a6b1
xor edx, edx
mov dword [ebp - 0x24], edx
xor ebx, ebx
test eax, eax
jle 0x1002a6f0
mov eax, dword [ebp - 0xc]
xor esi, esi
nop dword [eax]
mov edx, dword [ebp - 0x34]
push ecx
mov ecx, dword [eax + 0x10]
mov ecx, dword [esi + ecx + 4]
call fcn.10018680
add esp, 4
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x1002b486
mov eax, dword [ebp - 0xc]
inc ebx
mov ecx, dword [ebp - 0x5c]
add esi, 0x10
cmp ebx, dword [eax + 0x14]
jl 0x1002a6c0
mov edx, dword [ebp - 0x24]
mov esi, dword [ebp - 0xc]
test edx, edx
je 0x1002a716
mov eax, dword [esi + 4]
test eax, eax
je 0x1002a70b
nop
or dword [eax + 0x58], 0x20
mov eax, dword [eax + 0x34]
test eax, eax
jne 0x1002a700
mov ecx, esi
call fcn.1003f420
or dword [esi + 0x18], 2
mov ebx, dword [ebp - 0x34]
cmp dword [esi + 0x1e8], edi
je 0x1002a745
mov edx, dword [esi + 0x1e8]
mov ecx, esi
mov eax, dword [edx + 0x18]
mov dword [esi + 0x1e8], eax
call fcn.10004780
dec dword [esi + 0x1f0]
cmp dword [esi + 0x1e8], edi
jne 0x1002a721
cmp ebx, 1
jne 0x1002a76e
mov eax, dword [edi + 0x18]
mov edx, edi
mov ecx, esi
mov dword [esi + 0x1e8], eax
call fcn.10004780
cmp dword [ebp - 0x4c], 0
jne 0x1002a190
dec dword [esi + 0x1f0]
jmp 0x1002a79c
cmp dword [ebp - 0x4c], 0
mov eax, dword [edi + 8]
mov dword [esi + 0x1f8], eax
mov eax, dword [edi + 0xc]
mov dword [esi + 0x1fc], eax
mov eax, dword [edi + 0x10]
mov dword [esi + 0x200], eax
mov eax, dword [edi + 0x14]
mov dword [esi + 0x204], eax
jne 0x1002a190
push dword [ebp - 0x5c]
mov edx, ebx
mov ecx, esi
call fcn.1006c8a0
add esp, 4
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x1002b489
mov edi, dword [ebp - 0x20]
jmp 0x1002a196
mov eax, dword [ebp - 8]
mov ecx, dword [ecx + ebx*4 + 4]
mov dword [ebp - 0x2c], ecx
mov edx, dword [eax + ebx*4 + 8]
test ecx, ecx
je 0x1002a7f1
mov al, byte [esi + 0x3e]
test al, al
jne 0x1002a7f1
test edx, edx
jne 0x1002a7f4
cmp dword [esi + 0x9c], edx
jle 0x1002a7f4
mov dword [ebp - 0x14], 5
mov eax, str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x1002a820
mov al, byte [esi + 0x3e]
movzx eax, al
cmp ecx, eax
jne 0x1002d27a
test ecx, ecx
jne 0x1002a80a
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x1002a819
test edx, edx
mov eax, str.cannot_rollback___no_transaction_is_active
mov ecx, str.cannot_commit___no_transaction_is_active
cmove eax, ecx
mov dword [ebp - 0x14], 1
push eax
mov eax, dword [ebp - 0x1c]
add eax, 0x2c
push esi
push eax
call fcn.10004c10
add esp, 0xc
jmp 0x1002a193
mov edx, dword [ecx + ebx*4 + 8]
test edx, edx
je 0x1002a84b
test dword [esi + 0x18], 0x2000000
jne 0x1002d2f6
mov ecx, dword [ecx + ebx*4 + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
test esi, esi
je 0x1002a95d
mov ecx, esi
call fcn.100172d0
mov dword [ebp - 0x14], eax
cmp eax, 5
je 0x1002d303
test eax, eax
jne 0x1002b486
mov eax, dword [ebp - 8]
cmp dword [eax + ebx*4 + 8], 0
je 0x1002a929
mov eax, dword [ebp - 0x1c]
test byte [eax + 0x58], 0x80
je 0x1002a929
mov edx, dword [ebp - 0xc]
cmp byte [edx + 0x3e], 0
je 0x1002a8ac
cmp dword [edx + 0x98], 1
jle 0x1002a929
mov eax, dword [eax + 0x68]
test eax, eax
jne 0x1002a8cb
mov eax, dword [edx + 0x1f0]
mov ecx, dword [ebp - 0x1c]
inc dword [edx + 0x1f4]
add eax, dword [edx + 0x1f4]
mov dword [ecx + 0x68], eax
mov ecx, dword [ebp - 0xc]
dec eax
push eax
xor edx, edx
call fcn.1006c8a0
mov edx, eax
add esp, 4
mov dword [ebp - 0x14], edx
test edx, edx
jne 0x1002a8f3
mov eax, dword [ebp - 0x1c]
mov ecx, esi
mov edx, dword [eax + 0x68]
call fcn.10018630
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ecx + 0x1f8]
mov dword [edx + 0x98], eax
mov eax, dword [ecx + 0x1fc]
mov dword [edx + 0x9c], eax
mov eax, dword [ecx + 0x200]
mov dword [edx + 0xa0], eax
mov eax, dword [ecx + 0x204]
mov dword [edx + 0xa4], eax
lea eax, [ebp - 0xb4]
mov edx, 1
push eax
mov ecx, esi
call fcn.1001d730
mov edx, dword [ebp - 8]
add esp, 4
mov esi, dword [ebp - 0xc]
mov ecx, dword [edx + ebx*4 + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0xb4]
jmp 0x1002a96d
mov esi, dword [ebp - 0xc]
xor eax, eax
mov edx, dword [ebp - 8]
xor ecx, ecx
mov dword [ebp - 0xb4], eax
cmp byte [edx + ebx*4 + 3], 0
je 0x1002a193
cmp eax, dword [edx + ebx*4 + 0xc]
jne 0x1002a988
cmp ecx, dword [edx + ebx*4 + 0x10]
je 0x1002a193
mov eax, dword [ebp - 0x1c]
mov ecx, esi
mov edx, dword [eax + 0x2c]
call fcn.10004780
mov edx, str.database_schema_has_changed
mov ecx, esi
call fcn.10004bc0
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x2c], eax
mov eax, dword [ebp - 8]
mov edx, dword [eax + ebx*4 + 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 - 0xb4]
je 0x1002a9ca
mov ecx, esi
call fcn.1003f3e0
mov eax, dword [ebp - 0x1c]
or dword [eax + 0x58], 0x20
mov eax, 0x11
mov dword [ebp - 0x14], eax
jmp 0x1002a196
mov edx, dword [ebp - 8]
lea eax, [ebp - 0xfc]
push eax
mov eax, dword [ecx + ebx*4 + 4]
mov ecx, dword [esi + 0x10]
add eax, eax
mov edx, dword [edx + ebx*4 + 0xc]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.1001d730
mov eax, dword [ebp - 0xfc]
add esp, 4
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x10028a97
mov eax, dword [ecx + ebx*4 + 0xc]
mov edi, dword [ecx + ebx*4 + 4]
mov ecx, dword [ebp - 0x18]
shl edi, 4
add edi, dword [esi + 0x10]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.10020130
mov dword [esi], eax
mov ecx, 0xbe04
mov ax, word [esi + 8]
and ax, cx
mov dword [esi + 4], edx
push dword [esi]
or ax, 4
mov word [esi + 8], ax
mov eax, dword [ebp - 8]
mov ecx, dword [edi + 4]
mov edx, dword [eax + ebx*4 + 8]
call fcn.1001d7a0
mov ecx, dword [ebp - 8]
add esp, 4
mov dword [ebp - 0x14], eax
mov eax, dword [ecx + ebx*4 + 8]
cmp eax, 1
jne 0x1002aa7f
mov ecx, dword [edi + 0xc]
mov eax, dword [esi]
mov esi, dword [ebp - 0xc]
mov dword [ecx], eax
mov ecx, dword [ebp - 8]
or dword [esi + 0x18], 2
jmp 0x1002aa92
cmp eax, 2
jne 0x1002aa8f
mov ecx, dword [edi + 0xc]
mov al, byte [esi]
mov byte [ecx + 0x4c], al
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
cmp dword [ecx + ebx*4 + 4], 1
jne 0x1002aab2
mov eax, dword [esi + 4]
test eax, eax
je 0x1002aaab
or dword [eax + 0x58], 0x20
mov eax, dword [eax + 0x34]
test eax, eax
jne 0x1002aaa0
mov eax, dword [ebp - 0x1c]
and dword [eax + 0x58], 0xffffffdf
mov edi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
jmp 0x1002a199
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ecx + ebx*4 + 4]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 8]
test eax, eax
je case.0x10028738.54
mov eax, dword [eax + 0x20]
cmp eax, dword [ecx + ebx*4 + 8]
je case.default.0x10028738
mov eax, dword [ebp - 0x1c]
test byte [eax + 0x58], 0x20
jne 0x1002d33c
mov eax, dword [ecx + ebx*4 + 0xc]
xor edi, edi
mov esi, dword [ecx + ebx*4 + 8]
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x34], eax
shl eax, 4
mov dword [ebp - 0x4c], edi
add eax, dword [ecx + 0x10]
mov dword [ebp - 0x24], esi
mov ecx, dword [eax + 4]
mov dword [ebp - 0x54], ecx
cmp dl, 0x37
jne 0x1002ab2c
mov eax, dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x2c], 1
mov al, byte [eax + 0x4c]
cmp al, byte [ecx + 0x57]
jae 0x1002ab2f
mov byte [ecx + 0x57], al
jmp 0x1002ab2f
mov dword [ebp - 0x2c], edi
mov ecx, dword [ebp - 8]
test byte [ecx + ebx*4 + 3], 2
je 0x1002ab73
mov ecx, dword [ebp - 0x18]
lea eax, [esi + esi*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.10020130
mov dword [esi], eax
mov ecx, 0xbe04
mov ax, word [esi + 8]
and ax, cx
mov dword [esi + 4], edx
or ax, 4
mov word [esi + 8], ax
mov eax, dword [esi]
mov dword [ebp - 0x24], eax
cmp eax, 2
jl 0x1002d319
mov ecx, dword [ebp - 8]
mov al, byte [ecx + ebx*4 + 1]
cmp al, 0xfa
jne 0x1002ab8e
mov esi, dword [ecx + ebx*4 + 0x10]
mov dword [ebp - 0x4c], esi
movzx edi, word [esi + 8]
movzx eax, word [esi + 6]
add edi, eax
jmp 0x1002ab96
cmp al, 0xf2
jne 0x1002ab96
mov edi, dword [ecx + ebx*4 + 0x10]
mov edx, dword [ecx + ebx*4 + 4]
mov ecx, dword [ebp - 0x1c]
push 1
push dword [ebp - 0x34]
push edi
call fcn.100281f0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x1002a0ba
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x54]
or dword [edi + 0x1c], 8
mov esi, dword [edi]
mov byte [edi + 0x19], 1
mov dword [edi + 0x20], eax
call fcn.10014e60
mov edx, dword [ebp - 0x24]
push esi
push dword [ebp - 0x4c]
mov esi, dword [ebp - 0x54]
mov ecx, esi
push dword [ebp - 0x2c]
call fcn.10018730
add esp, 0xc
mov dword [ebp - 0x14], eax
cmp byte [esi + 9], 0
je 0x1002abfa
add dword [esi + 0xc], 0xffffffff
jne 0x1002abfa
mov ecx, esi
call fcn.10014e40
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x4c]
mov esi, dword [ebp - 0xc]
mov dword [edi + 8], eax
mov eax, dword [edi]
mov cl, byte [edx + ebx*4 + 3]
and cl, 1
mov byte [eax + 0x4a], cl
xor ecx, ecx
cmp byte [edx + ebx*4 + 1], 0xfa
mov eax, 4
cmovne ecx, eax
mov eax, dword [edi + 0x1c]
and eax, 0xfffffffb
or ecx, eax
mov dword [edi + 0x1c], ecx
mov edi, dword [ebp - 0x20]
jmp 0x1002a193
mov edx, dword [ecx + ebx*4 + 4]
push 1
push 0xffffffffffffffff
push dword [ecx + ebx*4 + 8]
mov ecx, dword [ebp - 0x1c]
call fcn.100281f0
mov edi, eax
add esp, 0xc
mov dword [ebp - 0x4c], edi
test edi, edi
je 0x1002a0bd
mov eax, dword [ebp - 8]
lea esi, [edi + 4]
or dword [edi + 0x1c], 1
xor edx, edx
mov byte [edi + 0x19], 1
push 0x41e
movzx eax, byte [eax + ebx*4 + 3]
or eax, 5
mov dword [ebp - 0x24], esi
push eax
mov eax, dword [ebp - 0xc]
push esi
push eax
mov ecx, dword [eax]
call fcn.10016350
add esp, 0x10
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x1002ad63
mov ecx, dword [esi]
lea edx, [eax + 1]
call fcn.100172d0
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x1002ad63
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + ebx*4 + 0x10]
mov dword [ebp - 0x2c], eax
test eax, eax
je 0x1002ad25
movzx eax, byte [ecx + ebx*4 + 3]
lea edx, [ebp - 0x100]
mov ecx, dword [esi]
or eax, 2
push eax
call fcn.1001d090
add esp, 4
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x1002ad1f
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x2c]
mov esi, dword [edi]
mov dword [edi + 8], eax
mov ecx, dword [ecx]
mov edi, dword [ebp - 0x100]
mov dword [ebp - 0x24], ecx
call fcn.10014e60
push esi
push dword [ebp - 0x2c]
mov esi, dword [ebp - 0x24]
mov edx, edi
push 1
mov ecx, esi
call fcn.10018730
add esp, 0xc
mov dword [ebp - 0x14], eax
cmp byte [esi + 9], 0
je 0x1002ad1c
add dword [esi + 0xc], 0xffffffff
jne 0x1002ad1c
mov ecx, esi
call fcn.10014e40
mov edi, dword [ebp - 0x4c]
and dword [edi + 0x1c], 0xfffffffb
jmp 0x1002ad63
mov ecx, dword [edi + 4]
mov esi, dword [edi]
mov dword [ebp - 0x2c], ecx
call fcn.10014e60
push esi
mov esi, dword [ebp - 0x2c]
mov edx, 1
push 0
push 1
mov ecx, esi
call fcn.10018730
add esp, 0xc
mov dword [ebp - 0x14], eax
cmp byte [esi + 9], 0
je 0x1002ad5f
add dword [esi + 0xc], 0xffffffff
jne 0x1002ad5f
mov ecx, esi
call fcn.10014e40
or dword [edi + 0x1c], 4
mov eax, dword [ebp - 8]
xor ecx, ecx
mov esi, dword [ebp - 0xc]
cmp byte [eax + ebx*4 + 3], 8
mov eax, 8
cmovne ecx, eax
mov eax, dword [edi + 0x1c]
and eax, 0xfffffff7
or ecx, eax
mov dword [edi + 0x1c], ecx
mov edi, dword [ebp - 0x20]
jmp 0x1002a193
mov edx, dword [ecx + ebx*4 + 4]
push 1
push 0xffffffffffffffff
push dword [ecx + ebx*4 + 8]
mov ecx, dword [ebp - 0x1c]
call fcn.100281f0
add esp, 0xc
test eax, eax
je 0x1002a0bd
mov edx, dword [ebp - 8]
push eax
mov ecx, dword [edx + ebx*4 + 0x10]
mov dword [eax + 8], ecx
mov ecx, esi
mov edx, dword [edx + ebx*4 + 0xc]
call fcn.1002eb00
add esp, 4
mov dword [ebp - 0x14], eax
jmp 0x1002a196
mov ecx, dword [ecx + ebx*4 + 4]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x38]
mov edx, dword [eax + ecx*4]
mov edi, dword [edx + 0x28]
mov ecx, edi
mov esi, dword [edx + 0x2c]
add ecx, 1
mov eax, esi
mov dword [edx + 0x28], ecx
mov ecx, dword [ebp - 8]
adc eax, 0
or edi, esi
mov dword [edx + 0x2c], eax
jne 0x100298ba
mov eax, dword [ecx + ebx*4 + 8]
dec eax
jmp 0x100298bd
mov edx, dword [ecx + ebx*4 + 4]
push 0
push 0xffffffffffffffff
push dword [ecx + ebx*4 + 0xc]
mov ecx, dword [ebp - 0x1c]
call fcn.100281f0
add esp, 0xc
test eax, eax
je 0x1002a0bd
mov ecx, dword [ebp - 8]
mov byte [eax + 0x19], 1
mov ecx, dword [ecx + ebx*4 + 8]
or dword [eax + 0x1c], 4
mov dword [eax + 0x10], ecx
jmp 0x10028a97
mov eax, dword [ecx + ebx*4 + 4]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x38]
mov edx, dword [edx + eax*4]
call fcn.10022730
mov eax, dword [ebp - 8]
mov ecx, dword [eax + ebx*4 + 4]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x38]
mov dword [eax + ecx*4], 0
jmp 0x10028a97
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ecx + ebx*4 + 4]
mov edi, dword [ebp - 8]
mov eax, dword [eax + 0x38]
movzx edx, byte [edi + ebx*4]
mov dword [ebp - 0x34], edx
mov esi, dword [eax + ecx*4]
test byte [esi + 0x1c], 4
mov byte [esi + 0x19], 0
je 0x1002af3e
mov eax, dword [edi + ebx*4 + 0xc]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov al, byte [edi + 8]
and al, 0xe
cmp al, 2
jne 0x1002aea8
xor edx, edx
mov ecx, edi
call fcn.100282d0
mov ecx, edi
call fcn.10020130
movzx ecx, word [edi + 8]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], edx
test cl, 4
jne 0x1002af17
test cl, 8
jne 0x1002aede
mov ecx, dword [ebp - 8]
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0xc]
mov edx, dword [ebp - 0x18]
mov eax, dword [ecx + ebx*4 + 8]
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 4], eax
jmp 0x100286e0
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x2c]
call fcn.100c5ff0
movsd xmm1, qword [edi]
comisd xmm0, xmm1
jbe 0x1002af06
mov ecx, dword [ebp - 0x34]
test cl, 1
lea eax, [ecx - 1]
cmove eax, ecx
mov ecx, eax
mov dword [ebp - 0x34], ecx
jmp 0x1002af17
comisd xmm1, xmm0
jbe 0x1002af17
mov eax, dword [ebp - 0x34]
test al, 1
jne 0x1002af17
inc eax
mov dword [ebp - 0x34], eax
mov edi, dword [ebp - 0x2c]
lea eax, [ebp - 0x68]
mov ecx, dword [esi]
xor edx, edx
push eax
push 0
push dword [ebp - 0x24]
push edi
call fcn.100193c0
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x24]
mov dword [esi + 0x34], eax
mov eax, dword [ebp - 0x14]
mov dword [esi + 0x30], edi
jmp 0x1002afa2
mov eax, dword [esi + 8]
test dl, 1
mov ecx, dword [edi + ebx*4 + 0x10]
mov dword [ebp - 0x1bc], eax
sete al
mov word [ebp - 0x1b8], cx
mov ecx, dword [ebp - 0x18]
lea eax, [eax*2 - 1]
mov byte [ebp - 0x1b6], al
mov eax, dword [edi + ebx*4 + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, 0x4000
mov dword [ebp - 0x1b4], ecx
test word [ecx + 8], ax
je 0x1002af88
call fcn.1001fd80
mov ecx, dword [esi]
lea eax, [ebp - 0x68]
push eax
push 0
push 0
push 0
lea edx, [ebp - 0x1bc]
call fcn.100193c0
mov dword [ebp - 0x14], eax
add esp, 0x10
test eax, eax
jne 0x1002b486
mov byte [esi + 0x1a], al
mov dword [esi + 0x3c], eax
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x68]
cmp eax, 0x40
jl 0x1002afef
test ecx, ecx
js 0x1002afdb
jne 0x1002afc9
cmp eax, 0x41
je 0x1002afdb
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0xc]
mov dword [ebp - 0x68], 0
jmp 0x1002a193
lea eax, [ebp - 0x68]
mov dword [ebp - 0x68], 0
push eax
push dword [esi]
call fcn.10019a10
jmp 0x1002b01b
test ecx, ecx
jg 0x1002b009
jne 0x1002affa
cmp eax, 0x3e
je 0x1002b009
mov ecx, dword [esi]
call fcn.10019860
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x14]
jmp 0x1002b029
lea eax, [ebp - 0x68]
mov dword [ebp - 0x68], 0
push eax
push dword [esi]
call fcn.10019c20
add esp, 8
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x1002b486
cmp dword [ebp - 0x68], 0
mov ecx, dword [ebp - 8]
mov edi, dword [ebp - 0x20]
je 0x1002b03d
mov esi, dword [ecx + ebx*4 + 8]
dec esi
mov dword [ebp - 4], esi
mov esi, dword [ebp - 0xc]
jmp 0x1002a199
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ecx + ebx*4 + 4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x18]
mov byte [esi + 0x19], 0
mov eax, dword [eax + ebx*4 + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.10020130
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], edx
mov byte [esi + 0x1a], 1
mov esi, dword [ebp - 0xc]
jmp 0x10028a97
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ecx + ebx*4 + 4]
mov edx, dword [ebp - 8]
mov esi, dword [ebp - 0x18]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + ebx*4 + 0xc]
mov dword [ebp - 0xd8], 0
cmp dword [edx + ebx*4 + 0x10], 0
mov dword [ebp - 0x2c], ecx
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov dword [ebp - 0x4c], esi
jle 0x1002b119
mov eax, dword [ecx + 8]
xor edi, edi
mov dword [ebp - 0x174], eax
xor eax, eax
movzx edx, word [edx + ebx*4 + 0x10]
mov word [ebp - 0x170], dx
mov dword [ebp - 0x16c], esi
cmp ax, dx
jae 0x1002b10e
mov ebx, dword [ebp - 0x4c]
xor esi, esi
nop word [eax + eax]
lea ecx, [esi + ebx]
mov eax, 0x4000
test word [ecx + 8], ax
je 0x1002b100
call fcn.1001fd80
mov ebx, dword [ebp - 0x16c]
mov dx, word [ebp - 0x170]
inc edi
movzx eax, dx
add esi, 0x28
cmp edi, eax
jl 0x1002b0e0
mov ebx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x2c]
lea edi, [ebp - 0x174]
jmp 0x1002b155
mov ecx, dword [ecx + 8]
lea eax, [ebp - 0xd8]
push eax
push 0xbf
lea edx, [ebp - 0x318]
call fcn.100242c0
mov edi, eax
add esp, 8
test edi, edi
je 0x1002a0ba
mov edx, dword [esi + 0xc]
push edi
push dword [esi + 0x10]
mov esi, dword [ebp - 0x2c]
mov ecx, dword [esi + 8]
call fcn.10024330
add esp, 8
mov eax, dword [ebp - 8]
mov byte [edi + 6], 0
cmp byte [eax + ebx*4], 0x43
jne 0x1002b192
movzx edx, word [ebp - 0x170]
xor ecx, ecx
test edx, edx
je 0x1002b192
mov eax, dword [ebp - 0x16c]
add eax, 8
test byte [eax], 1
jne 0x1002b187
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x1002b178
jmp 0x1002b192
mov eax, dword [ebp - 8]
mov eax, dword [eax + ebx*4 + 8]
dec eax
mov dword [ebp - 4], eax
mov ecx, dword [esi]
lea eax, [ebp - 0xdc]
push eax
push 0
push 0
push 0
mov edx, edi
call fcn.100193c0
mov ecx, dword [ebp - 8]
add esp, 0x10
mov dword [ebp - 0x14], eax
cmp dword [ecx + ebx*4 + 0x10], 0
jne 0x1002b1cc
mov edx, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xc]
call fcn.10004780
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 8]
test eax, eax
jne 0x1002d0ee
mov eax, dword [ebp - 0xdc]
xor ecx, ecx
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 0xdc]
test eax, eax
mov byte [esi + 0x1a], 0
sete cl
mov dword [esi + 0x3c], 0
test eax, eax
setne al
mov byte [esi + 0x19], al
mov eax, dword [ebp - 8]
cmp byte [eax + ebx*4], 0x45
jne 0x1002b235
test ecx, ecx
je 0x1002b220
mov edi, dword [ebp - 0x20]
mov ecx, eax
mov esi, dword [ebp - 0xc]
mov eax, dword [ecx + ebx*4 + 8]
mov ebx, dword [ebp - 0x10]
dec eax
inc eax
jmp 0x100286d2
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 8]
inc eax
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x10]
jmp 0x100286d2
test ecx, ecx
jne 0x1002b220
mov ecx, dword [ebp - 8]
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0xc]
mov eax, dword [ecx + ebx*4 + 8]
mov ebx, dword [ebp - 0x10]
dec eax
inc eax
jmp 0x100286d2
mov eax, dword [ecx + ebx*4 + 0xc]
mov ecx, dword [ecx + ebx*4 + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ecx]
mov dword [ebp - 0xbc], 0
mov esi, dword [eax + edx*8]
mov edi, dword [eax + edx*8 + 4]
lea eax, [ebp - 0xbc]
push eax
push 0
push edi
push esi
xor edx, edx
call fcn.100193c0
mov dword [ebp - 0x14], eax
add esp, 0x10
mov eax, dword [ebp - 0x2c]
mov dword [eax + 0x30], esi
mov dword [eax + 0x34], edi
mov word [eax + 0x19], 0
mov dword [eax + 0x3c], 0
mov ecx, dword [ebp - 0xbc]
test ecx, ecx
je 0x1002b2c0
mov edx, dword [ebp - 8]
mov esi, dword [edx + ebx*4 + 8]
dec esi
mov dword [ebp - 4], esi
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0xc]
mov dword [eax + 0xc], ecx
jmp 0x1002a193
mov ecx, dword [ecx + ebx*4 + 4]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x28]
mov dword [edi], eax
mov eax, dword [ecx + 0x2c]
mov dword [edi + 4], eax
mov eax, dword [ebp - 8]
mov ecx, dword [eax + ebx*4 + 4]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
jmp 0x10028a97
mov edx, dword [ebp - 0x1c]
xorps xmm0, xmm0
mov ecx, dword [ecx + ebx*4 + 4]
movlpd qword [ebp - 0x70], xmm0
mov dword [ebp - 0x9c], 0
mov eax, dword [edx + 0x38]
mov edi, dword [eax + ecx*4]
mov ecx, dword [edi]
test ecx, ecx
je 0x1002b4ae
test byte [edi + 0x1c], 2
jne 0x1002b393
lea edx, [ebp - 0x9c]
call fcn.10019360
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x1002b489
cmp dword [ebp - 0x9c], eax
je 0x1002b35c
mov dword [ebp - 0x70], 1
mov dword [ebp - 0x6c], eax
jmp 0x1002b390
mov ecx, dword [edi]
lea edx, [ebp - 0x70]
call fcn.10018940
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x70]
cmp ecx, 0x7fffffff
jl 0x1002b384
jg 0x1002b37e
cmp eax, 0xffffffff
jb 0x1002b384
or dword [edi + 0x1c], 2
jmp 0x1002b390
add eax, 1
mov dword [ebp - 0x70], eax
adc ecx, 0
mov dword [ebp - 0x6c], ecx
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
mov ecx, dword [eax + ebx*4 + 0xc]
test ecx, ecx
je 0x1002b420
mov edx, dword [edx + 0xb0]
test edx, edx
je 0x1002b3c7
mov eax, dword [edx + 4]
test eax, eax
je 0x1002b3bc
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x1002b3b3
mov eax, dword [edx + 0xc]
lea ecx, [ecx + ecx*4]
lea esi, [eax + ecx*8]
jmp 0x1002b3d0
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0x18]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.100202c0
mov ecx, dword [esi]
mov edx, dword [esi + 4]
cmp ecx, 0xffffffff
jne 0x1002b3ed
cmp edx, 0x7fffffff
je 0x1002b47e
test byte [edi + 0x1c], 2
jne 0x1002b47e
add ecx, 1
adc edx, 0
cmp dword [ebp - 0x6c], edx
jg 0x1002b415
jl 0x1002b40b
mov eax, dword [ebp - 0x70]
cmp eax, ecx
jae 0x1002b418
mov eax, ecx
mov dword [ebp - 0x6c], edx
mov dword [ebp - 0x70], eax
jmp 0x1002b418
mov eax, dword [ebp - 0x70]
mov dword [esi], eax
mov eax, dword [ebp - 0x6c]
mov dword [esi + 4], eax
test byte [edi + 0x1c], 2
je 0x1002b4a0
xor esi, esi
nop dword [eax]
lea eax, [ebp - 0x70]
push eax
push 8
call fcn.10006950
mov eax, dword [ebp - 0x6c]
lea edx, [ebp - 0x9c]
mov ecx, dword [ebp - 0x70]
and eax, 0x3fffffff
add ecx, 1
push edx
adc eax, 0
mov dword [ebp - 0x70], ecx
push 0
push eax
mov dword [ebp - 0x6c], eax
xor edx, edx
push ecx
mov ecx, dword [edi]
call fcn.100193c0
add esp, 0x18
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x1002b4a0
cmp dword [ebp - 0x9c], eax
jne 0x1002b4a0
inc esi
cmp esi, 0x64
jl 0x1002b430
mov eax, 0xd
mov dword [ebp - 0x14], eax
mov esi, dword [ebp - 0xc]
cmp byte [esi + 0x40], 0
je 0x1002d354
mov eax, 7
mov dword [ebp - 0x14], eax
jmp 0x1002d35f
mov esi, dword [ebp - 0xc]
mov byte [edi + 0x1a], 0
mov dword [edi + 0x3c], 0
mov edi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x70]
mov dword [edi], eax
mov eax, dword [ebp - 0x6c]
mov dword [edi + 4], eax
jmp 0x1002a193
mov eax, dword [ecx + ebx*4 + 8]
mov ecx, dword [ecx + ebx*4 + 4]
lea esi, [eax + eax*4]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + ebx*4 + 0xc]
cmp dl, 0x4b
jne 0x1002b4f6
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
mov edi, dword [ecx + eax*8]
mov eax, dword [ecx + eax*8 + 4]
mov dword [ebp - 0x2c], eax
jmp 0x1002b4fe
cdq
mov edi, eax
mov dword [ebp - 0x2c], edx
mov eax, edx
mov edx, dword [ebp - 8]
mov cl, byte [edx + ebx*4 + 3]
test cl, 1
je 0x1002b514
mov ecx, dword [ebp - 0x1c]
inc dword [ecx + 0x5c]
mov cl, byte [edx + ebx*4 + 3]
test cl, 2
je 0x1002b528
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x74], eax
mov dword [ecx + 0x20], edi
mov dword [ecx + 0x24], eax
mov ecx, dword [ebp - 0x18]
movzx eax, word [ecx + esi*8 + 8]
test al, 1
je 0x1002b544
mov dword [ecx + esi*8 + 0x10], 0
mov dword [ecx + esi*8 + 0xc], 0
mov cl, byte [edx + ebx*4 + 3]
mov byte [ebp - 0x39], cl
test cl, 0x10
je 0x1002b558
mov edx, dword [ebp - 0x24]
mov edx, dword [edx + 0xc]
jmp 0x1002b55a
xor edx, edx
test eax, 0x4000
je 0x1002b569
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + esi*8]
jmp 0x1002b56b
xor ecx, ecx
movzx eax, byte [ebp - 0x39]
push edx
shr eax, 3
xor edx, edx
and eax, 1
push eax
mov eax, dword [ebp - 0x18]
push ecx
push dword [eax + esi*8 + 0xc]
push dword [eax + esi*8 + 0x10]
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp - 0x2c]
push esi
push edi
mov ecx, dword [eax]
call fcn.1001c770
mov ecx, dword [ebp - 0x24]
add esp, 0x1c
mov dword [ebp - 0x14], eax
mov byte [ecx + 0x1a], 0
mov dword [ecx + 0x3c], 0
test eax, eax
jne 0x1002b845
mov eax, dword [ebp - 0xc]
mov edx, dword [eax + 0xd0]
test edx, edx
je 0x1002d0e7
mov eax, dword [ebp - 8]
mov eax, dword [eax + ebx*4 + 0x10]
test eax, eax
je 0x1002a18d
movsx ecx, byte [ecx + 0x18]
push esi
mov esi, dword [ebp - 0xc]
add ecx, ecx
push edi
push eax
mov eax, dword [esi + 0x10]
push dword [eax + ecx*8]
mov eax, dword [ebp - 8]
mov ecx, 0x17
test byte [eax + ebx*4 + 3], 4
mov eax, 0x12
cmovne eax, ecx
push eax
push dword [esi + 0xcc]
call edx
add esp, 0x18
jmp 0x1002a190
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ecx + ebx*4 + 4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi]
call fcn.1001c9c0
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], eax
mov dword [esi + 0x3c], 0
test eax, eax
jne 0x1002b676
mov eax, dword [ebp - 0xc]
mov edx, dword [eax + 0xd0]
test edx, edx
je 0x1002b68f
mov eax, dword [ecx + ebx*4 + 0x10]
test eax, eax
je 0x1002b673
test byte [esi + 0x1c], 4
je 0x1002b673
push dword [esi + 0x34]
movsx ecx, byte [esi + 0x18]
push dword [esi + 0x30]
mov esi, dword [ebp - 0xc]
add ecx, ecx
push eax
mov eax, dword [esi + 0x10]
push dword [eax + ecx*8]
push 9
push dword [esi + 0xcc]
call edx
mov eax, dword [ebp - 0x14]
add esp, 0x18
mov ecx, dword [ebp - 8]
jmp 0x1002b679
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0xc]
test byte [ecx + ebx*4 + 8], 1
je 0x1002a199
mov edx, dword [ebp - 0x1c]
inc dword [edx + 0x5c]
jmp 0x1002a199
mov esi, eax
mov eax, dword [ebp - 0x14]
jmp 0x1002b679
mov eax, dword [ebp - 0x1c]
mov ecx, esi
mov edx, dword [eax + 0x5c]
call fcn.10025480
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x5c], 0
jmp 0x10028a97
mov eax, dword [ebp - 0x1c]
lea edi, [ebp - 0xc0]
mov ecx, dword [ecx + ebx*4 + 4]
mov edx, dword [ebp - 0x18]
push edi
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebp - 8]
mov eax, dword [eax + ebx*4 + 0xc]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [ebp - 8]
mov eax, dword [eax + ebx*4 + 0x10]
push eax
mov dword [ebp - 0xc0], 0
call fcn.10030cd0
mov edi, dword [ebp - 0x20]
add esp, 8
cmp dword [ebp - 0xc0], 0
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], eax
je 0x1002a199
mov edx, dword [ecx + ebx*4 + 8]
dec edx
jmp 0x1002a19c
mov eax, dword [ecx + ebx*4 + 8]
mov edx, dword [ebp - 0x18]
mov ecx, dword [ecx + ebx*4 + 4]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, dword [ebp - 0x1c]
mov edx, edi
mov dword [ebp - 0x20], edi
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
call fcn.10030c30
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
mov ecx, dword [eax + ebx*4 + 0xc]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x3c], 0
jmp 0x1002a193
mov eax, dword [ecx + ebx*4 + 8]
mov edx, dword [ebp - 0x18]
mov ecx, dword [ecx + ebx*4 + 4]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x38]
mov edi, dword [eax + ecx*4]
test byte [edi + 0x1c], 4
mov esi, dword [edi]
mov ecx, esi
jne 0x1002b7b0
lea edx, [ebp - 0x188]
call fcn.10018940
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x58]
cdq
cmp dword [ebp - 0x184], edx
jg 0x1002d403
mov ecx, dword [ebp - 0x188]
jl 0x1002b7a8
cmp ecx, eax
ja 0x1002d403
mov dword [ebp - 0x90], ecx
jmp 0x1002b7cd
lea edx, [ebp - 0x90]
call fcn.100189a0
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x90]
cmp ecx, dword [eax + 0x58]
ja 0x1002d3ff
mov ebx, dword [ebp - 0x20]
mov edx, 0x20
cmp ecx, edx
cmova edx, ecx
mov ecx, ebx
call fcn.1001fcc0
test eax, eax
jne 0x1002a0ba
mov eax, dword [ebp - 0x90]
mov ecx, 0xbe10
mov dword [ebx + 0xc], eax
mov ax, word [ebx + 8]
and ax, cx
or ax, 0x10
mov word [ebx + 8], ax
test byte [edi + 0x1c], 4
mov eax, dword [ebx + 0x10]
push eax
push dword [ebp - 0x90]
jne 0x1002b833
xor edx, edx
mov ecx, esi
call fcn.10018f60
mov esi, dword [ebp - 0xc]
add esp, 8
mov dword [ebp - 0x14], eax
mov edi, ebx
mov byte [ebx + 0xa], 1
jmp 0x1002a196
push 0
push esi
call fcn.10018f80
add esp, 0x10
mov dword [ebp - 0x14], eax
mov byte [ebx + 0xa], 1
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0xc]
jmp 0x1002a196
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ecx + ebx*4 + 4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 0x19], 0
je 0x1002b874
mov esi, dword [ebp - 0xc]
mov eax, 1
mov word [edi + 8], ax
jmp 0x10028a97
cmp byte [esi + 0x1a], 0
je 0x1002b8a5
mov eax, dword [esi + 0x30]
mov dword [ebp - 0xe8], eax
mov eax, dword [esi + 0x34]
mov esi, dword [ebp - 0xc]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0xe8]
mov dword [edi], eax
mov eax, dword [ebp - 0xe4]
mov dword [edi + 4], eax
jmp 0x1002a193
mov ecx, dword [esi + 0x24]
test ecx, ecx
je 0x1002b8e6
mov esi, dword [ecx]
lea edx, [ebp - 0xe8]
push edx
push ecx
mov eax, dword [esi]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [ebp - 0x1c]
add esp, 8
mov edx, esi
mov dword [ebp - 0x14], eax
call fcn.100254b0
mov eax, dword [ebp - 0xe8]
mov esi, dword [ebp - 0xc]
mov dword [edi], eax
mov eax, dword [ebp - 0xe4]
mov dword [edi + 4], eax
jmp 0x1002a193
mov ecx, esi
call fcn.10023e30
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x1002b486
cmp byte [esi + 0x19], al
je 0x1002b915
mov esi, dword [ebp - 0xc]
mov eax, 1
mov ebx, dword [ebp - 0x10]
mov word [edi + 8], ax
mov eax, dword [ebp - 4]
inc eax
jmp 0x100286cf
mov ecx, dword [esi]
lea edx, [ebp - 0xe8]
call fcn.10018940
mov esi, dword [ebp - 0xc]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0xe8]
mov dword [edi], eax
mov eax, dword [ebp - 0xe4]
mov dword [edi + 4], eax
jmp 0x1002a193
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ecx + ebx*4 + 4]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
mov byte [eax + 0x19], 1
mov dword [eax + 0x3c], 0
test ecx, ecx
je 0x10028a97
call fcn.10015140
jmp 0x10028a97
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0xb8]
mov ecx, dword [ecx + ebx*4 + 4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi]
mov dword [ebp - 0xb8], 0
call fcn.10019360
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], eax
mov al, byte [ebp - 0xb8]
mov byte [esi + 0x19], al
mov byte [esi + 0x1a], 0
mov dword [esi + 0x3c], 0
mov eax, dword [ecx + ebx*4 + 8]
test eax, eax
jle 0x1002cd0e
cmp dword [ebp - 0xb8], 0
mov esi, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x10]
je 0x1002b9c7
dec eax
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 4]
jmp 0x1002a19f
mov eax, dword [ebp - 0x1c]
inc dword [eax + 0x74]
jmp 0x1002b9dd
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ecx + ebx*4 + 4]
lea edx, [ebp - 0xa0]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov dword [ebp - 0xa0], 1
cmp dword [esi + 0x38], 0
je 0x1002ba06
mov ecx, esi
call fcn.10030b20
jmp 0x1002ba18
mov ecx, dword [esi]
call fcn.10019330
mov byte [esi + 0x1a], 0
mov dword [esi + 0x3c], 0
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], eax
mov al, byte [ebp - 0xa0]
mov byte [esi + 0x19], al
cmp dword [ebp - 0xa0], 0
mov esi, dword [ebp - 0xc]
je case.default.0x10028738
mov eax, dword [ecx + ebx*4 + 8]
dec eax
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x14]
jmp 0x1002a199
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ecx + ebx*4 + 4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
lea eax, [ebp - 0xa4]
mov ecx, dword [ebp - 0xc]
mov edx, esi
push eax
mov dword [ebp - 0xa4], 0
call fcn.10030bc0
mov edi, dword [ebp - 8]
add esp, 4
jmp 0x1002baba
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ecx + ebx*4 + 4]
mov eax, dword [eax + 0x38]
cmp dword [eax + ecx*4], 0
mov ecx, dword [ebp - 8]
je case.default.0x10028738
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ecx + ebx*4 + 4]
mov edi, dword [ebp - 8]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov eax, dword [edi + ebx*4 + 0xc]
mov dword [ebp - 0xa4], eax
lea eax, [ebp - 0xa4]
push eax
push dword [esi]
mov eax, dword [edi + ebx*4 + 0x10]
call eax
add esp, 8
mov dword [ebp - 0x14], eax
mov dword [esi + 0x3c], 0
cmp dword [ebp - 0xa4], 0
jne 0x1002baea
mov byte [esi + 0x19], 0
mov ecx, dword [edi + ebx*4 + 8]
movzx eax, byte [edi + ebx*4 + 3]
dec ecx
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 4], ecx
inc dword [esi + eax*4 + 0x6c]
jmp 0x1002ce42
mov byte [esi + 0x19], 1
jmp 0x1002ce42
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ecx + ebx*4 + 4]
mov edx, dword [ebp - 8]
mov eax, dword [eax + 0x38]
test byte [edx + ebx*4 + 3], 1
mov edi, dword [eax + ecx*4]
mov eax, dword [edx + ebx*4 + 8]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, dword [edi]
mov dword [ebp - 0x2c], ecx
je 0x1002bb22
mov eax, dword [ebp - 0x1c]
inc dword [eax + 0x5c]
mov eax, 0x4000
test word [esi + 8], ax
je 0x1002bb45
mov ecx, esi
call fcn.1001fd80
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x1002b845
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 8]
cmp dword [edi + 0x38], 0
je 0x1002bb62
mov edx, esi
mov ecx, edi
call fcn.1002fba0
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0xc]
mov dword [ebp - 0x14], eax
jmp 0x1002a196
test byte [edx + ebx*4 + 3], 0x10
je 0x1002bb6e
mov eax, dword [edi + 0xc]
jmp 0x1002bb70
xor eax, eax
push eax
push dword [edx + ebx*4 + 0xc]
mov eax, dword [esi + 0xc]
push 0
push 0
cdq
push 0x100d5b48
push edx
mov edx, dword [esi + 0x10]
push eax
call fcn.1001c770
mov esi, dword [ebp - 0xc]
add esp, 0x1c
mov dword [edi + 0x3c], 0
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x14], eax
jmp 0x1002a196
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0x1d0]
mov ecx, dword [ecx + ebx*4 + 4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebp - 8]
mov eax, dword [esi + 8]
mov edi, dword [esi]
mov dword [ebp - 0x1d0], eax
mov ax, word [ecx + ebx*4 + 0xc]
mov word [ebp - 0x1cc], ax
mov eax, dword [ecx + ebx*4 + 8]
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 0x1ca], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, edi
mov dword [ebp - 0x1c8], eax
lea eax, [ebp - 0x104]
push eax
push 0
push 0
push 0
call fcn.100193c0
add esp, 0x10
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x1002bc1b
cmp dword [ebp - 0x104], eax
jne 0x1002bc1b
mov ecx, edi
call fcn.1001c9c0
mov dword [ebp - 0x14], eax
mov edi, dword [ebp - 0x20]
mov dword [esi + 0x3c], 0
mov esi, dword [ebp - 0xc]
jmp 0x1002a196
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ecx + ebx*4 + 4]
mov ebx, dword [ebp - 0x20]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov eax, 1
mov ecx, esi
mov edi, dword [esi]
mov word [ebx + 8], ax
call fcn.10023e30
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x1002b486
cmp byte [esi + 0x19], al
jne 0x10028a91
mov esi, dword [ebp - 0xc]
lea eax, [ebp - 0x128]
xorps xmm0, xmm0
mov edx, edi
push eax
mov ecx, esi
movlpd qword [ebp - 0x128], xmm0
call fcn.10025210
add esp, 4
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x1002b489
mov eax, dword [ebp - 0x128]
mov dword [ebx], eax
mov eax, dword [ebp - 0x124]
mov dword [ebx + 4], eax
mov eax, 4
mov word [ebx + 8], ax
jmp 0x10028a94
mov ecx, dword [ecx + ebx*4 + 4]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x38]
mov edx, dword [eax + ecx*4]
mov ecx, dword [ebp - 8]
mov eax, dword [edx + 8]
mov dword [ebp - 0x1e4], eax
mov ax, word [ecx + ebx*4 + 0x10]
mov word [ebp - 0x1e0], ax
cmp byte [ecx + ebx*4], 0x73
sbb al, al
mov byte [ebp - 0x1de], al
mov eax, dword [ecx + ebx*4 + 0xc]
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0xa8], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, esi
mov dword [ebp - 0x1dc], eax
lea eax, [ebp - 0xa8]
push eax
lea eax, [ebp - 0x1e4]
push eax
call fcn.10025380
mov ecx, dword [ebp - 8]
add esp, 8
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0xa8]
test byte [ecx + ebx*4], 1
je 0x1002bd2a
neg eax
jmp 0x1002bd2b
inc eax
mov dword [ebp - 0xa8], eax
test eax, eax
jle case.default.0x10028738
mov eax, dword [ecx + ebx*4 + 8]
dec eax
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x14]
jmp 0x1002a199
mov eax, dword [esi + 4]
xor edx, edx
test eax, eax
je 0x1002bd7f
cmp dword [eax + 0x28], 0xbdf20da3
jne 0x1002bd75
mov ecx, dword [eax + 0x58]
test ecx, 0x200
je 0x1002bd75
and cl, 0xc
cmp cl, 8
jae 0x1002bd75
cmp dword [eax + 0x4c], 0
jl 0x1002bd75
inc edx
mov eax, dword [eax + 0x34]
test eax, eax
jne 0x1002bd52
mov ecx, dword [ebp - 8]
mov eax, 1
mov word [edi + 8], ax
cmp edx, eax
jg 0x1002d384
mov eax, dword [ecx + ebx*4 + 0xc]
lea ecx, [ebp - 0xc4]
mov edx, dword [ebp - 8]
push ecx
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x2c], eax
add eax, eax
mov edx, dword [edx + ebx*4 + 4]
mov dword [ebp - 0xc4], 0
mov ecx, dword [ecx + eax*8 + 4]
call fcn.1001d6e0
mov ecx, dword [ebp - 0xc4]
add esp, 4
mov dword [ebp - 0x14], eax
mov eax, 4
mov word [edi + 8], ax
mov eax, ecx
cdq
mov dword [edi], eax
mov eax, dword [ebp - 0x14]
mov dword [edi + 4], edx
test eax, eax
jne 0x1002a196
test ecx, ecx
je 0x1002a196
mov eax, dword [ebp - 8]
push dword [eax + ebx*4 + 4]
mov ebx, dword [ebp - 0x2c]
mov edx, ebx
push ecx
mov ecx, esi
call fcn.10042200
add esp, 8
inc bl
mov byte [ebp - 0x61], bl
jmp 0x1002a193
xor edx, edx
mov dword [ebp - 0xc8], 0
cmp dword [ecx + ebx*4 + 0xc], edx
lea eax, [ebp - 0xc8]
cmove eax, edx
mov edx, dword [ebp - 8]
push eax
mov eax, dword [ecx + ebx*4 + 8]
mov ecx, dword [esi + 0x10]
add eax, eax
mov edx, dword [edx + ebx*4 + 4]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.1001d2b0
mov ecx, dword [ebp - 8]
add esp, 4
mov dword [ebp - 0x14], eax
cmp dword [ecx + ebx*4 + 0xc], 0
je 0x1002a199
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xc8]
add dword [edx + 0x5c], eax
mov ecx, dword [ecx + ebx*4 + 0xc]
test ecx, ecx
jle 0x1002a193
mov ebx, dword [ebp - 0x18]
lea ecx, [ecx + ecx*4]
cdq
add dword [ebx + ecx*8], eax
adc dword [ebx + ecx*8 + 4], edx
jmp 0x1002a193
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ecx + ebx*4 + 4]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov edx, dword [ecx + 0x38]
test edx, edx
je 0x1002bea0
mov ecx, esi
call fcn.1002eec0
jmp 0x10028a97
mov ecx, dword [ecx]
call fcn.1001d360
mov dword [ebp - 0x14], eax
jmp 0x1002a196
mov ecx, dword [ecx + ebx*4 + 4]
xor eax, eax
shl ecx, 4
add ecx, dword [esi + 0x10]
cmp dl, 0x79
mov dword [ebp - 0xcc], 0
lea edx, [ebp - 0xcc]
setne al
inc eax
mov ecx, dword [ecx + 4]
push eax
call fcn.1001d090
mov dword [ebp - 0x14], eax
add esp, 4
mov eax, dword [ebp - 0xcc]
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x1002a193
mov eax, dword [ebp - 0x1c]
mov edx, str.sqlite_temp_master
mov ecx, dword [ecx + ebx*4 + 4]
add eax, 0x2c
mov dword [ebp - 0x1a4], eax
cmp ecx, 1
mov eax, dword [ebp - 8]
mov dword [ebp - 0x1a0], ecx
mov dword [ebp - 0x1a8], esi
push dword [eax + ebx*4 + 0x10]
mov eax, str.sqlite_master
cmove eax, edx
add ecx, ecx
push eax
mov eax, dword [esi + 0x10]
push dword [eax + ecx*8]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push esi
call fcn.100065c0
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x1002bf4e
mov esi, dword [ebp - 0xc]
mov dword [ebp - 0x14], 7
jmp 0x1002bfa0
mov eax, dword [ebp - 0xc]
lea ecx, [ebp - 0x1a8]
push 0
push ecx
push fcn.1005aad0
push esi
push eax
mov byte [eax + 0x91], 1
mov dword [ebp - 0x19c], 0
call fcn.10053880
add esp, 0x14
mov edx, esi
mov esi, dword [ebp - 0xc]
test eax, eax
mov ecx, esi
cmove eax, dword [ebp - 0x19c]
mov dword [ebp - 0x14], eax
call fcn.10004780
mov eax, dword [ebp - 0x14]
mov byte [esi + 0x91], 0
test eax, eax
je 0x1002bfaa
mov ecx, esi
call fcn.1003f420
mov eax, dword [ebp - 0x14]
cmp eax, 7
je 0x1002a0bd
jmp 0x1002a196
mov edx, dword [ecx + ebx*4 + 4]
mov ecx, esi
call fcn.1003d6e0
mov dword [ebp - 0x14], eax
jmp 0x1002a196
push dword [ecx + ebx*4 + 0x10]
mov edx, dword [ecx + ebx*4 + 4]
mov ecx, esi
call fcn.1003f9c0
add esp, 4
jmp 0x10028a97
push dword [ecx + ebx*4 + 0x10]
mov edx, dword [ecx + ebx*4 + 4]
mov ecx, esi
call fcn.1003f1d0
add esp, 4
jmp 0x10028a97
push dword [ecx + ebx*4 + 0x10]
mov edx, dword [ecx + ebx*4 + 4]
mov ecx, esi
call fcn.10068170
add esp, 4
jmp 0x10028a97
mov edi, dword [ecx + ebx*4 + 8]
mov ecx, esi
push 0
mov dword [ebp - 0x2c], edi
lea eax, [edi*4 + 4]
push eax
call fcn.100049f0
mov edx, eax
add esp, 8
mov dword [ebp - 0x4c], edx
test edx, edx
je 0x1002a0bd
mov esi, dword [ebp - 8]
mov ecx, dword [esi + ebx*4 + 0xc]
lea eax, [ecx + ecx*4]
mov ecx, dword [esi + ebx*4 + 4]
mov dword [ebp - 0x54], eax
xor esi, esi
mov eax, dword [ebp - 0x18]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*8]
mov dword [ebp - 0x34], eax
test edi, edi
jle 0x1002c07b
mov ebx, dword [ebp - 0x2c]
mov edi, eax
mov ecx, edi
call fcn.10020130
mov edx, dword [ebp - 0x4c]
add edi, 0x28
mov dword [edx + esi*4], eax
inc esi
cmp esi, ebx
jl 0x1002c060
mov ebx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0x54]
mov dword [edx + esi*4], 0
push dword [ecx + eax*8]
mov eax, dword [ebp - 8]
push edi
movzx eax, byte [eax + ebx*4 + 3]
mov ebx, dword [ebp - 0xc]
add eax, eax
mov ecx, dword [ebx + 0x10]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.1001e5b0
mov edx, dword [ebp - 0x4c]
add esp, 0xc
mov ecx, ebx
mov esi, eax
call fcn.10004780
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0x54]
mov ebx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x34]
cdq
sub dword [ebx + ecx*8], eax
sbb dword [ebx + ecx*8 + 4], edx
mov ecx, edi
call fcn.10020610
cmp dword [ebp - 0xd0], 0
je 0x1002c0ff
test esi, esi
je 0x1002a0ba
push fcn.100046a0
push 1
push 0xffffffffffffffff
mov edx, esi
mov ecx, edi
call fcn.10020860
add esp, 0xc
movzx edx, byte [ebp - 0x48]
mov ecx, edi
call fcn.1001fab0
jmp 0x10028a91
mov eax, dword [ecx + ebx*4 + 4]
mov edx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 0x20
lea esi, [edx + eax*8]
mov eax, dword [ecx + ebx*4 + 8]
lea edi, [eax + eax*4]
jne 0x1002c13b
mov ecx, esi
call fcn.100206a0
test byte [esi + 8], 0x20
je 0x1002a0ba
mov eax, dword [ebp - 0x18]
mov ecx, dword [esi]
push dword [eax + edi*8 + 4]
push dword [eax + edi*8]
call fcn.1000d1c0
add esp, 8
jmp 0x10028a91
mov eax, dword [ecx + ebx*4 + 4]
mov edi, dword [ebp - 0x18]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 0x20
lea esi, [edi + eax*8]
je 0x1002c19f
mov ecx, dword [esi]
lea edx, [ebp - 0x190]
call fcn.1000d4d0
test eax, eax
je 0x1002c19f
mov eax, dword [ebp - 8]
push dword [ebp - 0x18c]
push dword [ebp - 0x190]
mov eax, dword [eax + ebx*4 + 0xc]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
call fcn.10020660
add esp, 8
jmp 0x1002ce42
mov ecx, esi
call fcn.10020610
jmp 0x1002ce37
mov eax, dword [ecx + ebx*4 + 4]
mov edx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 0x20
lea esi, [edx + eax*8]
mov eax, dword [ecx + ebx*4 + 0xc]
lea edi, [eax + eax*4]
mov eax, dword [ecx + ebx*4 + 0x10]
mov dword [ebp - 0x2c], eax
jne 0x1002c1e4
mov ecx, esi
call fcn.100206a0
test byte [esi + 8], 0x20
je 0x1002a0ba
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x18]
test eax, eax
je 0x1002c208
push dword [edx + edi*8 + 4]
mov ecx, dword [esi]
push dword [edx + edi*8]
mov edx, eax
call fcn.1000d530
add esp, 8
test eax, eax
jne 0x1002aec3
mov eax, dword [ebp - 0x2c]
test eax, eax
js 0x10028a91
mov eax, dword [ebp - 0x18]
mov ecx, dword [esi]
push dword [eax + edi*8 + 4]
push dword [eax + edi*8]
call fcn.1000d1c0
add esp, 8
jmp 0x10028a91
cmp byte [ecx + ebx*4 + 3], 0
mov eax, dword [ecx + ebx*4 + 0xc]
mov edx, dword [ebp - 0x18]
mov edi, dword [ecx + ebx*4 + 0x10]
mov dword [ebp - 0x24], edi
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp - 0x2c], eax
je 0x1002c265
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x14]
mov eax, dword [eax + 0xb0]
test eax, eax
je 0x1002c265
cmp dword [eax + 0x18], ecx
je 0x10029409
mov eax, dword [eax + 4]
test eax, eax
jne 0x1002c255
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ecx + 0xb8]
cmp eax, dword [esi + 0x80]
jge 0x1002d39c
mov ebx, dword [ebp - 0x2c]
test byte [ebx + 8], 0x40
jne 0x1002c35c
mov ecx, dword [edi + 0xc]
mov edi, dword [edi + 8]
add edi, ecx
lea eax, [edi + edi*4]
lea ecx, [ecx + eax*2]
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x10]
lea eax, [eax + ecx*4]
mov ecx, esi
add eax, 0x48
cdq
push edx
push eax
call fcn.100049c0
mov esi, eax
add esp, 8
test esi, esi
je 0x1002a0ba
mov ecx, ebx
call fcn.10020110
mov edx, dword [ebp - 0x1c]
mov eax, 0x40
mov ecx, dword [ebp - 0x24]
mov word [ebx + 8], ax
mov dword [ebx], esi
mov dword [esi], edx
mov dword [esi + 0x3c], edi
mov eax, dword [ecx + 0xc]
mov dword [esi + 0x40], eax
mov eax, dword [ebp - 4]
mov dword [esi + 0x2c], eax
mov eax, dword [edx + 8]
mov dword [esi + 0xc], eax
mov eax, dword [edx + 0x1c]
mov dword [esi + 0x34], eax
mov eax, dword [edx + 0x38]
mov dword [esi + 0x14], eax
mov eax, dword [edx + 0x24]
mov dword [esi + 0x28], eax
mov eax, dword [edx + 4]
mov dword [esi + 8], eax
mov eax, dword [edx + 0x20]
mov dword [esi + 0x30], eax
mov eax, dword [ecx + 0x14]
mov dword [esi + 0x18], eax
mov eax, dword [edx + 0xc8]
mov dword [esi + 0x10], eax
mov eax, dword [edx + 0xc4]
mov dword [esi + 0x38], eax
lea eax, [edi*4 + 9]
add eax, edi
lea ecx, [esi + eax*8]
lea eax, [esi + 0x48]
cmp eax, ecx
je 0x1002c34e
mov edx, dword [ebp - 0xc]
mov ebx, 0x80
nop dword [eax + eax]
mov word [eax + 8], bx
mov dword [eax + 0x20], edx
add eax, 0x28
cmp eax, ecx
jne 0x1002c340
mov ecx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x24]
mov eax, dword [ecx + 0xb8]
jmp 0x1002c35e
mov esi, dword [ebx]
inc eax
lea ebx, [esi + 0x20]
mov dword [ecx + 0xb8], eax
mov eax, dword [ecx + 0xb0]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x7c]
mov dword [ebx], eax
mov eax, dword [ebp - 0x74]
mov dword [ebx + 4], eax
mov eax, dword [ecx + 0x5c]
mov dword [esi + 0x44], eax
mov dword [ecx + 0xb0], esi
mov dword [ecx + 0x5c], 0
mov dword [ecx + 8], ebx
mov eax, dword [esi + 0x3c]
mov dword [ecx + 0x1c], eax
movzx edx, word [esi + 0x40]
mov esi, dword [ebp - 0x1c]
lea eax, [eax + eax*4]
mov dword [ecx + 0x24], edx
lea eax, [eax + 5]
mov dword [ebp - 0x18], ebx
lea ecx, [ebx + eax*8]
mov dword [esi + 0x38], ecx
lea ecx, [ecx + edx*4]
mov eax, dword [edi]
mov dword [ebp - 8], eax
mov dword [esi + 4], eax
mov eax, dword [edi + 4]
mov dword [esi + 0x20], eax
mov dword [esi + 0xc8], ecx
mov eax, dword [edi + 0x10]
push eax
push 0
push ecx
mov dword [esi + 0xc4], eax
call fcn.100a9260
mov edi, dword [ebp - 0x20]
add esp, 0xc
mov esi, dword [ebp - 0xc]
xor eax, eax
mov ecx, dword [ebp - 8]
mov edx, ebx
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 4], eax
jmp 0x100286e0
mov eax, dword [ebp - 0x1c]
push 0x1000
mov edx, dword [eax + 0xb0]
mov eax, dword [edx + 0x2c]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
mov eax, dword [eax + ecx*4 + 4]
mov ecx, dword [ebp - 8]
add eax, dword [ecx + ebx*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea edx, [eax + ecx*8]
mov ecx, edi
call fcn.100207a0
add esp, 4
jmp 0x10028a97
test dword [esi + 0x18], 0x1000000
mov eax, dword [ecx + ebx*4 + 8]
cdq
je 0x1002c45b
add dword [esi + 0x200], eax
mov eax, dword [ebp - 4]
adc dword [esi + 0x204], edx
inc eax
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 4], eax
jmp 0x100286e0
cmp dword [ecx + ebx*4 + 4], 0
je 0x1002c480
add dword [esi + 0x1f8], eax
mov eax, dword [ebp - 4]
adc dword [esi + 0x1fc], edx
inc eax
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 4], eax
jmp 0x100286e0
mov ebx, dword [ebp - 0x1c]
add dword [ebx + 0x90], eax
mov eax, ebx
mov ebx, dword [ebp - 0x10]
adc dword [eax + 0x94], edx
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x18]
inc eax
mov dword [ebp - 4], eax
jmp 0x100286e0
cmp dword [ecx + ebx*4 + 4], 0
je 0x1002c4e2
mov eax, dword [esi + 0x1f8]
or eax, dword [esi + 0x1fc]
jne 0x1002891a
mov eax, dword [esi + 0x200]
or eax, dword [esi + 0x204]
jne 0x1002891a
mov eax, dword [ecx + ebx*4 + 8]
mov edx, dword [ebp - 0x18]
dec eax
mov ebx, dword [ebp - 0x10]
inc eax
mov dword [ebp - 4], eax
jmp 0x100286e0
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
mov eax, dword [eax + 0x90]
or eax, dword [edx + 0x94]
jmp 0x1002c4b6
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + 0xb0]
test edx, edx
je 0x1002c528
mov eax, dword [edx + 4]
test eax, eax
je 0x1002c519
nop word [eax + eax]
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x1002c510
mov eax, dword [ecx + ebx*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea edi, [eax + ecx*8]
jmp 0x1002c535
mov eax, dword [ecx + ebx*4 + 4]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov ecx, edi
call fcn.100202c0
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + ebx*4 + 8]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.100202c0
mov ecx, dword [esi + 4]
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x10028a91
jl 0x1002c56b
cmp dword [edi], eax
jae 0x10028a91
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x10028a91
mov eax, dword [ecx + ebx*4 + 4]
mov edx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
cmp dword [edx + eax*8 + 4], 0
jl 0x100287a5
jg 0x1002c596
cmp dword [edx + eax*8], 0
jbe 0x100287a5
mov eax, dword [ecx + ebx*4 + 8]
mov ebx, dword [ebp - 0x10]
dec eax
inc eax
mov dword [ebp - 4], eax
jmp 0x100286e0
mov eax, dword [ecx + ebx*4 + 4]
mov esi, dword [ebp - 0x18]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 8]
mov eax, dword [eax + ebx*4 + 0xc]
cdq
add dword [esi + ecx*8], eax
mov eax, esi
adc dword [eax + ecx*8 + 4], edx
mov edx, esi
mov esi, dword [ebp - 0xc]
cmp dword [edx + ecx*8 + 4], 0
jg 0x1002c5ea
jl 0x1002c5d6
cmp dword [edx + ecx*8], 0
jae 0x1002c5ea
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + ebx*4 + 8]
mov ebx, dword [ebp - 0x10]
dec eax
inc eax
mov dword [ebp - 4], eax
jmp 0x100286e0
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 8]
inc eax
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 4], eax
jmp 0x100286e0
mov eax, dword [ecx + ebx*4 + 4]
mov edi, dword [ebp - 0x18]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 8]
mov eax, dword [eax + ebx*4 + 0xc]
cdq
add dword [edi + ecx*8], eax
mov eax, edi
adc dword [eax + ecx*8 + 4], edx
mov edx, edi
mov edi, dword [ebp - 0x20]
mov eax, dword [edx + ecx*8]
or eax, dword [edx + ecx*8 + 4]
jne 0x1002c5ea
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + ebx*4 + 8]
mov ebx, dword [ebp - 0x10]
dec eax
inc eax
mov dword [ebp - 4], eax
jmp 0x100286e0
mov eax, dword [ecx + ebx*4 + 8]
mov edx, dword [ebp - 0x18]
movzx esi, byte [ecx + ebx*4 + 3]
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov eax, dword [ebp - 0x1c]
mov edi, dword [eax + 0xc]
xor eax, eax
test esi, esi
je 0x1002c662
mov dword [edi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, esi
jl 0x1002c657
mov ecx, dword [ebp - 8]
push 1
mov eax, dword [ecx + ebx*4 + 0x10]
mov dword [ebp - 0x15c], eax
mov eax, dword [ecx + ebx*4 + 0xc]
lea ecx, [ebp - 0x258]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x158], eax
inc dword [eax + 0xc]
call fcn.100205f0
add esp, 4
mov dword [ebp - 0x14c], 0
lea eax, [ebp - 0x258]
mov byte [ebp - 0x148], 0
mov dword [ebp - 0x160], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x154], eax
mov eax, dword [ebp - 4]
mov dword [ebp - 0x150], eax
lea eax, [ebp - 0x160]
push edi
push esi
push eax
mov eax, dword [ebp - 0x15c]
mov eax, dword [eax + 0x10]
call eax
add esp, 0xc
cmp dword [ebp - 0x14c], 0
je 0x1002c717
lea eax, [ebp - 0x258]
push eax
call fcn.10025ab0
mov esi, dword [ebp - 0xc]
add esp, 4
push eax
mov eax, dword [ebp - 0x1c]
push 0x100d66d0
add eax, 0x2c
push esi
push eax
call fcn.10004c10
mov eax, dword [ebp - 0x14c]
add esp, 0x10
mov dword [ebp - 0x14], eax
jmp 0x1002c71a
mov esi, dword [ebp - 0xc]
cmp byte [ebp - 0x148], 0
je 0x1002c743
mov eax, dword [ebp - 8]
mov eax, dword [eax + ebx*4 - 0x10]
test eax, eax
je 0x1002c743
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
push 0
push 1
lea ecx, [ecx + eax*8]
call fcn.10020660
add esp, 8
lea ecx, [ebp - 0x258]
call fcn.10020110
jmp 0x1002a190
mov eax, dword [ecx + ebx*4 + 4]
mov edx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov edx, dword [ecx + ebx*4 + 0x10]
mov ecx, esi
call fcn.1001ff00
mov dword [ebp - 0x14], eax
test eax, eax
je 0x1002c793
push esi
call fcn.10025ab0
add esp, 4
push eax
mov eax, dword [ebp - 0x1c]
push 0x100d66d0
push dword [ebp - 0xc]
add eax, 0x2c
push eax
call fcn.10004c10
add esp, 0x10
movzx edx, byte [ebp - 0x48]
mov ecx, esi
call fcn.1001fab0
mov ecx, esi
call fcn.10020770
mov esi, dword [ebp - 0xc]
test eax, eax
jne 0x1002d406
jmp 0x1002a193
mov edx, dword [ecx + ebx*4 + 4]
lea eax, [ebp - 0xec]
push eax
lea eax, [ebp - 0xf0]
mov dword [ebp - 0xf4], 0
push eax
push dword [ecx + ebx*4 + 8]
mov ecx, esi
mov dword [ebp - 0xec], 0xffffffff
mov dword [ebp - 0xf0], 0xffffffff
call fcn.1007d940
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0x14], ecx
cmp ecx, 5
jne 0x1002c80e
mov dword [ebp - 0x14], 0
mov dword [ebp - 0xf4], 1
mov eax, dword [ebp - 8]
xor esi, esi
mov ecx, dword [ebp - 0x18]
mov eax, dword [eax + ebx*4 + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [ebp + esi*4 - 0xf4]
mov ecx, edi
cdq
push edx
push eax
call fcn.10020660
inc esi
add esp, 8
add edi, 0x28
cmp esi, 3
jl 0x1002c820
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0xc]
jmp 0x1002a193
mov esi, dword [ecx + ebx*4 + 0xc]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ecx + ebx*4 + 4]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 4]
mov ecx, eax
mov dword [ebp - 0x2c], eax
call fcn.1001d9e0
mov ecx, eax
mov dword [ebp - 0x44], eax
call fcn.10012820
mov ecx, dword [ebp - 0x44]
mov edi, eax
cmp esi, 0xffffffff
cmove esi, edi
call fcn.10012830
mov ecx, dword [ebp - 0x44]
test eax, eax
mov edx, 1
cmove esi, edi
call fcn.10012470
cmp esi, 5
jne 0x1002c8ae
mov ecx, eax
call fcn.100070e0
test eax, eax
je 0x1002c916
mov ecx, dword [ebp - 0x44]
call fcn.10012860
test eax, eax
je 0x1002c916
cmp esi, edi
je 0x1002c918
cmp edi, 5
je 0x1002c8bc
cmp esi, 5
jne 0x1002c918
mov eax, dword [ebp - 0xc]
cmp byte [eax + 0x3e], 0
je 0x1002d3c2
cmp dword [eax + 0x98], 1
jg 0x1002d3c2
cmp edi, 5
jne 0x1002c8ee
mov ecx, dword [ebp - 0x44]
call fcn.10012ad0
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x1002c916
mov edx, esi
jmp 0x1002c8f6
cmp edi, 4
jne 0x1002c8fe
lea edx, [edi - 2]
mov ecx, dword [ebp - 0x44]
call fcn.100126f0
mov ecx, dword [ebp - 0x2c]
xor edx, edx
cmp esi, 5
sete dl
inc edx
call fcn.1001ec30
mov dword [ebp - 0x14], eax
test eax, eax
je 0x1002c918
mov esi, edi
mov ecx, dword [ebp - 0x44]
mov edx, esi
call fcn.100126f0
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x18]
mov ecx, dword [ecx + ebx*4 + 8]
lea ecx, [ecx + ecx*4]
lea edi, [edx + ecx*8]
mov ecx, 0xa02
mov word [edi + 8], cx
mov ecx, eax
mov dword [ebp - 0x20], edi
call fcn.10054760
mov ecx, eax
mov dword [edi + 0x10], eax
call fcn.100070e0
movzx edx, byte [ebp - 0x48]
mov ecx, edi
mov dword [edi + 0xc], eax
mov byte [edi + 0xa], 1
call fcn.1001fab0
mov esi, dword [ebp - 0xc]
jmp 0x1002a193
mov ecx, dword [ebp - 0x1c]
mov edx, esi
lea ecx, [ecx + 0x2c]
call fcn.1006ac50
mov dword [ebp - 0x14], eax
jmp 0x1002a196
mov ecx, dword [ecx + ebx*4 + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
call fcn.10017dc0
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], eax
cmp eax, 0x65
jne 0x1002a199
mov eax, dword [ecx + ebx*4 + 8]
dec eax
mov dword [ebp - 4], eax
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x1002a199
cmp dword [ecx + ebx*4 + 4], 0
jne 0x1002c9c4
mov ecx, esi
call fcn.10025490
jmp 0x10028a97
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x10]
or dword [eax + 0x58], 0x20
mov eax, dword [ebp - 4]
inc eax
mov dword [ebp - 4], eax
jmp 0x100286e0
mov al, byte [ecx + ebx*4 + 0xc]
mov byte [ebp - 0xf8], al
test al, al
jne 0x1002c9f8
test dword [esi + 0x18], 0x4000
jne case.default.0x10028738
mov eax, dword [ecx + ebx*4 + 4]
mov ecx, dword [esi + 0x10]
add eax, eax
mov edx, dword [ebp - 8]
push dword [ebp - 0xf8]
mov ecx, dword [ecx + eax*8 + 4]
mov edx, dword [edx + ebx*4 + 8]
call fcn.1001ea50
add esp, 4
mov dword [ebp - 0x14], eax
cmp al, 6
jne 0x1002a196
mov eax, dword [ebp - 8]
push dword [eax + ebx*4 + 0x10]
mov eax, dword [ebp - 0x1c]
push str.database_table_is_locked:__s
add eax, 0x2c
push esi
push eax
call fcn.10004c10
add esp, 0x10
jmp 0x1002a193
mov esi, dword [ecx + ebx*4 + 0x10]
mov edx, esi
mov ecx, dword [ebp - 0xc]
call fcn.1006c7a0
mov dword [ebp - 0x14], eax
test esi, esi
je 0x1002b848
mov edx, dword [esi + 8]
mov ecx, dword [ebp - 0x1c]
call fcn.100254b0
mov esi, dword [ebp - 0xc]
jmp 0x1002a193
mov eax, dword [ebp - 0x1c]
mov edx, dword [ecx + ebx*4 + 4]
add eax, 0x2c
push eax
push dword [ecx + ebx*4 + 0x10]
mov ecx, esi
call fcn.1006c210
add esp, 8
mov dword [ebp - 0x14], eax
jmp 0x1002a196
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x58]
and eax, 0xfffffffb
or eax, 8
mov dword [edx + 0x58], eax
push dword [ecx + ebx*4 + 0x10]
mov edx, dword [ecx + ebx*4 + 4]
mov ecx, esi
call fcn.1006c5c0
mov ecx, dword [ebp - 0x1c]
add esp, 4
mov dword [ebp - 0x14], eax
and dword [ecx + 0x58], 0xfffffff3
jmp 0x1002a196
mov eax, dword [ecx + ebx*4 + 0x10]
mov dword [ebp - 0xac], 0
mov esi, dword [eax + 8]
lea eax, [ebp - 0xac]
push eax
push esi
mov edi, dword [esi]
mov eax, dword [edi + 0x18]
call eax
mov ecx, dword [ebp - 0x1c]
add esp, 8
mov edx, esi
mov dword [ebp - 0x14], eax
call fcn.100254b0
mov eax, dword [ebp - 0x14]
test eax, eax
jne 0x1002b845
mov eax, dword [ebp - 0xac]
mov ecx, dword [ebp - 0x1c]
push 0
push 0xffffffffffffffff
mov dword [eax], esi
mov eax, dword [ebp - 8]
push 0
mov edx, dword [eax + ebx*4 + 4]
call fcn.100281f0
mov esi, dword [ebp - 0xc]
add esp, 0xc
test eax, eax
je 0x1002cb3d
mov ecx, dword [ebp - 0xac]
mov edi, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x10]
mov dword [eax + 0x24], ecx
mov eax, dword [ebp - 4]
inc eax
jmp 0x100286cf
push dword [ebp - 0xac]
mov byte [esi + 0x40], 1
mov eax, dword [edi + 0x1c]
call eax
add esp, 4
jmp 0x1002a190
mov eax, dword [ecx + ebx*4 + 0xc]
mov ecx, dword [ecx + ebx*4 + 4]
mov esi, dword [ebp - 0x18]
add esi, 0x28
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x1c]
mov edi, dword [esi + edx*8]
lea esi, [esi + edx*8]
movd xmm0, esi
mov dword [ebp - 0x54], esi
mov eax, dword [eax + 0x38]
pshufd xmm3, xmm0, 0
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [ebp - 0x38], eax
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x5c], eax
mov eax, dword [eax]
mov dword [ebp - 0x40], eax
mov eax, dword [eax]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + edx*8]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x4c], edx
test edi, edi
jle 0x1002cca3
cmp edi, 0x10
jb 0x1002cc8b
cmp dword [0x100e5760], 2
jl 0x1002cc8b
movaps xmm2, xmmword [0x100dfb60]
mov eax, edi
and eax, 0x8000000f
jns 0x1002cbda
dec eax
or eax, 0xfffffff0
inc eax
movaps xmm1, xmmword [0x100dfb70]
mov esi, edi
sub esi, eax
add edx, 0x20
mov dword [ebp - 0x2c], esi
mov esi, 8
mov ebx, dword [ebp - 0x2c]
movd xmm0, ecx
lea eax, [esi - 4]
pshufd xmm0, xmm0, 0
lea edx, [edx + 0x40]
paddd xmm0, xmm2
add ecx, 0x10
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x60], xmm0
movd xmm0, eax
lea eax, [esi + 4]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x50], xmm0
movd xmm0, esi
add esi, 0x10
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x40], xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x30], xmm0
cmp ecx, ebx
jl 0x1002cbf3
mov ebx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x54]
cmp ecx, edi
jge 0x1002cca3
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [edx + ecx*4], eax
inc ecx
add eax, 0x28
cmp ecx, edi
jl 0x1002cc98
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x5c]
push edx
push edi
mov eax, dword [ecx + 0x58]
mov edi, dword [ebp - 0x44]
and eax, 0xfffffff7
or eax, 4
mov dword [ecx + 0x58], eax
mov eax, dword [ebp - 8]
push dword [eax + ebx*4 + 0x10]
mov eax, dword [edi + 0x20]
push dword [ebp - 0x34]
push esi
call eax
mov edx, dword [ebp - 0x40]
add esp, 0x14
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x1c]
mov ecx, eax
and dword [eax + 0x58], 0xfffffff3
call fcn.100254b0
cmp dword [ebp - 0x14], 0
jne 0x1002cd01
mov eax, dword [edi + 0x28]
push esi
call eax
mov ecx, dword [ebp - 8]
add esp, 4
test eax, eax
je 0x1002cd04
mov eax, dword [ecx + ebx*4 + 8]
dec eax
mov dword [ebp - 4], eax
jmp 0x1002cd04
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x38]
mov edi, dword [ebp - 0x20]
mov byte [eax + 0x19], 0
mov esi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x14]
jmp 0x1002a199
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ecx + ebx*4 + 4]
mov eax, dword [eax + 0x38]
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x18]
cmp byte [edx + 0x19], 0
mov eax, dword [eax + ebx*4 + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
je 0x1002cd48
mov ecx, edi
call fcn.10020610
jmp 0x10028a94
mov eax, dword [edx + 0x24]
xorps xmm0, xmm0
mov esi, dword [eax]
mov ecx, dword [esi]
movlpd qword [ebp - 0x228], xmm0
movlpd qword [ebp - 0x220], xmm0
movlpd qword [ebp - 0x218], xmm0
mov dword [ebp - 0x22c], edi
mov ax, word [edi + 8]
and ax, word [ebp - 0xd4]
or ax, 1
mov word [edi + 8], ax
mov eax, dword [ebp - 8]
push dword [eax + ebx*4 + 8]
lea eax, [ebp - 0x22c]
push eax
push dword [edx + 0x24]
mov eax, dword [ecx + 0x2c]
call eax
mov ecx, dword [ebp - 0x1c]
add esp, 0xc
mov edx, esi
mov dword [ebp - 0x14], eax
call fcn.100254b0
mov eax, dword [ebp - 0x218]
test eax, eax
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ebp - 0x48]
cmovne ecx, eax
mov dword [ebp - 0x14], ecx
mov ecx, edi
call fcn.1001fab0
mov ecx, edi
call fcn.10020770
mov esi, dword [ebp - 0xc]
jmp 0x100293a8
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ecx + ebx*4 + 4]
mov eax, dword [edx + 0x38]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 0x19], 0
jne 0x1002a190
mov eax, dword [edi + 0x24]
mov esi, dword [eax]
mov eax, dword [edx + 0x58]
and eax, 0xfffffff7
or eax, 4
mov ecx, dword [esi]
mov dword [edx + 0x58], eax
push dword [edi + 0x24]
mov dword [ebp - 0x2c], ecx
mov eax, dword [ecx + 0x24]
call eax
mov dword [ebp - 0x14], eax
add esp, 4
mov eax, dword [ebp - 0x1c]
mov edx, esi
mov ecx, eax
and dword [eax + 0x58], 0xfffffff3
call fcn.100254b0
cmp dword [ebp - 0x14], 0
jne 0x1002ce37
mov eax, dword [ebp - 0x2c]
push dword [edi + 0x24]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x1002ce42
mov eax, dword [ebp - 8]
mov eax, dword [eax + ebx*4 + 8]
dec eax
mov dword [ebp - 4], eax
mov esi, dword [ebp - 0xc]
cmp dword [esi + 0xf0], 0
jne 0x1002d42f
mov ecx, dword [esi + 0x124]
mov ebx, dword [ebp - 0x10]
test ecx, ecx
je 0x1002d0d6
cmp ebx, dword [ebp - 0x94]
jb 0x1002d0d6
mov ebx, dword [esi + 0x12c]
xor edx, edx
mov eax, dword [ebp - 0x10]
div ebx
push dword [esi + 0x128]
sub ebx, edx
add ebx, dword [ebp - 0x10]
mov dword [ebp - 0x94], ebx
call ecx
mov edx, dword [ebp - 4]
add esp, 4
test eax, eax
jne 0x1002d422
mov edi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 8]
jmp 0x1002a19c
mov eax, dword [ecx + ebx*4 + 0x10]
mov edx, 1
mov esi, dword [eax + 8]
mov eax, dword [ecx + ebx*4 + 4]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov ecx, edi
call fcn.1001fab0
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x1002b845
mov eax, dword [esi]
push dword [edi + 0x10]
push esi
mov eax, dword [eax + 0x4c]
call eax
add esp, 8
mov dword [ebp - 0x14], eax
mov edx, esi
mov esi, dword [ebp - 0x1c]
mov ecx, esi
call fcn.100254b0
and dword [esi + 0x58], 0xffffffdf
jmp 0x1002a18d
mov eax, dword [ecx + ebx*4 + 0x10]
mov edx, dword [ecx + ebx*4 + 8]
mov edi, dword [eax + 8]
mov eax, dword [edi]
mov dword [ebp - 0x2c], eax
cmp dword [eax + 0x34], 0
je 0x1002aab2
mov al, byte [esi + 0x44]
mov byte [ebp - 0x39], al
mov eax, dword [ebp - 0x1c]
mov esi, dword [eax + 0xc]
mov eax, dword [ecx + ebx*4 + 0xc]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test edx, edx
jle 0x1002cf40
mov dword [esi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x1002cf35
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov al, byte [eax + ebx*4 + 3]
mov byte [ecx + 0x44], al
lea eax, [ebp - 0x198]
push eax
mov eax, dword [ebp - 0x2c]
push esi
push edx
push edi
mov eax, dword [eax + 0x34]
call eax
mov esi, dword [ebp - 0xc]
add esp, 0x10
mov dword [ebp - 0x14], eax
mov edx, edi
mov al, byte [ebp - 0x39]
mov edi, dword [ebp - 0x1c]
mov ecx, edi
mov byte [esi + 0x44], al
call fcn.100254b0
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 8]
test eax, eax
jne 0x1002cfa7
cmp dword [ecx + ebx*4 + 4], eax
je 0x1002cfa7
mov edx, dword [ebp - 0x198]
mov edi, dword [ebp - 0x194]
mov dword [ebp - 0x7c], edx
mov dword [esi + 0x20], edx
mov edx, edi
mov dword [ebp - 0x74], edi
mov edi, dword [ebp - 0x1c]
mov dword [esi + 0x24], edx
cmp al, 0x13
jne 0x1002cfe3
mov eax, dword [ecx + ebx*4 + 0x10]
cmp byte [eax + 0x10], 0
je 0x1002cfe0
mov cl, byte [ecx + ebx*4 + 3]
cmp cl, 4
jne 0x1002cfca
mov dword [ebp - 0x14], 0
jmp 0x10028a94
movzx eax, cl
cmp cl, 5
mov ecx, 2
cmove eax, ecx
mov byte [edi + 0x56], al
jmp 0x1002a190
mov eax, dword [ebp - 0x14]
inc dword [edi + 0x5c]
mov edi, dword [ebp - 0x20]
jmp 0x1002a199
mov eax, dword [ecx + ebx*4 + 4]
mov ecx, dword [esi + 0x10]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.10016210
mov dword [edi], eax
mov dword [edi + 4], 0
jmp 0x10028a97
mov ecx, dword [ecx + ebx*4 + 4]
xor edx, edx
mov eax, dword [esi + 0x10]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
mov eax, dword [ebp - 8]
cmp dword [eax + ebx*4 + 0xc], edx
je 0x1002d03b
mov ecx, esi
call fcn.10016210
mov edx, eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + ebx*4 + 0xc]
cmp edx, eax
cmovb edx, eax
mov ecx, esi
call fcn.10016db0
mov esi, dword [ebp - 0xc]
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x10028a97
mov eax, dword [ecx + ebx*4 + 8]
test eax, eax
lea ecx, [eax - 1]
cmove ecx, dword [ebp - 4]
cmp dword [esi + 0xac], 0
mov eax, ecx
mov dword [ebp - 4], ecx
mov edi, ecx
je 0x1002a190
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 4], eax
test dword [ecx + 0x58], 0x800
mov ecx, dword [ebp - 8]
jne 0x1002aab2
mov edx, dword [ecx + ebx*4 + 0x10]
test edx, edx
jne 0x1002d098
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0xa8]
mov dword [ebp - 4], eax
test edx, edx
je 0x1002aab2
mov ecx, dword [ebp - 0x1c]
call fcn.10027df0
mov esi, eax
mov eax, dword [ebp - 0xc]
push esi
push dword [eax + 0xb0]
mov ecx, dword [eax + 0xac]
call ecx
add esp, 8
mov edx, esi
mov esi, dword [ebp - 0xc]
mov ecx, esi
call fcn.10004780
mov dword [ebp - 4], edi
jmp 0x1002a190
mov edi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
jmp 0x1002a19f
mov esi, eax
jmp 0x1002a190
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0xc]
jmp 0x1002a199
mov edx, dword [ebp - 0x1c]
mov edi, dword [ebp - 8]
mov dword [edx + 0x50], ecx
mov al, byte [edi + ebx*4 + 8]
mov byte [edx + 0x56], al
mov eax, dword [ebp - 4]
mov dword [edx + 0x4c], eax
test ecx, ecx
je 0x1002d196
mov al, byte [edi + ebx*4 + 3]
test al, al
je 0x1002d14d
movzx eax, al
mov eax, dword [eax*4 + 0x100dade8]
test eax, eax
je 0x1002d14f
mov ecx, dword [edi + ebx*4 + 0x10]
test ecx, ecx
je 0x1002d14f
push ecx
push eax
push str._s_constraint_failed:__s
push dword [ebp - 0xc]
lea esi, [edx + 0x2c]
push esi
call fcn.10004c10
add esp, 0x14
jmp 0x1002d174
xor eax, eax
mov ecx, dword [edi + ebx*4 + 0x10]
lea esi, [edx + 0x2c]
test ecx, ecx
je 0x1002d162
push ecx
push 0x100d66d0
jmp 0x1002d168
push eax
push str._s_constraint_failed
push dword [ebp - 0xc]
push esi
call fcn.10004c10
add esp, 0x10
push dword [esi]
mov eax, dword [ebp - 0x1c]
push dword [eax + 0xa8]
push dword [ebp - 4]
push str.abort_at__d_in___s_:__s
push dword [edi + ebx*4 + 4]
call fcn.100068b0
mov edx, dword [ebp - 0x1c]
add esp, 0x14
mov ecx, edx
call fcn.100233c0
cmp eax, 5
mov eax, dword [ebp - 0x1c]
jne 0x1002d1b2
mov esi, 5
mov dword [eax + 0x50], esi
jmp 0x1002a12c
cmp dword [eax + 0x50], 0
mov esi, 0x65
mov eax, 1
cmovne esi, eax
jmp 0x1002a12c
mov eax, 9
jmp 0x1002a0db
mov eax, 0x14
mov dword [ebp - 0x14], eax
jmp 0x1002b489
push 0x100da52c
push 0x116df
push 0x100da970
push 0xb
call fcn.100068b0
mov esi, dword [ebp - 0xc]
add esp, 0x10
inc dword [ebp - 4]
mov eax, 0xb
jmp 0x1002a0db
push 0x100da52c
push 0x11733
push 0x100da970
push 0xb
call fcn.100068b0
mov esi, dword [ebp - 0xc]
add esp, 0x10
inc dword [ebp - 4]
mov eax, 0xb
jmp 0x1002a0db
push str.cannot_open_savepoint___SQL_statements_in_progress
mov eax, dword [ebp - 0x1c]
add eax, 0x2c
push esi
push eax
call fcn.10004c10
mov edx, dword [ebp - 4]
mov eax, 5
add esp, 0xc
mov dword [ebp - 0x14], eax
inc edx
jmp 0x1002a0e1
push str.cannot_release_savepoint___SQL_statements_in_progress
mov esi, edx
jmp 0x1002d236
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 4]
mov dword [ecx + 0x4c], eax
mov byte [esi + 0x3e], 0
mov esi, 5
mov dword [ecx + 0x50], esi
jmp 0x1002a12c
test edx, edx
je 0x1002d2ae
mov edx, 0x204
mov ecx, esi
call fcn.1007cb50
mov edi, dword [ebp - 0x1c]
mov byte [esi + 0x3e], 1
mov ecx, esi
call fcn.1007c2c0
cmp dword [edi + 0x50], 0
mov esi, 0x65
mov eax, 1
cmovne esi, eax
jmp 0x1002a12c
mov edi, dword [ebp - 0x1c]
mov edx, 1
mov ecx, edi
call fcn.10023350
mov esi, eax
test esi, esi
jne 0x1002a12c
mov esi, dword [ebp - 0xc]
mov ecx, edi
mov ebx, dword [ebp - 0x2c]
mov byte [esi + 0x3e], bl
call fcn.100233c0
cmp eax, 5
jne 0x1002d291
mov eax, dword [ebp - 4]
mov dword [edi + 0x4c], eax
mov al, 1
sub al, bl
mov byte [esi + 0x3e], al
mov esi, 5
mov dword [edi + 0x50], esi
jmp 0x1002a12c
mov eax, 8
mov dword [ebp - 0x14], eax
jmp 0x1002b489
mov ecx, dword [ebp - 0x1c]
mov esi, 5
mov eax, dword [ebp - 4]
mov dword [ecx + 0x4c], eax
mov dword [ecx + 0x50], esi
jmp 0x1002a12c
push 0x100da52c
push 0x11a80
push 0x100da970
push 0xb
call fcn.100068b0
add esp, 0x10
mov eax, 0xb
jmp 0x1002b483
mov edx, dword [ebp - 4]
mov eax, 0x204
mov dword [ebp - 0x14], eax
inc edx
jmp 0x1002a0e1
mov esi, edi
jmp 0x1002b489
cmp eax, 0xc0a
je 0x1002a0de
mov ecx, eax
call fcn.1007cca0
push eax
mov eax, dword [ebp - 0x1c]
push 0x100d66d0
add eax, 0x2c
push esi
push eax
call fcn.10004c10
mov eax, dword [ebp - 0x14]
add esp, 0x10
jmp 0x1002a0de
mov edx, dword [ebp - 0x1c]
mov eax, 6
mov dword [ebp - 0x14], eax
mov byte [edx + 0x56], 2
mov edx, dword [ebp - 4]
inc edx
jmp 0x1002a0e1
push str.too_many_levels_of_trigger_recursion
lea eax, [ecx + 0x2c]
mov dword [ebp - 0x14], 1
push esi
push eax
call fcn.10004c10
add esp, 0xc
mov eax, 1
inc dword [ebp - 4]
jmp 0x1002a0de
cmp esi, 5
mov dword [ebp - 0x14], 1
mov esi, dword [ebp - 0xc]
mov ecx, str.out_of
mov eax, str.into
cmovne eax, ecx
push eax
mov eax, dword [ebp - 0x1c]
push str.cannot_change__s_wal_mode_from_within_a_transaction
add eax, 0x2c
push esi
push eax
call fcn.10004c10
add esp, 0x10
mov eax, 1
inc dword [ebp - 4]
jmp 0x1002a0de
mov esi, eax
jmp 0x1002d406
mov esi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x1c]
push str.string_or_blob_too_big
add eax, 0x2c
push esi
push eax
call fcn.10004c10
mov eax, 0x12
jmp 0x1002a0d8
mov eax, 9
mov dword [ebp - 0x14], eax
jmp 0x1002a0e1
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x50], 9
mov ecx, 9
mov dword [ebp - 0x14], 9
call fcn.1007cca0
push eax
mov eax, dword [ebp - 0x1c]
push 0x100d66d0
add eax, 0x2c
push esi
push eax
call fcn.10004c10
add esp, 0x10
mov eax, 9
jmp 0x1002a0de
mov esi, eax
jmp 0x1002a0bd