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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x3b4
mov eax, dword [0x1012b470]
xor eax, esp
mov dword [esp + 0x3b0], eax
push ebx
mov ebx, ecx
mov eax, dword [ebx + 0x68]
push esi
mov esi, dword [ebx + 0x58]
push edi
mov edi, dword [ebx]
mov cl, byte [edi + 0x54]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x3c], eax
xor eax, eax
mov dword [esp + 0x40], ebx
mov dword [esp + 0x38], eax
mov dword [esp + 0x48], edi
mov byte [esp + 0x8f], al
mov byte [esp + 0x78], cl
mov dword [esp + 0x94], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0x44], esi
mov dword [esp + 0xdc], eax
cmp dword [ebx + 0xa0], eax
je 0x10038b4e
push ebx
call fcn.10030b50
add esp, 4
xor eax, eax
cmp dword [edi + 0x184], eax
je 0x10038b77
mov ecx, dword [edi + 0x18c]
mov eax, dword [ebx + 0xb4]
xor edx, edx
div ecx
mov dword [esp + 0xb4], 0
sub ecx, edx
xor eax, eax
jmp 0x10038b81
or ecx, 0xffffffff
mov dword [esp + 0xb4], ecx
cmp dword [ebx + 0x24], 7
mov dword [esp + 0xb0], ecx
je 0x1003d390
mov dword [ebx + 0x24], eax
mov dword [ebx + 0x38], eax
mov dword [ebx + 0x3c], eax
mov edx, dword [edi + 0x138]
mov dword [edi + 0x1d8], eax
test edx, edx
jne 0x1003f0c4
mov eax, dword [ebx + 0x20]
mov ecx, dword [esp + 0x7c]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*4]
add dword [esp + 0xd0], 1
mov cl, byte [edi]
movzx edx, cl
adc dword [esp + 0xd4], 0
mov dword [esp + 0x3c], edi
mov dword [esp + 0x64], edx
cmp edx, 0xb5
ja case.0x10038be1.89
jmp dword [edx*4 + 0x1003f2e4]
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
lea ecx, [esi + edx*8]
mov eax, 4
mov word [ecx + 0x10], ax
mov edx, edi
sub edx, dword [esp + 0x7c]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x10038be1.9
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
test byte [esi + ecx*8 + 0x10], 4
lea eax, [esi + ecx*8]
je case.0x10038be1.89
mov eax, dword [eax]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x7c]
lea ecx, [eax + edx*4]
mov dword [esp + 0x3c], ecx
mov edi, dword [esp + 0x3c]
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0xc]
lea ecx, [esi + edx*8]
dec eax
cdq
mov dword [ecx], eax
mov eax, 4
mov dword [ecx + 4], edx
mov word [ecx + 0x10], ax
cmp dword [edi + 8], 0
jne 0x1003bc13
add edi, 0x14
jmp 0x10038bbc
mov edi, dword [edi + 4]
mov edx, dword [esp + 0x7c]
lea ecx, [edi + edi*4]
lea eax, [esi + ecx*8]
mov ecx, dword [eax]
lea ecx, [ecx + ecx*4]
mov ecx, dword [edx + ecx*4 + 8]
lea ecx, [ecx + ecx*4]
lea edx, [edx + ecx*4 - 0x14]
xor ecx, ecx
mov edi, edx
mov dword [esp + 0x3c], edx
mov word [eax + 0x10], cx
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
lea ecx, [esi + edx*8]
mov edx, dword [ecx]
mov dword [esp + 0x68], edx
mov edx, edi
mov edi, dword [esp + 0x7c]
mov eax, 4
mov word [ecx + 0x10], ax
sub edx, edi
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ecx], eax
mov eax, dword [esp + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + 4], edx
lea ecx, [edi + eax*4]
mov edi, ecx
mov dword [esp + 0x3c], ecx
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 0xc]
lea edx, [eax + eax*4]
test byte [esi + edx*8 + 0x10], 1
je case.0x10038be1.89
mov esi, dword [ebx + 0xd0]
test esi, esi
je 0x1003ec1f
cmp dword [edi + 4], 0
jne 0x1003ec1f
mov eax, dword [esi + 4]
mov ecx, dword [ebx + 0x28]
dec dword [ebx + 0xd8]
mov edx, dword [ebx + 0x2c]
mov dword [ebx + 0xd0], eax
mov eax, dword [esp + 0x48]
add dword [eax + 0x70], ecx
mov dword [eax + 0x68], ecx
mov dword [eax + 0x6c], edx
adc dword [eax + 0x74], edx
call fcn.100316e0
cmp dword [edi + 8], 4
jne 0x10038d5a
mov edx, dword [ebx + 0x68]
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*4 + 8]
dec eax
mov ecx, dword [ebx + 0x68]
mov edx, dword [ebx + 0x58]
lea eax, [eax + eax*4]
mov dword [esp + 0x7c], ecx
lea ecx, [ecx + eax*4]
mov edi, ecx
mov dword [esp + 0x44], edx
mov esi, edx
mov dword [esp + 0x3c], ecx
add edi, 0x14
jmp 0x10038bbc
mov eax, edi
mov edx, ebx
call fcn.100387a0
mov ecx, eax
mov eax, dword [edi + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
add edi, 0x14
jmp 0x10038bbc
mov eax, edi
mov edx, ebx
call fcn.100387a0
mov ecx, dword [edi + 0x10]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
add edi, 0x14
jmp 0x10038bbc
mov eax, edi
mov edx, ebx
call fcn.100387a0
mov edx, 8
mov word [eax + 0x10], dx
mov ecx, dword [edi + 0x10]
fld qword [ecx]
add edi, 0x14
fstp qword [eax]
jmp 0x10038bbc
mov eax, edi
mov edx, ebx
call fcn.100387a0
mov esi, eax
mov eax, dword [edi + 0x10]
mov dword [esp + 0x68], eax
call fcn.1000dfa0
cmp byte [esp + 0x78], 1
mov dword [edi + 4], eax
je 0x10038e6b
mov edx, dword [esp + 0x68]
push 0
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push edx
mov eax, esi
call fcn.1002eb50
add esp, 0x14
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003ed86
movzx ecx, byte [esp + 0x78]
mov eax, esi
call fcn.1002dd50
test eax, eax
jne 0x1003d38c
mov edi, dword [esp + 0x3c]
mov dword [esi + 0x18], eax
mov eax, 0x2000
or word [esi + 0x10], ax
cmp byte [edi + 1], 0xfa
jne 0x10038e57
mov eax, dword [edi + 0x10]
test eax, eax
je 0x10038e57
mov ecx, dword [esp + 0x48]
call fcn.1000a790
mov byte [edi + 1], 0xfa
mov ecx, dword [esi + 8]
mov dword [edi + 0x10], ecx
mov edx, dword [esi + 0xc]
mov dword [edi + 4], edx
mov edi, dword [esp + 0x3c]
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x48]
cmp eax, dword [ecx + 0x78]
jg 0x1003ed86
mov byte [edi], 0x49
mov eax, edi
mov edx, ebx
call fcn.100387a0
mov ecx, eax
mov edx, 0x2202
mov word [ecx + 0x10], dx
mov eax, dword [edi + 0x10]
mov dword [ecx + 8], eax
mov edx, dword [edi + 4]
mov al, byte [esp + 0x78]
mov dword [ecx + 0xc], edx
mov byte [ecx + 0x12], al
mov eax, dword [edi + 0xc]
test eax, eax
jle 0x1003ebee
mov ebx, dword [esp + 0x44]
lea esi, [eax + eax*4]
movzx eax, word [edi + 2]
mov ebx, dword [ebx + esi*8]
cdq
cmp ebx, eax
jne 0x1003ebee
mov eax, dword [esp + 0x44]
mov eax, dword [eax + esi*8 + 4]
cmp eax, edx
jne 0x1003ebee
mov ebx, dword [esp + 0x40]
mov edx, 0x2210
mov word [ecx + 0x10], dx
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov eax, edi
mov edx, ebx
call fcn.100387a0
mov esi, dword [edi + 0xc]
sub esi, dword [edi + 8]
mov ecx, dword [edi + 4]
neg ecx
sbb ecx, ecx
and ecx, 0x100
inc ecx
movzx ecx, cx
lea ebx, [eax + 0xc]
mov dword [esp + 0x68], ecx
mov word [eax + 0x10], cx
mov dword [ebx], 0
test esi, esi
jle 0x1003ebee
lea esp, [esp]
add ebx, 0x28
lea eax, [ebx - 0xc]
call fcn.1002e7f0
mov dx, word [esp + 0x68]
dec esi
mov word [ebx + 4], dx
mov dword [ebx], 0
test esi, esi
jg 0x10038f30
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
mov cx, word [esi + eax*8 + 0x10]
lea eax, [esi + eax*8]
mov edx, 0xffc1
and cx, dx
or cx, 1
mov word [eax + 0x10], cx
add edi, 0x14
jmp 0x10038bbc
mov eax, edi
mov edx, ebx
call fcn.100387a0
mov ecx, dword [edi + 0x10]
mov esi, eax
mov eax, dword [edi + 4]
test ecx, ecx
jne 0x10038fc3
call fcn.1002e810
call fcn.1002e010
test eax, eax
jne 0x1003d38c
mov al, byte [esp + 0x78]
mov edi, dword [esp + 0x3c]
mov byte [esi + 0x12], al
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
push 0
cdq
push 0
push edx
push eax
push ecx
mov eax, esi
call fcn.1002eb50
mov al, byte [esp + 0x8c]
add esp, 0x14
mov byte [esi + 0x12], al
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 4]
mov edx, dword [ebx + 0x64]
lea ecx, [eax + eax*4]
lea ecx, [edx + ecx*8 - 0x28]
mov dword [esp + 0x68], ecx
call fcn.1002e9c0
test eax, eax
jne 0x1003ed86
mov eax, dword [edi + 8]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov ecx, 0x9000
mov dword [esp + 0x54], eax
test word [eax + 0x10], cx
je 0x1003902a
call fcn.1002e7f0
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x68]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, dword [ecx + 0xc]
mov dword [eax + 0xc], edx
mov ecx, dword [ecx + 0x10]
mov dword [eax + 0x10], ecx
mov dx, cx
mov ecx, 0xafff
and dx, cx
mov ecx, 0x2040
or dx, cx
mov word [eax + 0x10], dx
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 4]
mov edx, dword [edi + 0xc]
lea eax, [eax + eax*4]
lea ebx, [esi + eax*8]
mov eax, dword [edi + 8]
lea ecx, [eax + eax*4]
mov dword [esp + 0x4c], edx
lea esi, [esi + ecx*8]
mov eax, esi
call fcn.1002eb10
mov edx, 0x4000
test word [esi + 0x10], dx
je 0x100390a7
mov eax, esi
call fcn.1002dfc0
test eax, eax
jne 0x1003d38c
mov edi, dword [esp + 0x3c]
add ebx, 0x28
add esi, 0x28
dec dword [esp + 0x4c]
jne 0x10039082
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 0xc]
mov dword [esp + 0x4c], eax
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
lea ebx, [esi + ecx*8]
lea esi, [esi + edx*8]
lea esp, [esp]
push 0x4000
push ebx
push esi
call fcn.1002ea20
mov eax, 0x4000
add esp, 0xc
test word [esi + 0x10], ax
je 0x1003910d
mov eax, esi
call fcn.1002dfc0
test eax, eax
jne 0x1003d38c
mov edi, dword [esp + 0x3c]
movzx eax, word [esi + 0x10]
test eax, 0x800
je 0x10039127
test byte [edi + 2], 2
je 0x10039127
and eax, 0xf7ff
mov word [esi + 0x10], ax
mov eax, dword [esp + 0x4c]
mov ecx, eax
dec eax
mov dword [esp + 0x4c], eax
test ecx, ecx
je 0x1003ebee
add esi, 0x28
add ebx, 0x28
jmp 0x100390e0
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
lea eax, [esi + edx*8]
push 0x4000
push eax
mov eax, dword [edi + 8]
lea ecx, [eax + eax*4]
lea edx, [esi + ecx*8]
push edx
call fcn.1002ea20
add esp, 0xc
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [esi + eax*8 + 4]
mov edx, dword [esi + eax*8]
push ecx
push edx
mov eax, dword [edi + 8]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
call fcn.1002e890
add esp, 8
add edi, 0x14
jmp 0x10038bbc
push 0
mov esi, ebx
call fcn.10032290
add esp, 4
test eax, eax
mov dword [esp + 0x38], eax
jne 0x1003ceda
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 8]
lea eax, [eax + eax*4]
lea edx, [esi + ecx*8]
lea ecx, [esi + eax*8]
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x54], eax
movzx eax, word [edx + 0x10]
mov dword [esp + 0x60], edx
mov dl, byte [ecx + 0x10]
or dl, al
mov dword [esp + 0x50], ecx
mov dword [esp + 0x5c], eax
test dl, 1
je 0x10039205
mov eax, dword [esp + 0x54]
call fcn.1002e7f0
add edi, 0x14
jmp 0x10038bbc
test al, 0x12
jne 0x1003923d
mov eax, dword [esp + 0x78]
push 0
push eax
mov eax, dword [esp + 0x68]
call fcn.1002e060
add esp, 8
test eax, eax
jne 0x1003d38c
mov ecx, dword [esp + 0x60]
mov dx, word [ecx + 0x10]
mov eax, 0xfffd
and dx, ax
movzx ecx, dx
mov dword [esp + 0x5c], ecx
jmp 0x1003926a
test eax, 0x400
je 0x1003926e
mov esi, dword [esp + 0x60]
call fcn.1002e010
test eax, eax
jne 0x1003d38c
mov edx, esi
mov ax, word [edx + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx edx, ax
mov dword [esp + 0x5c], edx
mov ecx, dword [esp + 0x50]
movzx eax, word [ecx + 0x10]
mov dword [esp + 0x64], eax
test al, 0x12
jne 0x100392ac
mov eax, dword [esp + 0x78]
push 0
push eax
mov eax, ecx
call fcn.1002e060
add esp, 8
test eax, eax
jne 0x1003d38c
mov ecx, dword [esp + 0x50]
mov dx, word [ecx + 0x10]
mov eax, 0xfffd
and dx, ax
movzx edx, dx
mov dword [esp + 0x64], edx
jmp 0x100392db
test eax, 0x400
je 0x100392db
mov esi, dword [esp + 0x50]
call fcn.1002e010
test eax, eax
jne 0x1003d38c
mov eax, esi
mov cx, word [eax + 0x10]
mov edx, 0xfffd
and cx, dx
movzx eax, cx
mov dword [esp + 0x64], eax
mov ecx, esi
mov edx, dword [esp + 0x60]
mov eax, dword [edx + 0xc]
add eax, dword [ecx + 0xc]
cdq
mov edi, eax
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0x78]
mov esi, edx
cdq
mov dword [esp + 0x1b4], esi
cmp esi, edx
jg 0x1003ed8a
jl 0x1003930b
cmp edi, eax
ja 0x1003ed8a
mov esi, dword [esp + 0x54]
xor eax, eax
cmp esi, ecx
sete al
lea ecx, [edi + 2]
mov edx, esi
call fcn.1002dd70
test eax, eax
jne 0x1003d38c
mov cx, word [esi + 0x10]
mov edx, 0xf242
and cx, dx
or cx, 2
mov word [esi + 0x10], cx
cmp esi, dword [esp + 0x50]
je 0x10039367
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 8]
mov eax, dword [esi + 8]
push ecx
push edx
push eax
call fcn.101025e0
mov cx, word [esp + 0x70]
mov edx, dword [esp + 0x5c]
add esp, 0xc
mov word [edx + 0x10], cx
mov eax, dword [esp + 0x60]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 8]
mov eax, dword [esi + 8]
push ecx
mov ecx, dword [esp + 0x54]
add eax, dword [ecx + 0xc]
push edx
push eax
call fcn.101025e0
mov dx, word [esp + 0x68]
mov eax, dword [esp + 0x6c]
add esp, 0xc
cmp byte [esp + 0x78], 1
mov word [eax + 0x10], dx
jbe 0x100393ab
mov ecx, dword [esp + 0x1b4]
and edi, 0xfffffffe
mov dword [esp + 0x1b4], ecx
mov edx, dword [esi + 8]
mov byte [edi + edx], 0
mov eax, dword [esi + 8]
mov dl, byte [esp + 0x78]
mov byte [edi + eax + 1], 0
mov dword [esi + 0xc], edi
mov edi, dword [esp + 0x3c]
mov ecx, 0x200
or word [esi + 0x10], cx
mov byte [esi + 0x12], dl
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
movzx edx, word [esi + eax*8 + 0x10]
lea ecx, [esi + eax*8]
mov eax, dword [edi + 8]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x50], eax
movzx eax, word [eax + 0x10]
mov dword [esp + 0x68], eax
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x54], eax
mov al, byte [esp + 0x68]
and al, dl
mov dword [esp + 0x60], ecx
test al, 4
jne 0x10039476
mov eax, dword [esp + 0x50]
movzx eax, word [eax + 0x10]
or al, dl
test al, 1
jne 0x100396da
movzx eax, word [ecx + 0x10]
and eax, 0x2d
je 0x1003943e
mov edx, eax
mov dword [esp + 0x4c], edx
jmp 0x10039452
mov eax, dword [esp + 0x60]
call fcn.100386b0
mov ecx, dword [esp + 0x60]
movzx eax, ax
mov dword [esp + 0x4c], eax
mov edx, dword [esp + 0x50]
mov ax, word [edx + 0x10]
and ax, 0x2d
jne 0x1003946b
mov eax, edx
call fcn.100386b0
mov ecx, dword [esp + 0x60]
movzx eax, ax
and al, byte [esp + 0x4c]
test al, 4
je 0x100394c6
mov edx, dword [esp + 0x50]
mov edx, dword [edx]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0xb8], edx
mov edx, dword [esp + 0x50]
mov edx, dword [edx + 4]
mov dword [esp + 0xbc], edx
movzx edx, byte [edi]
add edx, 0xffffff96
cmp edx, 3
ja case.default.0x100394a5
jmp dword [edx*4 + 0x1003f5bc]
push ecx
push eax
lea eax, [esp + 0xc0]
push eax
call fcn.1000fd40
add esp, 0xc
test eax, eax
je 0x100395ad
mov eax, dword [esp + 0x60]
call fcn.1002e370
fstp qword [esp + 0x68]
mov eax, dword [esp + 0x50]
call fcn.1002e370
movzx eax, byte [edi]
add eax, 0xffffff96
cmp eax, 3
ja case.default.0x100394eb
jmp dword [eax*4 + 0x1003f5cc]
push ecx
push eax
lea edx, [esp + 0xc0]
call fcn.1000fde0
add esp, 8
test eax, eax
jne 0x100394c6
jmp 0x100395ad
push ecx
push eax
lea ecx, [esp + 0xc0]
push ecx
call fcn.1000fe30
add esp, 0xc
test eax, eax
jne 0x100394c6
jmp 0x100395ad
mov edx, eax
or edx, ecx
je 0x100396da
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x10039555
cmp dword [esp + 0xb8], 0
jne 0x10039555
cmp dword [esp + 0xbc], 0x80000000
je 0x100394c6
push ecx
mov ecx, dword [esp + 0xbc]
push eax
mov eax, dword [esp + 0xc4]
push eax
push ecx
call fcn.10104610
jmp 0x1003959f
mov edx, eax
or edx, ecx
je 0x100396da
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x10039588
mov eax, 1
xor ecx, ecx
push ecx
mov ecx, dword [esp + 0xbc]
push eax
mov eax, dword [esp + 0xc4]
push eax
push ecx
call fcn.101046c0
mov dword [esp + 0xbc], edx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0xb8]
mov ecx, dword [esp + 0xbc]
mov dword [eax], edx
mov dx, word [eax + 0x10]
mov dword [eax + 4], ecx
mov ecx, 0xf244
and dx, cx
or dx, 4
mov word [eax + 0x10], dx
add edi, 0x14
jmp 0x10038bbc
fadd qword [esp + 0x68]
jmp 0x100396a2
fsub qword [esp + 0x68]
jmp 0x100396a2
fmul qword [esp + 0x68]
jmp 0x100396a2
fld qword [esp + 0x68]
fld st(0)
fldz
fucompp
fnstsw ax
test ah, 0x44
jnp 0x100396d6
fdivp st(1)
jmp 0x100396a2
mov edx, dword [esp + 0x60]
fstp st(0)
call fcn.1002e2f0
mov dword [esp + 0xf4], edx
mov edx, dword [esp + 0x50]
mov dword [esp + 0xf0], eax
call fcn.1002e2f0
mov ecx, dword [esp + 0xf0]
or ecx, dword [esp + 0xf4]
je 0x100396da
mov ecx, dword [esp + 0xf0]
and ecx, dword [esp + 0xf4]
cmp ecx, 0xffffffff
jne 0x10039676
mov dword [esp + 0xf0], 1
mov dword [esp + 0xf4], 0
mov ecx, dword [esp + 0xf4]
push ecx
mov ecx, dword [esp + 0xf4]
push ecx
push edx
push eax
call fcn.101046c0
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x1ac], edx
fild qword [esp + 0x1a8]
sub esp, 8
fst qword [esp]
call fcn.1000df70
add esp, 8
test eax, eax
jne 0x100396d8
mov eax, dword [esp + 0x54]
mov dx, word [eax + 0x10]
fstp qword [eax]
mov ecx, 0xf248
and dx, cx
or dx, 8
mov word [eax + 0x10], dx
add edi, 0x14
jmp 0x10038bbc
fstp st(1)
fstp st(0)
mov eax, dword [esp + 0x54]
call fcn.1002e7f0
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 4]
test eax, eax
je case.0x10038be1.89
lea edx, [eax + eax*4]
push 0
push 0
lea eax, [esi + edx*8]
call fcn.1002e890
add esp, 8
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
lea edx, [esi + edx*8]
mov dword [esp + 0x54], eax
mov al, byte [edx + 0x10]
or al, byte [ecx + 0x10]
mov dword [esp + 0x60], ecx
test al, 1
je 0x1003974e
mov eax, dword [esp + 0x54]
call fcn.1002e7f0
add edi, 0x14
jmp 0x10038bbc
call fcn.1002e2f0
mov dword [esp + 0x9c], edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x98], eax
call fcn.1002e2f0
mov dword [esp + 0xe0], eax
mov al, byte [edi]
cmp al, 0x66
jne 0x10039791
mov ecx, dword [esp + 0xe0]
and dword [esp + 0x98], ecx
and dword [esp + 0x9c], edx
jmp 0x100398e9
cmp al, 0x67
jne 0x100397af
mov eax, dword [esp + 0xe0]
or dword [esp + 0x98], eax
or dword [esp + 0x9c], edx
jmp 0x100398e9
mov ecx, dword [esp + 0xe0]
or ecx, edx
je 0x100398e9
test edx, edx
jg 0x1003980a
jl 0x100397ce
cmp dword [esp + 0xe0], 0
jae 0x100397fa
mov cl, 0xd1
sub cl, al
mov al, cl
cmp edx, 0xffffffff
jl 0x1003980a
jg 0x100397e5
cmp dword [esp + 0xe0], 0xffffffc0
jbe 0x1003980a
mov ecx, dword [esp + 0xe0]
neg ecx
adc edx, 0
neg edx
mov dword [esp + 0xe0], ecx
test edx, edx
jl 0x10039851
jg 0x1003980a
cmp dword [esp + 0xe0], 0x40
jb 0x10039851
cmp dword [esp + 0x9c], 0
jg 0x1003983b
jl 0x10039820
cmp dword [esp + 0x98], 0
jae 0x1003983b
cmp al, 0x68
je 0x1003983b
or eax, 0xffffffff
cdq
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], edx
jmp 0x100398e9
xor eax, eax
cdq
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], edx
jmp 0x100398e9
mov edx, dword [esp + 0x9c]
mov ecx, dword [esp + 0xe0]
cmp al, 0x68
mov eax, dword [esp + 0x98]
jne 0x1003987f
call fcn.1010a5b0
mov dword [esp + 0xe8], eax
mov dword [esp + 0xec], edx
jmp 0x100398cd
call fcn.10109410
cmp dword [esp + 0x9c], 0
mov dword [esp + 0xe8], eax
mov dword [esp + 0xec], edx
jg 0x100398cd
jl 0x100398a8
cmp dword [esp + 0x98], 0
jae 0x100398cd
mov ecx, 0x40
sub ecx, dword [esp + 0xe0]
or eax, 0xffffffff
or edx, 0xffffffff
call fcn.1010a5b0
or dword [esp + 0xe8], eax
or dword [esp + 0xec], edx
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xec]
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x9c]
mov dword [eax], ecx
mov cx, word [eax + 0x10]
mov dword [eax + 4], edx
mov edx, 0xf244
and cx, dx
or cx, 4
mov word [eax + 0x10], cx
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x44]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
call fcn.1002e490
mov eax, dword [edi + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
movzx eax, word [esi + edx*8 + 0x10]
lea ecx, [esi + edx*8]
mov dword [esp + 0x60], ecx
test al, 4
jne 0x100399a7
test al, 0x28
jne 0x1003996f
test al, 2
je 0x10039988
push 1
mov eax, ecx
call fcn.10038520
add esp, 4
jmp 0x10039984
mov edi, dword [esp + 0x60]
call fcn.1002e3f0
mov esi, dword [esp + 0x44]
mov ebx, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x60]
movzx eax, word [ecx + 0x10]
test al, 4
jne 0x100399a7
cmp dword [edi + 8], 0
jne 0x1003bc13
mov dword [esp + 0x38], 0x14
jmp 0x1003ceda
and eax, 0xf244
or eax, 4
mov word [ecx + 0x10], ax
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 0x24
lea eax, [esi + eax*8]
je case.0x10038be1.89
mov esi, eax
call fcn.1002e500
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
lea esi, [esi + ecx*8]
mov edx, 0x400
test word [esi + 0x10], dx
je 0x10039a0b
call fcn.1002e010
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003ceda
mov edi, dword [esp + 0x3c]
mov bl, byte [esp + 0x78]
mov cl, byte [edi + 8]
mov eax, esi
call fcn.1002e700
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003ceda
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [edi + 0xc]
lea edx, [eax + eax*4]
movzx eax, word [ecx + 0x10]
lea edx, [esi + edx*8]
mov dword [esp + 0x58], eax
movzx eax, word [edx + 0x10]
mov dword [esp + 0x54], eax
and eax, dword [esp + 0x58]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x50], edx
test al, 4
je 0x10039af5
mov eax, dword [edx]
mov esi, dword [ecx]
mov edx, dword [edx + 4]
mov ecx, dword [ecx + 4]
cmp edx, ecx
jl 0x10039a9d
jg 0x10039a83
cmp eax, esi
jbe 0x10039a93
mov ecx, dword [esp + 0x64]
cmp byte [ecx + 0x10112fe8], 0
jmp 0x10039b42
cmp edx, ecx
jg 0x10039ac9
jl 0x10039a9d
cmp eax, esi
jae 0x10039ac9
mov edx, dword [esp + 0x64]
cmp byte [edx + 0x10112fdc], 0
jne 0x1003bc13
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
mov dword [esp + 0x94], 0xffffffff
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [esp + 0x64]
cmp byte [eax + 0x10112fe2], 0
jne 0x1003bc13
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
mov dword [esp + 0x94], 0
add edi, 0x14
jmp 0x10038bbc
mov ecx, dword [esp + 0x54]
or ecx, dword [esp + 0x58]
test cl, 1
je 0x10039b63
movzx ecx, word [edi + 2]
test cl, cl
jns 0x10039b3f
test al, 1
je 0x10039b29
test dword [esp + 0x54], 0x100
jne 0x10039b29
movzx edx, byte [edi]
movzx ecx, byte [edx + 0x10112fe2]
xor eax, eax
jmp 0x10039c9f
test byte [esp + 0x54], 1
mov eax, 0
sete al
lea eax, [eax + eax - 1]
jmp 0x10039c77
test cl, 0x10
jne 0x1003bc13
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
mov dword [esp + 0x94], 1
add edi, 0x14
jmp 0x10038bbc
mov al, byte [edi + 2]
and al, 0x47
cmp al, 0x43
jl 0x10039bbe
test cl, 2
je 0x10039c5b
mov cl, byte [esp + 0x58]
and cl, 0x2e
cmp cl, 2
jne 0x10039b9b
mov eax, dword [esp + 0x60]
push 0
call fcn.10038520
mov edx, dword [esp + 0x54]
movzx eax, word [edx + 0x10]
add esp, 4
mov dword [esp + 0x54], eax
mov cl, byte [esp + 0x54]
and cl, 0x2e
cmp cl, 2
jne 0x10039c5b
mov eax, dword [esp + 0x50]
push 0
call fcn.10038520
add esp, 4
jmp 0x10039c5b
cmp al, 0x42
jne 0x10039c5b
test cl, 2
je 0x10039c5b
mov al, byte [esp + 0x58]
test al, 2
jne 0x10039c1e
test al, 0x2c
je 0x10039c1e
mov edx, dword [esp + 0x78]
mov esi, dword [esp + 0x60]
push 1
push edx
mov eax, esi
call fcn.1002e060
mov ax, word [esi + 0x10]
xor ax, word [esp + 0x60]
mov ecx, 0xdbf
and ax, cx
xor ax, word [esi + 0x10]
add esp, 8
movzx edx, ax
mov dword [esp + 0x58], edx
cmp esi, dword [esp + 0x50]
jne 0x10039c1e
mov eax, edx
or eax, 2
movzx ecx, ax
mov dword [esp + 0x54], ecx
mov al, byte [esp + 0x54]
test al, 2
jne 0x10039c5b
test al, 0x2c
je 0x10039c5b
mov edx, dword [esp + 0x78]
mov esi, dword [esp + 0x50]
push 1
push edx
mov eax, esi
call fcn.1002e060
mov ax, word [esi + 0x10]
xor ax, word [esp + 0x5c]
mov ecx, 0xdbf
and ax, cx
add esp, 8
xor ax, word [esi + 0x10]
movzx edx, ax
mov dword [esp + 0x54], edx
mov edi, dword [edi + 0x10]
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x50]
call fcn.10033440
mov edi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
test eax, eax
jns 0x10039c87
movzx ecx, byte [edi]
movzx ecx, byte [ecx + 0x10112fdc]
jmp 0x10039c9f
jne 0x10039c95
movzx edx, byte [edi]
movzx ecx, byte [edx + 0x10112fe2]
jmp 0x10039c9f
movzx ecx, byte [edi]
movzx ecx, byte [ecx + 0x10112fe8]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x94], eax
movzx eax, word [esp + 0x54]
mov word [edx + 0x10], ax
movzx eax, word [esp + 0x58]
mov edx, dword [esp + 0x60]
mov word [edx + 0x10], ax
test ecx, ecx
jne 0x1003bc13
add edi, 0x14
jmp 0x10038bbc
cmp dword [esp + 0x94], 0
je 0x1003bc13
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
test byte [edi + 2], 1
jne 0x10039cfe
mov dword [esp + 0x4c], 0
jmp 0x10039d08
mov eax, dword [edi - 4]
add eax, 4
mov dword [esp + 0x4c], eax
mov ecx, dword [edi + 0x10]
mov eax, dword [edi + 0xc]
mov edx, dword [edi + 4]
mov dword [esp + 0x5c], ecx
mov ecx, dword [edi + 8]
mov dword [esp + 0x68], eax
mov dword [esp + 0x74], edx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x58], 0
test eax, eax
jle case.0x10038be1.89
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x58]
add edx, 0x14
mov dword [esp + 0x64], edx
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x44]
test eax, eax
je 0x10039d52
mov ebx, dword [eax + ebx*4]
mov eax, dword [esp + 0x64]
mov edi, dword [eax]
mov edx, dword [esp + 0x5c]
mov eax, dword [edx + 0x10]
mov edx, dword [esp + 0x58]
movzx esi, byte [eax + edx]
mov eax, dword [esp + 0x50]
add eax, ebx
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x74]
add eax, ebx
lea eax, [eax + eax*4]
lea edx, [ecx + edx*8]
lea eax, [ecx + eax*8]
and esi, 1
call fcn.10033440
mov dword [esp + 0x94], eax
test eax, eax
jne 0x10039dba
mov ebx, dword [esp + 0x58]
add dword [esp + 0x64], 4
inc ebx
mov dword [esp + 0x58], ebx
cmp ebx, dword [esp + 0x68]
jl 0x10039d43
mov edi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov ecx, dword [esp + 0x5c]
mov edx, dword [ecx + 0x10]
mov ecx, dword [esp + 0x58]
test byte [ecx + edx], 2
je 0x10039df9
mov edx, dword [esp + 0x74]
lea ecx, [ebx + edx]
mov edx, dword [esp + 0x44]
lea ecx, [ecx + ecx*4]
test byte [edx + ecx*8 + 0x10], 1
jne 0x10039df0
mov ecx, dword [esp + 0x50]
add ecx, ebx
lea ecx, [ecx + ecx*4]
test byte [edx + ecx*8 + 0x10], 1
je 0x10039df9
neg eax
mov dword [esp + 0x94], eax
mov edi, dword [esp + 0x3c]
test esi, esi
je 0x1003ebee
mov edx, dword [esp + 0x94]
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
neg edx
mov dword [esp + 0x94], edx
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x7c]
test eax, eax
jns 0x10039e4c
mov edi, dword [edi + 4]
lea eax, [edi + edi*4]
lea edx, [ecx + eax*4 - 0x14]
mov edi, edx
mov dword [esp + 0x3c], edx
add edi, 0x14
jmp 0x10038bbc
jne 0x10039e66
mov edi, dword [edi + 8]
lea eax, [edi + edi*4]
lea edx, [ecx + eax*4 - 0x14]
mov edi, edx
mov dword [esp + 0x3c], edx
add edi, 0x14
jmp 0x10038bbc
mov edi, dword [edi + 0xc]
lea eax, [edi + edi*4]
lea edx, [ecx + eax*4 - 0x14]
mov edi, edx
mov dword [esp + 0x3c], edx
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
push 2
lea eax, [esi + eax*8]
call fcn.1002e3a0
mov dword [esp + 0x50], eax
mov eax, dword [edi + 8]
lea ecx, [eax + eax*4]
add esp, 4
push 2
lea eax, [esi + ecx*8]
call fcn.1002e3a0
mov ecx, dword [esp + 0x50]
add esp, 4
cmp byte [edi], 0x2c
jne 0x10039ebe
lea edx, [eax + ecx*2]
movzx eax, byte [ecx + edx + 0x10113a18]
jmp 0x10039ec9
lea eax, [eax + ecx*2]
movzx eax, byte [ecx + eax + 0x10113a24]
mov ecx, dword [edi + 0xc]
lea ecx, [ecx + ecx*4]
lea ecx, [esi + ecx*8]
cmp eax, 2
jne 0x10039ef3
mov dx, word [ecx + 0x10]
mov eax, 0xf241
and dx, ax
or dx, 1
mov word [ecx + 0x10], dx
add edi, 0x14
jmp 0x10038bbc
cdq
mov dword [ecx + 4], edx
mov dx, word [ecx + 0x10]
mov dword [ecx], eax
mov eax, 0xf244
and dx, ax
or dx, 4
mov word [ecx + 0x10], dx
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 4]
mov ecx, dword [edi + 0xc]
lea edx, [eax + eax*4]
push ecx
lea eax, [esi + edx*8]
call fcn.1002e3a0
add esp, 4
xor eax, dword [edi + 0x10]
cdq
push edx
push eax
jmp 0x1003917a
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
test byte [esi + ecx*8 + 0x10], 1
lea eax, [esi + ecx*8]
mov ecx, dword [edi + 8]
lea edx, [ecx + ecx*4]
lea ecx, [esi + edx*8]
mov dword [esp + 0x54], ecx
jne 0x100391f4
push 0
call fcn.1002e3a0
add esp, 4
neg eax
sbb eax, eax
inc eax
cdq
push edx
push eax
mov eax, dword [esp + 0x5c]
call fcn.1002e890
add esp, 8
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [edi + 8]
lea eax, [eax + eax*4]
lea ebx, [esi + edx*8]
lea esi, [esi + eax*8]
mov eax, esi
call fcn.1002e7f0
test byte [ebx + 0x10], 1
jne 0x1003ebee
mov ecx, 4
mov edx, ebx
mov word [esi + 0x10], cx
call fcn.1002e2f0
mov ebx, dword [esp + 0x40]
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [ebx + 0xd0]
mov dword [esp + 0x4c], eax
test eax, eax
je 0x1003a039
mov ecx, edi
sub ecx, dword [ebx + 0x68]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov esi, eax
and esi, 7
mov edx, eax
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + 0x14]
mov ebx, 1
mov ecx, esi
shl ebx, cl
shr edx, 3
test byte [edx + eax], bl
jne 0x1003bc13
mov ecx, dword [esp + 0x4c]
mov eax, dword [ecx + 0x14]
mov ebx, dword [esp + 0x40]
add eax, edx
mov dl, 1
mov ecx, esi
mov esi, dword [esp + 0x44]
shl dl, cl
or byte [eax], dl
mov edx, dword [ebx + 0x68]
mov eax, dword [edx + 4]
mov dword [edi + 4], eax
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [ebx + 0x68]
mov ecx, dword [eax + 4]
cmp ecx, dword [edi + 4]
je 0x1003bc13
mov ebx, dword [esp + 0x40]
mov edx, dword [ebx + 0x68]
mov eax, dword [edx + 4]
mov esi, dword [esp + 0x44]
mov dword [edi + 4], eax
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 4]
mov ecx, dword [edi + 0xc]
lea edx, [eax + eax*4]
push ecx
lea eax, [esi + edx*8]
call fcn.1002e3a0
add esp, 4
test eax, eax
jne 0x1003bc13
add edi, 0x14
jmp 0x10038bbc
xor eax, eax
cmp dword [edi + 0xc], eax
sete al
push eax
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
lea eax, [esi + ecx*8]
call fcn.1002e3a0
add esp, 4
test eax, eax
je 0x1003bc13
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
test byte [esi + edx*8 + 0x10], 1
jne 0x1003bc13
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 4]
test eax, eax
js 0x1003a113
mov ecx, dword [ebx + 0x60]
mov eax, dword [ecx + eax*4]
movzx edx, word [eax + 0x3e]
mov ecx, dword [edi + 0xc]
cmp ecx, edx
jge 0x1003a10e
mov eax, dword [eax + ecx*4 + 0x5c]
cmp eax, 0xc
jb 0x1003a105
test al, 1
mov eax, 0
sete al
lea eax, [eax*4 + 4]
jmp 0x1003a134
movzx eax, byte [eax + 0x10113a30]
jmp 0x1003a134
mov ecx, dword [edi + 0x10]
jmp 0x1003a128
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
movzx ecx, word [esi + eax*8 + 0x10]
and ecx, 0x3f
movzx ecx, byte [ecx + 0x10113928]
dec ecx
mov edx, 1
shl dx, cl
movzx eax, dx
test word [edi + 2], ax
jne 0x1003bc13
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
jne 0x1003a185
mov eax, dword [edi + 0xc]
lea ecx, [eax + eax*4]
test byte [esi + ecx*8 + 0x10], 1
jne 0x1003a185
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
push 0
push 0
lea eax, [esi + edx*8]
call fcn.1002e890
add esp, 8
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 8]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
call fcn.1002e7f0
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
test byte [esi + ecx*8 + 0x10], 1
je 0x1003bc13
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + edx*4]
test eax, eax
je case.0x10038be1.89
cmp byte [eax + 2], 0
je case.0x10038be1.89
mov eax, dword [edi + 0xc]
lea ecx, [eax + eax*4]
lea eax, [esi + ecx*8]
call fcn.1002e7f0
jmp 0x1003bc13
mov eax, dword [esp + 0x40]
mov edx, dword [edi + 4]
mov ecx, dword [eax + 0x60]
mov ebx, dword [ecx + edx*4]
mov edx, dword [edi + 8]
mov dword [esp + 0x54], edx
mov edi, edi
mov eax, dword [ebx + 0x20]
mov ecx, dword [esp + 0x40]
mov edx, dword [ebx + 0x48]
mov dword [esp + 0x58], edx
cmp eax, dword [ecx + 0x1c]
je 0x1003a256
cmp byte [ebx + 2], 0
jne 0x1003a27b
cmp byte [ebx + 3], 0
mov eax, dword [ebx + 0x2c]
mov dword [esp + 0x4c], eax
je 0x1003a24b
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x1003a2c4
mov edx, dword [esp + 0x54]
mov eax, dword [eax + edx*4 + 4]
test eax, eax
je 0x1003a2c4
mov ebx, dword [ebx + 0x28]
dec eax
mov dword [esp + 0x54], eax
jmp 0x1003a200
cmp byte [eax], 0
je 0x1003a2db
jmp 0x1003a262
mov eax, dword [ebx + 0x2c]
cmp byte [eax], 0
je 0x1003a362
mov edi, ebx
call fcn.10032ce0
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003ced6
mov edi, dword [esp + 0x3c]
jmp 0x1003a200
cmp byte [ebx], 3
jne 0x1003a2a2
mov eax, dword [ebx + 0x24]
test eax, eax
jle 0x1003a2a2
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x44]
lea eax, [eax + ecx*8]
mov ecx, dword [eax + 0xc]
mov dword [ebx + 0x54], ecx
mov dword [ebx + 0x50], ecx
mov ecx, dword [eax + 8]
mov dword [ebx + 0x4c], ecx
jmp 0x1003a2ff
mov eax, dword [edi + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x44]
lea eax, [eax + edx*8]
call fcn.1002e7f0
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov esi, ebx
call fcn.10032c70
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003ced6
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x4c]
mov ecx, esi
call fcn.10024ee0
mov ecx, dword [esi + 0x2c]
mov dword [ebx + 0x50], ecx
mov ecx, dword [esp + 0x4c]
lea esi, [ebx + 0x54]
call fcn.100254c0
mov edx, dword [esp + 0x58]
mov dword [ebx + 0x4c], eax
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + 0x1c]
mov eax, dword [ebx + 0x4c]
mov dword [ebx + 0x20], ecx
movzx eax, byte [eax]
mov dword [edx], eax
cmp eax, 0x80
jae 0x1003a321
mov dword [ebx + 0x34], 1
jmp 0x1003a335
mov esi, dword [esp + 0x58]
mov ecx, dword [ebx + 0x4c]
call fcn.1000fb90
movzx ecx, al
mov dword [ebx + 0x34], ecx
mov edx, esi
mov ecx, dword [ebx + 0x54]
xor eax, eax
mov word [ebx + 0x3e], ax
cmp ecx, dword [edx]
jae 0x1003a46f
mov dword [ebx + 0x4c], eax
mov dword [ebx + 0x54], eax
mov eax, dword [edx]
cmp eax, 0x18003
ja 0x1003a544
cmp eax, dword [ebx + 0x50]
ja 0x1003a544
movzx ecx, word [ebx + 0x3e]
mov eax, dword [esp + 0x54]
cmp ecx, eax
ja 0x1003a5bb
mov eax, dword [ebx + 0x34]
cmp eax, dword [edx]
jae 0x1003a570
mov esi, dword [ebx + 0x4c]
test esi, esi
jne 0x1003a3f8
xor eax, eax
mov dword [esp + 0x200], eax
mov dword [esp + 0x204], eax
mov dword [esp + 0x208], eax
mov dword [esp + 0x20c], eax
mov dword [esp + 0x210], eax
mov dword [esp + 0x214], eax
mov dword [esp + 0x218], eax
mov dword [esp + 0x21c], eax
mov dword [esp + 0x220], eax
mov dword [esp + 0x224], eax
mov eax, dword [edx]
mov edx, dword [ebx + 0x2c]
lea ecx, [esp + 0x200]
call fcn.1002ee70
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003ced6
mov esi, dword [esp + 0x208]
mov edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x58]
movzx eax, word [ebx + 0x3e]
mov ecx, dword [edx + eax*4]
mov edx, dword [edx]
mov dword [esp + 0xc8], ecx
mov ecx, dword [ebx + 0x34]
add ecx, esi
add edx, esi
mov dword [esp + 0x4c], edx
lea edx, [ebx + eax*4 + 0x5c]
mov dword [esp + 0x5c], esi
mov esi, dword [esp + 0xc8]
mov dword [esp + 0x74], eax
mov dword [esp + 0xcc], 0
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], edx
movzx eax, byte [ecx]
mov edx, dword [esp + 0x64]
mov dword [esp + 0x50], eax
mov dword [edx], eax
cmp eax, 0x80
jae 0x1003a474
movzx eax, al
movzx eax, byte [eax + 0x101138a8]
cdq
inc ecx
add esi, eax
adc dword [esp + 0xcc], edx
mov dword [esp + 0x60], ecx
mov dword [esp + 0xc8], esi
jmp 0x1003a4b1
mov esi, dword [ebx + 0x4c]
jmp 0x1003a3f8
mov ecx, dword [esp + 0x60]
lea esi, [esp + 0x50]
call fcn.1000fb90
mov edx, dword [esp + 0x64]
movzx ecx, al
mov eax, dword [esp + 0x50]
add dword [esp + 0x60], ecx
mov dword [edx], eax
call fcn.10032d20
add dword [esp + 0xc8], eax
mov esi, dword [esp + 0xc8]
mov ecx, dword [esp + 0x60]
adc dword [esp + 0xcc], 0
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x58]
add dword [esp + 0x64], 4
inc eax
mov dword [edx + eax*4], esi
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x74], eax
cmp eax, dword [esp + 0x54]
ja 0x1003a4da
cmp ecx, edx
jb 0x1003a439
jmp 0x1003a4de
cmp ecx, edx
jb 0x1003a4f2
cmp ecx, edx
ja 0x1003a504
cmp esi, dword [ebx + 0x50]
jne 0x1003a504
xor edx, edx
cmp dword [esp + 0xcc], edx
jne 0x1003a504
xor edx, edx
cmp dword [esp + 0xcc], edx
jb 0x1003a513
ja 0x1003a504
cmp esi, dword [ebx + 0x50]
jbe 0x1003a513
mov eax, dword [esp + 0x58]
cmp dword [eax], 0
jne 0x1003a532
mov ecx, dword [esp + 0x4c]
xor eax, eax
sub ecx, dword [esp + 0x5c]
cmp dword [ebx + 0x4c], 0
mov word [ebx + 0x3e], ax
mov dword [ebx + 0x34], ecx
jne 0x1003a578
lea eax, [esp + 0x200]
call fcn.1002e2a0
jmp 0x1003a578
cmp dword [ebx + 0x4c], 0
jne 0x1003a544
lea eax, [esp + 0x200]
call fcn.1002e2a0
mov ecx, dword [esp + 0x7c]
mov eax, dword [ecx + 0xc]
test eax, eax
jle 0x1003ed61
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
lea edx, [eax + eax*4]
lea eax, [ecx + edx*4 - 0x14]
mov edi, eax
mov dword [esp + 0x3c], eax
add edi, 0x14
jmp 0x10038bbc
mov dword [esp + 0x50], 0
movzx ecx, word [ebx + 0x3e]
cmp ecx, dword [esp + 0x54]
ja 0x1003a5c3
cmp byte [edi + 1], 0xf6
mov eax, dword [edi + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x44]
lea eax, [eax + edx*8]
jne 0x1003a2af
mov ecx, dword [edi + 0x10]
push 0x2000
push ecx
push eax
call fcn.1002ea20
mov ebx, dword [esp + 0x4c]
mov esi, dword [esp + 0x50]
add esp, 0xc
add edi, 0x14
jmp 0x10038bbc
mov edx, dword [ebx + eax*4 + 0x5c]
mov dword [esp + 0x50], edx
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x44]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov edx, 0x9000
test word [esi + 0x10], dx
je 0x1003a5e2
mov eax, esi
call fcn.1002e7f0
mov ecx, dword [ebx + 0x54]
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x54]
cmp ecx, dword [edx + eax*4 + 4]
jb 0x1003a6b3
mov ecx, dword [ebx + 0x4c]
add ecx, dword [edx + eax*4]
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x5c], ecx
cmp ebx, 0xc
jae 0x1003a623
mov edx, esi
mov eax, ebx
call fcn.10032dd0
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov dl, byte [esp + 0x78]
add ebx, 0xfffffff4
shr ebx, 1
mov byte [esi + 0x12], dl
lea edx, [ebx + 2]
mov dword [esi + 0xc], ebx
cmp dword [esi + 0x18], edx
jge 0x1003a66d
mov eax, dword [esp + 0x48]
cmp ebx, dword [eax + 0x78]
jg 0x1003ed86
mov ecx, 1
mov word [esi + 0x10], cx
mov ecx, edx
xor eax, eax
mov edx, esi
call fcn.1002dd70
test eax, eax
jne 0x1003d38c
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x5c]
jmp 0x1003a673
mov edx, dword [esi + 0x20]
mov dword [esi + 8], edx
mov eax, dword [esi + 8]
push ebx
push ecx
push eax
call fcn.101025e0
mov ecx, dword [esi + 8]
mov eax, dword [esp + 0x5c]
mov byte [ebx + ecx], 0
mov edx, dword [esi + 8]
mov byte [ebx + edx + 1], 0
mov ebx, dword [esp + 0x4c]
and eax, 1
mov ax, word [eax*2 + 0x10113a3c]
add esp, 0xc
mov word [esi + 0x10], ax
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
movzx ecx, byte [esp + 0x78]
mov byte [esi + 0x12], cl
mov cl, byte [edi + 2]
and cl, 0xc0
je 0x1003a6dc
cmp cl, 0x80
je 0x1003a6e9
mov eax, dword [esp + 0x50]
cmp eax, 0xc
jb 0x1003a6e0
test al, 1
je 0x1003a6e9
cmp cl, 0xc0
je 0x1003a6e9
jmp 0x1003a6e0
mov eax, dword [esp + 0x50]
call fcn.10032d20
test eax, eax
jne 0x1003a709
mov eax, dword [esp + 0x50]
mov edx, esi
mov ecx, 0x10113038
call fcn.10032dd0
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov edx, dword [esp + 0xdc]
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + 0x1c]
mov eax, dword [esp + 0x54]
push esi
push edx
mov edx, dword [esp + 0x60]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [esp + 0x5c]
push 0
push ecx
push edx
push eax
push ebx
call fcn.100388b0
add esp, 0x20
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003ed74
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov ecx, dword [edi + 0x10]
mov eax, dword [ecx + 4]
mov dword [esp + 0x68], eax
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
lea eax, [esi + edx*8]
xor edx, edx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x60], eax
mov dword [esp + 0x4c], 0
cmp dx, word [ecx + 0x22]
jge case.0x10038be1.89
mov eax, dword [esp + 0x68]
add eax, 0xe
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x5c]
movzx eax, word [ecx]
test al, 0x60
je 0x1003a7ad
test al, 0x20
jne 0x1003a873
cmp dword [edi + 0xc], 0
jne case.default.0x1003a7ee
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x78]
mov cl, byte [eax - 6]
mov eax, dword [esp + 0x60]
push edx
call fcn.100385b0
mov ecx, dword [esp + 0x64]
movzx eax, word [ecx + 0x10]
add esp, 4
test al, 1
jne case.default.0x1003a7ee
mov edx, dword [esp + 0x5c]
mov ecx, dword [edx - 0xa]
shr ecx, 4
and ecx, 0xf
add ecx, 0xfffffffe
cmp ecx, 4
ja case.default.0x1003a7ee
jmp dword [ecx*4 + 0x1003f5dc]
test al, 0x10
jmp 0x1003a868
test al, 4
jmp 0x1003a868
test al, 2
jmp 0x1003a868
test al, 4
je 0x1003a866
mov ecx, dword [esp + 0x60]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x1b8], edx
mov dword [esp + 0x1bc], ecx
cmp ecx, 0x7fff
jg 0x1003a84b
jl 0x1003a82b
cmp edx, 0xffffffff
ja 0x1003a84b
cmp ecx, 0xffff8000
jl 0x1003a84b
jg 0x1003a839
test edx, edx
jb 0x1003a84b
mov ecx, dword [esp + 0x60]
and eax, 0xfffb
or eax, 0x20
mov word [ecx + 0x10], ax
jmp case.default.0x1003a7ee
fild qword [esp + 0x1b8]
mov ecx, dword [esp + 0x60]
and eax, 0xfffb
or eax, 8
fstp qword [ecx]
mov word [ecx + 0x10], ax
jmp case.default.0x1003a7ee
test al, 0x28
je 0x1003eda5
add dword [esp + 0x60], 0x28
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x4c]
movsx ecx, word [edx + 0x22]
add dword [esp + 0x5c], 0x10
inc eax
mov dword [esp + 0x4c], eax
cmp eax, ecx
jl 0x1003a790
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 4]
mov ebx, dword [edi + 0x10]
lea edx, [eax + eax*4]
lea esi, [esi + edx*8]
mov eax, dword [esp + 0x78]
mov cl, byte [ebx]
push eax
mov eax, esi
call fcn.100385b0
add esp, 4
cmp byte [ebx], 0x45
jne 0x1003a916
movzx ecx, word [esi + 0x10]
test cl, 4
je 0x1003a916
mov eax, dword [esi + 4]
mov edx, dword [esi]
mov dword [esp + 0x1d8], edx
mov dword [esp + 0x1dc], eax
cmp eax, 0x7fff
jg 0x1003a900
jl 0x1003a8e8
cmp edx, 0xffffffff
ja 0x1003a900
cmp eax, 0xffff8000
jl 0x1003a900
jg 0x1003a8f5
test edx, edx
jb 0x1003a900
and ecx, 0xfffb
or ecx, 0x20
jmp 0x1003a912
fild qword [esp + 0x1d8]
and ecx, 0xfff9
or ecx, 8
fstp qword [esi]
mov word [esi + 0x10], cx
inc ebx
cmp byte [ebx], 0
je 0x1003ebee
add esi, 0x28
jmp 0x1003a8a8
mov ecx, dword [edi + 0x10]
xor eax, eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], eax
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [edi + 8]
lea edx, [esi + edx*8]
lea eax, [eax + eax*4]
mov dword [esp + 0x74], edx
lea edx, [edx + eax*8 - 0x28]
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
mov dword [esp + 0x58], edx
lea edx, [esi + eax*8]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x54], edx
test ecx, ecx
je 0x1003a9bf
mov esi, dword [esp + 0x74]
add esi, 0x10
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x4c]
mov cl, byte [ecx]
push eax
lea eax, [esi - 0x10]
call fcn.100385b0
mov ecx, dword [esp + 0x50]
add esp, 4
cmp byte [ecx], 0x45
jne 0x1003a9b2
movzx eax, word [esi]
test al, 4
je 0x1003a9b2
and eax, 0xfffb
or eax, 0x20
mov word [esi], ax
inc ecx
add esi, 0x28
cmp byte [ecx], 0
mov dword [esp + 0x4c], ecx
jne 0x1003a981
mov eax, dword [esp + 0x58]
add eax, 0x1c
movzx ecx, word [eax - 0xc]
mov dword [esp + 0x64], eax
test cl, 1
je 0x1003a9eb
and ecx, 0x400
neg ecx
sbb ecx, ecx
and ecx, 0xa
inc dword [esp + 0x50]
mov dword [eax], ecx
jmp 0x1003ac34
test cl, 0x24
je 0x1003ab77
mov edx, dword [eax - 0x18]
mov esi, dword [eax - 0x1c]
mov dword [esp + 0x1d0], esi
mov dword [esp + 0x1d4], edx
mov dword [esp + 0x150], esi
mov dword [esp + 0x154], edx
test edx, edx
jg 0x1003aa24
jl 0x1003aa20
test esi, esi
jae 0x1003aa24
not esi
not edx
inc dword [esp + 0x50]
mov dword [esp + 0x148], esi
test edx, edx
ja 0x1003aa89
jb 0x1003aa3a
cmp esi, 0x7f
ja 0x1003aa90
mov edx, dword [esp + 0x150]
mov ecx, edx
and ecx, 1
xor esi, esi
cmp ecx, edx
jne 0x1003aa6f
cmp esi, dword [esp + 0x154]
jne 0x1003aa6f
cmp byte [ebx + 0x95], 4
jb 0x1003aa6f
mov edx, dword [esp + 0x148]
add edx, 8
mov dword [eax], edx
jmp 0x1003ac34
add dword [esp + 0x80], 1
mov dword [eax], 1
adc dword [esp + 0x84], esi
jmp 0x1003ac34
mov esi, dword [esp + 0x148]
test edx, edx
ja 0x1003ab0b
jb 0x1003aa9e
cmp esi, 0x7fff
ja 0x1003aab9
add dword [esp + 0x80], 2
mov dword [eax], 2
adc dword [esp + 0x84], 0
jmp 0x1003ac34
test edx, edx
ja 0x1003ab0b
jb 0x1003aac7
cmp esi, 0x7fffff
ja 0x1003aae2
add dword [esp + 0x80], 3
mov dword [eax], 3
adc dword [esp + 0x84], 0
jmp 0x1003ac34
test edx, edx
ja 0x1003ab0b
jb 0x1003aaf0
cmp esi, 0x7fffffff
ja 0x1003ab0b
add dword [esp + 0x80], 4
mov dword [eax], 4
adc dword [esp + 0x84], 0
jmp 0x1003ac34
cmp edx, 0x7fff
ja 0x1003ab35
jb 0x1003ab1a
cmp esi, 0xffffffff
ja 0x1003ab35
add dword [esp + 0x80], 6
mov dword [eax], 5
adc dword [esp + 0x84], 0
jmp 0x1003ac34
add dword [esp + 0x80], 8
adc dword [esp + 0x84], 0
test cl, 0x20
je 0x1003ab6c
fild qword [esp + 0x1d0]
and ecx, 0xffdf
or ecx, 8
mov word [eax - 0xc], cx
fstp qword [eax - 0x1c]
mov dword [eax], 7
jmp 0x1003ac34
mov dword [eax], 6
jmp 0x1003ac34
test cl, 8
je 0x1003ab9b
inc dword [esp + 0x50]
add dword [esp + 0x80], 8
mov dword [eax], 7
adc dword [esp + 0x84], 0
jmp 0x1003ac34
mov eax, dword [eax - 0x10]
mov edx, ecx
shr edx, 1
and edx, 1
mov dword [esp + 0x5c], eax
lea eax, [edx + eax*2 + 0xc]
mov dword [esp + 0x4c], eax
test ecx, 0x400
je 0x1003ac06
mov esi, dword [esp + 0x64]
mov ecx, dword [esp + 0x4c]
mov eax, dword [esi - 0x1c]
add esi, 0xffffffe4
lea edx, [ecx + eax*2]
mov ecx, dword [esp + 0x80]
or ecx, dword [esp + 0x84]
mov dword [esp + 0x4c], edx
je 0x1003abf7
call fcn.1002e010
test eax, eax
jne 0x1003d38c
mov edx, dword [esi]
add dword [esp + 0x5c], edx
mov edi, dword [esp + 0x3c]
jmp 0x1003ac06
cdq
add dword [esp + 0xf8], eax
adc dword [esp + 0xfc], edx
mov eax, dword [esp + 0x5c]
add dword [esp + 0x80], eax
mov esi, dword [esp + 0x4c]
push 0
adc dword [esp + 0x88], 0
push esi
call fcn.1000fc00
mov ecx, dword [esp + 0x6c]
add esp, 8
add dword [esp + 0x50], eax
mov dword [ecx], esi
mov eax, ecx
lea edx, [eax - 0x1c]
cmp edx, dword [esp + 0x74]
je 0x1003ac45
sub eax, 0x28
jmp 0x1003a9c6
cmp dword [esp + 0x50], 0x7e
jle 0x1003ac73
mov eax, dword [esp + 0x50]
cdq
push edx
push eax
call fcn.1000fc00
mov esi, eax
mov eax, dword [esp + 0x58]
add eax, esi
mov dword [esp + 0x58], eax
cdq
push edx
push eax
call fcn.1000fc00
add esp, 0x10
cmp esi, eax
jge 0x1003ac77
inc dword [esp + 0x50]
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x80]
mov ecx, dword [esp + 0x54]
cdq
add esi, eax
mov dword [esp + 0x158], eax
mov eax, dword [esp + 0x84]
adc eax, edx
mov dword [esp + 0x15c], edx
mov edx, dword [ecx + 0x18]
mov ecx, esi
add ecx, dword [esp + 0xf8]
adc eax, dword [esp + 0xfc]
mov dword [esp + 0x1c4], eax
mov eax, edx
cdq
mov dword [esp + 0x2a0], eax
cmp dword [esp + 0x1c4], edx
jg 0x1003acdf
jl 0x1003acd3
cmp ecx, eax
ja 0x1003acdf
mov eax, dword [esp + 0x54]
mov edx, dword [eax + 0x20]
mov dword [eax + 8], edx
jmp 0x1003ad27
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0x78]
cdq
mov dword [esp + 0x298], eax
cmp dword [esp + 0x1c4], edx
jg 0x1003ed8a
jl 0x1003ad05
cmp ecx, eax
ja 0x1003ed8a
mov eax, dword [esp + 0x54]
cmp dword [eax + 0x18], esi
jge 0x1003ad6e
mov edx, dword [esp + 0x54]
xor eax, eax
mov ecx, esi
call fcn.1002dd70
test eax, eax
jne 0x1003d390
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0xf8]
mov edx, 0x10
mov word [eax + 0x10], dx
mov edx, ecx
or edx, dword [esp + 0xfc]
mov dword [eax + 0xc], esi
je 0x1003ad54
mov dword [eax], ecx
mov ecx, 0x410
mov word [eax + 0x10], cx
mov esi, dword [eax + 8]
mov eax, dword [esp + 0x50]
lea edx, [esi + eax]
mov dword [esp + 0x50], edx
cmp eax, 0x80
jge 0x1003ad7b
mov byte [esi], al
inc esi
jmp 0x1003ad95
mov ecx, dword [eax + 0x20]
and word [eax + 0x10], 0x2d
mov dword [eax + 8], ecx
jmp 0x1003ad27
mov eax, dword [esp + 0x15c]
mov ecx, dword [esp + 0x158]
push eax
push ecx
call fcn.1000f9b0
add esp, 8
add esi, eax
mov ebx, dword [esp + 0x74]
add ebx, 0xc
lea esp, [esp]
mov eax, dword [ebx + 0x10]
cmp eax, 7
ja 0x1003ade7
mov byte [esi], al
inc esi
mov dword [esp + 0x68], esi
test eax, eax
je 0x1003ae29
movzx eax, byte [eax + 0x101138a8]
mov ecx, dword [ebx - 0xc]
mov esi, dword [esp + 0x50]
mov edx, dword [ebx - 8]
mov dword [esp + 0x5c], eax
dec eax
mov byte [eax + esi], cl
je 0x1003addd
mov edi, edi
shrd ecx, edx, 8
shr edx, 8
dec eax
mov byte [eax + esi], cl
jne 0x1003add0
mov edx, dword [esp + 0x5c]
mov esi, dword [esp + 0x68]
jmp 0x1003ae25
cmp eax, 0x80
jae 0x1003adfe
mov byte [esi], al
inc esi
cmp eax, 0xe
jb 0x1003ae29
mov eax, dword [ebx]
test eax, eax
jle 0x1003ae29
jmp 0x1003ae11
push 0
push eax
call fcn.1000f9b0
add esi, eax
mov eax, dword [ebx]
add esp, 8
test eax, eax
je 0x1003ae29
mov ecx, dword [esp + 0x50]
push eax
mov eax, dword [ebx - 4]
push eax
push ecx
call fcn.101025e0
mov edx, dword [ebx]
add esp, 0xc
add dword [esp + 0x50], edx
lea eax, [ebx - 0xc]
cmp eax, dword [esp + 0x58]
je 0x1003ebee
add ebx, 0x28
jmp 0x1003ada0
cmp dword [edi + 0xc], 0
mov ecx, dword [edi + 4]
mov edx, dword [ebx + 0x60]
mov eax, dword [edx + ecx*4]
mov eax, dword [eax + 0x2c]
je 0x1003ae64
push eax
call fcn.10026240
add esp, 4
mov dword [esp + 0x130], eax
mov esi, edx
jmp 0x1003aea0
mov edx, dword [esp + 0x48]
lea ecx, [esp + 0x130]
push ecx
xor esi, esi
push edx
mov dword [esp + 0x138], esi
mov dword [esp + 0x13c], esi
call fcn.1002b730
add esp, 8
mov dword [esp + 0x38], eax
cmp eax, esi
jne 0x1003ced6
mov esi, dword [esp + 0x134]
mov edi, dword [esp + 0x3c]
mov eax, edi
mov edx, ebx
call fcn.100387a0
mov ecx, dword [esp + 0x130]
mov dword [eax], ecx
mov dword [eax + 4], esi
jmp 0x1003e5b9
mov eax, dword [edi + 4]
mov esi, dword [edi + 0x10]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x64], eax
mov dword [esp + 0x4c], esi
test eax, eax
jne 0x1003af8e
cmp dword [edx + 0xc4], eax
jg 0x1003ebfe
mov eax, esi
call fcn.1000dfa0
mov esi, dword [esp + 0x48]
mov edi, eax
mov eax, dword [esi + 0x20c]
add eax, dword [esi + 0x208]
push eax
push 0
call fcn.1008a880
add esp, 8
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003ced6
lea ecx, [edi + 0x21]
push eax
push ecx
mov ebx, esi
mov ecx, ebx
call fcn.1000ab60
mov esi, eax
add esp, 8
test esi, esi
je 0x1003b1ef
mov edx, dword [esp + 0x4c]
inc edi
push edi
lea eax, [esi + 0x20]
push edx
push eax
mov dword [esi], eax
call fcn.101025e0
add esp, 0xc
cmp byte [ebx + 0x55], 0
je 0x1003af50
mov byte [ebx + 0x55], 0
mov byte [ebx + 0x5d], 1
jmp 0x1003af56
inc dword [ebx + 0x208]
mov eax, dword [ebx + 0x1fc]
mov dword [esi + 0x18], eax
mov ecx, dword [ebx + 0x210]
mov dword [ebx + 0x1fc], esi
mov dword [esi + 8], ecx
mov edx, dword [ebx + 0x214]
mov dword [esi + 0xc], edx
mov eax, dword [ebx + 0x218]
mov dword [esi + 0x10], eax
mov ecx, dword [ebx + 0x21c]
mov dword [esi + 0x14], ecx
jmp 0x1003b1ef
mov edi, dword [edx + 0x1fc]
mov dword [esp + 0x58], 0
test edi, edi
je 0x1003afb8
mov edx, dword [edi]
mov eax, esi
call fcn.1000e3e0
test eax, eax
je 0x1003afd4
mov edi, dword [edi + 0x18]
inc dword [esp + 0x58]
test edi, edi
jne 0x1003afa0
push esi
push str.no_such_savepoint:__s
push ebx
call fcn.1002f5b0
add esp, 0xc
mov dword [esp + 0x38], 1
jmp 0x1003ceda
mov esi, dword [esp + 0x48]
mov eax, dword [esp + 0x64]
xor ecx, ecx
cmp dword [esi + 0xc4], ecx
jle 0x1003afef
cmp eax, 1
je 0x1003ec08
cmp dword [edi + 0x18], ecx
jne 0x1003b050
cmp byte [esi + 0x5d], cl
je 0x1003b050
mov dword [esp + 0x4c], 1
cmp eax, 1
jne 0x1003b054
push eax
mov esi, ebx
call fcn.10032290
add esp, 4
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003f237
mov esi, dword [esp + 0x48]
mov ebx, dword [esp + 0x40]
mov byte [esi + 0x55], 1
call fcn.10032310
cmp eax, 5
je 0x1003ee03
mov ebx, dword [ebx + 0x24]
xor eax, eax
mov dword [esp + 0x38], ebx
cmp ebx, eax
je 0x1003b0cb
mov byte [esi + 0x55], al
jmp 0x1003b132
mov dword [esp + 0x4c], ecx
mov edx, dword [esi + 0x208]
sub edx, dword [esp + 0x58]
dec edx
mov dword [esp + 0x58], edx
cmp eax, 2
jne 0x1003b0d0
mov eax, dword [esi + 0x18]
and eax, 1
mov dword [esp + 0x74], eax
mov dword [esp + 0x5c], ecx
cmp dword [esi + 0x14], ecx
jle 0x1003b0d4
xor edx, edx
cmp eax, ecx
sete dl
xor ebx, ebx
mov dword [esp + 0x68], edx
jmp 0x1003b090
mov eax, dword [esp + 0x68]
mov ecx, dword [esi + 0x10]
mov edx, dword [ebx + ecx + 4]
push eax
push 0x204
push edx
call fcn.100249a0
add esp, 0xc
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003ced6
mov eax, dword [esp + 0x5c]
inc eax
add ebx, 0x10
mov dword [esp + 0x5c], eax
cmp eax, dword [esi + 0x14]
jl 0x1003b090
xor ecx, ecx
jmp 0x1003b0d4
mov byte [esi + 0x5d], al
jmp 0x1003b13d
mov dword [esp + 0x74], ecx
mov dword [esp + 0x5c], ecx
cmp dword [esi + 0x14], ecx
jle 0x1003b117
xor ebx, ebx
nop
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x64]
mov edx, dword [esi + 0x10]
push eax
mov eax, dword [ebx + edx + 4]
push ecx
push eax
call fcn.10024c10
add esp, 0xc
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003ced6
mov eax, dword [esp + 0x5c]
inc eax
add ebx, 0x10
mov dword [esp + 0x5c], eax
cmp eax, dword [esi + 0x14]
jl 0x1003b0e0
cmp dword [esp + 0x74], 0
je 0x1003b132
xor ecx, ecx
mov eax, esi
call fcn.10034340
mov eax, esi
call fcn.10058270
or dword [esi + 0x18], 1
cmp dword [esp + 0x38], 0
jne 0x1003ced6
mov esi, dword [esp + 0x48]
cmp dword [esi + 0x1fc], edi
je 0x1003b174
lea esp, [esp]
mov eax, dword [esi + 0x1fc]
mov ecx, dword [eax + 0x18]
mov dword [esi + 0x1fc], ecx
mov ecx, esi
call fcn.1000a790
dec dword [esi + 0x208]
cmp dword [esi + 0x1fc], edi
jne 0x1003b150
mov ebx, dword [esp + 0x64]
cmp ebx, 1
jne 0x1003b19e
mov edx, dword [edi + 0x18]
mov eax, edi
mov ecx, esi
mov dword [esi + 0x1fc], edx
call fcn.1000a790
cmp dword [esp + 0x4c], 0
jne 0x1003b1e4
dec dword [esi + 0x208]
jmp 0x1003b1ce
cmp dword [esp + 0x4c], 0
mov eax, dword [edi + 8]
mov dword [esi + 0x210], eax
mov ecx, dword [edi + 0xc]
mov dword [esi + 0x214], ecx
mov edx, dword [edi + 0x10]
mov dword [esi + 0x218], edx
mov eax, dword [edi + 0x14]
mov dword [esi + 0x21c], eax
je 0x1003b1ce
cmp ebx, 2
jne 0x1003b1e4
mov ecx, dword [esp + 0x58]
push ecx
push ebx
call fcn.1008a880
add esp, 8
mov dword [esp + 0x38], eax
test eax, eax
jmp 0x1003b1e9
cmp dword [esp + 0x38], 0
jne 0x1003ced6
mov ebx, dword [esp + 0x40]
cmp byte [ebx + 0x97], 3
je 0x1003ee34
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
cmp dword [edi + 8], 0
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x74], 0
je 0x1003b238
mov eax, dword [ecx + 0x20]
mov edx, dword [ecx + 0x24]
and eax, 0x100000
and edx, 2
or eax, edx
jne 0x1003ef59
mov eax, dword [edi + 4]
shl eax, 4
add eax, dword [ecx + 0x10]
mov ecx, dword [eax + 4]
mov dword [esp + 0x64], eax
mov dword [esp + 0x4c], ecx
test ecx, ecx
je 0x1003b313
mov ecx, dword [edi + 8]
mov eax, dword [esp + 0x4c]
lea esi, [esp + 0x74]
call fcn.10023d00
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003ef82
test byte [ebx + 0x98], 0x20
je 0x1003b3ae
cmp dword [edi + 8], eax
je 0x1003b3ae
mov eax, dword [esp + 0x48]
cmp byte [eax + 0x55], 0
je 0x1003b29d
cmp dword [eax + 0xc0], 1
jle 0x1003b3ae
cmp dword [ebx + 0x30], 0
jne 0x1003b2b8
mov edx, dword [eax + 0x208]
inc dword [eax + 0x20c]
add edx, dword [eax + 0x20c]
mov dword [ebx + 0x30], edx
mov eax, dword [ebx + 0x30]
mov esi, dword [esp + 0x48]
dec eax
push eax
push 0
call fcn.1008a880
add esp, 8
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003b2e7
mov ecx, dword [ebx + 0x30]
mov eax, dword [esp + 0x4c]
push ecx
call fcn.10024bb0
add esp, 4
mov dword [esp + 0x38], eax
mov edx, dword [esi + 0x210]
mov dword [ebx + 0x48], edx
mov eax, dword [esi + 0x214]
mov dword [ebx + 0x4c], eax
mov ecx, dword [esi + 0x218]
mov eax, dword [esp + 0x64]
mov dword [ebx + 0x50], ecx
mov edx, dword [esi + 0x21c]
mov esi, dword [esp + 0x44]
mov dword [ebx + 0x54], edx
cmp dword [esp + 0x38], 0
jne 0x1003ceda
mov edi, dword [esp + 0x3c]
cmp word [edi + 2], 0
je case.0x10038be1.89
mov ecx, dword [esp + 0x74]
cmp ecx, dword [edi + 0xc]
jne 0x1003b345
mov edx, dword [eax + 0xc]
mov eax, dword [edx + 4]
cmp eax, dword [edi + 0x10]
je case.0x10038be1.89
mov ebx, dword [ebx + 0x7c]
test ebx, ebx
je 0x1003b357
mov ecx, dword [esp + 0x48]
mov eax, ebx
call fcn.1000a790
mov esi, dword [esp + 0x48]
mov ebx, str.database_schema_has_changed
mov ecx, esi
call fcn.1000ad90
mov ebx, dword [esp + 0x40]
mov dword [ebx + 0x7c], eax
mov edi, dword [edi + 4]
mov edx, dword [esi + 0x10]
mov ecx, edi
add ecx, ecx
mov eax, dword [edx + ecx*8 + 0xc]
mov ecx, dword [esp + 0x74]
cmp dword [eax], ecx
je 0x1003b38f
push edi
mov edx, esi
call fcn.10057f50
add esp, 4
mov edx, dword [ebx + 0x98]
and edx, 0xffffffed
or edx, 1
mov dword [esp + 0x38], 0x11
mov dword [ebx + 0x98], edx
jmp 0x1003ceda
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x64]
jmp 0x1003b322
mov edx, dword [edi + 0xc]
mov eax, dword [edi + 4]
lea ecx, [esp + 0x16c]
push ecx
mov ecx, dword [esp + 0x4c]
push edx
mov edx, dword [ecx + 0x10]
add eax, eax
mov eax, dword [edx + eax*8 + 4]
call fcn.1002b650
add esp, 8
mov eax, edi
mov edx, ebx
call fcn.100387a0
mov ecx, eax
mov eax, dword [esp + 0x16c]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x48]
mov edx, dword [edi + 0xc]
shl eax, 4
add eax, dword [ecx + 0x10]
mov ecx, dword [edi + 8]
push edx
mov dword [esp + 0x50], eax
mov eax, dword [eax + 4]
push ecx
call fcn.1002b6b0
mov dword [esp + 0x40], eax
mov eax, dword [edi + 8]
add esp, 8
cmp eax, 1
jne 0x1003b457
movzx edx, word [edi + 2]
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0x48]
sub eax, edx
mov edx, dword [ecx + 0xc]
mov dword [edx], eax
or dword [esi + 0x18], 1
mov eax, dword [edi + 4]
call fcn.10067140
mov esi, dword [esp + 0x44]
jmp 0x1003b469
cmp eax, 2
jne 0x1003b469
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax + 0xc]
mov dl, byte [edi + 0xc]
mov byte [ecx + 0x4c], dl
cmp dword [edi + 4], 1
jne 0x1003b481
mov eax, dword [esp + 0x48]
xor ecx, ecx
call fcn.10034340
and dword [ebx + 0x98], 0xfffffffc
cmp dword [esp + 0x38], 0
jne 0x1003ceda
mov edi, dword [esp + 0x3c]
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 4]
mov edx, dword [ebx + 0x60]
mov eax, dword [edx + eax*4]
test eax, eax
je case.0x10038be1.112
mov edx, dword [eax + 0x38]
cmp edx, dword [edi + 8]
jne case.0x10038be1.112
mov esi, dword [eax + 0x2c]
add eax, 0x2c
mov dword [esp + 0x5c], eax
call fcn.10020f00
jmp 0x1003b5e3
mov eax, dword [ebx + 0x98]
and al, 3
cmp al, 1
je 0x1003efb2
mov eax, dword [edi + 8]
mov esi, dword [esp + 0x48]
mov dword [esp + 0x64], eax
mov eax, dword [edi + 0xc]
mov dword [esp + 0x88], eax
shl eax, 4
add eax, dword [esi + 0x10]
xor edx, edx
mov esi, dword [eax + 4]
mov dword [esp + 0x68], edx
mov dword [esp + 0x4c], edx
mov dword [esp + 0xac], esi
cmp cl, 0x71
jne 0x1003b529
movzx ecx, word [edi + 2]
and ecx, 8
or ecx, 4
mov dword [esp + 0x74], ecx
mov ecx, dword [eax + 0xc]
mov al, byte [ecx + 0x4c]
cmp al, byte [ebx + 0x95]
jae 0x1003b52d
mov byte [ebx + 0x95], al
jmp 0x1003b52d
mov dword [esp + 0x74], edx
test byte [edi + 2], 0x10
je 0x1003b550
mov eax, dword [esp + 0x64]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x44]
lea esi, [eax + edx*8]
call fcn.1002e490
mov ecx, dword [esi]
mov edx, dword [esp + 0x68]
mov dword [esp + 0x64], ecx
mov al, byte [edi + 1]
cmp al, 0xf8
jne 0x1003b564
mov eax, dword [edi + 0x10]
movzx edx, word [eax + 8]
mov dword [esp + 0x4c], eax
jmp 0x1003b56b
cmp al, 0xfd
jne 0x1003b56b
mov edx, dword [edi + 0x10]
mov ebx, dword [edi + 4]
mov eax, dword [esp + 0x40]
push 0
push edx
call fcn.10038370
mov edi, eax
add esp, 8
test edi, edi
je 0x1003d38c
mov eax, dword [esp + 0x64]
mov dl, byte [esp + 0x88]
mov esi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x74]
mov ebx, dword [edi + 0x2c]
or dword [edi + 8], 4
mov dword [edi + 0x38], eax
lea eax, [edi + 0x2c]
push esi
mov byte [edi + 1], dl
mov edx, dword [esp + 0x68]
push ecx
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0xb4]
push edx
mov byte [edi + 2], 1
call fcn.10024d80
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x48]
mov dword [edi + 0x30], esi
add esp, 0xc
cmp byte [eax + 1], 0xf8
setne cl
mov byte [edi + 4], cl
mov edi, eax
mov dl, byte [edi + 2]
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax]
mov esi, dword [esp + 0x44]
and dl, 3
cmp dword [esp + 0x38], 0
mov byte [ecx + 3], dl
jne 0x1003ceda
mov edi, dword [esp + 0x3c]
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [esp + 0x40]
mov edx, dword [edi + 8]
mov ecx, dword [eax + 0x60]
mov esi, dword [ecx + edx*4]
movsx edx, word [esi + 0x3c]
mov ebx, dword [edi + 4]
push 0
push edx
call fcn.10038370
add esp, 8
test eax, eax
je 0x1003d38c
mov ecx, 1
or dword [eax + 8], ecx
mov byte [eax + 2], cl
mov edx, dword [esi + 0x30]
mov ecx, dword [eax + 8]
mov dword [eax + 0x30], edx
mov dl, byte [esi + 4]
mov byte [eax + 4], dl
mov edx, dword [esi + 0x38]
mov dword [eax + 0x38], edx
mov edx, dword [esi + 8]
xor edx, ecx
and edx, 4
xor edx, ecx
mov dword [eax + 8], edx
mov ecx, dword [esi + 0x10]
mov dword [eax + 0x10], ecx
mov ecx, 8
or dword [eax + 8], ecx
or dword [esi + 8], ecx
mov edx, dword [eax + 0x30]
mov ecx, dword [eax + 0x38]
mov ebx, dword [eax + 0x2c]
mov eax, dword [eax + 0x10]
push edx
push 4
push ecx
call fcn.10024d80
mov edi, dword [esp + 0x48]
mov ebx, dword [esp + 0x4c]
mov esi, dword [esp + 0x50]
add esp, 0xc
mov dword [esp + 0x38], eax
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 0xc]
test eax, eax
jle 0x1003b6c2
lea edx, [eax + eax*4]
mov dword [esi + edx*8 + 0xc], 0
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
mov dword [esi + eax*8 + 8], 0x10112e3c
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x60]
mov esi, dword [ecx + eax*4]
test esi, esi
je 0x1003b701
test byte [esi + 8], 8
jne 0x1003b701
movsx edx, word [esi + 0x3c]
cmp dword [edi + 8], edx
jg 0x1003b701
mov ebx, dword [esi + 0x38]
xor eax, eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], eax
push eax
mov eax, dword [esi + 0x10]
call fcn.1002b2d0
add esp, 4
mov dword [esp + 0x38], eax
jmp 0x1003b83f
mov ecx, dword [edi + 8]
push 0
mov ebx, eax
mov eax, dword [esp + 0x44]
push ecx
call fcn.10038370
mov esi, eax
add esp, 8
test esi, esi
je 0x1003d38c
or dword [esi + 8], 1
mov edx, dword [esp + 0x3c]
movzx eax, word [edx + 2]
mov edx, dword [esp + 0x48]
mov ecx, dword [edx]
push 0x41e
or eax, 5
push eax
push 0
push ecx
lea ecx, [esi + 0x10]
call fcn.10022880
add esp, 0x10
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003ced6
mov eax, dword [esi + 0x10]
cmp byte [eax + 9], 0
jne 0x1003b790
mov cl, byte [eax + 8]
test cl, cl
je 0x1003b790
cmp cl, 1
je 0x1003b790
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov ecx, dword [edx + 0x208]
mov edi, dword [eax]
cmp ecx, dword [edi + 0x68]
jle 0x1003b78c
cmp byte [edi + 6], 0
je 0x1003b78c
push ecx
call fcn.1001ccb0
add esp, 4
jmp 0x1003b79d
xor eax, eax
jmp 0x1003b79d
push 0
push 1
push eax
call fcn.100239f0
add esp, 0xc
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003b815
mov ecx, dword [esp + 0x3c]
mov ebx, dword [ecx + 0x10]
mov dword [esi + 0x30], ebx
test ebx, ebx
je 0x1003b7f2
mov edx, ecx
movzx eax, word [edx + 2]
or eax, 2
push eax
mov eax, dword [esi + 0x10]
lea edi, [esi + 0x38]
push edi
call fcn.1002b0a0
add esp, 8
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003b7ec
mov ecx, dword [edi]
mov eax, dword [esi + 0x10]
push ebx
mov ebx, dword [esi + 0x2c]
push 4
push ecx
call fcn.10024d80
add esp, 0xc
mov dword [esp + 0x38], eax
mov byte [esi + 4], 0
jmp 0x1003b815
mov ebx, dword [esi + 0x2c]
mov eax, dword [esi + 0x10]
push 0
push 4
push 1
mov dword [esi + 0x38], 1
call fcn.10024d80
add esp, 0xc
mov dword [esp + 0x38], eax
mov byte [esi + 4], 1
mov eax, dword [esp + 0x3c]
xor edx, edx
cmp word [eax + 2], 8
setne dl
add edx, edx
add edx, edx
xor edx, dword [esi + 8]
and edx, 4
xor dword [esi + 8], edx
cmp dword [esp + 0x38], 0
je 0x1003b84a
mov eax, dword [esi + 0x10]
call fcn.10023180
cmp dword [esp + 0x38], 0
jne 0x1003ced6
mov edi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
mov byte [esi + 2], 1
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov ecx, dword [edi + 8]
mov ebx, dword [edi + 4]
mov eax, dword [esp + 0x40]
push 1
push ecx
call fcn.10038370
add esp, 8
test eax, eax
je 0x1003d38c
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx + 0x10]
push eax
mov dword [eax + 0x30], edx
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x4c]
push eax
push ecx
call fcn.10040ac0
add esp, 0xc
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003ced6
mov edi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + edx*4]
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
mov dword [esp + 0x160], ecx
add ecx, 1
mov dword [esp + 0x164], edx
adc edx, 0
mov dword [eax + 0x18], ecx
mov ecx, dword [esp + 0x164]
mov dword [eax + 0x1c], edx
mov eax, dword [esp + 0x160]
or eax, ecx
je 0x1003bc13
add edi, 0x14
jmp 0x10038bbc
mov ecx, dword [edi + 0xc]
mov ebx, dword [edi + 4]
mov eax, dword [esp + 0x40]
push 3
push ecx
call fcn.10038370
add esp, 8
test eax, eax
je 0x1003d38c
mov edx, dword [esp + 0x3c]
mov edi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
mov cl, 1
mov byte [eax + 2], cl
mov edx, dword [edx + 8]
mov dword [eax + 0x24], edx
mov byte [eax + 4], cl
mov dword [eax + 0x2c], 0x1013aff4
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x60]
mov eax, dword [ecx + eax*4]
test eax, eax
je 0x1003b963
push eax
push ebx
call fcn.10031580
add esp, 8
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x60]
mov dword [eax + edx*4], 0
add edi, 0x14
jmp 0x10038bbc
mov ecx, dword [edi + 4]
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [esp + 0x58], eax
mov dword [esp + 0x54], edx
mov dword [esp + 0x4c], ecx
mov word [eax + 2], cx
mov dword [eax + 0x20], ecx
cmp byte [eax + 4], cl
je 0x1003bb12
mov eax, dword [edi + 0xc]
lea ecx, [eax + eax*4]
lea eax, [esi + ecx*8]
mov dword [esp + 0x50], eax
movzx eax, word [eax + 0x10]
mov dword [esp + 0x68], eax
and al, 0x2e
cmp al, 2
jne 0x1003b9c8
mov eax, dword [esp + 0x50]
push 0
call fcn.10038520
add esp, 4
mov edx, dword [esp + 0x50]
call fcn.1002e2f0
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x118], eax
movzx eax, word [ecx + 0x10]
mov dword [esp + 0x11c], edx
mov dx, word [esp + 0x68]
mov word [ecx + 0x10], dx
test al, 0x24
jne 0x1003bac8
test al, 8
jne 0x1003ba84
test al, 1
jne 0x1003bc13
cmp dword [esp + 0x54], 0x17
jge 0x1003bc13
mov eax, dword [esp + 0x58]
mov eax, dword [eax + 0x2c]
cmp byte [eax], 0
jne 0x1003ba3a
test byte [eax + 1], 8
je 0x1003ba3a
xor eax, eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x38], eax
add edi, 0x14
jmp 0x10038bbc
lea edi, [esp + 0x90]
call fcn.10025a00
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003ceda
xor esi, esi
cmp dword [esp + 0x90], esi
jne 0x1003bc0f
cmp dword [esp + 0x4c], esi
je 0x1003ebea
add dword [esp + 0x3c], 0x14
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov ecx, dword [esp + 0x50]
fld qword [ecx]
mov edx, dword [esp + 0x11c]
mov edi, dword [esp + 0x118]
sub esp, 8
fstp qword [esp]
push edx
push edi
call fcn.100333c0
add esp, 0x10
test eax, eax
jle 0x1003bab9
test byte [esp + 0x54], 1
jne 0x1003bacf
dec dword [esp + 0x54]
jmp 0x1003bacf
jns 0x1003bacf
test byte [esp + 0x54], 1
je 0x1003bacf
inc dword [esp + 0x54]
jmp 0x1003bacf
mov edi, dword [esp + 0x118]
mov ecx, dword [esp + 0x11c]
mov esi, dword [esp + 0x58]
mov edx, dword [esi + 0x2c]
lea eax, [esp + 0x90]
push eax
push 0
push ecx
push edi
push edx
call fcn.10025a40
mov ecx, dword [esp + 0x130]
add esp, 0x14
mov dword [esp + 0x38], eax
mov dword [esi + 0x40], edi
mov dword [esi + 0x44], ecx
test eax, eax
jne 0x1003ceda
xor esi, esi
jmp 0x1003bbac
mov edx, dword [eax + 0x2c]
test byte [edx + 3], 2
je 0x1003bb23
mov dword [esp + 0x4c], 1
mov eax, dword [esp + 0x58]
mov ecx, dword [eax + 0x30]
mov dx, word [edi + 0x10]
mov edi, dword [edi + 0xc]
mov dword [esp + 0x2b8], ecx
mov ecx, dword [esp + 0x54]
dec ecx
mov word [esp + 0x2cc], dx
test cl, 1
sete dl
lea ecx, [edi + edi*4]
mov byte [esp + 0x2d2], 0
lea edx, [edx + edx - 1]
mov byte [esp + 0x2ce], dl
mov edx, dword [esp + 0x44]
lea ecx, [edx + ecx*8]
mov dword [esp + 0x2bc], ecx
mov esi, dword [eax + 0x2c]
lea edx, [esp + 0x90]
push edx
lea ecx, [esp + 0x2bc]
push ecx
call fcn.10025d60
add esp, 8
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003ceda
xor esi, esi
cmp dword [esp + 0x4c], esi
je 0x1003bbac
cmp byte [esp + 0x2d2], 0
je 0x1003ba58
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x90]
cmp ecx, 0x17
jl 0x1003bc37
cmp eax, esi
jl 0x1003bbd3
jne 0x1003bbc7
cmp ecx, 0x18
je 0x1003bbd3
mov dword [esp + 0x90], esi
jmp 0x1003ba65
mov edx, dword [esp + 0x58]
mov eax, dword [edx + 0x2c]
push esi
push eax
mov dword [esp + 0x98], esi
call fcn.10026420
add esp, 8
mov dword [esp + 0x38], eax
cmp eax, esi
je 0x1003ba65
cmp eax, 0x65
jne 0x1003ceda
mov dword [esp + 0x38], esi
mov dword [esp + 0x90], 1
mov edi, dword [esp + 0x3c]
mov edi, dword [edi + 8]
mov edx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
lea ecx, [edi + edi*4]
lea eax, [edx + ecx*4 - 0x14]
mov edi, eax
mov dword [esp + 0x3c], eax
add edi, 0x14
jmp 0x10038bbc
cmp eax, esi
jg 0x1003bc5c
jne 0x1003bc42
cmp ecx, 0x15
je 0x1003bc5c
mov ecx, dword [esp + 0x58]
mov edx, dword [ecx + 0x2c]
xor eax, eax
cmp byte [edx], al
setne al
mov dword [esp + 0x90], eax
jmp 0x1003ba58
mov ecx, dword [esp + 0x58]
mov edx, dword [ecx + 0x2c]
push esi
push edx
mov dword [esp + 0x98], esi
call fcn.100265f0
add esp, 8
mov dword [esp + 0x38], eax
cmp eax, esi
je 0x1003ba65
cmp eax, 0x65
jmp 0x1003bbfa
mov eax, dword [edi + 0x18]
mov ecx, dword [ebx + 0x60]
mov eax, dword [ecx + eax*4]
mov edx, dword [eax + 0x2c]
cmp byte [edx], 0
mov dword [esp + 0x4c], eax
jne case.0x10038be1.89
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x4c]
mov edx, dword [ecx + 0x30]
mov dword [esp + 0x68], eax
mov ax, word [edi + 0x24]
mov edi, dword [edi + 0x20]
lea ecx, [edi + edi*4]
mov edi, dword [esp + 0x68]
mov dword [esp + 0x368], edx
lea edx, [esi + ecx*8]
mov esi, dword [esp + 0x4c]
mov word [esp + 0x37c], ax
mov byte [esp + 0x37e], 0
mov dword [esp + 0x36c], edx
mov dword [esp + 0x58], 0
lea ebx, [ebx]
mov ecx, dword [esp + 0x48]
lea eax, [esp + 0x368]
push eax
push ecx
lea ebx, [esp + 0x60]
mov eax, esi
call fcn.10034250
add esp, 8
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003ced6
mov eax, dword [esp + 0x58]
test eax, eax
jle 0x1003bd2c
mov edx, dword [esp + 0x3c]
cmp word [edx + 2], 0
je 0x1003bd69
test eax, eax
jns 0x1003bc0f
test edi, edi
jle 0x1003ebea
mov eax, dword [esi + 0x2c]
push 0
push eax
dec edi
mov dword [esi + 0x20], 0
call fcn.10026420
add esp, 8
mov dword [esp + 0x38], eax
test eax, eax
je 0x1003bcf0
cmp eax, 0x65
jne 0x1003ced6
mov dword [esp + 0x38], 0
add dword [esp + 0x3c], 0x14
jmp 0x1003bc0f
mov ecx, dword [edi + 4]
mov edx, dword [ebx + 0x60]
mov eax, dword [edx + ecx*4]
movzx ecx, word [eax + 0xc]
cmp ecx, dword [edi + 8]
jge 0x1003bd95
mov cx, word [edi + 8]
mov word [eax + 0xc], cx
add edi, 0x14
jmp 0x10038bbc
cmp ecx, dword [edi + 0xc]
jle case.0x10038be1.89
mov dx, word [edi + 0xc]
mov word [eax + 0xc], dx
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x60]
mov eax, dword [ecx + eax*4]
test eax, eax
je case.0x10038be1.9
cmp byte [eax + 2], 0
je case.0x10038be1.89
jmp case.0x10038be1.9
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x60]
mov ecx, dword [eax + edx*4]
movzx edx, word [ecx + 0xc]
cmp edx, dword [edi + 0x10]
jge case.0x10038be1.89
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x60]
mov edx, dword [ecx + eax*4]
mov eax, dword [edi + 0xc]
mov di, word [edi + 0x10]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x27c], esi
mov word [esp + 0x28c], di
test di, di
je 0x1003be43
mov edi, edx
mov ecx, dword [edi + 0x30]
lea ebx, [edi + 0x24]
lea edx, [esp + 0x278]
mov dword [esp + 0x278], ecx
mov byte [esp + 0x28e], 0
mov esi, dword [edi + 0x2c]
push ebx
push edx
call fcn.10025d60
add esp, 8
mov dword [esp + 0x38], eax
jmp 0x1003beb5
mov eax, 0x400
test word [esi + 0x10], ax
je 0x1003be5b
call fcn.1002e010
test eax, eax
jne 0x1003d390
mov ecx, dword [esp + 0x5c]
mov esi, dword [ecx + 0x30]
call fcn.10032f30
mov edi, eax
test edi, edi
je 0x1003d390
mov eax, dword [esp + 0x27c]
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov esi, dword [esp + 0x5c]
mov ecx, dword [esi + 0x30]
push edi
push edx
push eax
push ecx
call fcn.10032f90
lea ebx, [esi + 0x24]
mov byte [edi + 0x16], 0
mov esi, dword [esi + 0x2c]
push ebx
push edi
call fcn.10025d60
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x50], eax
add esp, 0x18
mov eax, edi
call fcn.1000a790
mov edi, dword [esp + 0x5c]
cmp dword [esp + 0x38], 0
jne 0x1003ced6
mov ecx, dword [esp + 0x3c]
xor eax, eax
cmp dword [ebx], eax
mov dl, 1
sete al
sub dl, al
mov byte [edi + 2], dl
mov byte [edi + 3], 0
mov dword [edi + 0x20], 0
mov bl, byte [ecx]
cmp bl, 0x1d
jne 0x1003befe
test eax, eax
jne 0x1003bc0f
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
mov edi, ecx
add edi, 0x14
jmp 0x10038bbc
test eax, eax
je 0x1003bc0f
cmp bl, 0x1b
jne 0x1003bf34
movzx edx, word [esp + 0x28c]
xor eax, eax
test edx, edx
jle 0x1003bf34
mov ecx, dword [esp + 0x27c]
add ecx, 0x10
test byte [ecx], 1
jne 0x1003bc0f
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x1003bf23
cmp bl, 0x1a
jne 0x1003ebea
mov edx, dword [esp + 0x3c]
mov ax, word [edx + 0x10]
mov ecx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
mov edi, edx
mov word [ecx + 0xc], ax
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 0xc]
lea edx, [eax + eax*4]
test byte [esi + edx*8 + 0x10], 0x24
lea eax, [esi + edx*8]
jne case.0x10038be1.31
mov esi, eax
mov ecx, 0xa
lea edi, [esp + 0x300]
rep movsd dword es:[edi], dword [esi]
mov al, byte [esp + 0x310]
test al, 4
jne 0x1003bfc0
test al, 0x28
jne 0x1003bfa5
test al, 2
je 0x1003bfb8
push 1
lea eax, [esp + 0x304]
call fcn.10038520
add esp, 4
jmp 0x1003bfb1
lea edi, [esp + 0x300]
call fcn.1002e3f0
mov al, byte [esp + 0x310]
test al, 4
je 0x1003bc0f
mov eax, dword [esp + 0x304]
mov ebx, dword [esp + 0x300]
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x174], eax
jmp 0x1003bfef
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
mov ecx, dword [esi + eax*8 + 4]
mov ebx, dword [esi + eax*8]
mov dword [esp + 0x174], ecx
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + 0x60]
mov edx, dword [edi + 4]
mov esi, dword [ecx + edx*4]
mov ecx, dword [esp + 0x174]
mov eax, dword [esi + 0x2c]
lea edx, [esp + 0x54]
push edx
push 0
push ecx
push ebx
push eax
mov dword [esp + 0x68], 0
call fcn.10025a40
mov edx, dword [esp + 0x188]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x68]
add esp, 0x14
mov dword [esi + 0x40], ebx
mov dword [esi + 0x44], edx
mov dword [esi + 0x20], 0
mov word [esi + 2], 0
mov dword [esi + 0x24], eax
test eax, eax
je 0x1003c061
cmp dword [edi + 8], 0
jne 0x1003bc13
mov eax, 0x17bb8
call fcn.100a9300
mov dword [esp + 0x38], eax
cmp dword [esp + 0x38], 0
jne 0x1003ced6
mov edi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov eax, edi
mov edx, ebx
call fcn.100387a0
mov ecx, dword [edi + 4]
mov edx, dword [ebx + 0x60]
mov ecx, dword [edx + ecx*4]
mov edx, dword [ecx + 0x18]
mov dword [eax], edx
mov ecx, dword [ecx + 0x1c]
mov dword [eax + 4], ecx
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + edx*4]
add dword [eax + 0x18], 1
adc dword [eax + 0x1c], 0
add edi, 0x14
jmp 0x10038bbc
xor eax, eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0x5c], eax
mov eax, edi
mov edx, ebx
call fcn.100387a0
mov ecx, dword [edi + 4]
mov edx, dword [ebx + 0x60]
mov dword [esp + 0x54], eax
mov eax, dword [edx + ecx*4]
test byte [eax + 8], 2
mov dword [esp + 0x58], eax
jne 0x1003c18a
mov esi, eax
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
jne 0x1003c13f
test byte [eax + 1], 8
je 0x1003c13f
xor eax, eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x38], eax
mov esi, dword [esi + 0x2c]
mov ecx, esi
call fcn.10024ee0
mov eax, dword [esi + 0x20]
mov esi, dword [esi + 0x24]
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], esi
cmp esi, 0x7fffffff
jl 0x1003c172
jg 0x1003c135
cmp eax, 0xffffffff
jb 0x1003c172
mov eax, dword [esp + 0x58]
or dword [eax + 8], 2
jmp 0x1003c182
lea edi, [esp + 0x5c]
call fcn.10025a00
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003ced6
mov edi, dword [esp + 0x3c]
cmp dword [esp + 0x5c], eax
je 0x1003c108
mov dword [esp + 0xa0], 1
mov dword [esp + 0xa4], eax
jmp 0x1003c182
add dword [esp + 0xa0], 1
adc dword [esp + 0xa4], 0
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
mov edx, dword [edi + 0xc]
test edx, edx
je 0x1003c227
mov ecx, dword [ebx + 0xd0]
test ecx, ecx
je 0x1003c1ba
mov eax, dword [ecx + 4]
test eax, eax
je 0x1003c1af
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x1003c1a6
mov ecx, dword [ecx + 0xc]
lea eax, [edx + edx*4]
lea esi, [ecx + eax*8]
jmp 0x1003c1c0
lea edx, [edx + edx*4]
lea esi, [esi + edx*8]
call fcn.1002e490
mov eax, dword [esi]
mov ecx, dword [esi + 4]
cmp eax, 0xffffffff
jne 0x1003c1db
cmp ecx, 0x7fffffff
je 0x1003c29a
mov edx, dword [esp + 0x58]
test byte [edx + 8], 2
jne 0x1003c29a
add eax, 1
mov edx, eax
mov eax, dword [esp + 0xa4]
adc ecx, 0
cmp eax, ecx
jg 0x1003c217
jl 0x1003c207
cmp dword [esp + 0xa0], edx
jae 0x1003c217
mov eax, ecx
mov dword [esp + 0xa0], edx
mov dword [esp + 0xa4], eax
mov ecx, dword [esp + 0xa0]
mov dword [esi], ecx
mov dword [esi + 4], eax
mov esi, dword [esp + 0x44]
mov edx, dword [esp + 0x58]
test byte [edx + 8], 2
je 0x1003c2ab
xor edi, edi
lea eax, [esp + 0xa0]
push eax
push 8
call sym.MyService.dll_sqlite3_randomness
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xa8]
and eax, 0x3fffffff
add ecx, 1
lea edx, [esp + 0x64]
push edx
adc eax, 0
push 0
push eax
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x6c]
push ecx
mov dword [esp + 0xb8], ecx
mov ecx, dword [eax + 0x2c]
push ecx
call fcn.10025a40
add esp, 0x1c
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003ceda
cmp dword [esp + 0x5c], eax
jne 0x1003c2a7
inc edi
cmp edi, 0x64
jl 0x1003c233
mov dword [esp + 0x38], 0xd
jmp 0x1003ceda
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa4]
mov byte [eax + 3], 0
mov dword [eax + 0x20], 0
mov eax, dword [esp + 0x54]
mov dword [eax], edx
mov dword [eax + 4], ecx
add edi, 0x14
jmp 0x10038bbc
cmp byte [edi + 1], 0xfb
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
lea ecx, [esi + edx*8]
mov edx, dword [edi + 4]
mov dword [esp + 0x68], ecx
mov ecx, dword [ebx + 0x60]
mov edx, dword [ecx + edx*4]
mov ecx, dword [edi + 0xc]
lea ecx, [ecx + ecx*4]
mov dword [esp + 0x64], edx
mov edx, dword [esi + ecx*8]
mov dword [esp + 0x258], edx
mov ecx, dword [esi + ecx*8 + 4]
mov dword [esp + 0x25c], ecx
jne 0x1003c40f
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx + 0x114]
test edx, edx
jne 0x1003c332
cmp dword [ecx + 0xfc], edx
je 0x1003c40f
mov edx, dword [esp + 0x64]
movsx edx, byte [edx + 1]
mov ecx, dword [ecx + 0x10]
add edx, edx
mov edx, dword [ecx + edx*8]
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x58], ecx
test ecx, ecx
je 0x1003c3af
mov edx, dword [esp + 0x48]
cmp dword [edx + 0x114], 0
je 0x1003c394
test byte [edi + 2], 4
jne 0x1003c394
mov ecx, dword [esp + 0x258]
mov edx, dword [esp + 0x4c]
push 0xffffffffffffffff
push eax
mov eax, dword [esp + 0x264]
push eax
mov eax, dword [esp + 0x70]
push ecx
push edx
push 0x12
push eax
mov eax, dword [esp + 0x74]
push ebx
call fcn.10034530
mov ecx, dword [esp + 0x78]
add esp, 0x20
mov edx, dword [esp + 0x48]
cmp dword [edx + 0xfc], 0
je 0x1003c3a7
cmp dword [ecx + 4], 0
jne 0x1003c3af
mov dword [esp + 0x58], 0
movzx eax, word [edi + 2]
test al, 0x40
jne case.0x10038be1.89
test al, 1
je 0x1003c3e5
add dword [ebx + 0x28], 1
adc dword [ebx + 0x2c], 0
test byte [edi + 2], 0x20
je 0x1003c3e5
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x258]
mov edx, dword [esp + 0x25c]
mov dword [eax + 0x28], ecx
mov dword [eax + 0x2c], edx
mov edx, dword [esp + 0x68]
mov eax, dword [edx + 8]
mov dword [esp + 0x260], eax
mov ecx, dword [edx + 0xc]
mov dword [esp + 0x26c], ecx
movzx ecx, word [edi + 2]
test cl, 0x10
je 0x1003c41b
mov eax, dword [esp + 0x64]
mov eax, dword [eax + 0x24]
jmp 0x1003c41d
xor eax, eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x4c], eax
jmp 0x1003c3af
xor eax, eax
mov edi, 0x400
test word [edx + 0x10], di
je 0x1003c433
mov edx, dword [edx]
mov dword [esp + 0x270], edx
jmp 0x1003c43e
mov dword [esp + 0x270], 0
mov edi, dword [esp + 0x64]
and ecx, 0x8a
push ecx
lea ecx, [esp + 0x254]
mov dword [esp + 0x254], 0
push ecx
mov ecx, dword [edi + 0x2c]
call fcn.1002a070
inc dword [esp + 0xe4]
add esp, 8
mov dword [esp + 0x38], eax
mov byte [edi + 3], 0
mov dword [edi + 0x20], 0
test eax, eax
jne 0x1003ceda
cmp dword [esp + 0x58], eax
je 0x1003ebea
mov edx, dword [esp + 0x25c]
mov eax, dword [esp + 0x258]
mov ecx, dword [esp + 0x58]
push edx
mov edx, dword [ecx]
mov ecx, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x54]
push edx
mov dl, byte [ecx + 2]
push eax
and dl, 4
movzx eax, dl
neg eax
sbb eax, eax
and eax, 5
add eax, 0x12
push eax
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax + 0xf8]
mov edx, dword [eax + 0xfc]
push ecx
call edx
mov edi, dword [esp + 0x54]
add esp, 0x18
add edi, 0x14
jmp 0x10038bbc
mov ecx, dword [edi + 4]
mov eax, dword [ebx + 0x60]
mov edx, dword [eax + ecx*4]
mov ecx, dword [edi + 8]
mov edi, dword [edi + 0xc]
mov eax, dword [eax + ecx*4]
test edi, edi
je 0x1003c507
lea ecx, [edi + edi*4]
mov edi, dword [esi + ecx*8]
mov ecx, dword [esi + ecx*8 + 4]
jmp 0x1003c50b
xor edi, edi
xor ecx, ecx
mov eax, dword [eax + 0x2c]
push ecx
mov ecx, dword [edx + 0x2c]
push edi
push eax
push ecx
call fcn.1002a560
add esp, 0x10
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003ceda
mov edi, dword [esp + 0x3c]
add edi, 0x14
jmp 0x10038bbc
cmp byte [edi + 1], 0xfb
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x60]
mov ecx, dword [ecx + eax*4]
mov edx, dword [edi + 8]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x58], ecx
jne 0x1003c5b4
cmp dword [eax + 0x114], 0
jne 0x1003c565
cmp dword [eax + 0xfc], 0
je 0x1003c5b4
movsx edx, byte [ecx + 1]
mov ecx, dword [eax + 0x10]
add edx, edx
test byte [edi + 2], 2
mov edx, dword [ecx + edx*8]
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x74], edx
mov dword [esp + 0x5c], ecx
je 0x1003c5be
mov edx, dword [esp + 0x58]
cmp byte [edx + 4], 0
je 0x1003c5be
mov eax, edx
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0x68], ecx
call fcn.10024ee0
mov eax, dword [esp + 0x68]
mov edx, dword [eax + 0x20]
mov ecx, dword [esp + 0x58]
mov dword [ecx + 0x40], edx
mov eax, dword [eax + 0x24]
mov dword [ecx + 0x44], eax
mov eax, dword [esp + 0x48]
jmp 0x1003c5be
xor ecx, ecx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x5c], ecx
cmp dword [eax + 0x114], 0
je 0x1003c60b
cmp dword [esp + 0x5c], 0
je 0x1003c60b
mov eax, dword [esp + 0x58]
mov ecx, dword [edi + 0xc]
mov edx, dword [eax + 0x44]
push 0xffffffffffffffff
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [esp + 0x80]
push ecx
mov ecx, dword [esp + 0x5c]
push edx
and cl, 4
movsx edx, cl
neg edx
sbb edx, edx
and edx, 0xe
add edx, 9
push edx
push eax
mov eax, dword [esp + 0x78]
push ebx
call fcn.10034530
add esp, 0x20
test byte [esp + 0x4c], 0x40
jne case.0x10038be1.89
movzx eax, byte [edi + 2]
mov ecx, dword [esp + 0x58]
push eax
mov eax, dword [ecx + 0x2c]
call fcn.1002a8f0
mov ecx, dword [esp + 0x5c]
inc dword [esp + 0xe0]
xor edx, edx
add esp, 4
mov dword [esp + 0x38], eax
mov dword [ecx + 0x20], edx
mov dword [ecx + 0x24], edx
cmp eax, edx
jne 0x1003ceda
test byte [esp + 0x4c], 1
je 0x1003ebea
add dword [ebx + 0x28], 1
adc dword [ebx + 0x2c], edx
mov edx, dword [esp + 0x48]
mov ecx, dword [edx + 0xfc]
test ecx, ecx
je 0x1003ebea
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x1003ebea
test byte [eax + 0x1c], 0x80
jne 0x1003ebea
mov eax, dword [esp + 0x58]
mov edx, dword [eax + 0x44]
mov eax, dword [eax + 0x40]
push edx
mov edx, dword [esp + 0x60]
push eax
mov eax, dword [edx]
mov edx, dword [esp + 0x7c]
push eax
mov eax, dword [esp + 0x54]
push edx
mov edx, dword [eax + 0xf8]
push 9
push edx
call ecx
mov edi, dword [esp + 0x54]
add esp, 0x18
add edi, 0x14
jmp 0x10038bbc
mov ecx, dword [ebx + 0x28]
mov eax, dword [esp + 0x48]
mov edx, dword [ebx + 0x2c]
add dword [eax + 0x70], ecx
mov dword [eax + 0x68], ecx
mov dword [eax + 0x6c], edx
adc dword [eax + 0x74], edx
xor eax, eax
mov dword [ebx + 0x28], eax
mov dword [ebx + 0x2c], eax
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x60]
mov eax, dword [ecx + eax*4]
mov ecx, dword [edi + 0xc]
mov edi, dword [edi + 0x10]
lea edx, [ecx + ecx*4]
lea ecx, [esi + edx*8]
lea edx, [esp + 0x60]
push edx
push edi
push ecx
mov dword [esp + 0x6c], 0
call fcn.10042d40
add esp, 0xc
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003ceda
cmp dword [esp + 0x60], eax
jne 0x1003bc0f
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 8]
mov edx, dword [edi + 4]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + edx*4]
mov edi, ecx
call fcn.10042ca0
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003ced6
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx + 0xc]
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + 0x60]
mov edx, dword [ecx + edx*4]
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x44]
mov dword [edx + 0x20], 0
mov ebx, eax
add edi, 0x14
jmp 0x10038bbc
mov eax, edi
mov edx, ebx
call fcn.100387a0
mov ecx, dword [ebx + 0x60]
mov dword [esp + 0x54], eax
mov eax, dword [edi + 4]
mov edx, dword [ecx + eax*4]
mov edi, dword [edx + 0x2c]
mov ecx, edi
call fcn.10024ee0
mov eax, dword [edi + 0x2c]
mov ecx, dword [esp + 0x48]
cmp eax, dword [ecx + 0x78]
ja 0x1003ed86
mov ecx, dword [esp + 0x54]
mov edx, edi
call fcn.1002ee70
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003ceda
mov edx, dword [esp + 0x3c]
cmp dword [edx + 0xc], eax
jne 0x1003ebea
mov eax, dword [esp + 0x54]
mov ecx, 0x4000
test word [eax + 0x10], cx
je 0x1003ebea
call fcn.1002dfc0
test eax, eax
jne 0x1003d390
mov edi, dword [esp + 0x3c]
add edi, 0x14
jmp 0x10038bbc
mov eax, edi
mov edx, ebx
call fcn.100387a0
mov edx, dword [edi + 4]
mov dword [esp + 0x54], eax
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + edx*4]
cmp byte [eax + 2], 0
mov dword [esp + 0x4c], eax
je 0x1003c835
mov edx, dword [esp + 0x54]
mov ecx, 1
mov word [edx + 0x10], cx
add edi, 0x14
jmp 0x10038bbc
mov esi, dword [esp + 0x4c]
cmp byte [esi + 3], 0
je 0x1003c858
mov eax, dword [esi + 0x40]
mov dword [esp + 0x110], eax
mov ecx, dword [esi + 0x44]
mov dword [esp + 0x114], ecx
jmp 0x1003c903
cmp byte [esi], 2
jne 0x1003c895
mov edx, dword [esp + 0x4c]
mov eax, dword [edx + 0x2c]
mov esi, dword [eax]
mov ecx, dword [esi]
lea edx, [esp + 0x110]
push edx
push eax
mov eax, dword [ecx + 0x30]
call eax
add esp, 8
mov edi, ebx
mov dword [esp + 0x38], eax
call fcn.10034440
cmp dword [esp + 0x38], 0
jne 0x1003ced6
mov edi, dword [esp + 0x3c]
jmp 0x1003c8ff
mov ecx, dword [esi + 0x2c]
cmp byte [ecx], 0
je 0x1003c8d7
mov edi, esi
call fcn.10032ce0
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003ced6
mov edi, dword [esp + 0x3c]
cmp byte [esi + 2], 0
je 0x1003c8e1
mov eax, dword [esp + 0x54]
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
mov edx, 1
mov word [eax + 0x10], dx
add edi, 0x14
jmp 0x10038bbc
mov dword [esp + 0x38], 0
jmp 0x1003c8b4
mov esi, dword [esi + 0x2c]
mov ecx, esi
call fcn.10024ee0
mov ecx, dword [esi + 0x20]
mov dword [esp + 0x110], ecx
mov edx, dword [esi + 0x24]
mov dword [esp + 0x114], edx
mov ebx, dword [esp + 0x40]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x110]
mov esi, dword [esp + 0x44]
mov dword [eax], ecx
mov edx, dword [esp + 0x114]
mov dword [eax + 4], edx
add edi, 0x14
jmp 0x10038bbc
mov ecx, dword [edi + 4]
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
jne 0x1003c967
mov eax, dword [esp + 0x40]
push 3
push 1
mov ebx, ecx
call fcn.10038370
add esp, 8
test eax, eax
je 0x1003d38c
or dword [eax + 8], 8
mov edi, dword [esp + 0x3c]
mov dword [eax + 0x24], 0
mov byte [eax + 4], 1
mov dword [eax + 0x2c], 0x1013aff4
cmp byte [eax], 0
mov byte [eax + 2], 1
mov dword [eax + 0x20], 0
jne 0x1003ebee
mov esi, dword [eax + 0x2c]
call fcn.10020f00
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [ebx + 0x60]
mov edx, dword [edi + 4]
mov esi, dword [eax + edx*4]
mov eax, dword [esi + 0x2c]
mov dword [esp + 0xac], 0
cmp cl, 0x89
jne 0x1003c9c3
mov dword [esi + 0x24], 0xffffffff
cmp byte [eax], 0
je 0x1003ebee
mov ebx, dword [esp + 0x40]
cmp byte [eax], 0
jne 0x1003c9d6
test byte [eax + 1], 8
je 0x1003c9d6
xor eax, eax
mov dword [esp + 0x38], eax
jmp 0x1003c9f1
lea edi, [esp + 0xac]
call fcn.10025a00
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xac]
cmp dword [esp + 0x38], 0
mov byte [esi + 2], al
mov byte [esi + 3], 0
mov dword [esi + 0x20], 0
jne 0x1003ceda
mov ecx, dword [esp + 0x3c]
cmp dword [ecx + 8], 0
jle 0x1003ebea
test eax, eax
jne 0x1003bc0f
mov esi, dword [esp + 0x44]
mov edi, ecx
add edi, 0x14
jmp 0x10038bbc
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x60]
mov ecx, dword [eax + edx*4]
mov esi, dword [ecx + 0x2c]
lea edi, [esp + 0x12c]
mov eax, esi
call fcn.100259d0
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003ced6
cmp dword [esp + 0x12c], eax
jne 0x1003bc0f
push esi
call fcn.10026240
add esp, 4
test edx, edx
jl 0x1003ebea
jg 0x1003ca7c
test eax, eax
jb 0x1003ebea
push edx
push eax
call fcn.1000ffc0
movsx edx, ax
mov eax, dword [esp + 0x44]
add esp, 8
cmp edx, dword [eax + 0xc]
jge 0x1003ebea
mov dword [esp + 0x12c], 1
jmp 0x1003bc0f
inc dword [ebx + 0xac]
mov ecx, dword [edi + 4]
mov edx, dword [ebx + 0x60]
mov esi, dword [edx + ecx*4]
cmp byte [esi], 1
mov dword [esp + 0x4c], 1
lea edi, [esp + 0x4c]
jne 0x1003cacf
mov ecx, esi
call fcn.10042bb0
jmp 0x1003cae2
mov eax, dword [esi + 0x2c]
call fcn.100259d0
mov byte [esi + 3], 0
mov dword [esi + 0x20], 0
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003ced6
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x3c]
mov byte [esi + 2], al
cmp dword [ecx + 8], 0
jle 0x1003ebea
mov edi, ecx
test eax, eax
jne 0x1003bc13
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [ebx + 0x60]
mov edx, dword [edi + 4]
mov esi, dword [eax + edx*4]
mov ecx, dword [esp + 0x48]
push ecx
mov eax, esi
call fcn.10042c00
add esp, 4
jmp 0x1003cb68
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x60]
mov esi, dword [eax + edx*4]
mov ecx, dword [edi + 0xc]
mov edx, dword [esi + 0x2c]
push ecx
push edx
call fcn.100265f0
jmp 0x1003cb65
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x60]
mov esi, dword [ecx + eax*4]
mov edx, dword [edi + 0xc]
mov eax, dword [esi + 0x2c]
push edx
push eax
call fcn.10026420
add esp, 8
mov dword [esp + 0x38], eax
mov dword [esi + 0x20], 0
test eax, eax
jne 0x1003cb91
mov byte [esi + 2], al
movzx ecx, word [edi + 2]
inc dword [ebx + ecx*4 + 0xa4]
lea ebx, [ebx + ecx*4 + 0xa4]
jmp case.0x10038be1.9
cmp eax, 0x65
jne 0x1003ceda
mov dword [esp + 0x38], 0
mov byte [esi + 2], 1
jmp 0x1003e5b9
test byte [edi + 2], 1
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x60]
mov ecx, dword [eax + edx*4]
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
mov dword [esp + 0xac], ecx
lea esi, [esi + edx*8]
je 0x1003cbd2
add dword [ebx + 0x28], 1
adc dword [ebx + 0x2c], 0
mov eax, 0x400
test word [esi + 0x10], ax
je 0x1003cbf2
call fcn.1002e010
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003ceda
mov edi, dword [esp + 0x3c]
mov eax, dword [esi + 0xc]
cdq
mov dword [esp + 0x390], eax
mov eax, dword [edi + 0xc]
mov dword [esp + 0x394], edx
mov ecx, dword [esi + 8]
mov esi, dword [esp + 0xac]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x388], ecx
lea ecx, [eax + edx*8]
mov dx, word [edi + 0x10]
mov dword [esp + 0x39c], ecx
movzx ecx, word [edi + 2]
mov word [esp + 0x3a0], dx
test cl, 0x10
je 0x1003cc43
mov eax, dword [esi + 0x24]
jmp 0x1003cc45
xor eax, eax
and ecx, 0x8a
push ecx
lea ecx, [esp + 0x38c]
push ecx
mov ecx, dword [esi + 0x2c]
call fcn.1002a070
add esp, 8
mov dword [esp + 0x38], eax
mov dword [esi + 0x20], 0
test eax, eax
jne 0x1003ceda
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x60]
mov ecx, dword [eax + edx*4]
mov edi, dword [edi + 8]
lea edx, [edi + edi*4]
lea esi, [esi + edx*8]
mov eax, 0x400
mov dword [esp + 0x68], ecx
test word [esi + 0x10], ax
je 0x1003ccb4
call fcn.1002e010
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003ceda
mov eax, dword [esp + 0x68]
push esi
call fcn.10041b70
jmp 0x1003919c
mov ecx, dword [edi + 4]
mov edx, dword [ebx + 0x60]
mov eax, dword [edx + ecx*4]
mov esi, dword [eax + 0x2c]
mov cx, word [edi + 0xc]
mov edi, dword [edi + 8]
mov dword [esp + 0x68], eax
mov eax, dword [eax + 0x30]
mov dword [esp + 0x348], eax
mov eax, dword [esp + 0x44]
lea edx, [edi + edi*4]
mov word [esp + 0x35c], cx
lea ecx, [eax + edx*8]
lea edx, [esp + 0x17c]
push edx
lea eax, [esp + 0x34c]
push eax
mov byte [esp + 0x366], 0
mov dword [esp + 0x354], ecx
call fcn.10025d60
add esp, 8
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003ceda
xor edi, edi
cmp dword [esp + 0x17c], edi
jne 0x1003cd66
push 4
mov eax, esi
call fcn.1002a8f0
add esp, 4
mov dword [esp + 0x38], eax
cmp eax, edi
jne 0x1003ceda
mov eax, dword [esp + 0x68]
mov esi, dword [esp + 0x44]
mov dword [eax + 0x20], edi
mov dword [eax + 0x24], edi
mov edi, dword [esp + 0x3c]
add edi, 0x14
jmp 0x10038bbc
mov ecx, dword [esp + 0x3c]
cmp word [ecx + 2], di
je 0x1003cd81
mov eax, dword [esp + 0x48]
call fcn.10058c00
test eax, eax
je 0x1003efbf
mov eax, dword [esp + 0x68]
mov esi, dword [esp + 0x44]
mov dword [eax + 0x20], edi
mov dword [eax + 0x24], edi
mov edi, dword [esp + 0x3c]
add edi, 0x14
jmp 0x10038bbc
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x60]
mov esi, dword [eax + edx*4]
mov ecx, dword [esi + 0x2c]
cmp byte [ecx], 0
je 0x1003ce55
mov edi, esi
call fcn.10032ce0
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003ced6
mov edi, dword [esp + 0x3c]
cmp byte [esi + 2], 0
jne 0x1003ce8e
mov eax, dword [esp + 0x48]
lea edx, [esp + 0x108]
push edx
xor edi, edi
push eax
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x110], edi
mov dword [esp + 0x114], edi
call fcn.10034110
add esp, 8
mov dword [esp + 0x38], eax
cmp eax, edi
jne 0x1003ced6
mov eax, dword [esp + 0x3c]
cmp byte [eax], 0x8d
mov edx, dword [esp + 0x40]
jne 0x1003ce62
mov edx, dword [edx + 0x60]
mov ecx, dword [eax + 0xc]
mov ecx, dword [edx + ecx*4]
mov edx, dword [esp + 0x108]
mov ebx, dword [esp + 0x40]
mov dword [ecx + 0x40], edx
mov edx, dword [esp + 0x10c]
mov dword [ecx + 0x20], edi
mov edi, dword [esp + 0x3c]
mov dword [ecx + 0x44], edx
mov word [ecx + 2], 0x100
mov eax, dword [eax + 0x10]
mov dword [ecx + 0x28], esi
mov esi, dword [esp + 0x44]
mov dword [ecx + 0x10], eax
add edi, 0x14
jmp 0x10038bbc
mov dword [esp + 0x38], 0
jmp 0x1003cdc7
call fcn.100387a0
mov ecx, dword [esp + 0x108]
mov edx, dword [esp + 0x10c]
mov edi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
mov dword [eax], ecx
mov dword [eax + 4], edx
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 8]
mov ecx, dword [esp + 0x44]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
call fcn.1002e7f0
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + edx*4]
cmp byte [eax + 3], 0
je case.0x10038be1.89
mov esi, eax
call fcn.10032c70
mov dword [esp + 0x38], eax
test eax, eax
je 0x100391ab
mov ebx, dword [esp + 0x40]
mov edi, dword [esp + 0x48]
cmp byte [edi + 0x57], 0
je 0x1003f0d1
mov dword [esp + 0x38], 7
jmp 0x1003f101
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + edx*4]
mov edx, dword [eax + 0x30]
mov dword [esp + 0x328], edx
mov dx, word [edi + 0x10]
mov edi, dword [edi + 0xc]
cmp cl, 0x2a
sbb cl, cl
mov word [esp + 0x33c], dx
lea edx, [edi + edi*4]
mov edi, dword [eax + 0x2c]
mov byte [esp + 0x33e], cl
lea ecx, [esi + edx*8]
mov dword [esp + 0x32c], ecx
mov ecx, edi
call fcn.10024ee0
xor ecx, ecx
mov eax, dword [edi + 0x2c]
jl 0x1003efed
jg 0x1003cf4f
test eax, eax
je 0x1003efed
test ecx, ecx
jg 0x1003efed
jl 0x1003cf64
cmp eax, 0x7fffffff
ja 0x1003efed
mov ecx, dword [esp + 0x48]
xor edx, edx
mov word [esp + 0x2e8], dx
mov dword [esp + 0x2ec], ecx
mov dword [esp + 0x2f0], edx
lea ecx, [esp + 0x2d8]
mov edx, edi
call fcn.1002ee70
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003ced6
mov ecx, dword [esp + 0x2e4]
push eax
mov eax, dword [esp + 0x2e4]
lea edx, [esp + 0x32c]
push edx
push eax
push ecx
call fcn.100336b0
add esp, 0x10
cmp dword [esp + 0x2f0], 0
mov edi, eax
je 0x1003cfd3
lea eax, [esp + 0x2d8]
call fcn.1002e260
mov edx, dword [esp + 0x3c]
test byte [edx], 1
jne 0x1003cfe0
neg edi
jmp 0x1003cfe1
inc edi
test edi, edi
mov edi, dword [esp + 0x3c]
jg 0x1003bc13
add edi, 0x14
jmp 0x10038bbc
mov eax, edi
mov edx, ebx
call fcn.100387a0
mov esi, eax
mov eax, 1
mov word [esi + 0x10], ax
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0xcc]
inc ecx
cmp dword [eax + 0xc0], ecx
jg 0x1003f000
mov ebx, dword [edi + 0xc]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0x10]
lea edx, [esp + 0x88]
push edx
mov edx, ebx
add edx, edx
mov eax, dword [eax + edx*8 + 4]
push ecx
mov dword [esp + 0x90], 0
call fcn.1002b600
mov ecx, 4
mov edi, eax
mov word [esi + 0x10], cx
mov ecx, dword [esp + 0x90]
mov eax, ecx
cdq
add esp, 8
mov dword [esp + 0x38], edi
mov dword [esi], eax
mov dword [esi + 4], edx
test edi, edi
jne 0x1003ced6
test ecx, ecx
je 0x1003ebea
mov edx, dword [esp + 0x3c]
mov edi, dword [edx + 4]
mov esi, ecx
mov ecx, dword [esp + 0x48]
mov eax, ebx
call fcn.1005bd30
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x44]
inc bl
mov byte [esp + 0x8f], bl
mov ebx, dword [esp + 0x40]
add edi, 0x14
jmp 0x10038bbc
mov ecx, dword [edi + 8]
mov edx, dword [esp + 0x48]
mov ebx, dword [edi + 4]
xor eax, eax
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], eax
lea eax, [esp + 0x120]
push eax
mov eax, dword [edx + 0x10]
shl ecx, 4
mov eax, dword [ecx + eax + 4]
call fcn.1002b2d0
add esp, 4
cmp dword [edi + 0xc], 0
mov dword [esp + 0x38], eax
je 0x1003d120
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x120]
add dword [ecx + 0x28], edx
mov esi, dword [esp + 0x124]
adc dword [ecx + 0x2c], esi
mov edi, dword [edi + 0xc]
test edi, edi
jle 0x1003d120
mov esi, dword [esp + 0x44]
lea ecx, [edi + edi*4]
add dword [esi + ecx*8], edx
mov edx, dword [esp + 0x124]
lea ecx, [esi + ecx*8]
adc dword [ecx + 4], edx
test eax, eax
jne 0x1003ced6
mov edi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x60]
mov eax, dword [ecx + eax*4]
cmp byte [eax], 1
jne 0x1003d16a
mov edx, dword [esp + 0x48]
mov ebx, dword [eax + 0x2c]
push edx
call fcn.10041000
mov ebx, dword [esp + 0x44]
mov esi, dword [esp + 0x48]
add esp, 4
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [eax + 0x2c]
mov ebx, dword [eax + 0x40]
mov eax, dword [eax + 8]
push 0
call fcn.1002b2d0
add esp, 4
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003ced6
mov edi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov eax, edi
mov edx, ebx
call fcn.100387a0
mov ecx, dword [esp + 0x48]
mov edx, dword [edi + 0xc]
mov dword [esp + 0x54], eax
mov eax, dword [edi + 4]
shl eax, 4
add eax, dword [ecx + 0x10]
push edx
mov eax, dword [eax + 4]
lea ecx, [esp + 0x6c]
push ecx
mov dword [esp + 0x70], 0
call fcn.1002b0a0
add esp, 8
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003ceda
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x68]
mov edi, dword [esp + 0x3c]
mov dword [eax], edx
mov dword [eax + 4], 0
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [esp + 0x48]
inc byte [eax + 0x60]
mov ecx, dword [edi + 0x10]
push 0
push 0
push 0
push ecx
push eax
call sym.MyService.dll_sqlite3_exec
mov ecx, dword [esp + 0x5c]
dec byte [ecx + 0x60]
add esp, 0x14
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003ceda
mov edi, dword [esp + 0x3c]
add edi, 0x14
jmp 0x10038bbc
cmp dword [edi + 0x10], 0
mov edx, dword [edi + 4]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x4c], edx
mov eax, edx
jne 0x1003d291
mov edx, dword [ecx + 0x10]
add eax, eax
mov eax, dword [edx + eax*8 + 0xc]
push eax
call fcn.10060890
mov eax, dword [esp + 0x4c]
and dword [eax + 0x18], 0xffffffef
movzx ecx, word [edi + 2]
add esp, 4
push ecx
mov ecx, dword [esp + 0x50]
lea edx, [ebx + 0x7c]
push edx
push ecx
push eax
call fcn.10073d00
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x58]
or dword [eax + 0x18], 1
add esp, 0x10
and dword [ebx + 0x98], 0xfffffffc
jmp 0x1003d36d
mov dword [esp + 0x1ec], eax
shl eax, 4
add eax, dword [ecx + 0x10]
mov dword [esp + 0x1e4], ecx
mov dword [esp + 0x1f4], 0
lea edx, [ebx + 0x7c]
mov dword [esp + 0x1e8], edx
mov edx, dword [eax + 4]
mov edx, dword [edx + 4]
mov edx, dword [edx + 0x30]
mov dword [esp + 0x1fc], edx
mov edx, dword [edi + 0x10]
mov eax, dword [eax]
push edx
push str.sqlite_master
push eax
push str.SELECTFROM__w_._s_WHERE__s_ORDER_BY_rowid
push ecx
call fcn.1000ced0
add esp, 0x14
mov dword [esp + 0x68], eax
test eax, eax
je 0x1003ec12
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x48]
xor ecx, ecx
push ecx
mov dword [esp + 0x1f4], ecx
mov dword [esp + 0x1fc], ecx
lea ecx, [esp + 0x1e8]
push ecx
push fcn.10073ae0
push edx
push eax
mov byte [eax + 0xb1], 1
call sym.MyService.dll_sqlite3_exec
add esp, 0x14
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003d355
mov eax, dword [esp + 0x1f0]
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003d355
cmp dword [esp + 0x1f8], eax
jne 0x1003d355
mov eax, 0x181b6
call fcn.100a9300
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x48]
call fcn.1000a790
mov eax, dword [esp + 0x48]
mov byte [eax + 0xb1], 0
cmp dword [esp + 0x38], 0
je case.0x10038be1.89
mov eax, dword [esp + 0x48]
call fcn.10058270
cmp dword [esp + 0x38], 7
jne 0x1003ceda
mov ebx, dword [esp + 0x40]
mov eax, dword [esp + 0x48]
push eax
call fcn.1000aee0
add esp, 4
push str.out_of_memory
push ebx
call fcn.1002f5b0
add esp, 8
mov dword [esp + 0x38], 7
jmp 0x1003ceda
mov eax, dword [edi + 4]
mov edi, dword [esp + 0x48]
call fcn.10055d90
mov ebx, dword [esp + 0x40]
jmp 0x1003919f
mov ecx, dword [edi + 0x10]
mov eax, dword [edi + 4]
mov ebx, dword [esp + 0x48]
push ecx
call fcn.10058900
mov esi, dword [esp + 0x48]
mov ebx, dword [esp + 0x44]
add esp, 4
add edi, 0x14
jmp 0x10038bbc
mov edx, dword [edi + 0x10]
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x48]
push edx
call fcn.10057d60
add esp, 4
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 0x10]
push eax
mov eax, dword [edi + 4]
mov edi, dword [esp + 0x4c]
call fcn.10083500
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x48]
mov ebx, dword [esp + 0x44]
add esp, 4
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 8]
mov edx, dword [edi + 0x10]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x68], eax
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
lea eax, [esp + 0x128]
push eax
lea eax, [esp + 0x16c]
push eax
mov eax, dword [esp + 0x70]
mov eax, dword [eax]
inc eax
push eax
mov eax, dword [esp + 0x54]
push ecx
lea ecx, [edx + 4]
movzx edx, word [edi + 2]
mov edi, dword [eax + 0x10]
add edx, edx
mov edx, dword [edi + edx*8 + 4]
push eax
call fcn.1002c330
mov edi, eax
add esp, 0x14
mov eax, esi
mov dword [esp + 0x38], edi
call fcn.1002e7f0
mov eax, dword [esp + 0x168]
test eax, eax
je 0x1003d4cc
test edi, edi
jne 0x1003f014
mov ecx, dword [esp + 0x68]
dec eax
push sym.MyService.dll_sqlite3_free
cdq
sub dword [ecx], eax
mov eax, dword [esp + 0x12c]
push 1
sbb dword [ecx + 4], edx
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
mov eax, esi
call fcn.1002eb50
add esp, 0x14
movzx ecx, byte [esp + 0x78]
mov eax, esi
call fcn.1002dd50
jmp 0x1003e5b9
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
test byte [esi + ecx*8 + 0x10], 0x10
mov eax, dword [edi + 8]
lea ecx, [esi + ecx*8]
lea edx, [eax + eax*4]
lea eax, [esi + edx*8]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x50], eax
jne 0x1003d511
mov esi, ecx
call fcn.1002e970
test eax, eax
jne 0x1003d390
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov eax, dword [esp + 0x60]
mov esi, dword [eax + 8]
push ecx
push edx
call fcn.10017a60
mov esi, dword [esp + 0x4c]
add esp, 8
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
test byte [esi + ecx*8 + 0x10], 0x10
lea ebx, [esi + ecx*8]
je 0x1003d584
mov eax, dword [ebx + 8]
lea esi, [esp + 0x1c8]
call fcn.10017de0
test eax, eax
je 0x1003d584
mov edx, dword [esp + 0x1cc]
mov edi, dword [edi + 0xc]
mov eax, dword [esp + 0x1c8]
push edx
mov edx, dword [esp + 0x48]
lea ecx, [edi + edi*4]
push eax
lea eax, [edx + ecx*8]
call fcn.1002e890
add esp, 8
jmp 0x1003e5b9
mov eax, ebx
call fcn.1002e7f0
jmp case.0x10038be1.9
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 0x10
lea ecx, [esi + eax*8]
mov eax, dword [edi + 0xc]
lea edx, [eax + eax*4]
lea eax, [esi + edx*8]
mov edx, dword [edi + 0x10]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x68], edx
jne 0x1003d5cb
mov esi, ecx
call fcn.1002e970
test eax, eax
jne 0x1003d390
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x68]
test eax, eax
je 0x1003d5fc
mov ecx, dword [esp + 0x50]
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
push edx
mov edx, dword [esp + 0x64]
push ecx
push eax
mov eax, dword [edx + 8]
call fcn.10017e30
add esp, 0xc
test eax, eax
jne 0x1003bc13
mov eax, dword [esp + 0x68]
test eax, eax
js 0x10038ee4
jmp 0x1003d511
cmp word [edi + 2], 0
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x10]
lea edx, [eax + eax*4]
lea eax, [esi + edx*8]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x74], eax
je 0x1003d640
mov eax, dword [ebx + 0xd0]
mov edx, dword [ecx + 0x14]
test eax, eax
je 0x1003d640
nop
cmp dword [eax + 0x18], edx
je case.0x10038be1.89
mov eax, dword [eax + 4]
test eax, eax
jne 0x1003d630
mov edx, dword [ebx + 0xd8]
mov eax, dword [esp + 0x48]
cmp edx, dword [eax + 0xa0]
jge 0x1003f029
mov edx, dword [esp + 0x74]
test byte [edx + 0x10], 0x10
jne 0x1003d764
mov edx, dword [ecx + 0xc]
mov eax, dword [ecx + 8]
add eax, edx
mov dword [esp + 0x4c], eax
test edx, edx
jne 0x1003d679
inc eax
mov dword [esp + 0x4c], eax
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x64]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 4]
add eax, 7
lea ecx, [edx + ecx*2]
cdq
and edx, 7
add eax, edx
sar eax, 3
lea eax, [eax + ecx*4 + 0x58]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x68], eax
cdq
push edx
push eax
call fcn.1000aa80
mov esi, eax
add esp, 8
test esi, esi
je 0x1003d390
mov edi, dword [esp + 0x74]
mov eax, edi
call fcn.1002e2a0
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x4c]
mov dword [edi + 0xc], eax
mov dword [edi + 8], esi
mov dword [edi + 0x24], 0x10030cd0
mov edx, 0x1010
mov word [edi + 0x10], dx
mov edi, dword [esp + 0x64]
mov dword [esi + 0x3c], ecx
mov ecx, dword [esp + 0x3c]
sub ecx, dword [esp + 0x7c]
mov dword [esi], ebx
mov edx, dword [edi + 0xc]
mov dword [esi + 0x40], edx
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x30], eax
mov ecx, dword [ebx + 0x58]
mov dword [esi + 0xc], ecx
mov edx, dword [ebx + 0x14]
mov dword [esi + 0x38], edx
mov eax, dword [ebx + 0x60]
mov dword [esi + 0x10], eax
mov ecx, dword [ebx + 0x18]
mov dword [esi + 0x2c], ecx
mov edx, dword [ebx + 0x68]
mov dword [esi + 8], edx
mov eax, dword [ebx + 0x6c]
mov dword [esi + 0x34], eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [edi + 0x14]
lea edx, [eax + eax*4]
mov dword [esi + 0x18], ecx
lea ecx, [esi + edx*8 + 0x58]
lea eax, [esi + 0x58]
mov dword [esp + 0x68], ecx
cmp eax, ecx
mov ecx, dword [esp + 0x48]
je 0x1003d773
mov edi, edi
xor edx, edx
mov word [eax + 0x10], dx
mov dword [eax + 0x14], ecx
add eax, 0x28
cmp eax, dword [esp + 0x68]
jne 0x1003d750
jmp 0x1003d773
mov eax, dword [esp + 0x74]
mov esi, dword [eax + 8]
mov edi, dword [esp + 0x64]
mov ecx, dword [esp + 0x48]
inc dword [ebx + 0xd8]
mov edx, dword [ebx + 0xd0]
mov dword [esi + 4], edx
mov eax, dword [ecx + 0x28]
mov dword [esi + 0x20], eax
mov ecx, dword [ecx + 0x2c]
mov dword [esi + 0x24], ecx
mov edx, dword [ebx + 0x28]
mov dword [esi + 0x48], edx
mov eax, dword [ebx + 0x2c]
mov dword [esi + 0x4c], eax
mov eax, dword [ebx]
mov ecx, dword [eax + 0x68]
mov dword [esi + 0x50], ecx
mov edx, dword [eax + 0x6c]
mov dword [esi + 0x54], edx
mov eax, dword [ebx + 0xe4]
mov dword [esi + 0x28], eax
xor eax, eax
mov dword [ebx + 0xe4], eax
mov dword [ebx + 0x28], eax
mov dword [ebx + 0x2c], eax
mov dword [ebx + 0xd0], esi
lea eax, [esi + 0x58]
mov dword [ebx + 0x58], eax
mov ecx, dword [esi + 0x3c]
mov dword [ebx + 0x14], ecx
movzx edx, word [esi + 0x40]
mov dword [ebx + 0x18], edx
mov dword [esp + 0x44], eax
mov edx, ecx
lea ecx, [edx + edx*4]
lea eax, [eax + ecx*8]
mov dword [ebx + 0x60], eax
mov edx, dword [edi + 0xc]
lea ecx, [eax + edx*4]
mov dword [esi + 0x14], ecx
mov eax, dword [edi + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
push 0
push ecx
call fcn.100ff5c0
mov eax, dword [edi]
mov dword [ebx + 0x68], eax
mov ecx, dword [edi + 4]
add esp, 0xc
mov dword [esp + 0x7c], eax
mov dword [ebx + 0x6c], ecx
add eax, 0xffffffec
jmp 0x1003e5b5
mov eax, edi
mov edx, ebx
call fcn.100387a0
mov edx, dword [ebx + 0xd0]
mov ecx, dword [edx + 8]
mov dword [esp + 0x54], eax
mov eax, dword [edx + 0x30]
lea eax, [eax + eax*4]
mov ecx, dword [ecx + eax*4 + 4]
add ecx, dword [edi + 4]
push 0x4000
lea eax, [ecx + ecx*4]
mov ecx, dword [edx + 0xc]
lea edx, [ecx + eax*8]
mov eax, dword [esp + 0x58]
push edx
push eax
call fcn.1002ea20
add esp, 0xc
add edi, 0x14
jmp 0x10038bbc
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx + 0x20]
and eax, 0x80000
xor edx, edx
or eax, edx
mov eax, dword [edi + 8]
je 0x1003d893
cdq
add dword [ecx + 0x218], eax
adc dword [ecx + 0x21c], edx
add edi, 0x14
jmp 0x10038bbc
cmp dword [edi + 4], edx
cdq
je 0x1003d8ad
add dword [ecx + 0x210], eax
adc dword [ecx + 0x214], edx
add edi, 0x14
jmp 0x10038bbc
add dword [ebx + 0x40], eax
adc dword [ebx + 0x44], edx
add edi, 0x14
jmp 0x10038bbc
cmp dword [edi + 4], 0
je 0x1003d8f9
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x210]
or ecx, dword [eax + 0x214]
jne case.0x10038be1.89
mov edx, dword [eax + 0x218]
or edx, dword [eax + 0x21c]
je 0x1003bc13
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [ebx + 0x40]
or eax, dword [ebx + 0x44]
jne case.0x10038be1.89
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x218]
or ecx, dword [eax + 0x21c]
je 0x1003bc13
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov ebx, dword [ebx + 0xd0]
test ebx, ebx
je 0x1003d957
mov ecx, ebx
mov eax, dword [ecx + 4]
test eax, eax
je 0x1003d949
mov edi, edi
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x1003d940
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [ecx + 0xc]
lea ebx, [eax + edx*8]
jmp 0x1003d960
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
lea ebx, [esi + ecx*8]
mov esi, ebx
call fcn.1002e490
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x44]
lea esi, [eax + edx*8]
call fcn.1002e490
mov eax, dword [esi]
mov esi, dword [esi + 4]
mov ecx, dword [ebx + 4]
cmp ecx, esi
jg 0x1003ebee
jl 0x1003d993
cmp dword [ebx], eax
jae 0x1003ebee
mov dword [ebx + 4], esi
mov esi, dword [esp + 0x44]
mov dword [ebx], eax
mov ebx, dword [esp + 0x40]
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
mov edx, dword [esi + eax*8]
lea ecx, [esi + eax*8]
mov eax, dword [ecx + 4]
mov dword [esp + 0x180], edx
mov dword [esp + 0x184], eax
test eax, eax
jl case.0x10038be1.89
jg 0x1003d9d7
test edx, edx
je case.0x10038be1.89
mov eax, dword [edi + 0xc]
mov esi, dword [esp + 0x180]
cdq
sub esi, eax
mov eax, dword [esp + 0x184]
sbb eax, edx
mov dword [ecx], esi
mov dword [ecx + 4], eax
jmp 0x1003bc13
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0xc]
lea edx, [esi + ecx*8]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov dword [esp + 0x60], edx
mov eax, edi
mov edx, ebx
mov dword [esp + 0x50], ecx
call fcn.100387a0
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x60]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x138], ecx
mov dword [esp + 0x13c], eax
test eax, eax
jl 0x1003da8b
jg 0x1003da3f
test ecx, ecx
je 0x1003da8b
mov eax, dword [esp + 0x50]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
test eax, eax
jl 0x1003da52
jg 0x1003da56
test ecx, ecx
jne 0x1003da56
xor ecx, ecx
xor eax, eax
push eax
push ecx
lea edx, [esp + 0x140]
push edx
call fcn.1000fd40
add esp, 0xc
test eax, eax
jne 0x1003da8b
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x138]
mov edx, dword [esp + 0x13c]
mov dword [eax], ecx
mov dword [eax + 4], edx
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [esp + 0x54]
mov dword [eax], 0xffffffff
mov dword [eax + 4], 0xffffffff
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [ecx]
mov dword [esp + 0x60], ecx
mov ecx, dword [ecx + 4]
mov edx, eax
or edx, ecx
je case.0x10038be1.89
test ecx, ecx
jl 0x1003bc13
jg 0x1003dad2
test eax, eax
je 0x1003bc13
mov edx, dword [esp + 0x60]
sub eax, 1
sbb ecx, 0
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x1003bc13
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [esi + eax*8]
lea esi, [esi + eax*8]
mov eax, dword [esi + 4]
cmp eax, 0x80000000
jl 0x1003db0d
jg 0x1003db02
test ecx, ecx
je 0x1003db0d
sub ecx, 1
sbb eax, 0
mov dword [esi], ecx
mov dword [esi + 4], eax
mov ecx, dword [esi]
or ecx, dword [esi + 4]
je 0x1003bc13
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
movzx eax, word [edi + 2]
mov ecx, dword [esp + 0x48]
lea edx, [eax*4 + 0x44]
push 0
push edx
mov dword [esp + 0x70], eax
call fcn.1000ab60
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x1003d390
mov eax, dword [esp + 0x68]
lea eax, [ecx + eax*4 + 0x1c]
mov dword [ecx], eax
xor edx, edx
mov dword [ecx + 8], edx
mov dword [eax + 0x18], edx
mov edi, 1
mov word [eax + 0x10], di
mov edi, dword [esp + 0x48]
mov dword [eax + 0x14], edi
mov edi, dword [esp + 0x3c]
mov edx, dword [edi + 0x10]
mov dword [ecx + 4], edx
mov edx, edi
sub edx, dword [esp + 0x7c]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, byte [esp + 0x78]
mov dword [ecx + 0x10], eax
mov al, byte [esp + 0x68]
mov dword [ecx + 0xc], ebx
mov byte [ecx + 0x19], 0
mov dword [ecx + 0x14], 0
mov byte [ecx + 0x18], dl
mov byte [ecx + 0x1a], al
mov dword [edi + 0x10], ecx
mov word [edi], 0xf1a3
mov ecx, dword [edi + 0xc]
mov eax, dword [edi + 0x10]
lea ecx, [ecx + ecx*4]
lea ebx, [esi + ecx*8]
mov dword [esp + 0x58], eax
cmp dword [eax + 8], ebx
je 0x1003dbf3
movzx ecx, byte [eax + 0x1a]
dec ecx
mov dword [eax + 8], ebx
js 0x1003dbf3
lea edx, [eax + ecx*4 + 0x1c]
lea ecx, [ecx]
mov eax, dword [edi + 8]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [edx], eax
sub edx, 4
dec ecx
jns 0x1003dbe0
inc dword [ebx + 0xc]
cmp dword [edi + 4], 0
je 0x1003dc14
mov esi, dword [esp + 0x58]
movzx eax, byte [esi + 0x1a]
mov ecx, dword [esi + 4]
mov ecx, dword [ecx + 0x1c]
lea edx, [esi + 0x1c]
push edx
push eax
push esi
call ecx
jmp 0x1003dc2e
mov eax, dword [esp + 0x58]
mov edx, dword [eax + 4]
mov edx, dword [edx + 0x10]
lea ecx, [eax + 0x1c]
push ecx
movzx ecx, byte [eax + 0x1a]
push ecx
push eax
call edx
mov esi, dword [esp + 0x64]
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x1003ebee
mov esi, dword [esp + 0x58]
jle 0x1003dc69
mov eax, dword [esi]
push eax
call sym.MyService.dll_sqlite3_value_text
mov ebx, dword [esp + 0x44]
add esp, 4
push eax
push 0x10112e4c
push ebx
call fcn.1002f5b0
mov ecx, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x38], ecx
jmp 0x1003dc6d
mov ebx, dword [esp + 0x40]
cmp byte [esi + 0x19], 0
mov esi, dword [esp + 0x44]
je 0x1003dc98
mov edi, dword [edi - 0x10]
test edi, edi
je 0x1003dc90
lea edx, [edi + edi*4]
push 0
push 1
lea eax, [esi + edx*8]
call fcn.1002e890
add esp, 8
mov eax, dword [esp + 0x58]
mov byte [eax + 0x19], 0
mov edi, dword [esp + 0x58]
mov eax, dword [edi]
call fcn.1002e2a0
cmp dword [esp + 0x38], 0
mov ecx, dword [edi]
mov edx, 1
mov word [ecx + 0x10], dx
mov dword [edi + 0x14], 0
jne 0x1003ceda
mov edi, dword [esp + 0x3c]
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
lea ebx, [esi + eax*8]
mov eax, dword [edi + 0xc]
test eax, eax
je 0x1003dd09
mov edx, dword [esp + 0x44]
mov edi, dword [edi + 0x10]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
call fcn.1002e1b0
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0xc]
lea ecx, [eax + eax*4]
lea ebx, [edx + ecx*8]
jmp 0x1003dd17
mov ecx, dword [edi + 0x10]
mov eax, ebx
call fcn.1002e0f0
mov dword [esp + 0x38], eax
cmp dword [esp + 0x38], 0
jne 0x1003f044
movzx ecx, byte [esp + 0x78]
mov eax, ebx
call fcn.1002dd50
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov edx, dword [edi + 8]
or eax, 0xffffffff
mov dword [esp + 0x3b8], eax
mov dword [esp + 0x3b4], eax
lea eax, [esp + 0x3b8]
push eax
mov eax, dword [edi + 4]
lea ecx, [esp + 0x3b8]
push ecx
mov ecx, dword [esp + 0x50]
push edx
push eax
push ecx
mov dword [esp + 0x3c4], 0
call fcn.100a7d80
add esp, 0x14
mov dword [esp + 0x38], eax
test eax, eax
je 0x1003dda7
cmp eax, 5
jne 0x1003ceda
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x38], 0
mov dword [esp + 0x3b0], 1
mov eax, dword [edi + 0xc]
lea edx, [eax + eax*4]
lea eax, [esi + edx*8]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x74], eax
lea esp, [esp]
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + ecx*4 + 0x3b0]
cdq
push edx
push eax
mov eax, dword [esp + 0x7c]
call fcn.1002e890
mov eax, dword [esp + 0x54]
add dword [esp + 0x7c], 0x28
inc eax
add esp, 8
mov dword [esp + 0x4c], eax
cmp eax, 3
jl 0x1003ddc0
add edi, 0x14
jmp 0x10038bbc
mov eax, edi
mov edx, ebx
call fcn.100387a0
mov edx, dword [edi + 4]
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx + 0x10]
add edx, edx
mov ecx, dword [ecx + edx*8 + 4]
mov edx, dword [ecx + 4]
mov dword [esp + 0x54], eax
mov eax, dword [edi + 0xc]
mov edi, dword [edx]
mov dword [esp + 0x68], ecx
movzx ecx, byte [edi + 5]
mov dword [esp + 0x50], eax
mov dword [esp + 0x5c], ecx
cmp eax, 0xffffffff
jne 0x1003de35
mov edx, ecx
mov dword [esp + 0x50], edx
mov eax, edi
call fcn.1001d290
test eax, eax
jne 0x1003de48
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x50], eax
cmp byte [edi + 0xf], 0
jne 0x1003de5e
cmp dword [edi], 0x1012cda8
je 0x1003de5e
mov eax, dword [edi + 0xb8]
jmp 0x1003de63
mov eax, 0x10113840
cmp dword [esp + 0x50], 5
jne 0x1003de8b
call fcn.1000dfa0
test eax, eax
je 0x1003de7e
mov eax, edi
call fcn.1001d380
test eax, eax
jne 0x1003de8b
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x50], ecx
jmp 0x1003df17
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x5c]
cmp edx, ecx
je 0x1003df17
cmp ecx, 5
je 0x1003dea5
cmp edx, 5
jne 0x1003df17
mov eax, dword [esp + 0x48]
cmp byte [eax + 0x55], 0
je 0x1003f065
cmp dword [eax + 0xc0], 1
jg 0x1003f065
cmp ecx, 5
jne 0x1003dee5
push eax
mov eax, edi
call fcn.1001d4f0
add esp, 4
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003df1e
mov eax, dword [esp + 0x50]
mov ecx, edi
call fcn.1001d180
jmp 0x1003defb
cmp ecx, 4
jne 0x1003def4
lea eax, [ecx - 2]
mov ecx, edi
call fcn.1001d180
cmp dword [esp + 0x38], 0
jne 0x1003df1e
mov eax, dword [esp + 0x68]
xor edx, edx
cmp dword [esp + 0x50], 5
sete dl
inc edx
push edx
call fcn.1002cb10
add esp, 4
mov dword [esp + 0x38], eax
cmp dword [esp + 0x38], 0
je 0x1003df26
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x50]
mov ecx, edi
call fcn.1001d180
mov edi, dword [esp + 0x54]
mov ecx, 0x2202
mov word [edi + 0x10], cx
call fcn.1006f260
mov dword [edi + 8], eax
call fcn.1000dfa0
movzx ecx, byte [esp + 0x78]
mov dword [edi + 0xc], eax
mov eax, edi
mov byte [edi + 0x12], 1
call fcn.1002dd50
cmp dword [esp + 0x38], 0
jne 0x1003ceda
mov edi, dword [esp + 0x3c]
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 8]
test eax, eax
je 0x1003df84
lea edx, [eax + eax*4]
lea eax, [esi + edx*8]
jmp 0x1003df86
xor eax, eax
mov ecx, dword [esp + 0x48]
push eax
lea eax, [ebx + 0x7c]
push eax
mov eax, dword [edi + 4]
call fcn.10088ba0
add esp, 8
jmp 0x1003919f
mov ecx, dword [edi + 4]
mov edx, dword [esp + 0x48]
mov eax, dword [edx + 0x10]
shl ecx, 4
mov eax, dword [ecx + eax + 4]
push eax
call fcn.100244a0
add esp, 4
mov dword [esp + 0x38], eax
test eax, eax
je 0x1003ebee
cmp eax, 0x65
jne 0x1003ceda
mov dword [esp + 0x38], 0
jmp 0x1003bc0f
cmp dword [edi + 4], 0
mov ecx, dword [edi + 8]
jne 0x1003dff5
mov eax, dword [esp + 0x48]
call fcn.10034340
add edi, 0x14
jmp 0x10038bbc
inc ecx
xor ecx, dword [ebx + 0x98]
and ecx, 3
xor dword [ebx + 0x98], ecx
add edi, 0x14
jmp 0x10038bbc
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x60]
mov ecx, dword [eax + edx*4]
mov eax, dword [ecx + 0x2c]
or byte [eax + 1], 0x40
add edi, 0x14
jmp 0x10038bbc
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x60]
mov ecx, dword [eax + edx*4]
mov eax, dword [ecx + 0x2c]
and byte [eax + 1], 0xbf
add edi, 0x14
jmp 0x10038bbc
mov cl, byte [edi + 0xc]
test cl, cl
jne 0x1003e05e
mov edx, dword [esp + 0x48]
mov eax, dword [edx + 0x24]
and eax, 4
xor edx, edx
jne case.0x10038be1.89
test eax, eax
jne case.0x10038be1.89
mov edx, dword [edi + 8]
mov eax, dword [edi + 4]
push edx
mov edx, dword [esp + 0x4c]
mov edx, dword [edx + 0x10]
add eax, eax
mov eax, dword [edx + eax*8 + 4]
call fcn.1002ca30
add esp, 4
mov dword [esp + 0x38], eax
test eax, eax
je case.0x10038be1.89
cmp al, 6
jne 0x1003ceda
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx + 0x10]
push edx
push str.database_table_is_locked:__s
push ebx
call fcn.1002f5b0
add esp, 0xc
jmp 0x1003ceda
mov edi, dword [edi + 0x10]
mov eax, dword [esp + 0x48]
mov esi, edi
call fcn.1008a7b0
mov dword [esp + 0x38], eax
test edi, edi
je 0x1003e0cd
mov esi, dword [edi + 8]
mov edi, ebx
call fcn.10034440
mov ebx, dword [esp + 0x40]
cmp dword [esp + 0x38], 0
jmp 0x100391a5
mov edi, dword [edi + 8]
xor eax, eax
mov dword [esp + 0x23c], eax
mov dword [esp + 0x228], eax
mov dword [esp + 0x22c], eax
mov dword [esp + 0x230], eax
mov dword [esp + 0x234], eax
mov dword [esp + 0x238], eax
mov dword [esp + 0x240], eax
mov dword [esp + 0x244], eax
mov dword [esp + 0x248], eax
mov dword [esp + 0x24c], eax
mov eax, dword [esp + 0x48]
lea ecx, [edi + edi*4]
mov dword [esp + 0x23c], eax
lea edi, [esi + ecx*8]
lea eax, [esp + 0x228]
call fcn.1002ea90
lea edx, [esp + 0x228]
push edx
mov dword [esp + 0x3c], eax
call sym.MyService.dll_sqlite3_value_text
add esp, 4
test eax, eax
je 0x1003e177
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
add ecx, 0x7c
push ecx
mov ecx, dword [esp + 0x4c]
push eax
mov eax, dword [edx + 4]
call fcn.1008a160
add esp, 8
mov dword [esp + 0x38], eax
lea eax, [esp + 0x228]
call fcn.1002e2a0
mov ebx, dword [esp + 0x40]
cmp dword [esp + 0x38], 0
jmp 0x100391a5
mov eax, dword [esp + 0x48]
inc dword [eax + 0xcc]
mov ecx, dword [edi + 0x10]
push ecx
push eax
mov eax, dword [edi + 4]
call fcn.1008a4e0
mov ecx, dword [esp + 0x50]
dec dword [ecx + 0xcc]
add esp, 8
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003ceda
mov edi, dword [esp + 0x3c]
add edi, 0x14
jmp 0x10038bbc
mov edx, dword [edi + 0x10]
mov dword [esp + 0x64], 0
mov esi, dword [edx + 8]
test esi, esi
je 0x1003f0a6
mov eax, dword [esi]
mov dword [esp + 0x68], eax
test eax, eax
je 0x1003f0a6
mov edx, dword [eax + 0x18]
lea ecx, [esp + 0x64]
push ecx
push esi
call edx
add esp, 8
mov edi, ebx
mov dword [esp + 0x38], eax
call fcn.10034440
cmp dword [esp + 0x38], 0
jne 0x1003ced6
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x3c]
mov dword [eax], esi
mov ebx, dword [ecx + 4]
mov eax, dword [esp + 0x40]
push 2
push 0
call fcn.10038370
add esp, 8
test eax, eax
je 0x1003f090
mov edx, dword [esp + 0x64]
mov edi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
mov dword [eax + 0x2c], edx
inc dword [esi + 4]
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x60]
mov esi, dword [ecx + eax*4]
call sym.MyService.dll_sqlite3_initialize
test eax, eax
jne 0x1003d390
cmp dword [0x1012c3e8], eax
je 0x1003e318
mov eax, dword [0x1013afb8]
test eax, eax
je 0x1003e28d
push eax
call dword [0x1012c438]
add esp, 4
lea edx, [esp + 0x104]
push edx
mov eax, 8
call fcn.1000a480
mov eax, dword [0x1013afb8]
add esp, 4
test eax, eax
je 0x1003e2b5
push eax
call dword [0x1012c440]
add esp, 4
mov edi, dword [esp + 0x104]
test edi, edi
je 0x1003d390
mov eax, dword [esi + 0x2c]
mov edx, dword [esp + 0x44]
mov dword [edi], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0xc]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
mov edx, dword [esp + 0x40]
mov dword [edi + 4], ecx
call fcn.100387a0
mov edx, 1
push edi
mov ebx, 0x100f49a0
mov edi, str.ValueList
mov esi, eax
mov word [eax + 0x10], dx
call fcn.1002e8d0
mov edi, dword [esp + 0x40]
mov ebx, dword [esp + 0x44]
mov esi, dword [esp + 0x48]
add esp, 4
add edi, 0x14
jmp 0x10038bbc
push 8
call dword [0x1012c408]
mov edi, eax
add esp, 4
mov dword [esp + 0x104], edi
jmp 0x1003e2bc
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 4]
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + ecx*4]
mov esi, dword [ebx + 0x5c]
mov dword [esp + 0x74], eax
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x68], eax
mov eax, dword [eax]
mov ecx, dword [eax]
mov dword [esp + 0x4c], eax
mov eax, dword [edx]
mov dword [esp + 0x88], ecx
mov ecx, dword [edx + 0x28]
mov dword [esp + 0xac], eax
xor eax, eax
test ecx, ecx
jle 0x1003e37d
add edx, 0x50
mov dword [esi + eax*4], edx
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x1003e372
mov edx, dword [esp + 0xac]
mov eax, dword [esp + 0x68]
push esi
push ecx
mov ecx, dword [edi + 0x10]
push ecx
mov ecx, dword [esp + 0x94]
push edx
mov edx, dword [ecx + 0x20]
push eax
call edx
mov esi, dword [esp + 0x60]
add esp, 0x14
mov edi, ebx
mov dword [esp + 0x38], eax
call fcn.10034440
cmp dword [esp + 0x38], 0
jne 0x1003ced6
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x88]
mov edx, dword [ecx + 0x28]
push eax
call edx
mov ecx, dword [esp + 0x78]
add esp, 4
mov byte [ecx + 2], 0
test eax, eax
jne 0x1003bc0f
mov edi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x60]
mov ecx, dword [eax + edx*4]
cmp byte [ecx + 2], 0
mov eax, dword [edi + 0xc]
lea edx, [eax + eax*4]
lea edx, [esi + edx*8]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x5c], edx
je 0x1003e420
mov eax, edx
call fcn.1002e7f0
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [ecx + 0x2c]
mov esi, dword [eax]
mov ecx, dword [esi]
xor eax, eax
test byte [edi + 2], 1
mov dword [esp + 0x188], eax
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x18c], eax
mov dword [esp + 0x190], eax
mov dword [esp + 0x194], eax
mov dword [esp + 0x198], eax
mov dword [esp + 0x19c], eax
mov dword [esp + 0x1a4], eax
mov al, byte [esp + 0x78]
mov dword [esp + 0x88], ecx
mov dword [esp + 0x188], edx
mov byte [esp + 0x1a0], al
je 0x1003e49e
mov eax, dword [esp + 0x5c]
call fcn.1002e7f0
mov eax, dword [esp + 0x5c]
mov ecx, 0x401
mov word [eax + 0x10], cx
mov dword [eax], 0
jmp 0x1003e4b2
mov ax, word [edx + 0x10]
mov ecx, 0xf241
and ax, cx
or ax, 1
mov word [edx + 0x10], ax
mov edx, dword [edi + 8]
mov ecx, dword [esp + 0x68]
push edx
mov edx, dword [ecx + 0x2c]
lea eax, [esp + 0x18c]
push eax
mov eax, dword [esp + 0x90]
mov ecx, dword [eax + 0x2c]
push edx
call ecx
add esp, 0xc
mov edi, ebx
mov dword [esp + 0x38], eax
call fcn.10034440
cmp dword [esp + 0x19c], 0
jle 0x1003e515
mov edx, dword [esp + 0x5c]
push edx
call sym.MyService.dll_sqlite3_value_text
add esp, 4
push eax
mov eax, dword [esp + 0x44]
push 0x10112e4c
push eax
call fcn.1002f5b0
mov ecx, dword [esp + 0x1a8]
add esp, 0xc
mov dword [esp + 0x38], ecx
movzx ecx, byte [esp + 0x78]
mov eax, dword [esp + 0x5c]
call fcn.1002dd50
cmp dword [esp + 0x38], 0
jne 0x1003ced6
mov edi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + edx*4]
cmp byte [eax + 2], 0
mov dword [esp + 0x68], eax
jne case.0x10038be1.89
mov ecx, eax
mov eax, dword [ecx + 0x2c]
mov esi, dword [eax]
mov ecx, dword [esi]
mov edx, dword [ecx + 0x24]
push eax
mov dword [esp + 0x8c], ecx
call edx
add esp, 4
mov edi, ebx
mov dword [esp + 0x38], eax
call fcn.10034440
cmp dword [esp + 0x38], 0
jne 0x1003ced6
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 0x2c]
mov edx, dword [esp + 0x88]
mov eax, dword [edx + 0x28]
push ecx
call eax
add esp, 4
test eax, eax
jne 0x1003e5b9
mov edi, dword [esp + 0x3c]
mov edi, dword [edi + 8]
mov edx, dword [esp + 0x7c]
lea ecx, [edi + edi*4]
lea eax, [edx + ecx*4 - 0x14]
mov dword [esp + 0x3c], eax
mov esi, dword [esp + 0x48]
mov ecx, dword [esi + 0x138]
test ecx, ecx
jne 0x1003f0c4
mov ebx, dword [esp + 0xb4]
cmp dword [esp + 0xd4], ebx
jb 0x1003ebea
mov edi, dword [esp + 0xb0]
ja 0x1003e5f5
cmp dword [esp + 0xd0], edi
jb 0x1003ebea
mov eax, dword [esi + 0x184]
test eax, eax
je 0x1003ebea
add edi, dword [esi + 0x18c]
mov ecx, dword [esi + 0x188]
adc ebx, 0
push ecx
mov dword [esp + 0xb4], edi
mov dword [esp + 0xb8], ebx
call eax
add esp, 4
test eax, eax
jne 0x1003f0b3
cmp dword [esp + 0xd4], ebx
ja 0x1003e5f5
jb 0x1003e642
cmp dword [esp + 0xd0], edi
jae 0x1003e5f5
mov edi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x20]
mov edx, dword [eax + 0x24]
or dword [eax + 0x20], 0x4000000
mov dword [eax + 0x24], edx
mov eax, dword [edi + 0x10]
mov edi, dword [edi + 4]
and ecx, 0x4000000
mov dword [esp + 0x88], ecx
mov ecx, dword [eax + 8]
lea edx, [edi + edi*4]
lea esi, [esi + edx*8]
mov dword [esp + 0x68], ecx
mov ecx, 1
mov eax, esi
call fcn.1002dd50
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003ceda
mov eax, dword [esp + 0x68]
mov edx, dword [esi + 8]
mov ecx, dword [eax]
push edx
push eax
mov eax, dword [ecx + 0x4c]
call eax
add esp, 8
cmp dword [esp + 0x88], 0
mov dword [esp + 0x38], eax
jne 0x1003e6d4
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x24]
and dword [eax + 0x20], 0xfbffffff
mov dword [eax + 0x24], ecx
mov esi, dword [esp + 0x68]
mov edi, ebx
call fcn.10034440
mov eax, dword [esp + 0x40]
and dword [eax + 0x98], 0xfffffffc
cmp dword [esp + 0x38], 0
jne 0x1003ced6
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x44]
mov ebx, eax
add edi, 0x14
jmp 0x10038bbc
mov edx, dword [esp + 0x48]
xor eax, eax
mov dword [esp + 0x140], eax
mov dword [esp + 0x144], eax
cmp byte [edx + 0x57], al
jne 0x1003d38c
mov ecx, dword [esp + 0x3c]
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + 8]
mov dword [esp + 0x68], eax
test eax, eax
je 0x1003f0a6
mov edx, dword [eax]
test edx, edx
je 0x1003f0a6
cmp dword [edx + 0x34], 0
mov ecx, dword [ecx + 8]
je 0x10038c3c
mov eax, dword [esp + 0x48]
mov al, byte [eax + 0x5c]
mov edi, dword [ebx + 0x5c]
mov byte [esp + 0xc7], al
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
xor eax, eax
test ecx, ecx
jle 0x1003e780
mov dword [edi + eax*4], esi
inc eax
add esi, 0x28
cmp eax, ecx
jl 0x1003e775
mov eax, dword [esp + 0x3c]
movzx eax, byte [eax + 2]
mov esi, dword [esp + 0x48]
mov byte [esi + 0x5c], al
mov edx, dword [edx + 0x34]
lea eax, [esp + 0x140]
push eax
push edi
push ecx
mov ecx, dword [esp + 0x74]
push ecx
call edx
mov dword [esp + 0x48], eax
movzx eax, byte [esp + 0xd7]
mov byte [esi + 0x5c], al
mov esi, dword [esp + 0x78]
add esp, 0x10
mov edi, ebx
call fcn.10034440
cmp dword [esp + 0x38], 0
mov eax, dword [esp + 0x3c]
jne 0x1003e7e9
cmp dword [eax + 4], 0
je 0x1003e7e9
mov edx, dword [esp + 0x140]
mov ecx, dword [esp + 0x48]
mov dword [ecx + 0x28], edx
mov edx, dword [esp + 0x144]
mov dword [ecx + 0x2c], edx
mov ecx, dword [esp + 0x38]
cmp cl, 0x13
jne 0x1003e836
mov edx, dword [eax + 0x10]
cmp byte [edx + 0x10], 0
je 0x1003e836
movzx eax, word [eax + 2]
cmp eax, 4
jne 0x1003e820
mov edi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
mov dword [esp + 0x38], 0
add edi, 0x14
jmp 0x10038bbc
cmp eax, 5
jne 0x1003e82a
mov eax, 2
mov edx, dword [esp + 0x40]
mov byte [edx + 0x94], al
jmp 0x1003e842
mov eax, dword [esp + 0x40]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
test ecx, ecx
jne 0x1003ced6
mov edi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov eax, edi
mov edx, ebx
call fcn.100387a0
mov ecx, dword [edi + 4]
mov edx, dword [esp + 0x48]
mov edx, dword [edx + 0x10]
add ecx, ecx
mov ecx, dword [edx + ecx*8 + 4]
mov edx, dword [ecx + 4]
mov ecx, dword [edx + 0x30]
mov dword [eax], ecx
mov dword [eax + 4], 0
add edi, 0x14
jmp 0x10038bbc
mov eax, edi
mov edx, ebx
call fcn.100387a0
mov edx, dword [edi + 4]
mov esi, eax
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x10]
add edx, edx
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [edi + 0xc]
xor ebx, ebx
test ecx, ecx
je 0x1003e8be
mov edx, dword [eax + 4]
mov ebx, dword [edx + 0x30]
cmp ebx, ecx
jae 0x1003e8be
mov ebx, ecx
call fcn.100234e0
mov ebx, dword [esp + 0x40]
mov dword [esi], eax
mov dword [esi + 4], 0
mov esi, dword [esp + 0x44]
add edi, 0x14
jmp 0x10038bbc
mov ecx, dword [edi + 0xc]
mov eax, dword [edi + 0x10]
lea ecx, [ecx + ecx*4]
lea ecx, [esi + ecx*8]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x54], ecx
cmp dword [eax], ecx
je 0x1003e923
mov dl, byte [esp + 0x78]
mov dword [eax], ecx
movzx ecx, byte [eax + 0x1a]
dec ecx
mov dword [eax + 0xc], ebx
mov byte [eax + 0x18], dl
js 0x1003e923
lea edx, [eax + ecx*4 + 0x1c]
jmp 0x1003e910
mov eax, dword [edi + 8]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [edx], eax
sub edx, 4
dec ecx
jns 0x1003e910
mov eax, dword [esp + 0x54]
mov cx, word [eax + 0x10]
mov esi, dword [esp + 0x4c]
mov edx, 0xf241
and cx, dx
or cx, 1
mov word [eax + 0x10], cx
movzx edx, byte [esi + 0x1a]
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x10]
lea ecx, [esi + 0x1c]
push ecx
push edx
push esi
call eax
mov esi, dword [esi + 0x14]
add esp, 0xc
test esi, esi
je 0x1003ebee
jle 0x1003e98e
mov ecx, dword [esp + 0x54]
push ecx
call sym.MyService.dll_sqlite3_value_text
mov edx, dword [esp + 0x44]
add esp, 4
push eax
push 0x10112e4c
push edx
call fcn.1002f5b0
mov esi, dword [esp + 0x58]
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x38], eax
jmp 0x1003e992
mov esi, dword [esp + 0x4c]
mov ecx, dword [edi + 4]
mov edx, dword [esi + 0x10]
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x48]
push ecx
push edx
add eax, 0xe4
call fcn.10032810
mov ebx, dword [esp + 0x48]
add esp, 8
cmp dword [esp + 0x38], 0
mov dword [esi + 0x14], 0
jmp 0x100391a5
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov ecx, 0xf7ff
and word [eax + 0x10], cx
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
lea eax, [esi + edx*8]
mov dword [esp + 0x60], eax
push esi
mov eax, edi
call fcn.100387d0
mov ecx, eax
mov dword [esp + 0x2b8], edx
mov edx, dword [esp + 0x64]
mov eax, dword [edx + 0xc]
add eax, eax
add eax, eax
add eax, eax
add esp, 4
cdq
push edx
push eax
mov eax, dword [esp + 0x2bc]
push eax
push ecx
call fcn.1010a6f0
mov ecx, eax
shrd ecx, edx, 3
shr edx, 3
mov edx, dword [esp + 0x60]
mov edx, dword [edx + 8]
add edx, ecx
mov ecx, eax
and ecx, 7
mov al, 1
shl al, cl
or byte [edx], al
add edi, 0x14
jmp 0x10038bbc
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
lea edx, [esi + ecx*8]
push esi
mov eax, edi
mov dword [esp + 0x64], edx
call fcn.100387d0
mov ecx, eax
mov eax, dword [esp + 0x64]
mov eax, dword [eax + 0xc]
add eax, eax
add eax, eax
add esp, 4
mov dword [esp + 0x2ac], edx
add eax, eax
cdq
push edx
mov edx, dword [esp + 0x2b0]
push eax
push edx
push ecx
call fcn.1010a6f0
mov ecx, eax
shrd ecx, edx, 3
shr edx, 3
mov edx, dword [esp + 0x60]
mov edx, dword [edx + 8]
movsx edx, byte [ecx + edx]
mov ecx, eax
and ecx, 7
mov eax, 1
shl eax, cl
test eax, edx
jne 0x1003eab0
inc dword [ebx + 0xc4]
jmp 0x1003bc13
inc dword [ebx + 0xc0]
add edi, 0x14
jmp 0x10038bbc
mov edx, dword [esp + 0x48]
mov cl, byte [edx + 0x5e]
test cl, 0x41
je 0x1003eb82
cmp byte [ebx + 0x95], 0xfe
je 0x1003eb82
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x1003eaf0
mov eax, dword [ebx + 0xc8]
test eax, eax
je 0x1003eb82
push eax
test cl, 0x40
je 0x1003eb23
push ebx
call fcn.10037ed0
push eax
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x54]
mov ecx, dword [eax + 0xdc]
mov edx, dword [eax + 0xd8]
push ecx
call edx
mov eax, dword [esp + 0x78]
push eax
call sym.MyService.dll_sqlite3_free
add esp, 0x14
jmp 0x1003eb82
cmp dword [edx + 0xc8], 1
jle 0x1003eb6b
mov ecx, edx
push str.____s
push ecx
call fcn.1000ced0
add esp, 0xc
push eax
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x4c]
mov edx, dword [eax + 0xdc]
mov eax, dword [eax + 0xd8]
push ebx
push edx
push 1
call eax
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x58]
push ecx
push edx
call fcn.1000a830
add esp, 0x18
jmp 0x1003eb82
mov eax, edx
mov ecx, dword [eax + 0xdc]
mov edx, dword [eax + 0xd8]
push ebx
push ecx
push 1
call edx
add esp, 0x10
mov eax, dword [edi + 4]
cmp eax, dword [0x1012c4f4]
jl 0x1003ebd7
cmp byte [edi], 0xb5
je case.0x10038be1.89
mov esi, 1
mov edx, esi
cmp dword [ebx + 0x6c], esi
jle 0x1003ebc2
mov ecx, 0x14
mov eax, dword [ebx + 0x68]
cmp byte [eax + ecx], 0xf
jne 0x1003ebb8
mov dword [eax + ecx + 4], 0
add edx, esi
add ecx, 0x14
cmp edx, dword [ebx + 0x6c]
jl 0x1003eba7
mov dword [edi + 4], 0
add dword [edi + 4], esi
add dword [ebx + 0xbc], esi
jmp 0x1003bc13
mov esi, 1
add dword [edi + 4], esi
add dword [ebx + 0xbc], esi
jmp 0x1003bc13
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x44]
mov ebx, dword [esp + 0x40]
add edi, 0x14
jmp 0x10038bbc
push str.cannot_open_savepoint___SQL_statements_in_progress
jmp 0x1003ee88
push str.cannot_release_savepoint___SQL_statements_in_progress
jmp 0x1003ee88
mov dword [esp + 0x38], 7
jmp 0x1003d378
mov eax, dword [edi + 4]
mov dword [ebx + 0x24], eax
mov cl, byte [edi + 8]
mov byte [ebx + 0x94], cl
test eax, eax
je 0x1003ecc1
movzx eax, word [edi + 2]
test ax, ax
je 0x1003ec78
mov eax, dword [eax*4 + 0x10113a04]
push eax
push str._s_constraint_failed
push ebx
call fcn.1002f5b0
mov eax, dword [edi + 0x10]
add esp, 0xc
test eax, eax
je 0x1003ec8a
mov ecx, dword [ebx + 0x7c]
mov edx, dword [esp + 0x48]
push eax
push ecx
push str._z:__s
push edx
call fcn.1000ced0
add esp, 0x10
mov dword [ebx + 0x7c], eax
jmp 0x1003ec8a
mov eax, dword [edi + 0x10]
push eax
push 0x10112e4c
push ebx
call fcn.1002f5b0
add esp, 0xc
mov ecx, dword [ebx + 0x7c]
mov edx, dword [ebx + 0xc8]
push ecx
push edx
mov ecx, edi
sub ecx, dword [esp + 0x84]
mov eax, 0x66666667
imul ecx
mov ecx, dword [edi + 4]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.abort_at__d_in___s_:__s
push ecx
call sym.MyService.dll_sqlite3_log
add esp, 0x14
mov ebx, dword [esp + 0x40]
call fcn.10032310
mov dword [esp + 0x38], eax
cmp eax, 5
jne 0x1003ecdb
mov dword [ebx + 0x24], eax
jmp 0x1003f237
mov eax, dword [ebx + 0x24]
neg eax
sbb eax, eax
and eax, 0xffffff9c
add eax, 0x65
mov dword [esp + 0x38], eax
jmp 0x1003f237
mov edx, dword [ebx + 0x1c]
add edx, 2
or edx, 1
mov dword [ebx + 0x1c], edx
mov edi, dword [edi + 4]
mov edx, dword [esp + 0x48]
lea eax, [edi + edi*4]
lea ecx, [esi + eax*8]
mov dword [ebx + 0x78], ecx
cmp byte [edx + 0x57], 0
jne 0x1003d38c
mov eax, edx
test byte [eax + 0x5e], 4
je 0x1003ed36
mov ecx, dword [eax + 0xdc]
mov edx, dword [eax + 0xd8]
push 0
push ebx
push ecx
push 4
call edx
add esp, 0x10
mov ecx, dword [esp + 0x3c]
sub ecx, dword [esp + 0x7c]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 1]
mov dword [ebx + 0x20], ecx
mov dword [esp + 0x38], 0x64
jmp 0x1003f237
mov eax, 0x172f4
call fcn.100a9300
mov dword [esp + 0x38], eax
jmp 0x1003ced6
cmp eax, 7
je 0x1003d38c
cmp eax, 0x12
jne 0x1003ced6
mov ebx, dword [esp + 0x40]
push str.string_or_blob_too_big
push ebx
call fcn.1002f5b0
add esp, 8
mov dword [esp + 0x38], 0x12
jmp 0x1003ceda
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x88]
shl eax, 4
add eax, dword [esp + 0x68]
mov ecx, dword [eax]
push ecx
mov ecx, dword [edx]
mov edx, dword [eax + 4]
push ecx
mov ecx, dword [esp + 0x68]
shr edx, 4
and edx, 0xf
mov eax, dword [edx*4 + 0x1012c4fc]
movzx edx, word [ecx + 0x10]
push eax
and edx, 0x3f
movzx eax, byte [edx + 0x10113928]
mov ecx, dword [eax*4 + 0x1012cdfc]
push ecx
push str.cannot_store__s_value_in__s_column__s._s
push ebx
call fcn.1002f5b0
add esp, 0x18
mov dword [esp + 0x38], 0xc13
jmp 0x1003ceda
mov ecx, dword [esp + 0x3c]
sub ecx, dword [esp + 0x7c]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebx + 0x20], eax
mov eax, 5
mov byte [esi + 0x55], 0
mov dword [esp + 0x38], eax
mov dword [ebx + 0x24], eax
jmp 0x1003f237
mov dword [esp + 0x38], 0x65
jmp 0x1003f237
mov edx, dword [esp + 0x48]
movzx esi, byte [edx + 0x55]
mov eax, dword [edi + 4]
mov ecx, dword [edi + 8]
mov dword [esp + 0x68], eax
cmp eax, esi
je 0x1003ef29
test ecx, ecx
je 0x1003ee76
mov esi, edx
push 0x204
mov eax, esi
call fcn.100a6f70
add esp, 4
mov byte [esi + 0x55], 1
jmp 0x1003eec5
test eax, eax
je 0x1003ee9e
cmp dword [edx + 0xc4], 0
jle 0x1003ee9e
push str.cannot_commit_transaction___SQL_statements_in_progress
push ebx
call fcn.1002f5b0
add esp, 8
mov dword [esp + 0x38], 5
jmp 0x1003ceda
push 1
mov esi, ebx
call fcn.10032290
add esp, 4
mov dword [esp + 0x38], eax
test eax, eax
jne 0x1003f237
mov cl, byte [esp + 0x68]
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x3c]
mov byte [edx + 0x55], cl
mov ebx, dword [esp + 0x40]
call fcn.10032310
mov ecx, 5
cmp eax, ecx
jne 0x1003ef08
sub edi, dword [esp + 0x7c]
mov eax, 0x66666667
imul edi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, 1
sub dl, byte [esp + 0x68]
mov dword [ebx + 0x20], eax
mov eax, dword [esp + 0x48]
mov byte [eax + 0x55], dl
mov dword [esp + 0x38], ecx
mov dword [ebx + 0x24], ecx
jmp 0x1003f237
mov edi, dword [esp + 0x48]
call fcn.100a6460
mov ecx, ebx
mov eax, dword [ecx + 0x24]
neg eax
sbb eax, eax
and eax, 0xffffff9c
add eax, 0x65
mov dword [esp + 0x38], eax
jmp 0x1003f237
test eax, eax
jne 0x1003ef34
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x1003ef42
mov eax, str.cannot_rollback___no_transaction_is_active
test ecx, ecx
jne 0x1003ef42
mov eax, str.cannot_commit___no_transaction_is_active
push eax
push ebx
call fcn.1002f5b0
add esp, 8
mov dword [esp + 0x38], 1
jmp 0x1003ceda
mov ecx, dword [ecx + 0x20]
and ecx, 0x100000
xor eax, eax
or ecx, eax
je 0x1003ef75
mov dword [esp + 0x38], 8
jmp 0x1003ceda
mov dword [esp + 0x38], 0xb
jmp 0x1003ceda
cmp al, 5
jne 0x1003ceda
mov ecx, dword [esp + 0x3c]
sub ecx, dword [esp + 0x7c]
mov eax, 0x66666667
imul ecx
mov ecx, dword [esp + 0x38]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], ecx
jmp 0x1003f237
mov dword [esp + 0x38], 0x204
jmp 0x1003ceda
push 0x1011b294
push 0x17fed
push str.index_corruption
push str._s_at_line__d_of___.10s_
push 0x30b
call sym.MyService.dll_sqlite3_log
add esp, 0x14
mov dword [esp + 0x38], 0x30b
jmp 0x1003ceda
mov eax, 0x180ba
call fcn.100a9300
mov dword [esp + 0x38], eax
jmp 0x1003ceda
mov dword [esp + 0x38], 6
mov byte [ebx + 0x94], 2
jmp 0x1003ceda
mov edx, dword [esp + 0x128]
push edx
call sym.MyService.dll_sqlite3_free
add esp, 4
jmp 0x1003ceda
push str.too_many_levels_of_trigger_recursion
push ebx
mov dword [esp + 0x40], 1
call fcn.1002f5b0
add esp, 8
jmp 0x1003ceda
push ebx
call sym.MyService.dll_sqlite3_value_text
add esp, 4
push eax
mov eax, dword [esp + 0x44]
push 0x10112e4c
push eax
call fcn.1002f5b0
add esp, 0xc
jmp 0x1003ced6
mov dword [esp + 0x38], 1
mov eax, str.into
cmp edx, 5
je 0x1003f07c
mov eax, str.out_of
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push ebx
call fcn.1002f5b0
add esp, 0xc
jmp 0x1003ceda
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x68]
mov edx, dword [ecx + 0x1c]
push eax
call edx
add esp, 4
jmp 0x1003d38c
mov dword [esp + 0x38], 6
jmp 0x1003ceda
or eax, 0xffffffff
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0x38], 9
jmp 0x1003ced6
cmp dword [esp + 0x38], 0x210a
jne 0x1003f101
push 0x1011b294
push 0x1894c
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call sym.MyService.dll_sqlite3_log
add esp, 0x14
mov dword [esp + 0x38], 0xb
cmp dword [ebx + 0x7c], 0
mov esi, dword [esp + 0x38]
jne 0x1003f166
cmp esi, 0xc0a
je 0x1003f166
mov eax, esi
sub eax, 0x64
mov ecx, str.unknown_error
je 0x1003f152
dec eax
je 0x1003f14b
sub eax, 0x19f
je 0x1003f144
mov eax, esi
and eax, 0xff
cmp eax, 0x1c
ja 0x1003f157
mov eax, dword [eax*4 + 0x101185b8]
test eax, eax
je 0x1003f157
mov ecx, eax
jmp 0x1003f157
mov ecx, str.abort_due_to_ROLLBACK
jmp 0x1003f157
mov ecx, str.no_more_rows_available
jmp 0x1003f157
mov ecx, str.another_row_available
push ecx
push 0x10112e4c
push ebx
call fcn.1002f5b0
add esp, 0xc
mov dword [ebx + 0x24], esi
cmp esi, 0xc0a
je 0x1003f19c
mov eax, esi
and eax, 0xff
cmp eax, 0xe
je 0x1003f182
cmp eax, 0xa
jne 0x1003f19c
mov eax, dword [edi]
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x1003f197
push 0
push 0
push eax
call ecx
add esp, 0xc
jmp 0x1003f199
xor eax, eax
mov dword [edi + 0x4c], eax
mov ecx, dword [ebx + 0x7c]
mov edx, dword [ebx + 0xc8]
push ecx
mov ecx, dword [esp + 0x40]
sub ecx, dword [esp + 0x80]
push edx
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.statement_aborts_at__d:___s___s
push esi
call sym.MyService.dll_sqlite3_log
add esp, 0x14
cmp byte [ebx + 0x97], 2
jne 0x1003f1e4
mov ebx, dword [esp + 0x40]
call fcn.10032310
mov eax, dword [esp + 0x38]
mov esi, edi
cmp eax, 0xc0a
jne 0x1003f1fc
push esi
call fcn.1000aee0
add esp, 4
jmp 0x1003f211
cmp eax, 0xb
jne 0x1003f211
cmp byte [esi + 0x55], 0
jne 0x1003f211
mov ecx, dword [esi + 0x20]
or dword [esi + 0x24], 2
mov dword [esi + 0x20], ecx
cmp byte [esp + 0x8f], 0
mov dword [esp + 0x38], 1
jbe 0x1003f237
movzx edx, byte [esp + 0x8f]
dec edx
push edx
mov edx, esi
call fcn.10057f50
add esp, 4
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0xb0]
mov eax, dword [esp + 0xd4]
cmp eax, dword [esp + 0xb4]
jb 0x1003f2aa
ja 0x1003f25d
cmp dword [esp + 0xd0], edi
jb 0x1003f2aa
mov eax, dword [esi + 0x184]
test eax, eax
je 0x1003f2aa
add edi, dword [esi + 0x18c]
mov edx, dword [esi + 0x188]
adc dword [esp + 0xb4], 0
push edx
mov dword [esp + 0xb4], edi
call eax
add esp, 4
test eax, eax
je 0x1003f242
or eax, 0xffffffff
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0x38], 9
jmp 0x1003ceda
mov eax, dword [esp + 0xd0]
add dword [ebx + 0xb4], eax
cmp dword [ebx + 0xa0], 0
je 0x1003f2c9
push ebx
call fcn.10030bd0
add esp, 4
mov ecx, dword [esp + 0x3bc]
mov eax, dword [esp + 0x38]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.100f9904
mov esp, ebp
pop ebp
ret