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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x338
mov eax, dword [0x103ca0ec]
xor eax, esp
mov dword [esp + 0x334], eax
mov edx, ecx
mov dword [esp + 0x10], 0
push esi
xor esi, esi
mov dword [esp + 0x1c], edx
push edi
mov ecx, dword [edx]
mov eax, dword [edx + 4]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ecx
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x1c], 0
mov byte [esp + 0x6b], 0
mov dword [esp + 0xb0], 0
mov eax, dword [eax + 0xc]
mov dword [esp + 0x7c], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x24], esi
mov al, byte [eax + 0x4d]
mov byte [esp + 0x5c], al
mov eax, dword [edx + 8]
mov dword [esp + 0x28], eax
mov eax, dword [ecx + 0x20]
mov dword [esp + 0x70], eax
mov eax, dword [ecx + 0x24]
mov ecx, edx
mov dword [esp + 0x88], esi
mov dword [esp + 0x74], eax
call fcn.10027520
mov ecx, dword [esp + 0x20]
cmp dword [ecx + 0x50], 7
je 0x100331f5
mov dword [ecx + 0x50], esi
mov dword [ecx + 0x88], esi
mov dword [ecx + 0x8c], esi
mov dword [ecx + 0x14], esi
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x1bc], esi
cmp dword [ecx + 0xe8], esi
jne 0x100331bc
cmp dword [ecx + 0x11c], esi
je 0x1002cd48
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x7c]
test eax, eax
jne 0x1002cd39
mov edx, dword [ecx + 0x124]
jmp 0x1002cd41
xor edx, edx
div dword [ecx + 0x124]
mov dword [esp + 0x8c], edx
mov eax, dword [esp + 0x20]
mov edi, dword [eax + 0x4c]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], edi
nop word [eax + eax]
cmp byte [ecx + 0x40], 0
jne 0x100331f9
inc dword [esp + 0x7c]
lea edi, [edi + edi*4]
test byte [edx + edi*4 + 2], 2
mov dword [esp + 0x44], edi
je 0x1002cdb1
mov eax, dword [edx + edi*4 + 8]
mov esi, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, 0x2460
mov dword [esp + 0x24], esi
test word [esi + 0x1c], ax
je 0x1002cda8
mov ecx, esi
call fcn.10025ae0
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov eax, 4
mov word [esi + 0x1c], ax
mov dl, byte [edx + edi*4]
movzx eax, dl
dec eax
mov byte [esp + 0x48], dl
cmp eax, 0x9b
ja case.default.0x1002cdc7
jmp dword [eax*4 + 0x100332d4]
mov eax, dword [esp + 0x14]
mov edx, 4
mov esi, dword [esp + 0x28]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x28]
lea ecx, [ecx + ecx*4]
mov word [eax + ecx*8 + 0x1c], dx
mov eax, dword [esp + 0x18]
cdq
mov dword [esi + ecx*8 + 0x10], eax
mov eax, esi
mov dword [eax + ecx*8 + 0x14], edx
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x24]
mov ecx, dword [edx + edi*4 + 8]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
jmp 0x1002cd60
mov edx, dword [esp + 0x14]
mov esi, 0x80
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
mov edi, dword [esp + 0x28]
lea eax, [eax + eax*4]
mov edi, dword [edi + eax*8 + 0x10]
mov word [ecx + eax*8 + 0x1c], si
inc edi
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
jmp 0x1002cd53
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, dword [edx + edi*4 + 0xc]
dec eax
mov dword [esp + 0x24], esi
cdq
mov dword [esi + 0x14], edx
mov edx, dword [esp + 0x14]
mov dword [esi + 0x10], eax
mov eax, 4
mov word [esi + 0x1c], ax
mov eax, dword [edx + edi*4 + 8]
test eax, eax
je 0x1002cfaf
lea edi, [eax - 1]
inc edi
jmp 0x1002cd53
mov edx, dword [esp + 0x14]
mov esi, 0x80
mov eax, dword [edx + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x28]
mov eax, dword [eax + ecx*8 + 0x10]
lea eax, [eax + eax*4]
mov edi, dword [edx + eax*4 + 8]
mov eax, dword [esp + 0x28]
mov word [eax + ecx*8 + 0x1c], si
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
jmp 0x1002cd53
mov eax, dword [esp + 0x14]
mov eax, dword [eax + edi*4 + 4]
mov edi, dword [esp + 0x28]
lea esi, [eax + eax*4]
mov eax, 4
mov ecx, dword [edi + esi*8 + 0x10]
mov word [edi + esi*8 + 0x1c], ax
inc ecx
mov eax, dword [esp + 0x18]
cdq
mov dword [edi + esi*8 + 0x14], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
mov dword [edi + esi*8 + 0x10], eax
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
jmp 0x1002cd60
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 0xc]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x1c], 1
mov esi, dword [esp + 0x24]
je case.default.0x1002cdc7
jmp 0x1002cf27
mov edx, dword [esp + 0x14]
cmp dword [edx + edi*4 + 4], 0
jne 0x10032e14
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0xb0]
test ecx, ecx
je 0x10032e14
mov edx, dword [esp + 0x20]
mov eax, dword [ecx + 4]
dec dword [edx + 0xb8]
mov dword [edx + 0xb0], eax
mov eax, dword [edx + 0x5c]
mov edx, dword [esp + 0x10]
add dword [edx + 0x54], eax
mov dword [edx + 0x50], eax
call fcn.10027ed0
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], eax
mov edx, dword [ecx + 0x20]
mov dword [esp + 0x70], edx
mov edx, dword [ecx + 0x24]
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x14]
cmp dword [edx + edi*4 + 8], 4
mov edi, dword [esp + 0x20]
jne 0x1002cfa1
lea ecx, [eax + eax*4]
mov eax, dword [edi + 4]
mov ecx, dword [eax + ecx*4 + 8]
dec ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
mov edx, dword [edi + 4]
mov eax, dword [edi + 8]
mov dword [esp + 0x14], edx
mov dword [esp + 0x28], eax
mov edi, dword [esp + 0x18]
inc edi
jmp 0x1002cd53
mov eax, dword [esp + 0x14]
mov eax, dword [eax + edi*4 + 4]
mov edi, dword [esp + 0x18]
cdq
inc edi
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], edx
jmp 0x1002cd4f
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + edi*4 + 0x10]
mov edi, dword [esp + 0x18]
inc edi
mov eax, dword [ecx]
mov dword [esi + 0x10], eax
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x10]
mov dword [esi + 0x14], eax
jmp 0x1002cd53
mov edx, dword [esp + 0x14]
mov eax, 8
mov word [esi + 0x1c], ax
mov eax, dword [edx + edi*4 + 0x10]
mov edi, dword [esp + 0x18]
inc edi
movsd xmm0, qword [eax]
movsd qword [esi + 8], xmm0
jmp 0x1002cd53
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + edi*4 + 0x10]
mov byte [edx + edi*4], 0x1b
call fcn.1000e380
cmp byte [esp + 0x5c], 1
mov dword [edx + edi*4 + 4], eax
je 0x1002d0a1
push 0
push 1
mov edx, ecx
mov ecx, esi
push 0xffffffffffffffff
call fcn.100260d0
add esp, 0xc
mov dword [esp + 0x1c], eax
cmp eax, 0x12
je 0x100309ff
movzx edx, byte [esp + 0x5c]
mov ecx, esi
call fcn.10025740
test eax, eax
jne 0x100331f5
mov edx, dword [esp + 0x14]
mov dword [esi + 0x24], eax
mov eax, 0x800
or word [esi + 0x1c], ax
cmp byte [edx + edi*4 + 1], 0xff
jne 0x1002d08e
mov edx, dword [edx + edi*4 + 0x10]
mov ecx, dword [esp + 0x10]
call fcn.1000bde0
mov edx, dword [esp + 0x14]
mov byte [edx + edi*4 + 1], 0xff
mov eax, dword [esi + 4]
mov dword [edx + edi*4 + 0x10], eax
mov eax, dword [esi + 0x18]
mov dword [edx + edi*4 + 4], eax
mov ecx, dword [esp + 0x10]
mov eax, dword [edx + edi*4 + 4]
cmp eax, dword [ecx + 0x58]
jg 0x10030a03
jmp 0x1002d0b8
mov edx, dword [esp + 0x14]
mov eax, 0xa02
mov word [esi + 0x1c], ax
mov eax, dword [edx + edi*4 + 0x10]
mov dword [esi + 4], eax
mov eax, dword [edx + edi*4 + 4]
mov dword [esi + 0x18], eax
mov al, byte [esp + 0x5c]
mov byte [esi + 0x1e], al
jmp case.default.0x1002cdc7
mov edx, dword [esp + 0x14]
mov eax, 1
cmp dword [edx + edi*4 + 4], 0
mov esi, dword [edx + edi*4 + 0xc]
mov ecx, dword [edx + edi*4 + 8]
mov edx, 0x101
cmovne eax, edx
mov edx, dword [esp + 0x24]
sub esi, ecx
movzx edi, ax
mov word [edx + 0x1c], di
test esi, esi
jle 0x1002d136
mov eax, 0x2460
nop
add edx, 0x28
mov dword [esp + 0x24], edx
test word [edx + 0x1c], ax
je 0x1002d12d
mov ecx, edx
call fcn.10025ae0
mov edx, dword [esp + 0x24]
mov eax, 0x2460
dec esi
mov word [edx + 0x1c], di
test esi, esi
jg 0x1002d110
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
inc edi
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], edi
jmp 0x1002cd60
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
mov edi, 0xff7f
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov ax, word [esi + 0x1c]
and ax, di
mov dword [esp + 0x24], esi
mov edi, dword [esp + 0x18]
or ax, 1
mov word [esi + 0x1c], ax
inc edi
jmp 0x1002cd53
mov eax, dword [esp + 0x14]
mov ecx, esi
push 0
push 0
push dword [eax + edi*4 + 4]
mov edx, dword [eax + edi*4 + 0x10]
call fcn.100260d0
mov al, byte [esp + 0x68]
add esp, 0xc
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
inc edi
mov byte [esi + 0x1e], al
jmp 0x1002cd4f
mov eax, dword [esp + 0x14]
mov eax, dword [eax + edi*4 + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
lea edx, [edx - 5]
mov eax, dword [eax + 0x3c]
lea edx, [eax + edx*8]
movzx eax, word [edx + 0x1c]
test al, 0x12
je 0x1002d1f6
mov esi, dword [edx + 0x18]
test eax, 0x4000
je 0x1002d1e0
add esi, dword [edx + 0x10]
mov eax, dword [edx]
xor ecx, ecx
cmp esi, dword [eax + 0x58]
setg cl
test ecx, ecx
jne 0x100309ff
mov esi, dword [esp + 0x24]
push 0x800
mov ecx, esi
call fcn.10025f70
mov edi, dword [esp + 0x1c]
add esp, 4
mov ecx, dword [esp + 0x10]
inc edi
jmp 0x1002cd4f
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
mov ecx, dword [edx + edi*4 + 0xc]
mov dword [esp + 0x2c], ecx
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, dword [edx + edi*4 + 8]
mov edx, dword [esp + 0x28]
mov edi, 0x80
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov dword [esp + 0x24], edx
mov eax, 0x2460
test word [edx + 0x1c], ax
je 0x1002d25e
mov ecx, edx
call fcn.10025ae0
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
movups xmm0, xmmword [esi]
mov eax, dword [edx + 0x24]
movups xmmword [edx], xmm0
movups xmm0, xmmword [esi + 0x10]
movups xmmword [edx + 0x10], xmm0
movq xmm0, qword [esi + 0x20]
movq qword [edx + 0x20], xmm0
add edx, 0x28
mov word [esi + 0x1c], di
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], eax
add esi, 0x28
sub ecx, 1
mov dword [esp + 0x24], edx
mov dword [esp + 0x2c], ecx
jne 0x1002d244
jmp 0x1002d136
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
mov eax, dword [ecx + edi*4 + 0xc]
mov dword [esp + 0x2c], eax
mov eax, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ecx + edi*4 + 8]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x24], eax
push 0x1000
mov edx, esi
mov ecx, eax
call fcn.10025f70
mov edx, dword [esp + 0x28]
mov eax, 0x1000
add esp, 4
test word [edx + 0x1c], ax
je 0x1002d2fa
mov ecx, edx
call fcn.10025890
test eax, eax
jne 0x100331f5
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
mov eax, ecx
dec ecx
mov dword [esp + 0x2c], ecx
test eax, eax
je 0x1002d136
add edx, 0x28
add esi, 0x28
mov dword [esp + 0x24], edx
mov eax, edx
jmp 0x1002d2c7
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
push 0x1000
mov eax, dword [ecx + edi*4 + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ecx + edi*4 + 4]
mov ecx, esi
mov dword [esp + 0x28], esi
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
call fcn.10025f70
mov edi, dword [esp + 0x1c]
add esp, 4
mov ecx, dword [esp + 0x10]
inc edi
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], edi
jmp 0x1002cd60
mov eax, dword [ecx + 0x11c]
test eax, eax
je 0x1002d38a
mov edx, dword [esp + 0x7c]
cmp edx, dword [esp + 0x8c]
jb 0x1002d38a
push dword [ecx + 0x120]
call eax
add esp, 4
test eax, eax
jne 0x10032a39
mov ecx, dword [esp + 0x20]
xor edx, edx
call fcn.10028970
mov ecx, eax
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x1002eaab
mov ecx, dword [esp + 0x20]
lea edx, [eax + 1]
call fcn.10028850
mov ecx, eax
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x1002eaab
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x78], 0
mov eax, dword [edx + 0x48]
add eax, 2
or eax, 1
mov dword [edx + 0x48], eax
mov eax, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov dword [edx + 0x14], esi
cmp dword [ecx + edi*4 + 8], 0
jle 0x1002d42c
mov eax, 0x1000
test word [esi + 0x1c], ax
je 0x1002d40b
mov ecx, esi
call fcn.10025890
test eax, eax
jne 0x100331f5
mov ecx, esi
call fcn.10025950
mov eax, dword [esp + 0x78]
add esi, 0x28
mov ecx, dword [esp + 0x14]
inc eax
mov dword [esp + 0x78], eax
cmp eax, dword [ecx + edi*4 + 8]
jl 0x1002d3f1
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
cmp byte [ecx + 0x40], 0
jne 0x100331f9
mov eax, dword [esp + 0x18]
mov edi, 0x64
inc eax
mov dword [edx + 0x4c], eax
jmp 0x1003329f
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
mov eax, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x2c], eax
mov eax, dword [ecx + edi*4 + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ecx + edi*4 + 0xc]
mov edi, dword [esp + 0x2c]
lea eax, [eax + eax*4]
movzx ecx, word [edi + 0x1c]
lea eax, [edx + eax*8]
mov dword [esp + 0x24], eax
mov al, byte [esi + 0x1c]
or al, cl
test al, 1
je 0x1002d4ac
mov esi, dword [esp + 0x24]
mov ecx, esi
call fcn.10025e40
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
inc edi
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], edi
jmp 0x1002cd60
test ecx, 0x4000
je 0x1002d4c3
mov ecx, edi
call fcn.100258f0
test eax, eax
jne 0x100331f5
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x1002d4dd
mov ecx, esi
call fcn.100258f0
test eax, eax
jne 0x100331f5
test byte [edi + 0x1c], 0x12
jne 0x1002d4f7
movzx edx, byte [esp + 0x5c]
mov ecx, edi
call fcn.100259a0
test eax, eax
jne 0x100331f5
test byte [esi + 0x1c], 0x12
jne 0x1002d511
movzx edx, byte [esp + 0x5c]
mov ecx, esi
call fcn.100259a0
test eax, eax
jne 0x100331f5
mov eax, dword [esi + 0x18]
add eax, dword [edi + 0x18]
cdq
mov edi, eax
mov ecx, edx
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x58]
cdq
cmp ecx, edx
jg 0x100309ff
jl 0x1002d536
cmp edi, eax
ja 0x100309ff
mov ecx, dword [esp + 0x24]
lea edx, [edi + 2]
xor eax, eax
cmp ecx, esi
sete al
push eax
call fcn.10025760
add esp, 4
test eax, eax
jne 0x100331f5
mov ecx, dword [esp + 0x24]
mov edx, 0xbe02
mov ax, word [ecx + 0x1c]
and ax, dx
or ax, 2
mov word [ecx + 0x1c], ax
cmp ecx, esi
je 0x1002d586
push dword [esi + 0x18]
push dword [esi + 4]
push dword [ecx + 4]
call fcn.100b0c50
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov eax, dword [esp + 0x2c]
push dword [eax + 0x18]
push dword [eax + 4]
mov eax, dword [ecx + 4]
add eax, dword [esi + 0x18]
push eax
call fcn.100b0c50
mov esi, dword [esp + 0x30]
add esp, 0xc
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov eax, dword [esi + 4]
mov byte [edi + eax], 0
mov eax, dword [esi + 4]
mov byte [edi + eax + 1], 0
mov eax, 0x200
or word [esi + 0x1c], ax
mov al, byte [esp + 0x5c]
mov dword [esi + 0x18], edi
mov edi, dword [esp + 0x18]
inc edi
mov byte [esi + 0x1e], al
mov dword [esp + 0x18], edi
jmp 0x1002cd60
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx ecx, word [esi + 0x1c]
mov eax, ecx
mov dword [esp + 0x54], esi
and eax, 0xc
je 0x1002d604
mov edx, eax
mov dword [esp + 0x58], edx
jmp 0x1002d653
test cl, 0x12
je 0x1002d64b
movzx eax, byte [esi + 0x1e]
lea edx, [esi + 8]
mov ecx, dword [esi + 4]
push eax
push dword [esi + 0x18]
call fcn.1000e690
add esp, 8
test eax, eax
je 0x1002d64b
movzx eax, byte [esi + 0x1e]
lea edx, [esi + 0x10]
mov ecx, dword [esi + 4]
push eax
push dword [esi + 0x18]
call fcn.1000ecc0
add esp, 8
mov edx, eax
neg edx
sbb edx, edx
and edx, 4
add edx, 4
mov dword [esp + 0x58], edx
jmp 0x1002d653
mov dword [esp + 0x58], 0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + edi*4 + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx ecx, word [esi + 0x1c]
mov eax, ecx
mov dword [esp + 0x44], esi
and eax, 0xc
je 0x1002d678
mov ecx, eax
jmp 0x1002d6bd
test cl, 0x12
je 0x1002d6bb
movzx eax, byte [esi + 0x1e]
lea edx, [esi + 8]
mov ecx, dword [esi + 4]
push eax
push dword [esi + 0x18]
call fcn.1000e690
add esp, 8
test eax, eax
je 0x1002d6bb
movzx eax, byte [esi + 0x1e]
lea edx, [esi + 0x10]
mov ecx, dword [esi + 4]
push eax
push dword [esi + 0x18]
call fcn.1000ecc0
add esp, 8
mov ecx, eax
neg ecx
sbb ecx, ecx
and ecx, 4
add ecx, 4
jmp 0x1002d6bd
xor ecx, ecx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x3c], ecx
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x24], eax
mov al, byte [esi + 0x1c]
or al, byte [edx + 0x1c]
test al, 1
jne 0x1002d48b
mov al, cl
and al, byte [esp + 0x58]
test al, 4
je 0x1002d83a
mov esi, dword [esi + 0x10]
mov eax, edx
mov dword [esp + 0x90], esi
mov byte [esp + 0x48], 1
mov edx, dword [eax + 0x10]
mov ecx, dword [eax + 0x14]
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x40], eax
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + edi*4]
add eax, 0xffffffa7
cmp eax, 3
ja case.default.0x1002d734
jmp dword [eax*4 + 0x10033544]
push ecx
push edx
lea ecx, [esp + 0x98]
call fcn.1000f5d0
add esp, 8
test eax, eax
jne 0x1002d841
mov eax, dword [esp + 0x94]
mov esi, dword [esp + 0x90]
jmp 0x1002d804
test edx, edx
jne 0x1002d793
cmp ecx, 0x80000000
jne 0x1002d793
mov eax, dword [esp + 0x40]
test eax, eax
jg 0x1002d841
jl 0x1002d789
test esi, esi
jae 0x1002d841
add esi, 0
adc eax, 0x80000000
jmp 0x1002d804
neg edx
adc ecx, 0
neg ecx
jmp case.0x1002d734.89
push ecx
push edx
lea ecx, [esp + 0x98]
call fcn.1000f670
jmp 0x1002d749
mov eax, edx
or eax, ecx
je 0x1002d48b
mov eax, edx
and eax, ecx
cmp eax, 0xffffffff
mov eax, dword [esp + 0x40]
jne 0x1002d7ce
test esi, esi
jne 0x1002d7ce
cmp eax, 0x80000000
je 0x1002d841
push ecx
push edx
push eax
push esi
call fcn.100d0d40
jmp 0x1002d800
mov eax, edx
or eax, ecx
je 0x1002d48b
mov eax, edx
and eax, ecx
cmp eax, 0xffffffff
jne 0x1002d7f3
mov edx, 1
xor ecx, ecx
mov eax, dword [esp + 0x40]
push ecx
push edx
push eax
push esi
call fcn.100d0df0
mov esi, eax
mov eax, edx
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov dword [ecx + 0x10], esi
mov esi, ecx
mov ecx, 0xbe04
mov dword [esi + 0x14], eax
mov ax, word [esi + 0x1c]
and ax, cx
mov ecx, dword [esp + 0x10]
or ax, 4
inc edi
mov word [esi + 0x1c], ax
mov dword [esp + 0x18], edi
jmp 0x1002cd60
mov byte [esp + 0x48], 0
jmp 0x1002d849
mov edx, dword [esp + 0x54]
mov esi, dword [esp + 0x44]
mov ecx, edx
call fcn.10025c60
mov ecx, esi
movsd qword [esp + 0x60], xmm0
call fcn.10025c60
mov eax, dword [esp + 0x14]
movaps xmm1, xmm0
movsd qword [esp + 0x80], xmm1
movzx eax, byte [eax + edi*4]
add eax, 0xffffffa7
cmp eax, 3
ja case.default.0x1002d879
jmp dword [eax*4 + 0x10033554]
addsd xmm1, qword [esp + 0x60]
jmp 0x1002d900
subsd xmm1, qword [esp + 0x60]
jmp 0x1002d900
mulsd xmm1, qword [esp + 0x60]
jmp 0x1002d900
movsd xmm0, qword [esp + 0x60]
ucomisd xmm0, qword [0x103baf28]
lahf
test ah, 0x44
jnp 0x1002d48b
divsd xmm1, xmm0
jmp 0x1002d900
movsd xmm0, qword [esp + 0x60]
call fcn.100d14ff
movsd xmm0, qword [esp + 0x80]
mov esi, eax
mov edi, edx
call fcn.100d14ff
mov ecx, esi
or ecx, edi
je 0x1002d48b
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x1002d8ed
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.100d0df0
mov ecx, eax
call fcn.100d1650
movaps xmm1, xmm0
movaps xmm0, xmm1
call fcn.1000e340
test eax, eax
jne 0x1002d48b
mov edx, dword [esp + 0x24]
mov ecx, 0xbe08
mov ax, word [edx + 0x1c]
and ax, cx
movsd qword [edx + 8], xmm1
or ax, 8
mov word [edx + 0x1c], ax
mov eax, dword [esp + 0x3c]
or al, byte [esp + 0x58]
test al, 8
jne 0x1002d136
cmp byte [esp + 0x48], 0
jne 0x1002d136
mov ecx, edx
call fcn.10025cc0
jmp 0x1002d136
mov edx, dword [esp + 0x14]
mov eax, dword [edx + edi*4 + 4]
test eax, eax
je 0x1002d97a
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
push 0
push 0
lea ecx, [ecx + eax*8]
call fcn.10025e90
mov edx, dword [esp + 0x1c]
add esp, 8
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
inc edi
jmp 0x1002cd53
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
movzx ecx, byte [esi + edi*4 + 3]
mov edx, dword [eax + 0xc]
mov eax, dword [esi + edi*4 + 0xc]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x30], ecx
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x24], eax
mov eax, dword [esi + edi*4 + 8]
mov esi, edx
mov edx, dword [esp + 0x2c]
xor edi, edi
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
test ecx, ecx
je 0x1002d9fd
mov eax, 0x1000
nop dword [eax]
mov dword [edx + edi*4], esi
test word [esi + 0x1c], ax
je 0x1002d9f5
mov ecx, esi
call fcn.10025890
test eax, eax
jne 0x100331f5
mov ecx, dword [esp + 0x30]
mov eax, 0x1000
mov edx, dword [esp + 0x2c]
inc edi
add esi, 0x28
cmp edi, ecx
jl 0x1002d9d0
mov esi, dword [esp + 0x44]
mov edi, 1
mov eax, dword [esp + 0x14]
mov eax, dword [eax + esi*4 + 0x10]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x18c], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x188], eax
mov eax, dword [esp + 0x24]
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x158], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [esp + 0x168], xmm0
movq xmm0, qword [eax + 0x20]
movq qword [esp + 0x178], xmm0
mov word [eax + 0x1c], di
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0
mov eax, dword [esp + 0x174]
and eax, 0xbe01
mov byte [esp + 0x195], 0
or eax, edi
mov edi, dword [esp + 0x150]
mov word [esp + 0x174], ax
test byte [edi + 2], 0x20
je 0x1002daa0
mov eax, dword [esp + 0x14]
mov eax, dword [eax + esi*4 - 4]
mov dword [esp + 0x184], eax
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x70]
push edx
push ecx
mov dword [eax + 0x20], esi
mov esi, dword [esp + 0x7c]
mov dword [eax + 0x24], esi
lea eax, [esp + 0x158]
push eax
mov eax, dword [edi + 0xc]
call eax
mov edi, dword [esp + 0x1c]
add esp, 0xc
mov esi, dword [esp + 0x44]
cmp byte [edi + 0x40], 0
mov eax, dword [edi + 0x20]
mov dword [esp + 0x70], eax
mov eax, dword [edi + 0x24]
mov dword [esp + 0x74], eax
jne 0x10032ee9
cmp byte [esp + 0x195], 0
je 0x1002db40
cmp dword [esp + 0x190], 0
je 0x1002db28
mov dl, 1
lea ecx, [esp + 0x158]
call fcn.10026370
push eax
mov eax, dword [esp + 0x24]
push 0x103b5880
add eax, 0x2c
push edi
push eax
call fcn.1000c1b0
mov eax, dword [esp + 0x1a0]
add esp, 0x10
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
push dword [eax + esi*4 + 4]
call fcn.10028e90
add esp, 4
movzx edx, byte [esp + 0x5c]
lea ecx, [esp + 0x158]
call fcn.10025740
mov edx, dword [esp + 0x24]
mov esi, edx
movups xmm0, xmmword [esp + 0x158]
movups xmmword [edx], xmm0
movups xmm0, xmmword [esp + 0x168]
movups xmmword [edx + 0x10], xmm0
movq xmm0, qword [esp + 0x178]
movq qword [edx + 0x20], xmm0
movzx eax, word [edx + 0x1c]
test al, 0x12
je 0x10032df5
mov edx, dword [edx + 0x18]
test eax, 0x4000
je 0x1002db95
add edx, dword [esi + 0x10]
mov eax, dword [esi]
xor ecx, ecx
cmp edx, dword [eax + 0x58]
setg cl
test ecx, ecx
mov ecx, edi
jne 0x10030a03
jmp case.default.0x1002cdc7
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
mov eax, dword [esi + edi*4 + 4]
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov eax, dword [esi + edi*4 + 8]
mov dword [esp + 0x30], ecx
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [esi + edi*4 + 0xc]
mov esi, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov al, byte [edx + 0x1c]
or al, byte [ecx + 0x1c]
mov dword [esp + 0x24], esi
test al, 1
je 0x1002dc07
mov ecx, esi
call fcn.10025e40
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
inc edi
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], edi
jmp 0x1002cd60
mov ecx, edx
call fcn.10025bb0
mov ecx, dword [esp + 0x30]
mov esi, edx
mov dword [esp + 0x40], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], esi
call fcn.10025bb0
mov ecx, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x2c], ecx
mov al, byte [eax + edi*4]
mov byte [esp + 0x48], al
cmp al, 0x55
jne 0x1002dc4d
mov edi, dword [esp + 0x40]
and edi, ecx
and esi, edx
jmp 0x1002dd35
cmp al, 0x56
jne 0x1002dc5e
mov edi, dword [esp + 0x40]
or edi, ecx
or esi, edx
jmp 0x1002dd35
mov eax, ecx
or eax, edx
je 0x1002dd31
test edx, edx
jg 0x1002dc91
jl 0x1002dc72
test ecx, ecx
jae 0x1002dc91
mov al, 0xaf
sub al, byte [esp + 0x48]
cmp edx, 0xffffffff
jl 0x1002dca0
jg 0x1002dc84
cmp ecx, 0xffffffc0
jbe 0x1002dca0
neg ecx
mov dword [esp + 0x2c], ecx
adc edx, 0
neg edx
jmp 0x1002dc95
mov al, byte [esp + 0x48]
test edx, edx
jl 0x1002dcd4
jg 0x1002dca0
cmp ecx, 0x40
jb 0x1002dcd4
test esi, esi
jg 0x1002dcb8
jl 0x1002dcad
cmp dword [esp + 0x40], 0
jae 0x1002dcb8
cmp al, 0x57
je 0x1002dcb8
or edi, 0xffffffff
or esi, edi
jmp 0x1002dd35
xorps xmm0, xmm0
movlpd qword [esp + 0xb8], xmm0
mov esi, dword [esp + 0xbc]
mov edi, dword [esp + 0xb8]
jmp 0x1002dd35
movq xmm1, qword [esp + 0xe0]
movd xmm0, ecx
cmp al, 0x57
jne 0x1002dcf9
psllq xmm1, xmm0
movq qword [esp + 0x60], xmm1
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x60]
jmp 0x1002dd35
psrlq xmm1, xmm0
movq qword [esp + 0x60], xmm1
test esi, esi
jg 0x1002dcef
jl 0x1002dd10
cmp dword [esp + 0x40], 0
jae 0x1002dcef
or edx, 0xffffffff
mov ecx, 0x40
sub ecx, dword [esp + 0x2c]
mov eax, edx
call fcn.100d0eb0
mov edi, dword [esp + 0x60]
mov esi, dword [esp + 0x64]
or edi, eax
or esi, edx
jmp 0x1002dd35
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x24]
mov ecx, 0xbe04
mov edx, dword [esp + 0x14]
mov dword [eax + 0x14], esi
mov esi, eax
mov dword [eax + 0x10], edi
mov edi, dword [esp + 0x18]
mov ax, word [esi + 0x1c]
and ax, cx
mov ecx, dword [esp + 0x10]
or ax, 4
inc edi
mov word [esi + 0x1c], ax
mov dword [esp + 0x18], edi
jmp 0x1002cd60
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.10025bb0
mov dword [esi + 0x10], eax
mov ecx, 0xbe04
mov ax, word [esi + 0x1c]
and ax, cx
mov dword [esi + 0x14], edx
or ax, 4
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + edi*4 + 8]
cdq
add dword [esi + 0x10], eax
adc dword [esi + 0x14], edx
jmp 0x1002d136
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 0x1c]
test al, 4
jne 0x1002de0f
test al, 0xc
jne 0x1002ddd7
mov ecx, esi
call fcn.1002cb40
test byte [esi + 0x1c], 8
je 0x1002dde4
mov ecx, esi
call fcn.10025cc0
movzx eax, word [esi + 0x1c]
mov edx, dword [esp + 0x14]
test al, 4
jne 0x1002de0f
mov eax, dword [edx + edi*4 + 8]
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x10032efc
mov esi, dword [esp + 0x24]
mov edi, eax
mov dword [esp + 0x18], eax
jmp 0x1002cd60
and eax, 0xbe04
or eax, 4
mov word [esi + 0x1c], ax
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
inc edi
mov ecx, dword [esp + 0x10]
jmp 0x1002cd53
mov edx, dword [esp + 0x14]
mov eax, dword [edx + edi*4 + 4]
mov edi, dword [esp + 0x28]
lea esi, [eax + eax*4]
movzx eax, word [edi + esi*8 + 0x1c]
mov dword [esp + 0x30], eax
test al, 4
je 0x1002de7d
test al, 8
je 0x1002de55
movsd xmm0, qword [edi + esi*8 + 8]
jmp 0x1002de6a
mov edx, dword [edi + esi*8 + 0x14]
mov ecx, dword [edi + esi*8 + 0x10]
call fcn.100d1650
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x14]
and eax, 0xbe08
movsd qword [edi + esi*8 + 8], xmm0
or eax, 8
mov word [edi + esi*8 + 0x1c], ax
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
inc edi
mov ecx, dword [esp + 0x10]
jmp 0x1002cd53
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
movzx eax, word [esi + 0x1c]
test al, 1
jne 0x1002ecb7
shr eax, 3
and eax, 2
or word [esi + 0x1c], ax
mov ax, word [esi + 0x1c]
test al, 2
jne 0x1002decf
test al, 0xc
je 0x1002decf
movzx edx, byte [esp + 0x5c]
mov ecx, esi
call fcn.100259a0
mov eax, 0xfff3
and word [esi + 0x1c], ax
movzx eax, word [esi + 0x1c]
test eax, 0x4000
je 0x1002defc
mov ecx, esi
call fcn.100258f0
mov dword [esp + 0x1c], eax
mov eax, 0xbfe3
and word [esi + 0x1c], ax
jmp 0x1002eaa7
mov eax, 0xbfe3
mov dword [esp + 0x1c], 0
and word [esi + 0x1c], ax
jmp 0x1002eaa7
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
movzx eax, word [esi + 0x1c]
test al, 1
jne 0x1002ecb7
test al, 0x10
jne 0x1002df72
test al, 2
jne 0x1002df4c
test al, 0xc
je 0x1002df4c
movzx edx, byte [esp + 0x5c]
mov ecx, esi
call fcn.100259a0
mov edx, dword [esp + 0x14]
mov ax, word [esi + 0x1c]
mov ecx, 0xbe10
mov edi, dword [esp + 0x18]
and ax, cx
mov ecx, dword [esp + 0x10]
or ax, 0x10
mov word [esi + 0x1c], ax
inc edi
mov esi, dword [esp + 0x24]
jmp 0x1002cd53
mov edi, dword [esp + 0x18]
and eax, 0xfe10
mov word [esi + 0x1c], ax
inc edi
mov esi, dword [esp + 0x24]
jmp 0x1002cd53
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.10025d60
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
inc edi
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], edi
jmp 0x1002cd60
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 1
lea esi, [ecx + eax*8]
jne 0x1002de1b
mov ecx, esi
call fcn.10025bb0
mov edi, dword [esp + 0x18]
mov ecx, 0xbe04
mov dword [esi + 0x10], eax
mov ax, word [esi + 0x1c]
and ax, cx
mov dword [esi + 0x14], edx
mov edx, dword [esp + 0x14]
or ax, 4
mov ecx, dword [esp + 0x10]
inc edi
mov word [esi + 0x1c], ax
mov esi, dword [esp + 0x24]
jmp 0x1002cd53
mov edx, dword [esp + 0x14]
mov eax, dword [edx + edi*4 + 4]
mov edi, dword [esp + 0x28]
lea esi, [eax + eax*4]
movzx eax, word [edi + esi*8 + 0x1c]
test al, 1
jne 0x1002de1b
test al, 8
je 0x1002e032
movsd xmm0, qword [edi + esi*8 + 8]
jmp 0x1002e07f
test al, 4
je 0x1002e045
mov edx, dword [edi + esi*8 + 0x14]
mov ecx, dword [edi + esi*8 + 0x10]
call fcn.100d1650
jmp 0x1002e07b
xorps xmm0, xmm0
test al, 0x12
je 0x1002e07f
movzx eax, byte [edi + esi*8 + 0x1e]
lea edx, [esp + 0x80]
mov ecx, dword [edi + esi*8 + 4]
push eax
push dword [edi + esi*8 + 0x18]
movsd qword [esp + 0x88], xmm0
call fcn.1000e690
movsd xmm0, qword [esp + 0x88]
add esp, 8
mov edx, dword [esp + 0x14]
mov ax, word [edi + esi*8 + 0x1c]
mov ecx, 0xbe08
and ax, cx
movsd qword [edi + esi*8 + 8], xmm0
mov ecx, dword [esp + 0x10]
or ax, 8
mov word [edi + esi*8 + 0x1c], ax
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
inc edi
jmp 0x1002cd53
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
mov eax, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ecx + edi*4 + 0xc]
lea eax, [eax + eax*4]
movzx ecx, word [edx + eax*8 + 0x1c]
lea eax, [edx + eax*8]
movzx edx, word [esi + 0x1c]
mov dword [esp + 0x3c], eax
mov al, cl
or al, dl
mov dword [esp + 0x30], edx
test al, 1
mov dword [esp + 0x34], ecx
mov eax, dword [esp + 0x14]
mov al, byte [eax + edi*4 + 3]
je 0x1002e17b
test al, al
jns 0x1002e118
mov eax, ecx
and eax, edx
xor edx, edx
bt ax, dx
jae 0x1002e10e
test ecx, 0x100
je 0x1002e1f7
mov edx, 1
jmp 0x1002e1f7
test al, 0x10
je 0x1002e154
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 8]
mov edi, dword [esp + 0x18]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, 0xbe01
mov ax, word [esi + 0x1c]
and ax, cx
mov dword [esp + 0x24], esi
mov ecx, dword [esp + 0x10]
or ax, 1
mov word [esi + 0x1c], ax
inc edi
jmp 0x1002cd53
test al, 8
je 0x1002ff10
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x24]
mov ecx, dword [edx + edi*4 + 8]
dec ecx
inc ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
jmp 0x1002cd60
and al, 0x67
mov byte [esp + 0x48], al
je 0x1002e1b5
push dword [esp + 0x5c]
mov dl, al
mov ecx, esi
call fcn.1002cbc0
mov dl, byte [esp + 0x4c]
add esp, 4
mov ecx, dword [esp + 0x3c]
push dword [esp + 0x5c]
call fcn.1002cbc0
mov ecx, dword [esp + 0x14]
add esp, 4
cmp byte [ecx + 0x40], 0
jne 0x100331f9
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x1002e1c7
mov ecx, esi
call fcn.100258f0
mov eax, dword [esp + 0x3c]
mov ecx, 0x4000
test word [eax + 0x1c], cx
je 0x1002e1e1
mov ecx, eax
call fcn.100258f0
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x14]
mov edx, esi
push dword [ecx + edi*4 + 0x10]
mov ecx, eax
call fcn.10029a00
add esp, 4
mov edx, eax
mov eax, dword [esp + 0x14]
movzx ecx, byte [eax + edi*4]
add ecx, 0xffffffb2
cmp ecx, 4
ja case.default.0x1002e207
jmp dword [ecx*4 + 0x10033564]
xor eax, eax
test edx, edx
sete al
jmp 0x1002e23d
xor eax, eax
test edx, edx
setne al
jmp 0x1002e23d
mov eax, edx
jmp 0x1002e23a
xor eax, eax
test edx, edx
setle al
jmp 0x1002e23d
xor eax, eax
test edx, edx
setg al
jmp 0x1002e23d
mov eax, edx
not eax
shr eax, 0x1f
mov edx, dword [esp + 0x14]
test byte [edx + edi*4 + 3], 0x10
je 0x1002e27b
mov ecx, dword [edx + edi*4 + 8]
mov edx, dword [esp + 0x28]
lea ecx, [ecx + ecx*4]
lea edi, [edx + ecx*8]
mov edx, 0xbe04
mov cx, word [edi + 0x1c]
and cx, dx
mov dword [esp + 0x24], edi
cdq
or cx, 4
mov dword [edi + 0x14], edx
mov edx, dword [esp + 0x14]
mov word [edi + 0x1c], cx
mov dword [edi + 0x10], eax
jmp 0x1002e288
test eax, eax
je 0x1002e288
mov eax, dword [edx + edi*4 + 8]
dec eax
mov dword [esp + 0x18], eax
movzx eax, word [esi + 0x1c]
mov edi, 0x1ff
xor ax, word [esp + 0x30]
mov ecx, dword [esp + 0x3c]
and ax, di
xor word [esi + 0x1c], ax
mov esi, dword [esp + 0x24]
movzx eax, word [ecx + 0x1c]
xor ax, word [esp + 0x34]
and ax, di
mov edi, dword [esp + 0x18]
xor word [ecx + 0x1c], ax
inc edi
mov ecx, dword [esp + 0x10]
jmp 0x1002cd53
mov edx, dword [esp + 0x14]
mov eax, dword [edx + edi*4 + 0x10]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x88], eax
inc edi
jmp 0x1002cd53
mov esi, dword [esp + 0x14]
mov eax, 0
mov edx, dword [esi + edi*4 + 0x10]
test byte [esi + edi*4 + 3], 1
mov ecx, dword [esi + edi*4 + 0xc]
mov esi, dword [esi + edi*4 + 4]
cmovne eax, dword [esp + 0x88]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], eax
mov dword [esp + 0x88], ecx
mov esi, dword [edx + edi*4 + 8]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x30], esi
xor esi, esi
test ecx, ecx
jle 0x1002e39f
test eax, eax
je 0x1002e330
mov ecx, dword [eax + esi*4]
jmp 0x1002e332
mov ecx, esi
mov eax, dword [edx + 0x10]
push dword [edx + esi*4 + 0x14]
mov edx, dword [esp + 0x2c]
movzx edi, byte [eax + esi]
mov eax, dword [esp + 0x34]
add eax, ecx
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [esp + 0x38]
add eax, ecx
mov ecx, dword [esp + 0x2c]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.10029a00
add esp, 4
mov dword [esp + 0xb0], eax
test eax, eax
jne 0x1002e392
mov eax, dword [esp + 0x38]
inc esi
mov edx, dword [esp + 0x2c]
cmp esi, dword [esp + 0x88]
jl 0x1002e327
mov dword [esp + 0x88], 0
jmp 0x1002d136
test edi, edi
je 0x1002e39f
neg eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0x88], 0
jmp 0x1002d136
mov eax, dword [esp + 0xb0]
mov edx, dword [esp + 0x14]
test eax, eax
jns 0x1002e3c7
mov edi, dword [edx + edi*4 + 4]
jmp 0x1002cd53
jne 0x1002e3d2
mov edi, dword [edx + edi*4 + 8]
jmp 0x1002cd53
mov edi, dword [edx + edi*4 + 0xc]
jmp 0x1002cd53
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 1
lea ecx, [ecx + eax*8]
je 0x1002e3fb
mov esi, 2
jmp 0x1002e40d
call fcn.10025bb0
or eax, edx
je 0x1002e40b
mov esi, 1
jmp 0x1002e40d
xor esi, esi
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + edi*4 + 8]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 1
lea ecx, [ecx + eax*8]
je 0x1002e42d
mov eax, 2
jmp 0x1002e43f
call fcn.10025bb0
or eax, edx
je 0x1002e43d
mov eax, 1
jmp 0x1002e43f
xor eax, eax
mov ecx, dword [esp + 0x14]
lea eax, [eax + esi*2]
cmp byte [ecx + edi*4], 0x48
jne 0x1002e455
mov al, byte [esi + eax + 0x103b1a6c]
jmp 0x1002e45c
mov al, byte [esi + eax + 0x103b26e4]
mov edx, dword [esp + 0x28]
movzx ecx, al
mov eax, dword [esp + 0x14]
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov ax, word [edx + 0x1c]
mov dword [esp + 0x24], edx
cmp ecx, 2
jne 0x1002e493
mov ecx, 0xbe01
and ax, cx
or ax, 1
mov word [edx + 0x1c], ax
jmp 0x1002d136
mov dword [edx + 0x10], ecx
mov ecx, 0xbe04
and ax, cx
mov dword [edx + 0x14], 0
or ax, 4
mov word [edx + 0x1c], ax
jmp 0x1002d136
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x1c], 1
lea ecx, [esi + eax*8]
mov eax, dword [edx + edi*4 + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov dword [esp + 0x24], esi
je 0x1002e4f6
mov ecx, esi
call fcn.10025e40
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
inc edi
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], edi
jmp 0x1002cd60
call fcn.10025bb0
or eax, edx
jne 0x1002e526
mov ecx, 1
push eax
push ecx
mov ecx, esi
call fcn.10025e90
mov edi, dword [esp + 0x20]
add esp, 8
mov ecx, dword [esp + 0x10]
inc edi
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], edi
jmp 0x1002cd60
xorps xmm0, xmm0
movlpd qword [esp + 0x80], xmm0
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x80]
push eax
push ecx
mov ecx, esi
call fcn.10025e90
mov edi, dword [esp + 0x20]
add esp, 8
mov ecx, dword [esp + 0x10]
inc edi
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], edi
jmp 0x1002cd60
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x1c], 1
lea ecx, [esi + eax*8]
mov eax, dword [edx + edi*4 + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov dword [esp + 0x24], esi
je 0x1002e5a6
mov ecx, esi
call fcn.10025e40
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
inc edi
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], edi
jmp 0x1002cd60
call fcn.10025bb0
not edx
not eax
push edx
push eax
jmp 0x1002e542
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
mov eax, dword [eax + 0xc8]
mov ecx, dword [edx + edi*4 + 4]
cmp byte [eax + ecx], 0
je 0x1002e5e0
mov ecx, dword [edx + edi*4 + 8]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
jmp 0x1002cd60
mov edi, dword [esp + 0x18]
mov byte [eax + ecx], 1
inc edi
mov ecx, dword [esp + 0x10]
jmp 0x1002cd53
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 1
lea ecx, [ecx + eax*8]
je 0x1002e611
mov eax, dword [edx + edi*4 + 0xc]
jmp 0x1002e63a
call fcn.10025c60
ucomisd xmm0, qword [0x103baf28]
lahf
test ah, 0x44
jnp 0x1002e62b
mov eax, 1
jmp 0x1002e62d
xor eax, eax
mov edx, dword [esp + 0x14]
cmp byte [edx + edi*4], 0x2d
jne 0x1002e63a
xor eax, 1
test eax, eax
je 0x1002e655
mov ecx, dword [edx + edi*4 + 8]
dec ecx
inc ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
jmp 0x1002cd60
mov ecx, dword [esp + 0x18]
inc ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
jmp 0x1002cd60
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x1c], 1
mov esi, dword [esp + 0x24]
je 0x1002cfaf
mov edi, dword [edx + edi*4 + 8]
dec edi
inc edi
jmp 0x1002cd53
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 1
mov ecx, dword [esp + 0x10]
jne 0x1002cfaf
mov edi, dword [edx + edi*4 + 8]
dec edi
inc edi
jmp 0x1002cd53
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
mov eax, dword [ecx + edi*4 + 0xc]
mov esi, dword [ecx + edi*4 + 8]
mov ecx, dword [ecx + edi*4 + 4]
mov dword [esp + 0x3c], esi
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x48], ecx
movsx eax, word [ecx + 0x14]
add eax, 0x16
lea eax, [ecx + eax*4]
mov dword [esp + 0x58], eax
mov eax, dword [ecx]
mov dword [esp + 0x54], eax
call fcn.10029260
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x10032ff7
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x20]
mov eax, dword [edx + 0x44]
cmp eax, dword [ecx + 0x48]
jne 0x1002e731
mov eax, dword [esp + 0x14]
test byte [eax + edi*4 + 3], 0x20
je 0x1002e921
cmp byte [edx + 0x19], 0
je 0x1002e77b
cmp dword [esp + 0x54], 0
jne 0x1002e75e
mov eax, dword [edx + 0x10]
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
mov esi, dword [ecx + eax*8 + 0x18]
mov dword [edx + 0x4c], esi
mov dword [edx + 0x48], esi
mov eax, dword [ecx + eax*8 + 4]
mov dword [edx + 0x54], eax
jmp 0x1002e8a6
mov edi, dword [esp + 0x40]
mov ecx, 0xbe01
mov ax, word [edi + 0x1c]
and ax, cx
or ax, 1
mov word [edi + 0x1c], ax
jmp 0x1002ec95
test byte [edx + 0x1c], 4
mov esi, dword [esp + 0x54]
jne 0x1002e81e
cmp byte [esi + 0x51], 1
je 0x1002e79d
xorps xmm0, xmm0
movlpd qword [esp + 0xc8], xmm0
jmp 0x1002e804
cmp word [esi + 0x32], 0
jne 0x1002e7f0
movsx eax, word [esi + 0x54]
mov edx, dword [esp + 0x54]
movzx esi, word [esi + eax*2 + 0x56]
mov edi, dword [edx + eax*4 + 0x80]
lea eax, [edx + 0x18]
push eax
mov ecx, dword [edi + 0x40]
movzx edx, byte [ecx + esi*2]
movzx eax, byte [ecx + esi*2 + 1]
mov ecx, edi
shl edx, 8
or edx, eax
movzx eax, word [edi + 0x12]
and edx, eax
add edx, dword [edi + 0x38]
call fcn.1001c350
mov esi, dword [esp + 0x58]
add esp, 4
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
or byte [esi + 0x50], 2
mov eax, dword [esi + 0x18]
mov dword [esp + 0xc8], eax
mov eax, dword [esi + 0x1c]
mov dword [esp + 0xcc], eax
movzx eax, word [esi + 0x2c]
add eax, dword [esi + 0x20]
movzx ecx, word [esi + 0x2e]
mov dword [edx + 0x54], eax
mov eax, dword [esp + 0xc8]
mov dword [edx + 0x48], eax
jmp 0x1002e885
cmp word [esi + 0x32], 0
jne 0x1002e871
movsx eax, word [esi + 0x54]
mov edx, dword [esp + 0x54]
movzx esi, word [esi + eax*2 + 0x56]
mov edi, dword [edx + eax*4 + 0x80]
lea eax, [edx + 0x18]
push eax
mov ecx, dword [edi + 0x40]
movzx edx, byte [ecx + esi*2]
movzx eax, byte [ecx + esi*2 + 1]
mov ecx, edi
shl edx, 8
or edx, eax
movzx eax, word [edi + 0x12]
and edx, eax
add edx, dword [edi + 0x38]
call fcn.1001c350
mov esi, dword [esp + 0x58]
add esp, 4
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
or byte [esi + 0x50], 2
mov eax, dword [esi + 0x24]
mov dword [edx + 0x48], eax
movzx eax, word [esi + 0x2c]
add eax, dword [esi + 0x20]
movzx ecx, word [esi + 0x2e]
mov dword [edx + 0x54], eax
mov eax, ecx
movzx esi, ax
mov eax, dword [edx + 0x48]
cmp eax, esi
ja 0x1002e896
mov dword [edx + 0x4c], eax
jmp 0x1002e899
mov dword [edx + 0x4c], esi
mov ecx, dword [esp + 0x10]
cmp eax, dword [ecx + 0x58]
ja 0x10030a03
mov eax, dword [esp + 0x20]
mov ecx, dword [edx + 0x54]
mov eax, dword [eax + 0x48]
mov dword [edx + 0x44], eax
mov al, byte [ecx]
cmp al, 0x80
jae 0x1002e8ca
movzx ecx, al
mov eax, 1
mov dword [esp + 0xb4], ecx
jmp 0x1002e8e4
lea edx, [esp + 0xb4]
call fcn.1000f430
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0x48]
movzx eax, al
movzx eax, al
mov dword [edx + 0x50], eax
xor eax, eax
mov word [edx + 0x16], ax
mov eax, dword [esp + 0x58]
mov dword [eax], ecx
cmp esi, ecx
jae 0x1002e908
mov dword [edx + 0x54], 0
mov dword [edx + 0x4c], 0
cmp ecx, 0x18003
ja 0x1002ecc0
cmp ecx, dword [edx + 0x48]
ja 0x1002ecc0
mov esi, dword [esp + 0x3c]
movzx eax, word [edx + 0x16]
cmp eax, esi
jg 0x1002eb04
mov ecx, dword [esp + 0x58]
mov eax, dword [edx + 0x50]
cmp eax, dword [ecx]
jae 0x1002ead1
mov eax, dword [edx + 0x54]
mov dword [esp + 0x44], eax
test eax, eax
jne 0x1002e9a8
xorps xmm0, xmm0
lea eax, [esp + 0xf0]
push eax
movaps xmmword [esp + 0xf4], xmm0
movaps xmmword [esp + 0x104], xmm0
movq qword [esp + 0x114], xmm0
mov eax, dword [edx + 0x1c]
xor edx, edx
shr eax, 2
not eax
and eax, 1
push eax
push dword [ecx]
mov ecx, dword [esp + 0x60]
call fcn.10026280
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x1002eaa7
mov eax, dword [esp + 0xf4]
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x44], eax
movzx edx, word [edx + 0x16]
mov esi, dword [esp + 0x48]
mov dword [esp + 0x34], edx
mov eax, dword [ecx + edx*4]
mov esi, dword [esi + 0x50]
add esi, dword [esp + 0x44]
mov dword [esp + 0x2c], eax
mov eax, dword [ecx]
add eax, dword [esp + 0x44]
mov dword [esp + 0x38], eax
nop dword [eax]
mov al, byte [esi]
cmp al, 0x80
jae 0x1002e9e7
movzx ecx, al
mov eax, 1
mov dword [esp + 0xac], ecx
jmp 0x1002ea03
lea edx, [esp + 0xac]
mov ecx, esi
call fcn.1000f430
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0x34]
movzx eax, al
add esi, eax
mov eax, dword [esp + 0x48]
mov dword [eax + edx*4 + 0x58], ecx
call fcn.10029440
mov ecx, dword [esp + 0x2c]
add ecx, eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0xb4], ecx
cmp ecx, eax
jb 0x1002ea41
mov eax, dword [esp + 0x58]
inc edx
mov dword [esp + 0x34], edx
mov dword [eax + edx*4], ecx
cmp edx, dword [esp + 0x3c]
jg 0x1002ea46
cmp esi, dword [esp + 0x38]
jb 0x1002e9d0
jmp 0x1002ea46
mov esi, dword [esp + 0x38]
inc esi
mov eax, dword [esp + 0x48]
mov word [eax + 0x16], dx
mov eax, esi
mov edx, dword [esp + 0x48]
sub eax, dword [esp + 0x44]
cmp dword [edx + 0x54], 0
mov dword [edx + 0x50], eax
jne 0x1002ea82
lea ecx, [esp + 0xf0]
call fcn.10025b30
mov ecx, dword [esp + 0x2c]
mov eax, 1
mov edx, dword [esp + 0x48]
mov word [esp + 0x10c], ax
cmp esi, dword [esp + 0x38]
ja 0x1002ea99
mov eax, dword [edx + 0x48]
cmp ecx, eax
ja 0x1002ea99
cmp esi, dword [esp + 0x38]
jne 0x1002eacd
cmp ecx, eax
je 0x1002eacd
mov ecx, 0x11351
call fcn.10072a10
mov dword [esp + 0x1c], eax
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
inc edi
mov dword [esp + 0x18], edi
test edx, edx
jne 0x1003321b
mov edx, dword [esp + 0x14]
jmp 0x1002cd60
mov esi, dword [esp + 0x3c]
movzx eax, word [edx + 0x16]
cmp eax, esi
jg 0x1002eb04
mov eax, dword [esp + 0x14]
cmp byte [eax + edi*4 + 1], 0xf8
jne 0x1002e75e
mov edx, dword [eax + edi*4 + 0x10]
mov edi, dword [esp + 0x40]
mov ecx, edi
push 0x800
call fcn.10025f70
add esp, 4
jmp 0x1002ec95
mov ecx, dword [esp + 0x58]
mov eax, dword [edx + 0x4c]
cmp eax, dword [ecx + esi*4 + 4]
jb 0x1002eb47
mov edi, dword [esp + 0x40]
mov eax, 0x2460
test word [edi + 0x1c], ax
je 0x1002eb2b
mov ecx, edi
call fcn.10025ae0
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x58]
mov ecx, dword [edx + 0x54]
mov edx, dword [edx + esi*4 + 0x58]
push edi
add ecx, dword [eax + esi*4]
call fcn.100294e0
add esp, 4
jmp 0x1002ec8e
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + esi*4 + 0x58]
mov dword [esp + 0x30], ecx
mov dword [esp + 0xac], ecx
mov al, byte [eax + edi*4 + 3]
test al, 0xc0
je 0x1002eb70
cmp ecx, 0xc
jb 0x1002eb6c
test cl, 1
je 0x1002eb7b
test al, al
js 0x1002eb7b
call fcn.10029440
mov esi, eax
test esi, esi
jne 0x1002eb9a
mov edi, dword [esp + 0x40]
lea eax, [esp + 0xc8]
xor edx, edx
cmp ecx, 0xd
mov dword [esp + 0x114], edx
cmova eax, edx
jmp 0x1002ec4b
xorps xmm0, xmm0
lea ecx, [esp + 0xf0]
movaps xmmword [esp + 0xf0], xmm0
movaps xmmword [esp + 0x100], xmm0
movq qword [esp + 0x110], xmm0
call fcn.10025b30
mov edi, dword [esp + 0x40]
mov eax, 1
mov ecx, dword [esp + 0x58]
movups xmm0, xmmword [edi]
movups xmmword [esp + 0xf0], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [esp + 0x100], xmm0
movq xmm0, qword [edi + 0x20]
movq qword [esp + 0x110], xmm0
mov word [edi + 0x1c], ax
lea eax, [esp + 0xf0]
push eax
mov eax, dword [esp + 0x4c]
mov dword [edi + 0x20], 0
mov dword [edi + 0x24], 0
mov eax, dword [eax + 0x1c]
shr eax, 2
not eax
and eax, 1
push eax
mov eax, dword [esp + 0x44]
push esi
mov edx, dword [ecx + eax*4]
mov ecx, dword [esp + 0x60]
call fcn.10026280
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x1002eaa7
mov eax, dword [esp + 0xf4]
mov ecx, dword [esp + 0x30]
mov edx, ecx
mov ecx, eax
push edi
call fcn.100294e0
add esp, 4
cmp dword [esp + 0x114], 0
je 0x1002ec8e
mov ax, word [edi + 0x1c]
mov ecx, 0xe7ff
and ax, cx
mov ecx, 0x200
or ax, cx
mov word [edi + 0x1c], ax
mov eax, dword [esp + 0xf4]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x114]
mov dword [edi + 0x24], eax
mov al, byte [esp + 0x5c]
mov byte [edi + 0x1e], al
mov eax, 0x1000
test word [edi + 0x1c], ax
je 0x1002eaa7
mov ecx, edi
call fcn.10025890
mov ecx, dword [esp + 0x10]
test eax, eax
jne 0x100331f9
mov esi, dword [esp + 0x24]
jmp case.default.0x1002cdc7
mov ecx, 0x1130f
jmp 0x1002ea9e
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
mov esi, dword [edx + edi*4 + 0x10]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov al, byte [esi]
test al, al
je 0x1002de1b
nop word [eax + eax]
push dword [esp + 0x5c]
mov dl, al
lea esi, [esi + 1]
mov ecx, edi
call fcn.1002cbc0
mov al, byte [esi]
add esp, 4
add edi, 0x28
test al, al
jne 0x1002ecf0
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
inc edi
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
jmp 0x1002cd53
mov edx, dword [esp + 0x14]
xor eax, eax
mov ecx, dword [esp + 0x28]
xorps xmm0, xmm0
mov dword [esp + 0x48], eax
mov dword [esp + 0x54], eax
mov eax, dword [edx + edi*4 + 4]
mov esi, dword [edx + edi*4 + 0x10]
movlpd qword [esp + 0x80], xmm0
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [edx + edi*4 + 8]
mov dword [esp + 0x3c], ecx
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*8]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x20]
movzx edx, byte [eax + 0x57]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x58], edx
mov eax, dword [eax + edi*4 + 0xc]
mov edi, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [esp + 0x24], eax
test esi, esi
je 0x1002edb1
mov al, byte [esi]
mov edi, ecx
nop dword [eax]
push dword [esp + 0x5c]
mov dl, al
mov ecx, edi
call fcn.1002cbc0
mov al, byte [esi + 1]
lea esi, [esi + 1]
add esp, 4
add edi, 0x28
test al, al
jne 0x1002ed90
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x38], ecx
nop
mov ecx, eax
call fcn.10029330
mov esi, eax
mov ecx, esi
call fcn.10029440
mov edi, eax
mov ecx, 0x4000
mov eax, dword [esp + 0x2c]
test word [eax + 0x1c], cx
je 0x1002ee0d
mov ecx, dword [esp + 0x38]
or ecx, dword [esp + 0x40]
je 0x1002ee04
mov ecx, eax
call fcn.100258f0
jmp 0x1002ee0d
mov eax, dword [eax + 0x10]
add dword [esp + 0x54], eax
sub edi, eax
mov eax, edi
cdq
add dword [esp + 0x38], eax
adc dword [esp + 0x40], edx
cmp esi, 0x7f
ja 0x1002ee24
mov edx, 1
jmp 0x1002ee3b
xor ecx, ecx
xor edx, edx
shrd esi, ecx, 7
inc edx
shr ecx, 7
mov eax, esi
or eax, ecx
je 0x1002ee3b
cmp edx, 9
jl 0x1002ee28
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x48]
sub eax, 0x28
add ecx, edx
mov dword [esp + 0x2c], eax
mov edx, dword [esp + 0x58]
mov dword [esp + 0x48], ecx
cmp eax, dword [esp + 0x3c]
jae 0x1002edd0
cmp ecx, 0x7e
jle 0x1002eead
mov eax, ecx
xor edi, edi
cdq
mov ecx, eax
nop word [eax + eax]
shrd ecx, edx, 7
inc edi
shr edx, 7
mov eax, ecx
or eax, edx
je 0x1002ee83
cmp edi, 9
jl 0x1002ee70
mov eax, dword [esp + 0x48]
add eax, edi
xor esi, esi
mov dword [esp + 0x48], eax
cdq
mov ecx, eax
shrd ecx, edx, 7
inc esi
shr edx, 7
mov eax, ecx
or eax, edx
je 0x1002eea5
cmp esi, 9
jl 0x1002ee92
mov ecx, dword [esp + 0x48]
cmp edi, esi
jge 0x1002eeb2
inc ecx
mov dword [esp + 0x48], ecx
mov eax, ecx
cdq
mov esi, eax
mov ecx, edx
mov eax, dword [esp + 0x10]
add esi, dword [esp + 0x38]
mov dword [esp + 0x2c], esi
adc ecx, dword [esp + 0x40]
mov eax, dword [eax + 0x58]
cdq
cmp ecx, edx
jg 0x100309ff
jl 0x1002eedf
cmp esi, eax
ja 0x100309ff
mov edx, esi
mov esi, dword [esp + 0x24]
push 0
mov ecx, esi
call fcn.10025760
add esp, 4
test eax, eax
jne 0x100331f5
mov ecx, dword [esp + 0x48]
mov edi, dword [esi + 4]
cmp ecx, 0x80
jae 0x1002ef11
mov byte [edi], cl
mov eax, 1
jmp 0x1002ef3d
test ecx, 0xffffc000
jne 0x1002ef30
mov eax, ecx
shr eax, 7
or al, 0x80
mov byte [edi], al
mov al, cl
and al, 0x7f
mov byte [edi + 1], al
mov eax, 2
jmp 0x1002ef3d
push 0
push ecx
mov ecx, edi
call fcn.1000f1a0
add esp, 8
movzx esi, al
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x58]
mov ecx, eax
call fcn.10029330
mov ecx, eax
mov dword [esp + 0x30], ecx
cmp ecx, 0x80
jae 0x1002ef67
mov byte [esi + edi], cl
mov eax, 1
jmp 0x1002ef9a
lea edx, [esi + edi]
test ecx, 0xffffc000
jne 0x1002ef89
mov eax, ecx
shr eax, 7
or al, 0x80
mov byte [edx], al
mov al, cl
and al, 0x7f
mov byte [edx + 1], al
mov eax, 2
jmp 0x1002ef9a
push 0
push ecx
mov ecx, edx
call fcn.1000f1a0
mov ecx, dword [esp + 0x38]
add esp, 8
mov edx, dword [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x4c]
movzx eax, al
add esi, eax
lea ecx, [ecx + edi]
call fcn.10029460
add dword [esp + 0x4c], eax
add esp, 4
mov eax, dword [esp + 0x3c]
add eax, 0x28
mov dword [esp + 0x3c], eax
cmp eax, dword [esp + 0x34]
jbe 0x1002ef44
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
mov dword [edx + 0x18], eax
mov eax, 0x10
mov word [edx + 0x1c], ax
mov eax, dword [esp + 0x54]
mov dword [edx + 0x20], 0
test eax, eax
je 0x1002effb
mov dword [edx + 0x10], eax
mov eax, 0x4010
mov word [edx + 0x1c], ax
mov byte [edx + 0x1e], 1
jmp 0x1002d136
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x48]
xorps xmm0, xmm0
movlpd qword [esp + 0x48], xmm0
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
call fcn.100235a0
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x48]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x4c]
mov dword [esi + 0x14], eax
jmp 0x1002eaab
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [eax + edi*4 + 0x10]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x2c], eax
test ecx, ecx
jne 0x1002f12e
cmp dword [esi + 0x94], ecx
jg 0x10032f0a
mov ecx, eax
call fcn.1000e380
mov ecx, dword [esi + 0x1ec]
xor edx, edx
add ecx, dword [esi + 0x1e8]
mov edi, eax
push ecx
mov ecx, esi
call fcn.10063180
add esp, 4
mov dword [esp + 0x1c], eax
mov ecx, esi
test eax, eax
jne 0x10032ffb
lea edx, [edi + 0x21]
call fcn.1000c010
mov esi, eax
test esi, esi
je 0x1002f11c
lea ecx, [edi + 1]
push ecx
push dword [esp + 0x30]
lea edx, [esi + 0x20]
push edx
mov dword [esi], edx
call fcn.100b0c50
mov ecx, dword [esp + 0x1c]
add esp, 0xc
cmp byte [ecx + 0x3e], 0
je 0x1002f0d5
mov byte [ecx + 0x3e], 0
mov byte [ecx + 0x45], 1
jmp 0x1002f0db
inc dword [ecx + 0x1e8]
mov eax, dword [ecx + 0x1e0]
mov edi, dword [esp + 0x18]
mov dword [esi + 0x18], eax
inc edi
mov eax, dword [ecx + 0x1f0]
mov dword [ecx + 0x1e0], esi
mov dword [esi + 8], eax
mov eax, dword [ecx + 0x1f4]
mov dword [esi + 0xc], eax
mov eax, dword [ecx + 0x1f8]
mov dword [esi + 0x10], eax
mov eax, dword [ecx + 0x1fc]
mov dword [esi + 0x14], eax
mov esi, dword [esp + 0x24]
jmp 0x1002cd4f
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
inc edi
mov esi, dword [esp + 0x24]
jmp 0x1002cd4f
mov esi, dword [esi + 0x1e0]
xor edi, edi
mov dword [esp + 0x34], esi
mov dword [esp + 0x3c], edi
push eax
test esi, esi
je 0x10032f56
push dword [esi]
call fcn.1000e5e0
add esp, 8
test eax, eax
je 0x1002f15f
mov esi, dword [esi + 0x18]
inc edi
mov eax, dword [esp + 0x2c]
jmp 0x1002f136
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x40]
cmp dword [ecx + 0x94], 0
jle 0x1002f179
cmp edx, 1
je 0x10032f32
cmp dword [esi + 0x18], 0
jne 0x1002f1d9
cmp byte [ecx + 0x45], 0
je 0x1002f1d9
mov dword [esp + 0x2c], 1
cmp edx, 1
jne 0x1002f1e1
mov ecx, dword [esp + 0x20]
call fcn.10028970
mov edi, eax
test edi, edi
jne 0x1003329b
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x20]
mov ecx, edi
mov byte [eax + 0x3e], 1
call fcn.100289e0
mov ecx, dword [esp + 0x10]
cmp eax, 5
je 0x10032f3a
mov byte [ecx + 0x45], 0
mov eax, dword [edi + 0x50]
mov edi, dword [esp + 0x40]
mov dword [esp + 0x1c], eax
jmp 0x1002f29b
mov dword [esp + 0x2c], 0
mov eax, dword [ecx + 0x1e8]
sub eax, edi
dec eax
mov dword [esp + 0x3c], eax
cmp edx, 2
jne 0x1002f22a
cmp dword [ecx + 0x14], 0
jle 0x1002f22a
xor edi, edi
mov esi, edi
nop dword [eax]
mov ecx, dword [ecx + 0x10]
mov edx, 4
mov ecx, dword [edi + ecx + 4]
call fcn.1001efb0
mov ecx, dword [esp + 0x10]
lea edi, [edi + 0x10]
inc esi
cmp esi, dword [ecx + 0x14]
jl 0x1002f200
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
cmp dword [ecx + 0x14], 0
mov dword [esp + 0x34], 0
jle 0x1002f27b
xor edi, edi
nop word [eax + eax]
mov ecx, dword [ecx + 0x10]
push eax
mov ecx, dword [edi + ecx + 4]
call fcn.1001f170
mov ecx, eax
add esp, 4
mov dword [esp + 0x1c], ecx
test ecx, ecx
mov ecx, dword [esp + 0x10]
jne 0x10032fe3
mov eax, dword [esp + 0x34]
add edi, 0x10
mov edx, dword [esp + 0x40]
inc eax
cmp eax, dword [ecx + 0x14]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x3c]
jl 0x1002f240
mov edi, dword [esp + 0x40]
cmp edi, 2
jne 0x1002f29b
test byte [ecx + 0x18], 2
je 0x1002f29b
call fcn.1002a990
call fcn.10040ef0
mov ecx, dword [esp + 0x10]
or dword [ecx + 0x18], edi
cmp dword [ecx + 0x1e0], esi
je 0x1002f2d6
nop dword [eax]
nop word [eax + eax]
mov edx, dword [ecx + 0x1e0]
mov eax, dword [edx + 0x18]
mov dword [ecx + 0x1e0], eax
call fcn.1000bde0
mov ecx, dword [esp + 0x10]
dec dword [ecx + 0x1e8]
cmp dword [ecx + 0x1e0], esi
jne 0x1002f2b0
cmp edi, 1
jne 0x1002f302
mov eax, dword [esi + 0x18]
mov edx, esi
mov dword [ecx + 0x1e0], eax
call fcn.1000bde0
cmp dword [esp + 0x2c], 0
mov ecx, dword [esp + 0x10]
jne 0x1002ecb7
dec dword [ecx + 0x1e8]
jmp 0x1002f331
cmp dword [esp + 0x2c], 0
mov eax, dword [esi + 8]
mov dword [ecx + 0x1f0], eax
mov eax, dword [esi + 0xc]
mov dword [ecx + 0x1f4], eax
mov eax, dword [esi + 0x10]
mov dword [ecx + 0x1f8], eax
mov eax, dword [esi + 0x14]
mov dword [ecx + 0x1fc], eax
jne 0x1002ecb7
push dword [esp + 0x3c]
mov edx, edi
call fcn.10063180
mov ecx, eax
add esp, 4
mov dword [esp + 0x1c], ecx
test ecx, ecx
mov ecx, dword [esp + 0x10]
jne 0x10032fe3
mov esi, dword [esp + 0x24]
jmp case.default.0x1002cdc7
mov eax, dword [esp + 0x14]
mov edx, dword [eax + edi*4 + 8]
test edx, edx
je 0x1002f373
test dword [ecx + 0x18], 0x2000000
jne 0x10032f81
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x10]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov esi, dword [eax + ecx*8 + 4]
mov dword [esp + 0x34], esi
test esi, esi
je 0x1002f4d1
mov ecx, esi
call fcn.1001e030
mov ecx, eax
mov dword [esp + 0x1c], ecx
cmp ecx, 5
je 0x10032f8c
test ecx, ecx
jne 0x10032ff3
mov eax, dword [esp + 0x14]
cmp dword [eax + edi*4 + 8], ecx
je 0x1002f499
mov edx, dword [esp + 0x20]
test byte [edx + 0x58], 0x80
je 0x1002f499
mov ecx, dword [esp + 0x10]
cmp byte [ecx + 0x3e], 0
je 0x1002f3e1
cmp dword [ecx + 0x90], 1
jle 0x1002f499
cmp dword [edx + 0x68], 0
jne 0x1002f3fc
mov eax, dword [ecx + 0x1e8]
inc dword [ecx + 0x1ec]
add eax, dword [ecx + 0x1ec]
mov dword [edx + 0x68], eax
mov eax, dword [edx + 0x68]
xor edx, edx
dec eax
push eax
call fcn.10063180
mov edx, eax
add esp, 4
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x1002f461
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x34]
mov esi, dword [esi + 4]
mov edi, dword [eax + 0x68]
call fcn.1001ba30
mov ecx, dword [esi]
mov edx, edi
call fcn.10018ce0
mov esi, dword [esp + 0x34]
mov dword [esp + 0x1c], eax
cmp byte [esi + 9], 0
je 0x1002f45d
add dword [esi + 0xc], 0xffffffff
jne 0x1002f45d
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x1002f459
push eax
call dword [0x103cb90c]
add esp, 4
mov byte [esi + 0xa], 0
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
mov eax, dword [ecx + 0x1f0]
mov dword [edx + 0x98], eax
mov eax, dword [ecx + 0x1f4]
mov dword [edx + 0x9c], eax
mov eax, dword [ecx + 0x1f8]
mov dword [edx + 0xa0], eax
mov eax, dword [ecx + 0x1fc]
mov dword [edx + 0xa4], eax
lea eax, [esp + 0xc4]
mov edx, 1
push eax
mov ecx, esi
call fcn.10023490
mov eax, dword [esp + 0x18]
add esp, 4
mov esi, dword [esp + 0xc4]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x10]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax + 4]
jmp 0x1002f4dc
xor esi, esi
xor eax, eax
mov dword [esp + 0xc4], esi
mov ecx, dword [esp + 0x14]
cmp byte [ecx + edi*4 + 3], 0
je 0x1002eaa7
cmp esi, dword [ecx + edi*4 + 0xc]
jne 0x1002f4fb
cmp eax, dword [ecx + edi*4 + 0x10]
je 0x1002eaa7
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
mov edx, dword [eax + 0x2c]
call fcn.1000bde0
mov ecx, dword [esp + 0x10]
mov edx, str.database_schema_has_changed
call fcn.1000c120
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x2c], eax
mov eax, dword [esp + 0x14]
mov edx, dword [eax + edi*4 + 4]
mov ecx, edx
mov edi, dword [esp + 0x10]
add ecx, ecx
mov eax, dword [edi + 0x10]
mov eax, dword [eax + ecx*8 + 0xc]
cmp dword [eax], esi
je 0x1002f542
mov ecx, edi
call fcn.10040eb0
mov ecx, dword [esp + 0x20]
mov edx, 0x11
mov esi, dword [esp + 0x24]
mov dword [esp + 0x1c], 0x11
or dword [ecx + 0x58], 0x20
mov ecx, edi
jmp 0x1002eab3
mov edx, dword [esp + 0x14]
lea eax, [esp + 0xd4]
mov ecx, dword [ecx + 0x10]
push eax
mov eax, dword [edx + edi*4 + 4]
mov edx, dword [edx + edi*4 + 0xc]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.10023490
mov eax, dword [esp + 0xd8]
add esp, 4
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
inc edi
cdq
mov dword [esi + 0x14], edx
mov edx, dword [esp + 0x14]
mov dword [esi + 0x10], eax
mov dword [esp + 0x18], edi
jmp 0x1002cd60
mov edx, dword [esp + 0x14]
mov eax, dword [edx + edi*4 + 4]
shl eax, 4
add eax, dword [ecx + 0x10]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x2c], eax
mov eax, dword [edx + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.10025bb0
mov dword [esi + 0x10], eax
mov ecx, 0xbe04
mov ax, word [esi + 0x1c]
and ax, cx
mov dword [esi + 0x14], edx
mov ecx, dword [esp + 0x2c]
or ax, 4
push dword [esi + 0x10]
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x18]
mov ecx, dword [ecx + 4]
mov edx, dword [eax + edi*4 + 8]
call fcn.10023500
mov edx, dword [esp + 0x18]
add esp, 4
mov dword [esp + 0x1c], eax
mov eax, dword [edx + edi*4 + 8]
cmp eax, 1
jne 0x1002f62d
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
mov eax, dword [esi + 0x10]
mov dword [ecx], eax
mov ecx, dword [esp + 0x10]
or dword [ecx + 0x18], 2
jmp 0x1002f643
cmp eax, 2
jne 0x1002f63f
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
mov al, byte [esi + 0x10]
mov byte [ecx + 0x4c], al
mov ecx, dword [esp + 0x10]
cmp dword [edx + edi*4 + 4], 1
jne 0x1002ecb7
call fcn.1002a990
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
and dword [edx + 0x58], 0xffffffdf
jmp case.default.0x1002cdc7
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
test eax, eax
je case.0x1002cdc7.53
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + 0x20]
cmp eax, dword [ecx + edi*4 + 8]
je 0x1002eaab
mov eax, dword [esp + 0x20]
test byte [eax + 0x58], 0x20
jne 0x10032fb4
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x38], 0
mov dword [esp + 0x2c], 0
mov ecx, dword [eax + edi*4 + 8]
mov eax, dword [eax + edi*4 + 0xc]
mov dword [esp + 0x54], eax
shl eax, 4
add eax, dword [esi + 0x10]
mov dword [esp + 0x3c], ecx
mov esi, dword [eax + 4]
mov dword [esp + 0x44], esi
cmp dl, 0x36
jne 0x1002f6ef
mov eax, dword [eax + 0xc]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x40], 1
mov al, byte [eax + 0x4c]
cmp al, byte [edx + 0x57]
jae 0x1002f6f7
mov byte [edx + 0x57], al
jmp 0x1002f6f7
mov dword [esp + 0x40], 0
mov edx, dword [esp + 0x14]
test byte [edx + edi*4 + 3], 2
je 0x1002f741
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x28]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.10025bb0
mov dword [esi + 0x10], eax
mov ecx, 0xbe04
mov ax, word [esi + 0x1c]
and ax, cx
mov dword [esi + 0x14], edx
or ax, 4
mov word [esi + 0x1c], ax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x3c], eax
cmp eax, 2
jl 0x10032fa4
mov edx, dword [esp + 0x14]
mov al, byte [edx + edi*4 + 1]
cmp al, 0xfa
jne 0x1002f761
mov eax, dword [edx + edi*4 + 0x10]
mov dword [esp + 0x2c], eax
movzx ecx, word [eax + 8]
movzx eax, word [eax + 6]
add ecx, eax
mov dword [esp + 0x38], ecx
jmp 0x1002f76d
cmp al, 0xf2
jne 0x1002f76d
mov eax, dword [edx + edi*4 + 0x10]
mov dword [esp + 0x38], eax
mov esi, dword [edx + edi*4 + 4]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x58], esi
mov eax, dword [edx + 0x1c]
sub eax, esi
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
lea eax, [eax + ecx*8]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x38]
lea eax, [eax*8 + 0x130]
mov dword [esp + 0x30], eax
mov eax, dword [edx + 0x38]
mov edx, dword [eax + esi*4]
test edx, edx
je 0x1002f7bb
mov ecx, dword [esp + 0x20]
call fcn.10027e40
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x38]
mov dword [eax + esi*4], 0
mov esi, dword [esp + 0x34]
mov ecx, esi
mov edx, dword [esp + 0x30]
push 0
call fcn.10025760
add esp, 4
test eax, eax
jne 0x100331f5
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x58]
mov esi, dword [esi + 4]
push 0x60
mov eax, dword [eax + 0x38]
push 0
push esi
mov dword [eax + ecx*4], esi
call fcn.100b11d0
mov eax, dword [esp + 0x60]
add esp, 0xc
mov ecx, dword [esp + 0x38]
mov byte [esi + 0x18], al
mov eax, dword [esp + 0x34]
mov word [esi + 0x14], cx
push 0x54
push 0
mov eax, dword [eax + 4]
lea eax, [eax + ecx*8]
add eax, 0x60
push eax
mov dword [esi], eax
call fcn.100b11d0
mov edx, dword [esp + 0x48]
add esp, 0xc
mov ecx, dword [esp + 0x44]
or dword [esi + 0x1c], 8
mov byte [esi + 0x19], 1
push dword [esi]
mov dword [esi + 0x20], edx
push dword [esp + 0x30]
push dword [esp + 0x48]
call fcn.1001f220
mov edx, dword [esp + 0x20]
add esp, 0xc
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x2c]
mov dword [esi + 8], eax
mov cl, byte [edx + edi*4 + 3]
mov eax, dword [esi]
and cl, 1
mov byte [eax + 0x52], cl
xor ecx, ecx
cmp byte [edx + edi*4 + 1], 0xfa
mov eax, 4
cmovne ecx, eax
mov eax, dword [esi + 0x1c]
and eax, 0xfffffffb
or ecx, eax
mov dword [esi + 0x1c], ecx
jmp 0x1002eaa7
mov eax, dword [esp + 0x14]
mov edx, dword [eax + edi*4 + 8]
mov esi, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x2c], esi
mov eax, dword [eax + 0x1c]
sub eax, esi
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 8]
lea eax, [eax + ecx*8]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x34], eax
lea eax, [edx*8 + 0x130]
mov dword [esp + 0x30], eax
mov eax, dword [ecx + 0x38]
mov edx, dword [eax + esi*4]
test edx, edx
je 0x1002f8d9
call fcn.10027e40
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x38]
mov dword [eax + esi*4], 0
mov esi, dword [esp + 0x34]
mov ecx, esi
mov edx, dword [esp + 0x30]
push 0
call fcn.10025760
add esp, 4
test eax, eax
jne 0x100331f5
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
mov esi, dword [esi + 4]
push 0x60
mov eax, dword [eax + 0x38]
push 0
push esi
mov dword [esp + 0x44], esi
mov dword [eax + ecx*4], esi
call fcn.100b11d0
mov eax, dword [esp + 0x40]
add esp, 0xc
mov ecx, dword [esp + 0x3c]
mov byte [esi + 0x18], 0xff
mov word [esi + 0x14], cx
mov eax, dword [eax + 4]
push 0x54
push 0
lea eax, [eax + ecx*8]
add eax, 0x60
push eax
mov dword [esi], eax
call fcn.100b11d0
mov eax, dword [esp + 0x20]
lea ecx, [esi + 4]
or dword [esi + 0x1c], 1
add esp, 0xc
mov byte [esi + 0x19], 1
xor edx, edx
mov dword [esp + 0x2c], ecx
movzx eax, byte [eax + edi*4 + 3]
push 0x41e
or eax, 5
push eax
mov eax, dword [esp + 0x18]
push ecx
push eax
mov ecx, dword [eax]
call fcn.1001d0c0
add esp, 0x10
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x1002fb6a
mov ecx, dword [esi + 4]
lea edx, [eax + 1]
call fcn.1001e030
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x1002fb6a
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + edi*4 + 0x10]
test eax, eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x2c]
je 0x1002fac9
movzx esi, byte [ecx + edi*4 + 3]
mov ecx, dword [eax]
or esi, 2
mov dword [esp + 0x30], ecx
call fcn.1001ba30
push esi
mov esi, dword [esp + 0x34]
lea edx, [esp + 0xdc]
mov ecx, esi
call fcn.10022e20
add esp, 4
mov ecx, eax
cmp byte [esi + 9], 0
mov dword [esp + 0x1c], ecx
je 0x1002fa04
add dword [esi + 0xc], 0xffffffff
jne 0x1002fa04
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x1002fa00
push eax
call dword [0x103cb90c]
mov ecx, dword [esp + 0x20]
add esp, 4
mov byte [esi + 0xa], 0
test ecx, ecx
jne 0x1002fabc
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x2c]
mov esi, dword [esi]
mov eax, dword [eax]
mov ecx, eax
mov dword [esp + 0x2c], eax
call fcn.1001ba30
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xd8]
mov edx, dword [eax + 4]
test byte [edx + 0x16], 1
je 0x1002fa48
mov dword [esp + 0x1c], 8
jmp 0x1002fa94
cmp ecx, 1
jne 0x1002fa5e
cmp dword [edx + 0x2c], 0
mov dword [esp + 0x30], 0
cmove ecx, dword [esp + 0x30]
mov dword [esi + 0x44], ecx
or ecx, 0xffffffff
mov word [esi + 0x54], cx
mov ecx, dword [esp + 0x34]
mov dword [esi + 0x10], ecx
mov dword [esi], eax
mov dword [esi + 4], edx
mov byte [esi + 0x50], 1
mov ecx, dword [edx + 8]
mov dword [esi + 8], ecx
test ecx, ecx
je 0x1002fa85
mov dword [ecx + 0xc], esi
mov dword [edx + 8], esi
mov byte [esi + 0x51], 0
mov dword [esp + 0x1c], 0
cmp byte [eax + 9], 0
je 0x1002fabc
add dword [eax + 0xc], 0xffffffff
jne 0x1002fabc
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x1002fab4
push eax
call dword [0x103cb90c]
add esp, 4
mov eax, dword [esp + 0x2c]
mov byte [eax + 0xa], 0
mov esi, dword [esp + 0x38]
and dword [esi + 0x1c], 0xfffffffb
jmp 0x1002fb6a
mov eax, dword [eax]
mov ecx, eax
mov esi, dword [esi]
mov dword [esp + 0x34], eax
call fcn.1001ba30
mov eax, dword [esp + 0x34]
mov edx, 1
mov ecx, dword [eax + 4]
test byte [ecx + 0x16], dl
je 0x1002faf3
mov dword [esp + 0x1c], 8
jmp 0x1002fb3a
cmp dword [ecx + 0x2c], 0
mov dword [esp + 0x30], 0
cmove edx, dword [esp + 0x30]
mov dword [esi + 0x44], edx
or edx, 0xffffffff
mov word [esi + 0x54], dx
mov dword [esi + 0x10], 0
mov dword [esi], eax
mov dword [esi + 4], ecx
mov byte [esi + 0x50], 1
mov edx, dword [ecx + 8]
mov dword [esi + 8], edx
test edx, edx
je 0x1002fb2b
mov dword [edx + 0xc], esi
mov dword [ecx + 8], esi
mov byte [esi + 0x51], 0
mov dword [esp + 0x1c], 0
cmp byte [eax + 9], 0
je 0x1002fb62
add dword [eax + 0xc], 0xffffffff
jne 0x1002fb62
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x1002fb5a
push eax
call dword [0x103cb90c]
add esp, 4
mov eax, dword [esp + 0x34]
mov byte [eax + 0xa], 0
mov esi, dword [esp + 0x38]
or dword [esi + 0x1c], 4
mov eax, dword [esp + 0x14]
xor ecx, ecx
cmp byte [eax + edi*4 + 3], 8
mov eax, 8
cmovne ecx, eax
mov eax, dword [esi + 0x1c]
and eax, 0xfffffff7
or ecx, eax
mov dword [esi + 0x1c], ecx
jmp 0x1002eaa7
mov eax, dword [esp + 0x14]
mov edx, dword [eax + edi*4 + 8]
mov esi, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x38], edx
mov dword [esp + 0x2c], esi
mov eax, dword [eax + 0x1c]
sub eax, esi
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 8]
lea eax, [eax + ecx*8]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x34], eax
lea eax, [edx*8 + 0x130]
mov dword [esp + 0x30], eax
mov eax, dword [ecx + 0x38]
mov edx, dword [eax + esi*4]
test edx, edx
je 0x1002fbe7
call fcn.10027e40
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x38]
mov dword [eax + esi*4], 0
mov esi, dword [esp + 0x34]
mov ecx, esi
mov edx, dword [esp + 0x30]
push 0
call fcn.10025760
add esp, 4
test eax, eax
jne 0x100331f5
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
mov esi, dword [esi + 4]
push 0x60
mov eax, dword [eax + 0x38]
push 0
push esi
mov dword [eax + ecx*4], esi
call fcn.100b11d0
mov eax, dword [esp + 0x40]
add esp, 0xc
mov ecx, dword [esp + 0x38]
mov byte [esi + 0x18], 0xff
mov word [esi + 0x14], cx
mov eax, dword [eax + 4]
push 0x54
push 0
lea eax, [eax + ecx*8]
add eax, 0x60
push eax
mov dword [esi], eax
call fcn.100b11d0
mov eax, dword [esp + 0x20]
add esp, 0xc
mov ecx, dword [esp + 0x10]
mov edx, esi
mov eax, dword [eax + edi*4 + 0x10]
mov dword [esi + 8], eax
call fcn.100346c0
jmp 0x1002eaa3
mov eax, dword [esp + 0x14]
mov edx, dword [eax + edi*4 + 0xc]
mov esi, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x38], edx
mov dword [esp + 0x2c], esi
mov eax, dword [eax + 0x1c]
sub eax, esi
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 8]
lea eax, [eax + ecx*8]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x34], eax
lea eax, [edx*8 + 0x60]
mov dword [esp + 0x30], eax
mov eax, dword [ecx + 0x38]
mov edx, dword [eax + esi*4]
test edx, edx
je 0x1002fcbe
call fcn.10027e40
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x38]
mov dword [eax + esi*4], 0
mov esi, dword [esp + 0x34]
mov ecx, esi
mov edx, dword [esp + 0x30]
push 0
call fcn.10025760
add esp, 4
test eax, eax
jne 0x100331f5
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
mov esi, dword [esi + 4]
push 0x60
mov eax, dword [eax + 0x38]
push 0
push esi
mov dword [eax + ecx*4], esi
call fcn.100b11d0
mov edx, dword [esp + 0x20]
add esp, 0xc
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x10]
mov word [esi + 0x18], 0x1ff
mov word [esi + 0x14], ax
mov eax, dword [edx + edi*4 + 8]
or dword [esi + 0x1c], 4
mov edi, dword [esp + 0x18]
mov dword [esi + 0x10], eax
inc edi
mov esi, dword [esp + 0x24]
jmp 0x1002cd53
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
mov edx, dword [ecx + 0x38]
mov eax, dword [eax + edi*4 + 4]
mov edx, dword [edx + eax*4]
call fcn.10027e40
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
mov edi, dword [esp + 0x18]
inc edi
mov dword [eax + ecx*4], 0
mov ecx, dword [esp + 0x10]
jmp 0x1002cd53
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov eax, dword [esp + 0x14]
test byte [esi + 0x1c], 4
movzx edx, byte [eax + edi*4]
mov dword [esp + 0x3c], edx
mov byte [esi + 0x19], 0
je 0x1002fe65
mov eax, dword [eax + edi*4 + 0xc]
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 0xc
lea eax, [ecx + eax*8]
mov dword [esp + 0x2c], eax
jne 0x1002fdb2
mov ecx, eax
call fcn.1002cb40
mov eax, dword [esp + 0x2c]
mov ecx, eax
call fcn.10025bb0
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x2c]
mov byte [esi + 0x1a], 0
mov dword [esp + 0x40], edx
movzx ecx, word [eax + 0x1c]
test cl, 4
jne 0x1002fe1b
test cl, 8
je 0x1002cdfa
mov ecx, dword [esp + 0x38]
call fcn.100d1650
mov eax, dword [esp + 0x2c]
movsd xmm1, qword [eax + 8]
comisd xmm0, xmm1
jbe 0x1002fe08
mov ecx, dword [esp + 0x3c]
test cl, 1
lea eax, [ecx - 1]
cmove eax, ecx
mov ecx, eax
mov dword [esp + 0x3c], ecx
jmp 0x1002fe1b
comisd xmm1, xmm0
jbe 0x1002fe1b
mov eax, dword [esp + 0x3c]
test al, 1
jne 0x1002fe1b
inc eax
mov dword [esp + 0x3c], eax
mov ecx, dword [esi]
lea eax, [esp + 0x6c]
push eax
push 0
push dword [esp + 0x48]
xor edx, edx
push dword [esp + 0x44]
call fcn.1001fc50
mov ecx, eax
add esp, 0x10
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x10032ff3
cmp dword [esp + 0x6c], eax
jne 0x1002fee5
mov eax, dword [esp + 0x38]
mov dword [esi + 0x38], eax
mov eax, dword [esp + 0x40]
mov byte [esi + 0x1a], 1
mov dword [esi + 0x3c], eax
jmp 0x1002fee5
mov ecx, dword [eax + edi*4 + 0x10]
test dl, 1
mov eax, dword [esi + 8]
mov dword [esp + 0x19c], eax
sete al
mov word [esp + 0x1a0], cx
mov ecx, dword [esp + 0x28]
lea eax, [eax*2 - 1]
mov byte [esp + 0x1a2], al
mov eax, dword [esp + 0x14]
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, 0x4000
mov dword [esp + 0x1a4], ecx
test word [ecx + 0x1c], ax
je 0x1002feb8
call fcn.100258f0
mov ecx, dword [esi]
lea eax, [esp + 0x6c]
push eax
push 0
push 0
push 0
lea edx, [esp + 0x1ac]
call fcn.1001fc50
mov ecx, eax
add esp, 0x10
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x10032ff3
mov byte [esi + 0x1a], al
mov eax, dword [esp + 0x3c]
mov byte [esi + 0x1b], 0
mov dword [esi + 0x44], 0
mov ecx, dword [esp + 0x6c]
cmp eax, 0x3e
jl 0x1002ff44
test ecx, ecx
js 0x1002ff2e
jne 0x1002ff08
cmp eax, 0x3f
je 0x1002ff2e
mov dword [esp + 0x6c], 0
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
inc ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
jmp 0x1002cd60
lea eax, [esp + 0x6c]
mov dword [esp + 0x6c], 0
push eax
push dword [esi]
call fcn.100200d0
jmp 0x1002ff74
test ecx, ecx
jg 0x1002ff60
jne 0x1002ff4f
cmp eax, 0x3c
je 0x1002ff60
mov eax, dword [esi]
xor ecx, ecx
cmp byte [eax + 0x51], 1
setne cl
mov dword [esp + 0x6c], ecx
jmp 0x1002ff89
lea eax, [esp + 0x6c]
mov dword [esp + 0x6c], 0
push eax
push dword [esi]
call fcn.10020240
mov ecx, eax
add esp, 8
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x10032ff3
mov byte [esi + 0x1a], 0
cmp dword [esp + 0x6c], 0
je 0x1002ff10
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x24]
mov ecx, dword [edx + edi*4 + 8]
dec ecx
inc ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
jmp 0x1002cd60
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x28]
mov byte [esi + 0x19], 0
mov eax, dword [edx + edi*4 + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.10025bb0
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], edx
mov word [esi + 0x1a], 0x100
jmp 0x1002d136
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x40], 0
cmp dword [edx + edi*4 + 0x10], 0
mov eax, dword [eax + 0x38]
mov ecx, dword [edx + edi*4 + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [edx + edi*4 + 0xc]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x38], esi
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [esp + 0x2c], ecx
jle 0x1003009e
mov eax, dword [esi + 8]
xor esi, esi
mov dword [esp + 0x124], eax
mov ax, word [edx + edi*4 + 0x10]
xor edx, edx
mov word [esp + 0x48], ax
mov word [esp + 0x128], ax
mov dword [esp + 0x12c], ecx
mov dword [esp + 0x34], edx
cmp si, ax
jae 0x10030095
mov di, ax
add ecx, esi
mov eax, 0x4000
test word [ecx + 0x1c], ax
je 0x1003007e
call fcn.100258f0
mov ecx, dword [esp + 0x12c]
mov di, word [esp + 0x128]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x2c], ecx
jmp 0x10030082
mov ecx, dword [esp + 0x2c]
inc edx
movzx eax, di
add esi, 0x28
mov dword [esp + 0x34], edx
cmp edx, eax
jl 0x10030053
mov edi, dword [esp + 0x44]
lea esi, [esp + 0x124]
jmp 0x100300de
mov ecx, dword [esi + 8]
lea eax, [esp + 0x40]
push eax
push 0xbf
lea edx, [esp + 0x280]
call fcn.10029780
mov esi, eax
add esp, 8
test esi, esi
je 0x100331f5
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x38]
push esi
push dword [edx + 4]
mov edx, dword [edx + 0x18]
mov ecx, dword [ecx + 8]
call fcn.100297f0
add esp, 8
mov eax, dword [esp + 0x14]
mov byte [esi + 6], 0
cmp byte [eax + edi*4], 0x41
jne 0x10030120
movzx edx, word [esp + 0x128]
xor ecx, ecx
test edx, edx
je 0x10030120
mov eax, dword [esp + 0x12c]
add eax, 0x1c
test byte [eax], 1
jne 0x10030113
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x10030104
jmp 0x10030120
mov eax, dword [esp + 0x14]
mov eax, dword [eax + edi*4 + 8]
dec eax
mov dword [esp + 0x18], eax
lea eax, [esp + 0xdc]
mov edx, esi
mov esi, dword [esp + 0x38]
push eax
push 0
push 0
mov ecx, dword [esi]
push 0
call fcn.1001fc50
mov edx, dword [esp + 0x24]
add esp, 0x10
mov ecx, eax
mov dword [esp + 0x1c], ecx
cmp dword [edx + edi*4 + 0x10], 0
jne 0x10030164
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x10]
call fcn.1000bde0
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
test ecx, ecx
jne 0x1002eaa7
mov eax, dword [esp + 0xdc]
test eax, eax
mov dword [esi + 0xc], eax
mov al, 1
sete cl
mov byte [esi + 0x1b], 0
sub al, cl
mov dword [esi + 0x44], 0
mov byte [esi + 0x19], al
cmp byte [edx + edi*4], 0x43
jne 0x100301b6
test ecx, ecx
je 0x1002ff14
mov ecx, dword [edx + edi*4 + 8]
mov esi, dword [esp + 0x24]
dec ecx
inc ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
jmp 0x1002cd60
test ecx, ecx
jne 0x1002ff14
mov ecx, dword [edx + edi*4 + 8]
mov esi, dword [esp + 0x24]
dec ecx
inc ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
jmp 0x1002cd60
mov ecx, dword [esp + 0x14]
xor edx, edx
mov dword [esp + 0x34], 0
mov eax, dword [ecx + edi*4 + 0xc]
mov ecx, dword [ecx + edi*4 + 4]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
lea eax, [esp + 0x34]
push eax
mov eax, dword [esp + 0x2c]
push 0
mov dword [esp + 0x38], ecx
mov ecx, dword [ecx]
push dword [eax + esi*8 + 0x14]
push dword [eax + esi*8 + 0x10]
call fcn.1001fc50
mov ecx, dword [esp + 0x40]
add esp, 0x10
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
mov eax, dword [edx + esi*8 + 0x10]
mov dword [ecx + 0x38], eax
mov eax, dword [edx + esi*8 + 0x14]
mov edx, dword [esp + 0x34]
test edx, edx
mov dword [ecx + 0x3c], eax
sete al
mov byte [ecx + 0x19], 0
mov byte [ecx + 0x1a], al
mov dword [ecx + 0x44], 0
mov byte [ecx + 0x1b], 0
test edx, edx
je 0x10030263
mov eax, dword [esp + 0x14]
mov eax, dword [eax + edi*4 + 8]
dec eax
mov dword [esp + 0x18], eax
mov dword [ecx + 0xc], edx
jmp 0x1002eaa7
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x28]
mov dword [esi + 0x10], eax
mov eax, dword [ecx + 0x2c]
mov dword [esi + 0x14], eax
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x10]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
inc edi
jmp 0x1002cd53
mov eax, dword [esp + 0x14]
xorps xmm0, xmm0
mov edx, dword [esp + 0x20]
movlpd qword [esp + 0x60], xmm0
mov dword [esp + 0x3c], 0
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [edx + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x48], eax
mov esi, dword [eax]
test esi, esi
je 0x100305aa
test byte [eax + 0x1c], 2
jne 0x100303fa
cmp byte [esi + 0x51], 1
jne 0x100302f4
test byte [esi + 0x50], 8
jne 0x10030357
mov ecx, esi
call fcn.1001f9f0
mov ecx, eax
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x10032ff3
cmp byte [esi + 0x51], al
jne 0x10030328
mov edx, dword [esp + 0x20]
lea esi, [eax + 1]
mov dword [esp + 0x3c], 1
xor edi, edi
mov dword [esp + 0x1c], ecx
jmp 0x10030402
mov ecx, esi
mov dword [esp + 0x3c], 0
call fcn.1001fbc0
mov ecx, eax
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x10030347
or byte [esi + 0x50], 8
jmp 0x10030353
and byte [esi + 0x50], 0xf7
test ecx, ecx
jne 0x10032ff3
mov eax, dword [esp + 0x48]
mov edx, dword [eax]
mov dword [esp + 0x30], edx
cmp byte [edx + 0x51], 1
je 0x10030388
xorps xmm0, xmm0
mov dword [esp + 0x1c], 0
movlpd qword [esp + 0x60], xmm0
mov edi, dword [esp + 0x64]
mov esi, dword [esp + 0x60]
mov edx, dword [esp + 0x20]
add esi, 1
adc edi, 0
jmp 0x10030402
cmp word [edx + 0x32], 0
jne 0x100303d3
movsx eax, word [edx + 0x54]
mov edi, dword [edx + eax*4 + 0x80]
movzx esi, word [edx + eax*2 + 0x56]
lea eax, [edx + 0x18]
push eax
mov ecx, dword [edi + 0x40]
movzx eax, byte [ecx + esi*2]
movzx edx, byte [ecx + esi*2 + 1]
mov ecx, edi
shl eax, 8
or edx, eax
movzx eax, word [edi + 0x12]
and edx, eax
add edx, dword [edi + 0x38]
call fcn.1001c350
mov edx, dword [esp + 0x34]
add esp, 4
mov eax, dword [esp + 0x48]
or byte [edx + 0x50], 2
mov edi, dword [edx + 0x1c]
mov esi, dword [edx + 0x18]
mov dword [esp + 0x1c], 0
cmp edi, 0x7fffffff
jl 0x1003037c
jg 0x100303f0
cmp esi, 0xffffffff
jb 0x1003037c
or dword [eax + 0x1c], 2
mov edx, dword [esp + 0x20]
jmp 0x10030402
mov edi, dword [esp + 0x64]
mov esi, dword [esp + 0x60]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + eax*4 + 0xc]
test ecx, ecx
je 0x100304ae
mov edx, dword [edx + 0xb0]
test edx, edx
je 0x1003043b
mov eax, dword [edx + 4]
test eax, eax
je 0x10030430
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x10030427
mov eax, dword [edx + 0xc]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*8]
jmp 0x10030445
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x28]
lea ecx, [ecx + eax*8]
mov dword [esp + 0x2c], ecx
call fcn.10025bb0
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 0x10], eax
mov ax, word [ecx + 0x1c]
mov dword [ecx + 0x14], edx
mov edx, 0xbe04
and ax, dx
mov edx, dword [ecx + 0x10]
or ax, 4
mov word [ecx + 0x1c], ax
mov eax, dword [ecx + 0x14]
cmp edx, 0xffffffff
jne 0x10030482
cmp eax, 0x7fffffff
je 0x10032fc6
mov ecx, dword [esp + 0x48]
test byte [ecx + 0x1c], 2
mov ecx, dword [esp + 0x2c]
jne 0x10032fc6
add edx, 1
adc eax, 0
cmp edi, eax
jg 0x100304a8
jl 0x100304a4
cmp esi, edx
jae 0x100304a8
mov esi, edx
mov edi, eax
mov dword [ecx + 0x10], esi
mov dword [ecx + 0x14], edi
mov eax, dword [esp + 0x48]
test byte [eax + 0x1c], 2
je 0x1003058c
mov edi, dword [esp + 0x74]
mov esi, dword [esp + 0x70]
and edi, 0x3fffffff
add esi, 1
mov dword [esp + 0x60], esi
adc edi, 0
xor eax, eax
mov dword [esp + 0x2c], eax
xor edx, edx
lea eax, [esp + 0x3c]
mov dword [esp + 0x64], edi
push eax
mov eax, dword [esp + 0x4c]
push 0
push edi
push esi
mov ecx, dword [eax]
call fcn.1001fc50
mov edx, eax
add esp, 0x10
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x10030588
mov ecx, dword [esp + 0x3c]
test ecx, ecx
jne 0x1003057c
mov eax, dword [esp + 0x2c]
inc eax
mov dword [esp + 0x2c], eax
cmp eax, 0x64
jge 0x1003057c
lea eax, [esp + 0x60]
push eax
push 8
call fcn.1000dbf0
mov esi, dword [esp + 0x68]
add esp, 8
cmp dword [esp + 0x2c], 5
jge 0x1003053f
and esi, 0xffffff
xor edi, edi
jmp 0x10030549
mov edi, dword [esp + 0x64]
and edi, 0x3fffffff
add esi, 1
lea eax, [esp + 0x3c]
push eax
mov eax, dword [esp + 0x4c]
adc edi, 0
push 0
push edi
push esi
mov ecx, dword [eax]
xor edx, edx
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], edi
call fcn.1001fc50
mov edx, eax
add esp, 0x10
mov dword [esp + 0x1c], edx
test edx, edx
je 0x10030505
jmp 0x10030588
test edx, edx
jne 0x10030588
test ecx, ecx
je 0x10032fc6
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x24]
mov word [eax + 0x1a], 0
mov dword [eax + 0x44], 0
mov dword [ecx + 0x10], esi
mov esi, ecx
mov dword [esi + 0x14], edi
jmp 0x1002eaab
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x64]
mov dword [ecx + 0x10], esi
mov esi, ecx
mov dword [esi + 0x14], edi
jmp 0x1002eaab
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + edi*4 + 8]
mov ecx, dword [ecx + edi*4 + 4]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x2c], eax
cmp dl, 0x49
jne 0x1003060e
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 0xc]
mov edi, dword [esp + 0x28]
lea eax, [eax + eax*4]
mov ecx, dword [ecx + eax*8 + 0x10]
mov eax, dword [edi + eax*8 + 0x14]
mov edi, dword [esp + 0x44]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], eax
jmp 0x10030627
mov eax, dword [esp + 0x14]
mov eax, dword [eax + edi*4 + 0xc]
cdq
mov ecx, eax
mov dword [esp + 0x34], eax
mov eax, edx
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x14]
test byte [edx + edi*4 + 3], 1
je 0x10030639
mov eax, dword [esp + 0x20]
inc dword [eax + 0x5c]
mov eax, dword [esp + 0x38]
test byte [edx + edi*4 + 3], 2
je 0x10030656
mov edx, dword [esp + 0x10]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
mov dword [edx + 0x20], ecx
mov dword [edx + 0x24], eax
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
movzx eax, word [ecx + esi*8 + 0x1c]
test al, 1
je 0x10030673
mov dword [ecx + esi*8 + 4], 0
mov dword [ecx + esi*8 + 0x18], 0
mov cl, byte [edx + edi*4 + 3]
mov byte [esp + 0x48], cl
test cl, 0x10
je 0x10030689
mov edx, dword [esp + 0x2c]
mov edx, dword [edx + 0xc]
jmp 0x1003068b
xor edx, edx
test eax, 0x4000
je 0x1003069c
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + esi*8 + 0x10]
jmp 0x1003069e
xor ecx, ecx
movzx eax, byte [esp + 0x48]
push edx
shr eax, 3
xor edx, edx
and eax, 1
push eax
mov eax, dword [esp + 0x30]
push ecx
push dword [eax + esi*8 + 0x18]
push dword [eax + esi*8 + 4]
mov eax, dword [esp + 0x40]
push dword [esp + 0x4c]
mov esi, dword [esp + 0x4c]
push esi
mov ecx, dword [eax]
call fcn.10022970
mov ecx, dword [esp + 0x48]
mov edx, eax
add esp, 0x1c
mov dword [esp + 0x1c], eax
mov word [ecx + 0x1a], 0
mov dword [ecx + 0x44], 0
test edx, edx
jne 0x10032dfc
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0xc8]
test edx, edx
je 0x10032e09
mov eax, dword [esp + 0x14]
mov eax, dword [eax + edi*4 + 0x10]
test eax, eax
je 0x1002eaa7
push dword [esp + 0x38]
movsx ecx, byte [ecx + 0x18]
push esi
mov esi, dword [esp + 0x18]
add ecx, ecx
push eax
mov eax, dword [esi + 0x10]
push dword [eax + ecx*8]
mov eax, dword [esp + 0x24]
mov ecx, 0x17
test byte [eax + edi*4 + 3], 4
mov eax, 0x12
cmovne eax, ecx
push eax
push dword [esi + 0xc4]
call edx
add esp, 0x18
jmp 0x1002eaa7
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, esi
mov eax, dword [esi + 0x38]
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0x3c]
mov dword [esp + 0x30], eax
call fcn.10029260
mov ecx, eax
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x10032ff3
mov ecx, dword [esi]
call fcn.10022bc0
mov ecx, eax
mov dword [esi + 0x44], 0
mov dword [esp + 0x1c], ecx
test ecx, ecx
mov ecx, dword [esp + 0x10]
jne 0x100307e4
mov edx, dword [ecx + 0xc8]
test edx, edx
je 0x100307e4
mov eax, dword [esp + 0x14]
mov eax, dword [eax + edi*4 + 0x10]
test eax, eax
je 0x100307e4
test byte [esi + 0x1c], 4
je 0x100307e4
push dword [esp + 0x30]
movsx ecx, byte [esi + 0x18]
push dword [esp + 0x38]
mov esi, dword [esp + 0x18]
add ecx, ecx
push eax
mov eax, dword [esi + 0x10]
push dword [eax + ecx*8]
push 9
push dword [esi + 0xc4]
call edx
add esp, 0x18
mov ecx, esi
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x24]
test byte [eax + edi*4 + 8], 1
je case.default.0x1002cdc7
mov edx, dword [esp + 0x20]
inc dword [edx + 0x5c]
jmp case.default.0x1002cdc7
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
mov eax, dword [edx + 0x5c]
add dword [ecx + 0x54], eax
inc edi
mov dword [ecx + 0x50], eax
mov dword [edx + 0x5c], 0
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], edi
jmp 0x1002cd60
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + edi*4 + 0xc]
mov edx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
lea eax, [esp + 0xe8]
push eax
mov eax, dword [esp + 0x18]
push dword [eax + edi*4 + 0x10]
call fcn.10035440
add esp, 8
mov dword [esp + 0x1c], eax
cmp dword [esp + 0xe8], 0
mov edx, eax
je 0x1003087e
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + edi*4 + 8]
dec ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
jmp 0x1002eab3
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
mov eax, dword [ecx + edi*4 + 8]
mov ecx, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x40]
mov eax, dword [ecx + 0x28]
test eax, eax
je 0x100308c9
mov eax, dword [eax + 4]
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [ecx + 0x24]
mov esi, dword [eax + 0x14]
add eax, 0x20
jmp 0x100308cf
mov eax, dword [ecx + 0x30]
mov esi, dword [eax + 4]
mov ecx, dword [esp + 0x24]
mov edx, esi
mov edi, dword [eax]
push 0
call fcn.10025760
add esp, 4
test eax, eax
jne 0x10032fd1
mov ecx, dword [esp + 0x24]
mov edx, 0xbe10
push esi
push edi
mov ax, word [ecx + 0x1c]
mov dword [ecx + 0x18], esi
and ax, dx
mov esi, ecx
or ax, 0x10
mov word [ecx + 0x1c], ax
push dword [esi + 4]
call fcn.100b0c50
mov edi, dword [esp + 0x24]
add esp, 0xc
mov ecx, dword [esp + 0x10]
inc edi
mov dword [esp + 0x1c], 0
jmp 0x1002cd4f
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
mov eax, dword [ecx + edi*4 + 8]
mov ecx, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, esi
mov dword [esp + 0x30], esi
mov edi, dword [esi]
mov dword [esp + 0x38], edi
call fcn.10029260
mov ecx, eax
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x10032ff3
test byte [esi + 0x1c], 4
jne 0x10030a23
cmp byte [edi + 0x51], 1
je 0x10030998
xorps xmm0, xmm0
movlpd qword [esp + 0x80], xmm0
mov ecx, dword [esp + 0x84]
mov esi, dword [esp + 0x80]
jmp 0x100309e9
cmp word [edi + 0x32], 0
jne 0x100309e3
movsx eax, word [edi + 0x54]
movzx esi, word [edi + eax*2 + 0x56]
mov edi, dword [edi + eax*4 + 0x80]
mov eax, dword [esp + 0x38]
add eax, 0x18
push eax
mov ecx, dword [edi + 0x40]
movzx edx, byte [ecx + esi*2]
movzx eax, byte [ecx + esi*2 + 1]
mov ecx, edi
shl edx, 8
or edx, eax
movzx eax, word [edi + 0x12]
and edx, eax
add edx, dword [edi + 0x38]
call fcn.1001c350
mov edi, dword [esp + 0x3c]
add esp, 4
or byte [edi + 0x50], 2
mov esi, dword [edi + 0x18]
mov ecx, dword [edi + 0x1c]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x58]
cdq
cmp ecx, edx
jg 0x100309ff
jl 0x10030a7a
cmp esi, eax
jbe 0x10030a7a
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
push str.string_or_blob_too_big
push ecx
add eax, 0x2c
push eax
call fcn.1000c1b0
mov dword [esp + 0x28], 0x12
jmp 0x10033218
cmp word [edi + 0x32], 0
jne 0x10030a6e
movsx eax, word [edi + 0x54]
movzx esi, word [edi + eax*2 + 0x56]
mov edi, dword [edi + eax*4 + 0x80]
mov eax, dword [esp + 0x38]
add eax, 0x18
push eax
mov ecx, dword [edi + 0x40]
movzx edx, byte [ecx + esi*2]
movzx eax, byte [ecx + esi*2 + 1]
mov ecx, edi
shl edx, 8
or edx, eax
movzx eax, word [edi + 0x12]
and edx, eax
add edx, dword [edi + 0x38]
call fcn.1001c350
mov edi, dword [esp + 0x3c]
add esp, 4
or byte [edi + 0x50], 2
mov ecx, dword [esp + 0x10]
mov esi, dword [edi + 0x24]
cmp esi, dword [ecx + 0x58]
ja 0x10030a03
mov ecx, dword [esp + 0x24]
mov edx, esi
push 0
call fcn.10025760
add esp, 4
test eax, eax
jne 0x100331f5
mov edx, dword [esp + 0x24]
mov ecx, 0xbe10
mov ax, word [edx + 0x1c]
and ax, cx
mov dword [edx + 0x18], esi
or ax, 0x10
mov word [edx + 0x1c], ax
mov eax, dword [esp + 0x30]
test byte [eax + 0x1c], 4
jne 0x10030abe
push 0
push dword [edx + 4]
jmp 0x10030af8
mov eax, dword [edx + 4]
mov dword [esp + 0x30], eax
mov al, byte [edi + 0x51]
test al, al
jne 0x10030add
mov dword [esp + 0x1c], 4
mov byte [edx + 0x1e], 1
jmp 0x1002eaa7
cmp al, 3
jb 0x10030af2
mov ecx, edi
call fcn.1001c090
mov ecx, eax
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x10030b09
push 0
push dword [esp + 0x34]
push esi
xor edx, edx
mov ecx, edi
call fcn.1001f560
mov dword [esp + 0x28], eax
add esp, 0xc
mov edx, dword [esp + 0x24]
mov byte [edx + 0x1e], 1
jmp 0x1002eaa7
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + edi*4 + 4]
mov edi, dword [esp + 0x20]
mov eax, dword [edi + 0x38]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 0x19], 0
je 0x10030b49
mov esi, dword [esp + 0x24]
mov eax, 1
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
inc edi
mov word [esi + 0x1c], ax
jmp 0x1002cd53
cmp byte [esi + 0x1b], 0
je 0x10030b68
mov eax, dword [esi + 0x30]
mov dword [esp + 0xa0], eax
mov eax, dword [esi + 0x34]
mov dword [esp + 0xa4], eax
jmp 0x10030cb5
mov ecx, dword [esi + 0x24]
test ecx, ecx
je 0x10030c05
mov edi, dword [ecx]
lea edx, [esp + 0xa0]
push edx
push ecx
mov dword [esp + 0x3c], edi
mov eax, dword [edi]
mov eax, dword [eax + 0x30]
call eax
mov dword [esp + 0x24], eax
add esp, 8
mov eax, dword [esp + 0x20]
mov esi, dword [eax]
mov ecx, esi
mov edx, dword [eax + 0x2c]
call fcn.1000bde0
mov ecx, dword [edi + 8]
mov dword [esp + 0x30], ecx
test ecx, ecx
jne 0x10030baf
xor esi, esi
jmp 0x10030be7
cmp byte [ecx], 0
mov eax, ecx
je 0x10030bbc
inc eax
cmp byte [eax], 0
jne 0x10030bb6
sub eax, ecx
mov ecx, esi
and eax, 0x3fffffff
lea edi, [eax + 1]
mov edx, edi
call fcn.1000c010
mov esi, eax
test esi, esi
je 0x10030be3
push edi
push dword [esp + 0x34]
push esi
call fcn.100b0c50
add esp, 0xc
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x20]
mov dword [eax + 0x2c], esi
push dword [edi + 8]
call fcn.1000bd40
add esp, 4
mov dword [edi + 8], 0
jmp 0x10030cb5
mov ecx, esi
call fcn.10029260
mov ecx, eax
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x10032fe9
cmp byte [esi + 0x1a], al
je 0x10030c38
mov eax, dword [esi + 0x38]
mov dword [esp + 0xa0], eax
mov eax, dword [esi + 0x3c]
mov dword [esp + 0xa4], eax
jmp 0x10030cb5
mov edx, dword [esi]
mov dword [esp + 0x30], edx
cmp byte [edx + 0x51], 1
je 0x10030c52
xorps xmm0, xmm0
movlpd qword [esp + 0xa0], xmm0
jmp 0x10030cad
cmp word [edx + 0x32], 0
jne 0x10030c99
movsx eax, word [edx + 0x54]
mov edi, dword [edx + eax*4 + 0x80]
movzx esi, word [edx + eax*2 + 0x56]
lea eax, [edx + 0x18]
push eax
mov ecx, dword [edi + 0x40]
movzx edx, byte [ecx + esi*2]
movzx eax, byte [ecx + esi*2 + 1]
mov ecx, edi
shl edx, 8
or edx, eax
movzx eax, word [edi + 0x12]
and edx, eax
add edx, dword [edi + 0x38]
call fcn.1001c350
mov edx, dword [esp + 0x34]
add esp, 4
or byte [edx + 0x50], 2
mov eax, dword [edx + 0x18]
mov dword [esp + 0xa0], eax
mov eax, dword [edx + 0x1c]
mov dword [esp + 0xa4], eax
mov dword [esp + 0x1c], 0
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0xa0]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0xa4]
mov dword [esi + 0x14], eax
jmp 0x1002eaab
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
mov word [eax + 0x19], 1
mov dword [eax + 0x44], 0
test ecx, ecx
je 0x1002d97a
call fcn.1001bf20
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
inc edi
mov ecx, dword [esp + 0x10]
jmp 0x1002cd53
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
xor eax, eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x38], eax
mov esi, dword [ecx]
cmp byte [esi + 0x51], 1
jne 0x10030d44
test byte [esi + 0x50], 8
je 0x10030d44
xor edx, edx
mov dword [esp + 0x1c], edx
jmp 0x10030d92
mov ecx, esi
call fcn.1001f9f0
mov ecx, eax
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x10030d86
cmp byte [esi + 0x51], al
jne 0x10030d5f
lea eax, [ecx + 1]
jmp 0x10030d8a
mov ecx, esi
mov dword [esp + 0x38], 0
call fcn.1001fbc0
mov dword [esp + 0x1c], eax
test eax, eax
mov eax, dword [esp + 0x38]
jne 0x10030d80
or byte [esi + 0x50], 8
jmp 0x10030d8a
and byte [esi + 0x50], 0xf7
jmp 0x10030d8a
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x1c]
mov byte [ecx + 0x19], al
mov word [ecx + 0x1a], 0
mov dword [ecx + 0x44], 0
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + edi*4 + 8]
test ecx, ecx
jle 0x10032dfc
mov esi, dword [esp + 0x24]
test eax, eax
je 0x1003087e
dec ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
jmp 0x1002eab3
mov eax, dword [esp + 0x20]
inc dword [eax + 0x74]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov eax, 1
mov dword [esp + 0x34], eax
mov dword [esp + 0x58], eax
cmp dword [esi + 0x40], 0
je 0x10030e15
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x58]
push eax
mov edx, esi
call fcn.10034e40
mov dword [esp + 0x20], eax
add esp, 4
mov eax, dword [esp + 0x58]
jmp 0x10030e5c
mov eax, dword [esi]
mov ecx, eax
mov dword [esp + 0x30], eax
call fcn.1001f9f0
mov ecx, eax
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x10030e4b
mov ecx, dword [esp + 0x30]
cmp byte [ecx + 0x51], al
jne 0x10030e3c
mov eax, 1
jmp 0x10030e4f
xor eax, eax
call fcn.1001fb40
mov dword [esp + 0x1c], eax
xor eax, eax
jmp 0x10030e4f
mov eax, dword [esp + 0x34]
mov word [esi + 0x1a], 0
mov dword [esi + 0x44], 0
mov edx, dword [esp + 0x1c]
mov byte [esi + 0x19], al
mov esi, dword [esp + 0x24]
test eax, eax
je 0x1003087e
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + edi*4 + 8]
dec ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
jmp 0x1002eab3
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
lea eax, [esp + 0x9c]
mov ecx, dword [esp + 0x10]
mov edx, esi
push eax
mov dword [esp + 0xa0], 0
call fcn.10035200
add esp, 4
jmp 0x10030f05
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
cmp dword [eax + ecx*4], 0
je 0x1002eaab
jmp 0x10030ed9
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov eax, dword [edx + edi*4 + 0xc]
mov dword [esp + 0x9c], eax
lea eax, [esp + 0x9c]
push eax
push dword [esi]
mov eax, dword [edx + edi*4 + 0x10]
call eax
add esp, 8
mov dword [esp + 0x1c], eax
mov dword [esi + 0x44], 0
cmp dword [esp + 0x9c], 0
jne 0x10030f41
mov ecx, dword [esp + 0x14]
mov byte [esi + 0x19], 0
mov eax, dword [ecx + edi*4 + 8]
dec eax
mov dword [esp + 0x18], eax
movzx eax, byte [ecx + edi*4 + 3]
mov ecx, dword [esp + 0x20]
inc dword [ecx + eax*4 + 0x6c]
mov byte [esi + 0x1a], 0
jmp 0x100329dc
mov byte [esi + 0x19], 1
mov byte [esi + 0x1a], 0
jmp 0x100329dc
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x28]
test byte [edx + edi*4 + 3], 1
mov eax, dword [eax + 0x38]
mov ecx, dword [edx + edi*4 + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + edi*4 + 8]
mov dword [esp + 0x34], ecx
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, dword [ecx]
mov dword [esp + 0x30], eax
je 0x10030f86
mov eax, dword [esp + 0x20]
inc dword [eax + 0x5c]
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x10030fae
mov ecx, esi
call fcn.100258f0
mov ecx, eax
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x1002eaa7
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x14]
cmp dword [ecx + 0x40], 0
je 0x10030fc8
mov edx, ecx
mov ecx, dword [esp + 0x10]
push esi
call fcn.10034ce0
add esp, 4
jmp 0x1002eaa3
test byte [edx + edi*4 + 3], 0x10
je 0x10030fd4
mov eax, dword [ecx + 0xc]
jmp 0x10030fd6
xor eax, eax
mov ecx, dword [esp + 0x30]
push eax
push dword [edx + edi*4 + 0xc]
mov eax, dword [esi + 0x18]
push 0
push 0
cdq
push 0x103b49b4
push edx
mov edx, dword [esi + 4]
push eax
call fcn.10022970
mov dword [esp + 0x38], eax
add esp, 0x1c
mov eax, dword [esp + 0x34]
mov dword [eax + 0x44], 0
jmp 0x1002eaa7
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 8]
mov ecx, dword [esi]
mov dword [esp + 0x1b0], eax
mov ax, word [edx + edi*4 + 0xc]
mov word [esp + 0x1b4], ax
mov eax, dword [edx + edi*4 + 8]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x30], ecx
mov byte [esp + 0x1b6], 0
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x1b8], eax
lea edx, [esp + 0x1b0]
lea eax, [esp + 0xec]
push eax
push 0
push 0
push 0
call fcn.1001fc50
mov ecx, eax
add esp, 0x10
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x10031096
cmp dword [esp + 0xec], eax
jne 0x10031096
mov ecx, dword [esp + 0x30]
call fcn.10022bc0
mov dword [esp + 0x1c], eax
mov dword [esi + 0x44], 0
jmp 0x1002eaa7
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov eax, 1
mov ecx, dword [esp + 0x24]
mov edi, dword [esi]
mov word [ecx + 0x1c], ax
mov ecx, esi
call fcn.10029260
mov ecx, eax
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x10032ff3
cmp byte [esi + 0x19], al
jne 0x1003113f
lea eax, [esp + 0xb8]
xorps xmm0, xmm0
push eax
mov edx, edi
movlpd qword [esp + 0xbc], xmm0
call fcn.1002a660
mov ecx, eax
add esp, 4
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x10032ff3
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0xb8]
inc dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0xbc]
mov dword [esi + 0x14], eax
mov eax, 4
mov word [esi + 0x1c], ax
jmp 0x1002cd60
mov esi, dword [esp + 0x24]
inc dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
jmp 0x1002cd60
mov eax, dword [esp + 0x14]
cmp dl, 0x71
mov edx, dword [esp + 0x28]
mov dword [esp + 0x2c], 0
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 8]
mov dword [esp + 0x1c4], eax
mov eax, dword [esp + 0x14]
mov ax, word [eax + edi*4 + 0x10]
mov word [esp + 0x1c8], ax
sbb al, al
mov byte [esp + 0x1ca], al
mov eax, dword [esp + 0x14]
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x1cc], eax
lea edx, [esp + 0x1c4]
lea eax, [esp + 0x2c]
push eax
call fcn.1002a820
mov ecx, dword [esp + 0x18]
add esp, 4
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x2c]
test byte [ecx + edi*4], 1
je 0x100311dc
neg eax
jmp 0x100311dd
inc eax
mov edx, dword [esp + 0x1c]
test eax, eax
jle 0x1003087e
mov ecx, dword [ecx + edi*4 + 8]
dec ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
jmp 0x1002eab3
mov eax, dword [ecx + 4]
xor edx, edx
test eax, eax
je 0x1003122e
cmp dword [eax + 0x28], 0xbdf20da3
jne 0x10031227
mov ecx, dword [eax + 0x58]
test ecx, 0x200
je 0x10031227
and cl, 0xc
cmp cl, 8
jae 0x10031227
cmp dword [eax + 0x4c], 0
jl 0x10031227
inc edx
mov eax, dword [eax + 0x34]
test eax, eax
jne 0x10031204
mov eax, 1
mov word [esi + 0x1c], ax
cmp edx, eax
jg 0x1003303d
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x54], 0
mov eax, dword [ecx + edi*4 + 0xc]
mov esi, dword [ecx + edi*4 + 4]
mov ecx, eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x10]
shl ecx, 4
mov dword [esp + 0x34], ecx
mov eax, dword [eax + 0x10]
mov ecx, dword [ecx + eax + 4]
mov dword [esp + 0x30], ecx
call fcn.1001ba30
lea eax, [esp + 0x54]
mov edx, esi
mov esi, dword [esp + 0x30]
mov ecx, esi
push eax
call fcn.10023290
add esp, 4
mov dword [esp + 0x1c], eax
cmp byte [esi + 9], 0
je 0x100312b1
add dword [esi + 0xc], 0xffffffff
jne 0x100312b1
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x100312ad
push eax
call dword [0x103cb90c]
add esp, 4
mov byte [esi + 0xa], 0
cmp dword [esp + 0x1c], 0
mov eax, 4
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x54]
mov word [ecx + 0x1c], ax
mov eax, esi
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jne 0x1002eaa7
test esi, esi
je 0x1002eaa7
mov eax, dword [esp + 0x14]
mov edx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x10]
add edi, dword [esp + 0x34]
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x10031311
nop dword [eax + eax]
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x20], esi
jne 0x1003130b
mov dword [ecx + 0x20], edx
mov eax, dword [eax]
test eax, eax
jne 0x10031300
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x10031331
nop dword [eax + eax]
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x2c], esi
jne 0x1003132b
mov dword [ecx + 0x2c], edx
mov eax, dword [eax]
test eax, eax
jne 0x10031320
mov al, byte [esp + 0x2c]
inc al
mov byte [esp + 0x6b], al
jmp 0x1002eaa7
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x44]
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0x30], 0
mov dword [esp + 0x44], 0
cmp dword [edx + edi*4 + 0xc], 0
cmove eax, dword [esp + 0x30]
push eax
mov eax, dword [edx + edi*4 + 8]
mov edx, dword [edx + edi*4 + 4]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.10023200
mov ecx, dword [esp + 0x18]
add esp, 4
mov dword [esp + 0x1c], eax
cmp dword [ecx + edi*4 + 0xc], 0
je 0x1002eaab
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x44]
add dword [edx + 0x5c], eax
mov ecx, dword [ecx + edi*4 + 0xc]
test ecx, ecx
jle 0x1002eaab
mov edi, dword [esp + 0x28]
lea ecx, [ecx + ecx*4]
cdq
add dword [edi + ecx*8 + 0x10], eax
adc dword [edi + ecx*8 + 0x14], edx
jmp 0x1002eaab
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov edx, dword [ecx + 0x40]
test edx, edx
je 0x100313f2
mov ecx, dword [esp + 0x10]
call fcn.10034770
inc dword [esp + 0x18]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
jmp 0x1002cd60
mov ecx, dword [ecx]
push 0
mov edx, dword [ecx + 0x44]
mov ecx, dword [ecx]
call fcn.10023200
add esp, 4
mov dword [esp + 0x1c], eax
jmp 0x1002eaab
mov eax, dword [esp + 0x14]
mov dword [esp + 0x30], 0
mov eax, dword [eax + edi*4 + 4]
shl eax, 4
add eax, dword [ecx + 0x10]
mov esi, dword [eax + 4]
mov ecx, esi
call fcn.1001ba30
xor eax, eax
lea edx, [esp + 0x30]
cmp byte [esp + 0x48], 0x77
mov ecx, esi
setne al
inc eax
push eax
call fcn.10022e20
add esp, 4
mov dword [esp + 0x1c], eax
cmp byte [esi + 9], 0
je 0x1003146e
add dword [esi + 0xc], 0xffffffff
jne 0x1003146e
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x1003146a
push eax
call dword [0x103cb90c]
add esp, 4
mov byte [esi + 0xa], 0
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x30]
cdq
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], edx
jmp 0x1002eaab
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x140], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [edx + edi*4 + 4]
add eax, 0x2c
push dword [edx + edi*4 + 0x10]
mov edi, dword [esp + 0x14]
cmp ecx, 1
mov dword [esp + 0x148], eax
mov edx, str.sqlite_temp_master
mov eax, str.sqlite_master
mov dword [esp + 0x14c], ecx
cmove eax, edx
add ecx, ecx
push eax
mov eax, dword [edi + 0x10]
push dword [eax + ecx*8]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push edi
call fcn.1000d860
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x100314eb
mov dword [esp + 0x1c], 7
mov ecx, edi
jmp 0x1003153e
push 0
lea eax, [esp + 0x144]
mov byte [edi + 0x89], 1
push eax
push fcn.10054140
push esi
push edi
mov dword [esp + 0x160], 0
call fcn.100508e0
add esp, 0x14
mov edx, esi
test eax, eax
mov ecx, edi
cmove eax, dword [esp + 0x14c]
mov dword [esp + 0x1c], eax
call fcn.1000bde0
mov edx, dword [esp + 0x1c]
mov ecx, edi
mov byte [ecx + 0x89], 0
test edx, edx
je 0x10031549
call fcn.10040ef0
mov edx, dword [esp + 0x1c]
mov ecx, edi
cmp edx, 7
je 0x100331f9
mov esi, dword [esp + 0x24]
jmp 0x1002eab3
mov eax, dword [esp + 0x14]
mov edx, dword [eax + edi*4 + 4]
call fcn.1003f510
mov dword [esp + 0x1c], eax
jmp 0x1002eaab
mov eax, dword [esp + 0x14]
mov edx, dword [eax + edi*4 + 0x10]
mov ecx, dword [eax + edi*4 + 4]
mov eax, edx
mov edi, dword [esp + 0x10]
shl ecx, 4
add ecx, dword [edi + 0x10]
test edx, edx
je 0x1003159f
cmp byte [edx], 0
je 0x10031598
inc eax
cmp byte [eax], 0
jne 0x10031592
sub eax, edx
and eax, 0x3fffffff
mov ecx, dword [ecx + 0xc]
push 0
push eax
add ecx, 8
call fcn.1000fcb0
add esp, 8
mov edx, eax
mov ecx, edi
call fcn.10040fe0
mov edx, dword [esp + 0x14]
mov ecx, edi
mov edi, dword [esp + 0x18]
or dword [ecx + 0x18], 2
inc edi
mov dword [esp + 0x18], edi
jmp 0x1002cd60
mov eax, dword [esp + 0x14]
push dword [eax + edi*4 + 0x10]
mov edx, dword [eax + edi*4 + 4]
call fcn.10040d50
mov ecx, dword [esp + 0x14]
add esp, 4
inc dword [esp + 0x18]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
jmp 0x1002cd60
mov eax, dword [esp + 0x14]
push dword [eax + edi*4 + 0x10]
mov edx, dword [eax + edi*4 + 4]
call fcn.1005f140
mov ecx, dword [esp + 0x14]
add esp, 4
inc dword [esp + 0x18]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
jmp 0x1002cd60
mov esi, dword [esp + 0x14]
mov eax, dword [esi + edi*4 + 8]
mov dword [esp + 0x30], eax
lea edx, [eax*4 + 4]
call fcn.1000c010
mov edx, eax
mov dword [esp + 0x34], edx
test edx, edx
je 0x100331f5
mov ecx, dword [esi + edi*4 + 0xc]
lea eax, [ecx + ecx*4]
mov ecx, dword [esi + edi*4 + 4]
mov dword [esp + 0x38], eax
xor esi, esi
mov eax, dword [esp + 0x28]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*8]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x2c], ecx
test eax, eax
jle 0x10031690
mov edi, ecx
mov ecx, edi
call fcn.10025bb0
mov edx, dword [esp + 0x34]
add edi, 0x28
mov dword [edx + esi*4], eax
inc esi
mov eax, dword [esp + 0x30]
cmp esi, eax
jl 0x10031672
mov edi, dword [esp + 0x44]
mov dword [edx + esi*4], 0
lea ecx, [esp + 0x78]
mov esi, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x3c]
push dword [esi + ecx*8 + 0x10]
mov esi, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x20]
mov ecx, dword [esi + 0x10]
movzx eax, byte [eax + edi*4 + 3]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.10024260
mov edx, dword [esp + 0x40]
add esp, 0xc
mov ecx, esi
mov edi, eax
call fcn.1000bde0
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x78]
cdq
sub dword [esi + ecx*8 + 0x10], eax
mov eax, esi
sbb dword [eax + ecx*8 + 0x14], edx
mov ecx, dword [esp + 0x2c]
call fcn.10025e40
mov esi, dword [esp + 0x78]
test esi, esi
je 0x1003171b
test edi, edi
je 0x100331f5
mov ecx, dword [esp + 0x2c]
mov edx, edi
push fcn.1000bd40
push 1
push 0xffffffffffffffff
call fcn.100260d0
add esp, 0xc
movzx edx, byte [esp + 0x5c]
mov ecx, dword [esp + 0x2c]
call fcn.10025740
inc dword [esp + 0x18]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
jmp 0x1002cd60
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
mov eax, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x1c], 0x20
lea esi, [edx + eax*8]
mov eax, dword [ecx + edi*4 + 8]
lea edi, [eax + eax*4]
jne 0x10031773
mov ecx, esi
call fcn.10025ec0
test byte [esi + 0x1c], 0x20
je 0x100331f5
mov eax, dword [esp + 0x28]
mov ecx, dword [esi + 0x10]
push dword [eax + edi*8 + 0x14]
push dword [eax + edi*8 + 0x10]
call fcn.10014280
mov esi, dword [esp + 0x2c]
add esp, 8
inc dword [esp + 0x18]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
jmp 0x1002cd60
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 0x20
lea ecx, [ecx + eax*8]
mov dword [esp + 0x30], ecx
je 0x10031831
mov esi, dword [ecx + 0x10]
movzx eax, word [esi + 0x1a]
test al, 2
jne 0x100317e3
test al, 1
jne 0x100317de
mov ecx, dword [esi + 8]
call fcn.10014390
mov ecx, dword [esp + 0x30]
mov dword [esi + 8], eax
or word [esi + 0x1a], 2
mov eax, dword [esi + 8]
test eax, eax
je 0x10031831
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
mov dword [esi + 8], eax
test eax, eax
jne 0x10031810
mov ecx, esi
call fcn.10014230
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x14]
push edx
push ecx
mov ecx, dword [esp + 0x30]
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.10025e90
add esp, 8
jmp 0x100329dc
call fcn.10025e40
jmp case.0x1002cdc7.16
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
mov eax, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x1c], 0x20
lea esi, [edx + eax*8]
mov eax, dword [ecx + edi*4 + 0xc]
mov ecx, dword [ecx + edi*4 + 0x10]
mov dword [esp + 0x30], ecx
lea eax, [eax + eax*4]
mov dword [esp + 0x34], eax
jne 0x10031884
mov ecx, esi
call fcn.10025ec0
test byte [esi + 0x1c], 0x20
je 0x100331f5
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
test ecx, ecx
je 0x100318ab
push dword [edx + eax*8 + 0x14]
push dword [edx + eax*8 + 0x10]
mov edx, ecx
mov ecx, dword [esi + 0x10]
call fcn.100145a0
add esp, 8
test eax, eax
jne 0x1002cdfa
mov ecx, dword [esp + 0x30]
test ecx, ecx
js 0x100318c8
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x28]
push dword [ecx + eax*8 + 0x14]
push dword [ecx + eax*8 + 0x10]
mov ecx, dword [esi + 0x10]
call fcn.10014280
add esp, 8
inc dword [esp + 0x18]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
jmp 0x1002cd60
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov edx, dword [eax + edi*4 + 0x10]
mov eax, dword [eax + edi*4 + 0xc]
mov dword [esp + 0x30], edx
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x38], ecx
cmp byte [eax + edi*4 + 3], 0
je 0x10031934
mov eax, dword [esp + 0x20]
mov ecx, dword [edx + 0x14]
mov eax, dword [eax + 0xb0]
test eax, eax
je 0x10031930
nop dword [eax + eax]
cmp dword [eax + 0x18], ecx
je 0x10031143
mov eax, dword [eax + 4]
test eax, eax
jne 0x10031920
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x10]
mov eax, dword [eax + 0xb8]
cmp eax, dword [edi + 0x80]
jge 0x10033057
test byte [ecx + 0x1c], 0x40
jne 0x10031a27
mov ecx, dword [edx + 0xc]
mov esi, dword [edx + 8]
add esi, ecx
lea eax, [esi + esi*4]
lea ecx, [ecx + eax*2]
mov eax, dword [edx + 0x10]
lea ecx, [ecx + 0x12]
lea edx, [eax + ecx*4]
mov ecx, edi
call fcn.1000bfe0
mov edi, eax
mov dword [esp + 0x34], edi
test edi, edi
je 0x100331f5
mov ecx, dword [esp + 0x38]
call fcn.10025b30
mov eax, dword [esp + 0x38]
mov ecx, 0x40
mov edx, dword [esp + 0x30]
mov word [eax + 0x1c], cx
mov ecx, dword [esp + 0x20]
mov dword [eax + 0x10], edi
mov dword [edi], ecx
mov dword [edi + 0x3c], esi
mov eax, dword [edx + 0xc]
mov dword [edi + 0x40], eax
mov eax, dword [esp + 0x18]
mov dword [edi + 0x2c], eax
mov eax, dword [ecx + 8]
mov dword [edi + 0xc], eax
mov eax, dword [ecx + 0x1c]
mov dword [edi + 0x34], eax
mov eax, dword [ecx + 0x38]
mov dword [edi + 0x14], eax
mov eax, dword [ecx + 0x24]
mov dword [edi + 0x28], eax
mov eax, dword [ecx + 4]
mov dword [edi + 8], eax
mov eax, dword [ecx + 0x20]
mov dword [edi + 0x30], eax
mov eax, dword [edx + 0x14]
mov dword [edi + 0x18], eax
mov eax, dword [ecx + 0xc8]
mov dword [edi + 0x10], eax
mov eax, dword [ecx + 0xc4]
mov dword [edi + 0x38], eax
lea eax, [esi*4 + 9]
add eax, esi
lea ecx, [edi + eax*8]
lea eax, [edi + 0x48]
cmp eax, ecx
je 0x10031a2a
mov esi, dword [esp + 0x10]
mov edi, 0x80
nop
mov word [eax + 0x1c], di
mov dword [eax], esi
add eax, 0x28
cmp eax, ecx
jne 0x10031a10
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
jmp 0x10031a2a
mov edi, dword [ecx + 0x10]
mov ecx, dword [esp + 0x20]
lea esi, [edi + 0x20]
mov dword [esp + 0x28], esi
inc dword [ecx + 0xb8]
mov eax, dword [ecx + 0xb0]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esi], eax
mov eax, dword [esp + 0x74]
mov dword [esi + 4], eax
mov eax, dword [ecx + 0x5c]
mov dword [edi + 0x44], eax
mov dword [ecx + 8], esi
mov dword [ecx + 0x5c], 0
mov dword [ecx + 0xb0], edi
mov eax, dword [edi + 0x3c]
mov dword [ecx + 0x1c], eax
movzx eax, word [edi + 0x40]
mov dword [ecx + 0x24], eax
mov eax, dword [ecx + 0x1c]
inc eax
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov esi, dword [esp + 0x20]
mov dword [esi + 0x38], ecx
mov eax, dword [edx]
mov dword [esi + 4], eax
mov dword [esp + 0x14], eax
mov eax, dword [edx + 4]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x24]
lea ecx, [ecx + eax*4]
mov dword [esi + 0xc8], ecx
mov eax, dword [edx + 0x10]
push eax
push 0
mov dword [esi + 0xc4], eax
or esi, 0xffffffff
push ecx
call fcn.100b11d0
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov edx, dword [esp + 0x14]
inc esi
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
jmp 0x1002cd60
mov eax, dword [esp + 0x20]
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 [esp + 0x18]
add eax, dword [ecx + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea edx, [eax + ecx*8]
mov ecx, esi
call fcn.10025f70
mov ecx, dword [esp + 0x14]
add esp, 4
inc dword [esp + 0x18]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
jmp 0x1002cd60
test dword [ecx + 0x18], 0x1000000
mov eax, dword [esp + 0x14]
je 0x10031b4e
mov eax, dword [eax + edi*4 + 8]
mov edi, dword [esp + 0x18]
cdq
add dword [ecx + 0x1f8], eax
adc dword [ecx + 0x1fc], edx
inc edi
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], edi
jmp 0x1002cd60
cmp dword [eax + edi*4 + 4], 0
mov eax, dword [eax + edi*4 + 8]
cdq
je 0x10031b78
add dword [ecx + 0x1f0], eax
mov edi, dword [esp + 0x18]
adc dword [ecx + 0x1f4], edx
inc edi
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], edi
jmp 0x1002cd60
mov edi, dword [esp + 0x20]
add dword [edi + 0x90], eax
adc dword [edi + 0x94], edx
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
inc edi
mov dword [esp + 0x18], edi
jmp 0x1002cd60
mov edx, dword [esp + 0x14]
cmp dword [edx + edi*4 + 4], 0
je 0x10031bd4
mov eax, dword [ecx + 0x1f0]
or eax, dword [ecx + 0x1f4]
jne 0x1002cfaf
mov eax, dword [ecx + 0x1f8]
or eax, dword [ecx + 0x1fc]
jne 0x1002cfaf
mov edi, dword [edx + edi*4 + 8]
dec edi
inc edi
jmp 0x1002cd53
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x20]
mov eax, dword [eax + 0x90]
or eax, dword [esi + 0x94]
mov esi, dword [esp + 0x24]
jmp 0x10031bb1
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0xb0]
test edx, edx
je 0x10031c1f
mov eax, dword [edx + 4]
test eax, eax
je 0x10031c0c
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x10031c03
mov eax, dword [esp + 0x14]
mov eax, dword [eax + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea esi, [eax + ecx*8]
jmp 0x10031c31
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
mov dword [esp + 0x30], esi
call fcn.10025bb0
mov dword [esi + 0x10], eax
mov ecx, 0xbe04
movzx eax, word [esi + 0x1c]
and ax, cx
mov dword [esi + 0x14], edx
mov ecx, dword [esp + 0x28]
or ax, 4
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + edi*4 + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.10025bb0
mov dword [esi + 0x10], eax
mov ecx, 0xbe04
movzx eax, word [esi + 0x1c]
and ax, cx
mov dword [esi + 0x14], edx
mov ecx, dword [esi + 0x10]
or ax, 4
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x30]
cmp dword [eax + 0x14], edx
jg 0x10031ca2
jl 0x10031c9c
cmp dword [eax + 0x10], ecx
jae 0x10031ca2
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edx
inc dword [esp + 0x18]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
jmp 0x1002cd60
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
cmp dword [esi + eax*8 + 0x14], 0
mov esi, dword [esp + 0x24]
jl 0x1002cfaf
jg 0x10031bc9
mov esi, dword [esp + 0x28]
cmp dword [esi + eax*8 + 0x10], 0
mov esi, dword [esp + 0x24]
jbe 0x1002cfaf
mov edi, dword [edx + edi*4 + 8]
dec edi
inc edi
jmp 0x1002cd53
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + edi*4 + 0xc]
cdq
add dword [esi + ecx*8 + 0x10], eax
mov eax, esi
mov esi, dword [esp + 0x24]
adc dword [eax + ecx*8 + 0x14], edx
cmp dword [eax + ecx*8 + 0x14], 0
jg 0x10031d4a
jl 0x10031d2f
cmp dword [eax + ecx*8 + 0x10], 0
jae 0x10031d4a
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + edi*4 + 8]
dec ecx
inc ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
jmp 0x1002cd60
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
inc ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
jmp 0x1002cd60
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + edi*4 + 0xc]
cdq
add dword [esi + ecx*8 + 0x10], eax
mov eax, esi
adc dword [eax + ecx*8 + 0x14], edx
mov edx, esi
mov eax, dword [eax + ecx*8 + 0x10]
mov esi, dword [esp + 0x24]
or eax, dword [edx + ecx*8 + 0x14]
jne 0x10031d4a
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + edi*4 + 8]
dec ecx
inc ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
jmp 0x1002cd60
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
movzx edx, byte [eax + edi*4 + 3]
mov eax, dword [eax + edi*4 + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0x20]
mov esi, dword [eax + 0xc]
xor eax, eax
test edx, edx
je 0x10031ddc
mov dword [esi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x10031dd1
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + edi*4 + 0x10]
mov dword [esp + 0x1d8], eax
mov eax, dword [ecx + edi*4 + 0xc]
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x208], eax
inc dword [eax + 0x18]
mov eax, 1
mov ecx, dword [esp + 0x1d8]
mov word [esp + 0x1fc], ax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1e4], 0
mov dword [esp + 0x204], 0
mov dword [esp + 0x200], 0
mov dword [esp + 0x1e0], eax
mov dword [esp + 0x218], 0
mov dword [esp + 0x20c], 0
mov byte [esp + 0x21c], 0
test byte [ecx + 2], 0x20
je 0x10031e76
mov eax, dword [esp + 0x14]
mov eax, dword [eax + edi*4 - 4]
mov dword [esp + 0x20c], eax
push esi
push edx
lea eax, [esp + 0x1e0]
push eax
mov eax, dword [ecx + 0x10]
call eax
add esp, 0xc
cmp dword [esp + 0x218], 0
je 0x10031ec5
mov dl, 1
lea ecx, [esp + 0x1e0]
call fcn.10026370
push eax
mov eax, dword [esp + 0x24]
push 0x103b5880
push dword [esp + 0x18]
add eax, 0x2c
push eax
call fcn.1000c1b0
mov eax, dword [esp + 0x228]
add esp, 0x10
mov dword [esp + 0x1c], eax
cmp byte [esp + 0x21c], 0
je 0x10031ef1
mov eax, dword [esp + 0x14]
mov eax, dword [eax + edi*4 - 0x10]
test eax, eax
je 0x10031ef1
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
push 0
push 1
lea ecx, [ecx + eax*8]
call fcn.10025e90
add esp, 8
lea ecx, [esp + 0x1e0]
call fcn.10025b30
jmp 0x1002eaa7
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
mov eax, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov edx, dword [ecx + edi*4 + 0x10]
mov ecx, esi
call fcn.10025a50
mov dword [esp + 0x1c], eax
test eax, eax
je 0x10031f4a
mov dl, 1
mov ecx, esi
call fcn.10026370
push eax
mov eax, dword [esp + 0x24]
push 0x103b5880
push dword [esp + 0x18]
add eax, 0x2c
push eax
call fcn.1000c1b0
add esp, 0x10
movzx edx, byte [esp + 0x5c]
mov ecx, esi
call fcn.10025740
movzx eax, word [esi + 0x1c]
test al, 0x12
je 0x1002eaa7
mov edx, dword [esi + 0x18]
test eax, 0x4000
je 0x10031f6f
add edx, dword [esi + 0x10]
mov eax, dword [esi]
xor ecx, ecx
cmp edx, dword [eax + 0x58]
setg cl
test ecx, ecx
mov ecx, dword [esp + 0x10]
jne 0x10030a03
mov esi, dword [esp + 0x24]
jmp case.default.0x1002cdc7
mov esi, dword [esp + 0x14]
lea eax, [esp + 0x274]
push eax
lea eax, [esp + 0x274]
mov dword [esp + 0x270], 0
push eax
push dword [esi + edi*4 + 8]
mov edx, dword [esi + edi*4 + 4]
mov dword [esp + 0x280], 0xffffffff
mov dword [esp + 0x27c], 0xffffffff
call fcn.10071610
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x1c], ecx
cmp ecx, 5
jne 0x10031ff1
mov dword [esp + 0x1c], 0
mov dword [esp + 0x26c], 1
mov eax, dword [esi + edi*4 + 0xc]
xor esi, esi
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [esp + esi*4 + 0x26c]
mov ecx, edi
cdq
push edx
push eax
call fcn.10025e90
inc esi
add esp, 8
add edi, 0x28
cmp esi, 3
jl 0x10032001
jmp 0x1002eaa7
mov eax, dword [esp + 0x14]
mov esi, dword [eax + edi*4 + 0xc]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x10]
add ecx, ecx
cmp esi, 0xffffffff
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 4]
mov dword [esp + 0x38], eax
mov eax, dword [eax + 4]
mov ecx, dword [eax]
mov dword [esp + 0x2c], ecx
movzx edx, byte [ecx + 5]
cmove esi, edx
mov dword [esp + 0x30], edx
cmp byte [ecx + 0x10], 3
mov dword [esp + 0x34], esi
jb 0x10032065
xor eax, eax
jmp 0x10032084
mov eax, dword [ecx + 0x40]
cmp dword [eax], 0
je 0x1003207f
cmp dword [ecx + 0x4c], 0
jl 0x1003207f
jg 0x1003207b
cmp dword [ecx + 0x48], 0
jbe 0x1003207f
xor eax, eax
jmp 0x10032084
mov eax, 1
test eax, eax
mov esi, edx
mov eax, 0x103b49b4
cmovne esi, dword [esp + 0x34]
cmp byte [ecx + 0xf], 0
jne 0x1003209e
mov eax, dword [ecx + 0xa8]
cmp esi, 5
jne 0x100320cc
mov ecx, eax
call fcn.1000e380
test eax, eax
je 0x100320c8
mov ecx, dword [esp + 0x2c]
cmp byte [ecx + 4], 0
mov eax, dword [ecx + 0x3c]
mov eax, dword [eax]
jne 0x100320cc
cmp dword [eax], 2
jl 0x100320c8
cmp dword [eax + 0x34], 0
jne 0x100320cc
mov esi, edx
jmp 0x1003213a
cmp esi, edx
je 0x1003213a
cmp edx, 5
je 0x100320da
cmp esi, 5
jne 0x1003213a
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x3e], 0
je 0x1003307f
cmp dword [eax + 0x90], 1
jg 0x1003307f
cmp edx, 5
jne 0x10032111
call fcn.10019450
mov edx, eax
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x10032136
mov ecx, dword [esp + 0x2c]
mov edx, esi
jmp 0x1003211b
cmp edx, 4
jne 0x10032120
mov edx, 2
call fcn.10019200
mov ecx, dword [esp + 0x38]
xor edx, edx
cmp esi, 5
sete dl
inc edx
call fcn.10024920
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 0x30]
cmp dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x2c]
cmove edx, esi
call fcn.10019200
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
mov ecx, dword [ecx + edi*4 + 8]
lea ecx, [ecx + ecx*4]
lea esi, [edx + ecx*8]
mov ecx, 0xa02
mov dword [esp + 0x24], esi
mov word [esi + 0x1c], cx
cmp eax, 6
jne 0x10032173
xor ecx, ecx
jmp 0x1003217a
mov ecx, dword [eax*4 + 0x103b1e58]
mov dword [esi + 4], ecx
call fcn.1000e380
movzx edx, byte [esp + 0x5c]
mov ecx, esi
mov dword [esi + 0x18], eax
mov byte [esi + 0x1e], 1
call fcn.10025740
jmp 0x1002eaab
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
lea ecx, [ecx + 0x2c]
call fcn.10061d50
mov dword [esp + 0x1c], eax
jmp 0x1002eaab
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x10]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + ecx*8 + 4]
call fcn.1001eaa0
mov ecx, eax
mov dword [esp + 0x1c], ecx
cmp ecx, 0x65
jne 0x1002eaab
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], 0
mov ecx, dword [eax + edi*4 + 8]
dec ecx
xor edx, edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
jmp 0x1002eab3
mov edx, dword [esp + 0x14]
cmp dword [edx + edi*4 + 4], 0
jne 0x10032216
call fcn.1002a990
mov edi, dword [esp + 0x18]
inc edi
jmp 0x1002cd53
mov edi, dword [esp + 0x20]
or dword [edi + 0x58], 0x20
mov edi, dword [esp + 0x18]
inc edi
jmp 0x1002cd53
mov edx, dword [esp + 0x14]
mov al, byte [edx + edi*4 + 0xc]
mov byte [esp + 0xd0], al
test al, al
jne 0x10032248
test dword [ecx + 0x18], 0x4000
jne case.default.0x1002cdc7
mov eax, dword [edx + edi*4 + 4]
mov ecx, dword [ecx + 0x10]
add eax, eax
push dword [esp + 0xd0]
mov edx, dword [edx + edi*4 + 8]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.10024800
mov ecx, eax
add esp, 4
mov dword [esp + 0x1c], ecx
cmp cl, 6
jne 0x1002eaab
mov eax, dword [esp + 0x14]
push dword [eax + edi*4 + 0x10]
mov eax, dword [esp + 0x24]
push str.database_table_is_locked:__s
push dword [esp + 0x18]
add eax, 0x2c
push eax
call fcn.1000c1b0
add esp, 0x10
jmp 0x1002eaab
mov eax, dword [esp + 0x14]
mov esi, dword [eax + edi*4 + 0x10]
mov edx, esi
call fcn.10063090
mov dword [esp + 0x1c], eax
test esi, esi
je 0x1002eaa7
mov eax, dword [esp + 0x20]
mov edi, dword [esi + 8]
mov dword [esp + 0x34], edi
mov esi, dword [eax]
mov ecx, esi
mov edx, dword [eax + 0x2c]
call fcn.1000bde0
mov ecx, dword [edi + 8]
mov dword [esp + 0x30], ecx
test ecx, ecx
jne 0x100322de
xor esi, esi
jmp 0x10032316
cmp byte [ecx], 0
mov eax, ecx
je 0x100322eb
inc eax
cmp byte [eax], 0
jne 0x100322e5
sub eax, ecx
mov ecx, esi
and eax, 0x3fffffff
lea edi, [eax + 1]
mov edx, edi
call fcn.1000c010
mov esi, eax
test esi, esi
je 0x10032312
push edi
push dword [esp + 0x34]
push esi
call fcn.100b0c50
add esp, 0xc
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x20]
mov dword [eax + 0x2c], esi
push dword [edi + 8]
call fcn.1000bd40
add esp, 4
mov dword [edi + 8], 0
jmp 0x1002eaa7
mov eax, dword [esp + 0x20]
add eax, 0x2c
push eax
mov eax, dword [esp + 0x18]
push dword [eax + edi*4 + 0x10]
mov edx, dword [eax + edi*4 + 4]
call fcn.10062b40
add esp, 8
mov dword [esp + 0x1c], eax
jmp 0x1002eaab
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x58]
and eax, 0xfffffffb
or eax, 8
mov dword [edx + 0x58], eax
mov eax, dword [esp + 0x14]
push dword [eax + edi*4 + 0x10]
mov edx, dword [eax + edi*4 + 4]
call fcn.10062e60
mov ecx, dword [esp + 0x24]
add esp, 4
mov dword [esp + 0x1c], eax
and dword [ecx + 0x58], 0xfffffff3
jmp 0x1002eaab
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x38]
mov dword [esp + 0x38], 0
push ecx
mov eax, dword [eax + edi*4 + 0x10]
mov esi, dword [eax + 8]
push esi
mov dword [esp + 0x44], esi
mov eax, dword [esi]
mov dword [esp + 0x48], eax
mov eax, dword [eax + 0x18]
call eax
mov ecx, dword [esp + 0x28]
add esp, 8
mov dword [esp + 0x1c], eax
mov eax, dword [ecx]
mov edx, dword [ecx + 0x2c]
mov ecx, eax
mov dword [esp + 0x30], eax
call fcn.1000bde0
mov ecx, dword [esi + 8]
mov dword [esp + 0x2c], ecx
test ecx, ecx
jne 0x100323e0
xor esi, esi
jmp 0x1003241b
cmp byte [ecx], 0
mov eax, ecx
je 0x100323ed
inc eax
cmp byte [eax], 0
jne 0x100323e7
sub eax, ecx
mov ecx, dword [esp + 0x30]
and eax, 0x3fffffff
inc eax
mov edx, eax
mov dword [esp + 0x34], eax
call fcn.1000c010
mov esi, eax
test esi, esi
je 0x1003241b
push dword [esp + 0x34]
push dword [esp + 0x30]
push esi
call fcn.100b0c50
add esp, 0xc
mov eax, dword [esp + 0x20]
mov dword [eax + 0x2c], esi
mov esi, dword [esp + 0x3c]
push dword [esi + 8]
call fcn.1000bd40
add esp, 4
mov dword [esi + 8], 0
cmp dword [esp + 0x1c], 0
jne 0x1002eaa7
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x20]
mov dword [eax], esi
mov eax, dword [esp + 0x14]
mov edi, dword [eax + edi*4 + 4]
mov eax, dword [edx + 0x1c]
sub eax, edi
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
lea esi, [eax + ecx*8]
mov eax, dword [edx + 0x38]
mov edx, dword [eax + edi*4]
test edx, edx
je 0x10032484
mov ecx, dword [esp + 0x20]
call fcn.10027e40
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x38]
mov dword [eax + edi*4], 0
push 0
mov edx, 0x60
mov ecx, esi
call fcn.10025760
add esp, 4
test eax, eax
jne 0x100324dd
mov eax, dword [esp + 0x20]
mov esi, dword [esi + 4]
push 0x60
push 0
mov eax, dword [eax + 0x38]
push esi
mov dword [eax + edi*4], esi
call fcn.100b11d0
mov ecx, dword [esp + 0x1c]
xor eax, eax
mov edx, dword [esp + 0x20]
add esp, 0xc
inc dword [esp + 0x18]
mov edi, dword [esp + 0x18]
mov byte [esi + 0x18], 0xff
mov word [esi + 0x14], ax
mov eax, dword [esp + 0x38]
mov dword [esi + 0x24], eax
mov esi, dword [esp + 0x24]
jmp 0x1002cd60
mov eax, dword [esp + 0x10]
push dword [esp + 0x38]
mov byte [eax + 0x40], 1
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x1c]
call eax
add esp, 4
jmp 0x1002eaa7
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x28]
add esi, 0x28
mov eax, dword [ecx + edi*4 + 0xc]
mov ecx, dword [ecx + edi*4 + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
lea esi, [esi + edx*8]
movd xmm0, esi
mov dword [esp + 0x38], esi
mov eax, dword [eax + 0x38]
mov esi, dword [esi + 0x10]
pshufd xmm3, xmm0, 0
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [esp + 0x40], eax
mov eax, dword [eax + 0x24]
mov dword [esp + 0x34], eax
mov eax, dword [eax]
mov dword [esp + 0x30], eax
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x28]
mov eax, dword [eax + edx*8 + 0x10]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0xc]
test esi, esi
jle 0x1003260b
cmp esi, 8
jb 0x100325eb
cmp dword [0x103ce2c0], 2
jl 0x100325eb
movaps xmm2, xmmword [0x103bb390]
mov eax, esi
and eax, 0x80000007
jns 0x1003258c
dec eax
or eax, 0xfffffff8
inc eax
movaps xmm1, xmmword [0x103bb3a0]
mov edi, esi
sub edi, eax
nop word [eax + eax]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx + ecx*4], xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx + ecx*4 + 0x10], xmm0
add ecx, 8
cmp ecx, edi
jl 0x100325a0
mov edi, dword [esp + 0x44]
cmp ecx, esi
jge 0x1003260b
mov edi, dword [esp + 0x38]
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov edi, dword [esp + 0x44]
mov dword [edx + ecx*4], eax
inc ecx
add eax, 0x28
cmp ecx, esi
jl 0x10032600
mov ecx, dword [esp + 0x20]
push edx
push esi
mov eax, dword [ecx + 0x58]
and eax, 0xfffffff7
or eax, 4
mov dword [ecx + 0x58], eax
mov eax, dword [esp + 0x1c]
push dword [eax + edi*4 + 0x10]
mov eax, dword [esp + 0x38]
push dword [esp + 0x48]
push dword [esp + 0x44]
mov eax, dword [eax + 0x20]
call eax
mov dword [esp + 0x30], eax
add esp, 0x14
mov eax, dword [esp + 0x20]
mov esi, dword [eax]
mov ecx, esi
mov edx, dword [eax + 0x2c]
and dword [eax + 0x58], 0xfffffff3
call fcn.1000bde0
mov ecx, dword [esp + 0x30]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x3c], ecx
test ecx, ecx
jne 0x10032664
xor esi, esi
jmp 0x100326a2
cmp byte [ecx], 0
mov eax, ecx
je 0x10032676
nop dword [eax + eax]
inc eax
cmp byte [eax], 0
jne 0x10032670
sub eax, ecx
mov ecx, esi
and eax, 0x3fffffff
inc eax
mov edx, eax
mov dword [esp + 0x38], eax
call fcn.1000c010
mov esi, eax
test esi, esi
je 0x100326a2
push dword [esp + 0x38]
push dword [esp + 0x40]
push esi
call fcn.100b0c50
add esp, 0xc
mov eax, dword [esp + 0x20]
mov dword [eax + 0x2c], esi
mov esi, dword [esp + 0x30]
push dword [esi + 8]
call fcn.1000bd40
add esp, 4
mov dword [esi + 8], 0
cmp dword [esp + 0x1c], 0
jne 0x100326e7
mov eax, dword [esp + 0x2c]
push dword [esp + 0x34]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
test eax, eax
je 0x100326e7
mov eax, dword [esp + 0x14]
mov eax, dword [eax + edi*4 + 8]
dec eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x40]
mov byte [eax + 0x19], 0
jmp 0x1002eaa7
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + edi*4 + 0xc]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x2c], ecx
cmp byte [ecx + 0x19], 0
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x34], eax
je 0x1003273e
mov ecx, eax
call fcn.10025e40
inc dword [esp + 0x18]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
jmp 0x1002cd60
mov eax, dword [ecx + 0x24]
push 0x48
push 0
mov eax, dword [eax]
mov dword [esp + 0x38], eax
mov esi, dword [eax]
lea eax, [esp + 0x228]
push eax
call fcn.100b11d0
add esp, 0xc
lea ecx, [esp + 0x228]
call fcn.10025b30
mov eax, dword [esp + 0x34]
mov ecx, 1
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x228], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [esp + 0x238], xmm0
movq xmm0, qword [eax + 0x20]
movq qword [esp + 0x248], xmm0
mov word [eax + 0x1c], cx
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0
mov eax, dword [esp + 0x244]
and eax, 0xbe01
or eax, ecx
mov word [esp + 0x244], ax
mov eax, dword [esp + 0x14]
push dword [eax + edi*4 + 8]
lea eax, [esp + 0x224]
push eax
mov eax, dword [esp + 0x34]
push dword [eax + 0x24]
mov eax, dword [esi + 0x2c]
call eax
mov dword [esp + 0x28], eax
add esp, 0xc
mov eax, dword [esp + 0x20]
mov esi, dword [eax]
mov ecx, esi
mov edx, dword [eax + 0x2c]
call fcn.1000bde0
mov ecx, dword [esp + 0x30]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x2c], ecx
test ecx, ecx
jne 0x10032805
xor esi, esi
jmp 0x1003283d
cmp byte [ecx], 0
mov eax, ecx
je 0x10032816
nop dword [eax]
inc eax
cmp byte [eax], 0
jne 0x10032810
sub eax, ecx
mov ecx, esi
and eax, 0x3fffffff
lea edi, [eax + 1]
mov edx, edi
call fcn.1000c010
mov esi, eax
test esi, esi
je 0x1003283d
push edi
push dword [esp + 0x30]
push esi
call fcn.100b0c50
add esp, 0xc
mov eax, dword [esp + 0x20]
mov dword [eax + 0x2c], esi
mov esi, dword [esp + 0x30]
push dword [esi + 8]
call fcn.1000bd40
mov ecx, dword [esp + 0x20]
add esp, 4
movzx edx, byte [esp + 0x5c]
mov dword [esi + 8], 0
mov eax, dword [esp + 0x260]
test eax, eax
cmovne ecx, eax
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x228]
call fcn.10025740
mov esi, dword [esp + 0x34]
mov ecx, esi
call fcn.10025b30
movups xmm0, xmmword [esp + 0x228]
mov eax, 1
movups xmmword [esi], xmm0
movups xmm0, xmmword [esp + 0x238]
movups xmmword [esi + 0x10], xmm0
movq xmm0, qword [esp + 0x248]
movq qword [esi + 0x20], xmm0
mov word [esp + 0x244], ax
mov dword [esp + 0x248], 0
mov dword [esp + 0x24c], 0
jmp 0x10031f56
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x3c], ecx
cmp byte [ecx + 0x19], 0
jne 0x1002eaab
mov eax, dword [ecx + 0x24]
mov edi, dword [esp + 0x20]
mov esi, dword [eax]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x38], esi
mov edx, dword [esi]
mov eax, dword [eax + 0x58]
and eax, 0xfffffff7
mov dword [esp + 0x40], edx
or eax, 4
mov dword [edi + 0x58], eax
push dword [ecx + 0x24]
mov eax, dword [edx + 0x24]
call eax
mov ecx, edi
mov dword [esp + 0x20], eax
add esp, 4
mov eax, dword [ecx]
and dword [ecx + 0x58], 0xfffffff3
mov edx, dword [ecx + 0x2c]
mov ecx, eax
mov dword [esp + 0x30], eax
call fcn.1000bde0
mov ecx, dword [esi + 8]
mov edi, dword [esp + 0x44]
mov dword [esp + 0x2c], ecx
test ecx, ecx
jne 0x10032952
xor esi, esi
jmp 0x10032994
cmp byte [ecx], 0
mov eax, ecx
je 0x10032966
nop dword [eax]
inc eax
cmp byte [eax], 0
jne 0x10032960
sub eax, ecx
mov ecx, dword [esp + 0x30]
and eax, 0x3fffffff
inc eax
mov edx, eax
mov dword [esp + 0x34], eax
call fcn.1000c010
mov esi, eax
test esi, esi
je 0x10032994
push dword [esp + 0x34]
push dword [esp + 0x30]
push esi
call fcn.100b0c50
add esp, 0xc
mov eax, dword [esp + 0x20]
mov dword [eax + 0x2c], esi
mov esi, dword [esp + 0x38]
push dword [esi + 8]
call fcn.1000bd40
add esp, 4
mov dword [esi + 8], 0
cmp dword [esp + 0x1c], 0
jne case.0x1002cdc7.16
mov eax, dword [esp + 0x3c]
push dword [eax + 0x24]
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x100329dc
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + edi*4 + 8]
dec ecx
mov dword [esp + 0x18], ecx
mov esi, dword [esp + 0x10]
cmp dword [esi + 0xe8], 0
jne 0x100331be
mov ecx, dword [esi + 0x11c]
test ecx, ecx
je 0x1002eaa7
mov eax, dword [esp + 0x7c]
cmp eax, dword [esp + 0x8c]
jb 0x1002eaa7
mov edi, dword [esi + 0x124]
xor edx, edx
div edi
push dword [esi + 0x120]
sub edi, edx
add edi, dword [esp + 0x80]
mov dword [esp + 0x90], edi
call ecx
add esp, 4
test eax, eax
je 0x1002eaa7
mov dword [esp + 0x1c], 9
jmp 0x1003321b
mov ecx, dword [esp + 0x14]
mov edx, 1
mov eax, dword [ecx + edi*4 + 0x10]
mov eax, dword [eax + 8]
mov dword [esp + 0x30], eax
mov eax, dword [ecx + edi*4 + 4]
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.10025740
mov ecx, eax
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x1002eaa7
mov edi, dword [esp + 0x30]
push dword [esi + 4]
push edi
mov eax, dword [edi]
mov eax, dword [eax + 0x4c]
call eax
mov dword [esp + 0x24], eax
add esp, 8
mov eax, dword [esp + 0x20]
mov esi, dword [eax]
mov ecx, esi
mov edx, dword [eax + 0x2c]
call fcn.1000bde0
mov ecx, dword [edi + 8]
mov dword [esp + 0x34], ecx
test ecx, ecx
jne 0x10032ab2
xor esi, esi
jmp 0x10032af1
cmp byte [ecx], 0
mov eax, ecx
je 0x10032ac6
nop dword [eax]
inc eax
cmp byte [eax], 0
jne 0x10032ac0
sub eax, ecx
mov ecx, esi
and eax, 0x3fffffff
lea edi, [eax + 1]
mov edx, edi
call fcn.1000c010
mov esi, eax
test esi, esi
je 0x10032aed
push edi
push dword [esp + 0x38]
push esi
call fcn.100b0c50
add esp, 0xc
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x20]
mov dword [eax + 0x2c], esi
push dword [edi + 8]
call fcn.1000bd40
mov ecx, dword [esp + 0x24]
add esp, 4
mov dword [edi + 8], 0
and dword [ecx + 0x58], 0xffffffdf
jmp 0x1002eaa7
mov edx, dword [esp + 0x14]
mov eax, dword [edx + edi*4 + 0x10]
mov edx, dword [edx + edi*4 + 8]
mov eax, dword [eax + 8]
mov dword [esp + 0x2c], eax
mov eax, dword [eax]
mov dword [esp + 0x30], eax
cmp dword [eax + 0x34], 0
je case.default.0x1002cdc7
mov al, byte [ecx + 0x44]
mov ecx, dword [esp + 0x28]
mov byte [esp + 0x48], al
mov eax, dword [esp + 0x20]
mov esi, dword [eax + 0xc]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test edx, edx
jle 0x10032b6b
mov dword [esi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x10032b60
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov al, byte [eax + edi*4 + 3]
mov byte [ecx + 0x44], al
lea eax, [esp + 0x138]
push eax
mov eax, dword [esp + 0x34]
push esi
push edx
push dword [esp + 0x38]
mov eax, dword [eax + 0x34]
call eax
mov ecx, dword [esp + 0x20]
add esp, 0x10
mov dword [esp + 0x1c], eax
mov al, byte [esp + 0x48]
mov byte [ecx + 0x44], al
mov eax, dword [esp + 0x20]
mov esi, dword [eax]
mov ecx, esi
mov edx, dword [eax + 0x2c]
call fcn.1000bde0
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 8]
mov dword [esp + 0x34], ecx
test ecx, ecx
jne 0x10032bc6
xor esi, esi
jmp 0x10032c02
cmp byte [ecx], 0
mov eax, ecx
je 0x10032bd6
nop dword [eax]
inc eax
cmp byte [eax], 0
jne 0x10032bd0
sub eax, ecx
mov ecx, esi
and eax, 0x3fffffff
inc eax
mov edx, eax
mov dword [esp + 0x30], eax
call fcn.1000c010
mov esi, eax
test esi, esi
je 0x10032c02
push dword [esp + 0x30]
push dword [esp + 0x38]
push esi
call fcn.100b0c50
add esp, 0xc
mov eax, dword [esp + 0x20]
mov dword [eax + 0x2c], esi
mov esi, dword [esp + 0x2c]
push dword [esi + 8]
call fcn.1000bd40
mov ecx, dword [esp + 0x14]
add esp, 4
cmp dword [esp + 0x1c], 0
mov dword [esi + 8], 0
mov esi, dword [esp + 0x14]
jne 0x10032c51
cmp dword [esi + edi*4 + 4], 0
je 0x10032c51
mov eax, dword [esp + 0x138]
mov edx, dword [esp + 0x13c]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x24], edx
mov edx, dword [esp + 0x1c]
cmp dl, 0x13
jne 0x10032cae
mov eax, dword [esi + edi*4 + 0x10]
cmp byte [eax + 0x10], 0
je 0x10032cae
mov al, byte [esi + edi*4 + 3]
cmp al, 4
jne 0x10032c82
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
inc edi
mov dword [esp + 0x1c], 0
jmp 0x1002cd4f
cmp al, 5
jne 0x10032c9b
mov esi, dword [esp + 0x20]
mov eax, 2
mov byte [esi + 0x56], al
mov esi, dword [esp + 0x24]
jmp 0x1002eab3
mov esi, dword [esp + 0x20]
movzx eax, al
mov byte [esi + 0x56], al
mov esi, dword [esp + 0x24]
jmp 0x1002eab3
mov esi, dword [esp + 0x20]
inc dword [esi + 0x5c]
mov esi, dword [esp + 0x24]
jmp 0x1002eab3
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x10]
add ecx, ecx
inc dword [esp + 0x18]
mov edi, dword [esp + 0x18]
mov eax, dword [eax + ecx*8 + 4]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x2c]
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], 0
jmp 0x1002cd60
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x10]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
mov ecx, dword [edx + edi*4 + 0xc]
test ecx, ecx
je 0x10032d1e
mov eax, dword [esi + 4]
mov edi, dword [eax + 0x2c]
cmp edi, ecx
cmovb edi, ecx
jmp 0x10032d20
xor edi, edi
mov ecx, esi
call fcn.1001ba30
mov eax, dword [esi + 4]
mov eax, dword [eax]
test edi, edi
jle 0x10032d36
mov dword [eax + 0x9c], edi
cmp byte [esi + 9], 0
mov edi, dword [eax + 0x9c]
je 0x10032d60
add dword [esi + 0xc], 0xffffffff
jne 0x10032d60
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x38]
test ecx, ecx
je 0x10032d5c
push ecx
call dword [0x103cb90c]
add esp, 4
mov byte [esi + 0xa], 0
mov esi, dword [esp + 0x24]
mov eax, edi
inc dword [esp + 0x18]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
cdq
mov dword [esi + 0x14], edx
mov edx, dword [esp + 0x14]
mov dword [esi + 0x10], eax
jmp 0x1002cd60
mov edx, dword [esp + 0x14]
mov eax, dword [edx + edi*4 + 8]
test eax, eax
je 0x10032d93
dec eax
mov dword [esp + 0x18], eax
cmp dword [ecx + 0xa4], 0
je case.default.0x1002cdc7
mov eax, dword [esp + 0x20]
test dword [eax + 0x58], 0x800
jne case.default.0x1002cdc7
mov edx, dword [edx + edi*4 + 0x10]
mov edi, eax
test edx, edx
jne 0x10032dc9
mov edx, dword [edi + 0xa8]
test edx, edx
je case.default.0x1002cdc7
mov ecx, edi
call fcn.1002c6c0
mov edi, dword [esp + 0x10]
mov esi, eax
push esi
push dword [edi + 0xa8]
mov ecx, dword [edi + 0xa4]
call ecx
add esp, 8
mov edx, esi
mov ecx, edi
call fcn.1000bde0
mov esi, dword [esp + 0x24]
mov ecx, edi
jmp case.default.0x1002cdc7
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
jmp 0x1002eab3
mov esi, dword [esp + 0x24]
mov ecx, eax
jmp case.default.0x1002cdc7
mov esi, dword [esp + 0x20]
mov ecx, dword [edx + edi*4 + 4]
mov dword [esi + 0x50], ecx
mov al, byte [edx + edi*4 + 8]
mov byte [esi + 0x56], al
mov eax, dword [esp + 0x18]
mov dword [esi + 0x4c], eax
test ecx, ecx
je 0x10032eb9
mov al, byte [edx + edi*4 + 3]
test al, al
je 0x10032e6c
movzx eax, al
mov eax, dword [eax*4 + 0x103b13ac]
test eax, eax
je 0x10032e6e
mov ecx, dword [edx + edi*4 + 0x10]
test ecx, ecx
je 0x10032e6e
push ecx
push eax
push str._s_constraint_failed:__s
push dword [esp + 0x1c]
add esi, 0x2c
push esi
call fcn.1000c1b0
add esp, 0x14
jmp 0x10032e94
xor eax, eax
mov ecx, dword [edx + edi*4 + 0x10]
add esi, 0x2c
test ecx, ecx
je 0x10032e81
push ecx
push 0x103b5880
jmp 0x10032e87
push eax
push str._s_constraint_failed
push dword [esp + 0x18]
push esi
call fcn.1000c1b0
add esp, 0x10
push dword [esi]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
push dword [esi + 0xa8]
push dword [esp + 0x20]
push str.abort_at__d_in___s_:__s
push dword [eax + edi*4 + 4]
call fcn.1000dbb0
add esp, 0x14
mov ecx, esi
call fcn.100289e0
mov ecx, dword [esp + 0x10]
cmp eax, 5
jne 0x10032ed3
mov edi, eax
mov dword [esi + 0x50], edi
jmp 0x1003329f
cmp dword [esi + 0x50], 0
mov edi, 0x65
mov eax, 1
cmovne edi, eax
jmp 0x1003329f
lea ecx, [esp + 0x158]
call fcn.10025b30
mov ecx, edi
jmp 0x100331f9
mov eax, 0x14
mov dword [esp + 0x1c], eax
jmp 0x10032ffb
push str.cannot_open_savepoint___SQL_statements_in_progress
push esi
mov eax, dword [esp + 0x28]
add eax, 0x2c
push eax
call fcn.1000c1b0
mov eax, dword [esp + 0x24]
add esp, 0xc
mov dword [esp + 0x1c], 5
inc eax
jmp 0x1003321f
push str.cannot_release_savepoint___SQL_statements_in_progress
push ecx
jmp 0x10032f10
mov eax, dword [esp + 0x18]
mov dword [edi + 0x4c], eax
mov edi, 5
mov eax, dword [esp + 0x20]
mov byte [ecx + 0x3e], 0
mov dword [eax + 0x50], edi
jmp 0x1003329f
mov eax, dword [esp + 0x24]
push str.no_such_savepoint:__s
push dword [esp + 0x18]
add eax, 0x2c
push eax
call fcn.1000c1b0
mov eax, dword [esp + 0x28]
add esp, 0x10
mov dword [esp + 0x1c], 1
inc eax
jmp 0x1003321f
mov eax, 8
mov dword [esp + 0x1c], eax
jmp 0x10032ffb
mov ecx, dword [esp + 0x20]
mov edi, 5
mov eax, dword [esp + 0x18]
mov dword [ecx + 0x4c], eax
mov dword [ecx + 0x50], edi
jmp 0x1003329b
mov ecx, 0x11698
call fcn.10072a10
mov dword [esp + 0x1c], eax
jmp 0x10032ff7
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], 4
inc eax
jmp 0x1003321f
mov eax, 0xd
mov dword [esp + 0x1c], eax
jmp 0x10032ff7
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], 7
inc eax
jmp 0x1003321f
mov eax, dword [esp + 0x1c]
jmp 0x10032ffb
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
jmp 0x10032fff
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x20]
cmp byte [ecx + 0x40], 0
je 0x10033010
mov eax, 7
mov dword [esp + 0x1c], eax
jmp 0x1003301b
cmp eax, 0xc0a
je 0x1003321b
mov ecx, eax
call fcn.10070b10
push eax
push 0x103b5880
push dword [esp + 0x18]
lea eax, [edi + 0x2c]
push eax
call fcn.1000c1b0
add esp, 0x10
jmp 0x1003321b
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1c], 6
mov byte [eax + 0x56], 2
mov eax, dword [esp + 0x18]
inc eax
jmp 0x1003321f
mov eax, dword [esp + 0x20]
push str.too_many_levels_of_trigger_recursion
add eax, 0x2c
mov dword [esp + 0x20], 1
push edi
push eax
call fcn.1000c1b0
mov eax, dword [esp + 0x24]
add esp, 0xc
inc eax
jmp 0x1003321f
mov ecx, str.out_of
mov dword [esp + 0x1c], 1
cmp esi, 5
mov eax, str.into
cmovne eax, ecx
push eax
mov eax, dword [esp + 0x24]
push str.cannot_change__s_wal_mode_from_within_a_transaction
push dword [esp + 0x18]
add eax, 0x2c
push eax
call fcn.1000c1b0
mov eax, dword [esp + 0x28]
add esp, 0x10
inc eax
jmp 0x1003321f
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov ecx, dword [eax + edi*4 + 4]
mov edx, dword [eax + edi*4 + 8]
mov dword [esp + 0x78], ecx
test ecx, ecx
je 0x100330ef
cmp byte [esi + 0x3e], 0
jne 0x100330ef
test edx, edx
jne 0x100330ef
cmp dword [esi + 0x94], edx
jle 0x100330ef
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x10032f0f
movzx eax, byte [esi + 0x3e]
cmp ecx, eax
jne 0x10033135
test ecx, ecx
jne 0x10033102
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x10033111
test edx, edx
mov eax, str.cannot_rollback___no_transaction_is_active
mov ecx, str.cannot_commit___no_transaction_is_active
cmove eax, ecx
push eax
mov eax, dword [esp + 0x24]
add eax, 0x2c
push esi
push eax
call fcn.1000c1b0
mov eax, dword [esp + 0x24]
add esp, 0xc
mov dword [esp + 0x1c], 1
inc eax
jmp 0x1003321f
test edx, edx
je 0x1003316a
mov edx, 0x204
mov ecx, esi
call fcn.100709f0
mov byte [esi + 0x3e], 1
mov ecx, esi
call fcn.10070280
mov eax, dword [esp + 0x20]
mov edi, 0x65
cmp dword [eax + 0x50], 0
mov eax, 1
cmovne edi, eax
jmp 0x1003329b
mov ecx, dword [esp + 0x20]
mov edx, 1
call fcn.10028970
mov edi, eax
test edi, edi
jne 0x1003329b
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x20]
mov byte [esi + 0x3e], al
call fcn.100289e0
cmp eax, 5
jne 0x10033149
mov edx, dword [esp + 0x20]
mov edi, 5
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov dword [edx + 0x4c], eax
mov al, 1
sub al, byte [esp + 0x78]
mov byte [ecx + 0x3e], al
mov dword [edx + 0x50], edi
jmp 0x1003329f
mov esi, ecx
mov eax, dword [str.interrupted]
mov ecx, str.unknown_error
mov edx, dword [esp + 0x20]
test eax, eax
mov dword [esp + 0x1c], 9
cmovne ecx, eax
push ecx
push 0x103b5880
lea eax, [edx + 0x2c]
mov dword [edx + 0x50], 9
push esi
push eax
call fcn.1000c1b0
add esp, 0x10
jmp 0x1003321b
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
push str.out_of_memory
push ecx
add eax, 0x2c
mov byte [ecx + 0x40], 1
push eax
call fcn.1000c1b0
mov dword [esp + 0x28], 7
add esp, 0xc
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
push dword [edx + 0x2c]
mov dword [edx + 0x50], ecx
push dword [edx + 0xa8]
push eax
push str.statement_aborts_at__d:___s___s
push ecx
call fcn.1000dbb0
mov ecx, dword [esp + 0x34]
add esp, 0x14
call fcn.100289e0
cmp dword [esp + 0x1c], 0xc0a
mov ecx, dword [esp + 0x10]
jne 0x1003325d
mov byte [ecx + 0x40], 1
mov al, byte [esp + 0x6b]
mov edi, 1
test al, al
je 0x1003329f
movzx esi, al
mov eax, dword [esp + 0x10]
dec esi
mov ecx, esi
add ecx, ecx
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8 + 0xc]
call fcn.100466f0
add esp, 4
cmp esi, edi
je 0x1003329b
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x10]
push dword [eax + 0x1c]
call fcn.100466f0
add esp, 4
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x70]
mov dword [ecx + 0x20], eax
mov eax, dword [esp + 0x74]
mov dword [ecx + 0x24], eax
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x7c]
add dword [ecx + 0x7c], eax
call fcn.10027580
mov ecx, dword [esp + 0x33c]
mov eax, edi
pop edi
pop esi
xor ecx, esp
call fcn.100980ed
mov esp, ebp
pop ebp
ret