Function at 0x1003b940
Capabilities:
Encode data using base64
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x254
mov eax, dword [0x10058040]
xor eax, esp
mov dword [esp + 0x250], eax
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [esi]
mov eax, dword [edi + 4]
mov edx, dword [eax + 0x14]
mov al, byte [edx + 0x79]
xor ecx, ecx
cmp dword [esi + 0x50], 0xbdf20da3
mov dword [esp + 0x40], esi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edi
mov byte [esp + 0x54], al
mov dword [esp + 0x98], ecx
je 0x1003b9a5
lea eax, [ecx + 0x15]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x250]
xor ecx, esp
call fcn.100408e7
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x80], 7
mov ebx, dword [esi + 0x2c]
mov dword [esp + 0x10], ebx
je 0x1003fb8d
mov eax, dword [esi + 0x22c]
cmp eax, ecx
mov dword [esi + 0x80], ecx
je 0x1003b9e6
lea ecx, [esp + 0x10]
push ecx
call fcn.10009f00
mov ebx, dword [esp + 0x14]
add esp, 4
mov dword [esi + 0x22c], 0
xor ecx, ecx
mov byte [esi + 0x234], 0
cmp dword [edi + 0x98], ecx
mov dword [edi + 0x11c], ecx
jne 0x1003fb56
mov edx, dword [esi + 0x7c]
mov dword [esp + 0x30], edx
mov ecx, edi
jmp 0x1003ba18
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x40]
call fcn.10008e80
test eax, eax
jne 0x1003fb8d
cmp dword [ecx + 0xa8], 0
mov eax, dword [esp + 0x30]
mov edx, dword [esi + 0x18]
lea eax, [eax + eax*4]
lea edi, [edx + eax*4]
mov dword [esp + 0x24], edi
je 0x1003babd
mov eax, dword [ecx + 0xb0]
cmp eax, dword [esp + 0x98]
jne 0x1003bab5
mov ecx, dword [esp + 0x18]
push ecx
call fcn.10003120
add esp, 4
test eax, eax
jne 0x1003f366
mov eax, ecx
mov edx, dword [eax + 0xac]
mov eax, dword [eax + 0xa8]
push edx
call eax
add esp, 4
test eax, eax
je 0x1003ba95
mov ecx, dword [esp + 0x18]
push ecx
call fcn.100030e0
add esp, 4
mov dword [esp + 0x14], 4
jmp case.0x1003bad5.12
mov edx, dword [esp + 0x18]
push edx
mov dword [esp + 0x9c], 0
call fcn.100030e0
add esp, 4
test eax, eax
jne 0x1003f366
add dword [esp + 0x98], 1
mov al, byte [edi]
movzx ecx, al
mov dword [esp + 0x20], ecx
add ecx, 0xffffffff
cmp ecx, 0x8d
ja case.0x1003bad5.12
jmp dword [ecx*4 + 0x1003fbe0]
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x98], 0
jne 0x1003fb52
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x30], edi
jmp case.0x1003bad5.12
mov ecx, dword [esp + 0x30]
mov edx, dword [esi + 0x220]
add ecx, 1
mov dword [esi + edx*4 + 0x90], ecx
add dword [esi + 0x220], 1
mov eax, dword [edi + 8]
sub eax, 1
mov dword [esp + 0x30], eax
jmp case.0x1003bad5.12
add dword [esi + 0x220], 0xffffffff
mov eax, dword [esi + 0x220]
mov esi, dword [esi + eax*4 + 0x90]
sub esi, 1
mov dword [esp + 0x30], esi
jmp case.0x1003bad5.12
add ebx, 0x40
mov word [ebx + 0x18], 4
mov eax, dword [edi + 4]
cdq
mov dword [ebx], eax
mov dword [esp + 0x10], ebx
mov dword [ebx + 4], edx
jmp case.0x1003bad5.12
add ebx, 0x40
mov word [ebx + 0x18], 0xa2
mov eax, dword [edi + 0xc]
mov dword [esp + 0x10], ebx
mov dword [ebx + 0x10], eax
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1003bb77
sub eax, edx
mov dword [ebx + 0x14], eax
push ebx
mov byte [ebx + 0x1b], 1
call fcn.10011b20
mov dword [ebx], eax
add esp, 4
mov dword [ebx + 4], edx
or word [ebx + 0x18], 4
jmp case.0x1003bad5.12
add ebx, 0x40
mov word [ebx + 0x18], 0xa2
mov eax, dword [edi + 0xc]
mov dword [esp + 0x10], ebx
mov dword [ebx + 0x10], eax
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1003bbb7
sub eax, edx
mov dword [ebx + 0x14], eax
push ebx
mov byte [ebx + 0x1b], 1
call fcn.10011ba0
fstp qword [ebx + 8]
movzx ecx, byte [esp + 0x58]
or word [ebx + 0x18], 8
push ecx
push ebx
call fcn.10011a70
add esp, 0xc
jmp case.0x1003bad5.12
mov edx, dword [edi + 0xc]
mov eax, edx
mov byte [edi], 0x1a
lea esi, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1003bbf6
sub eax, esi
cmp byte [esp + 0x54], 1
mov dword [edi + 4], eax
je case.0x1003bad5.25
push 0
push 1
or esi, 0xffffffff
push esi
add ebx, 0x40
push edx
push ebx
mov dword [esp + 0x24], ebx
call fcn.1000cb60
movzx edx, byte [esp + 0x68]
push edx
push ebx
call fcn.10011a70
add esp, 0x1c
test eax, eax
jne 0x1003fb8d
push ebx
call fcn.1000c8e0
add esp, 4
test eax, eax
jne 0x1003fb8d
mov ax, word [ebx + 0x18]
and ax, 0xffbf
or ax, 0x80
mov word [ebx + 0x18], ax
cmp dword [edi + 0x10], esi
jne 0x1003bc6a
mov ecx, dword [edi + 0xc]
push ecx
call fcn.10008de0
add esp, 4
mov dword [edi + 0x10], esi
mov edx, dword [ebx + 0x10]
mov dword [edi + 0xc], edx
mov eax, dword [ebx + 0x14]
mov dword [edi + 4], eax
jmp case.0x1003bad5.12
mov al, byte [esp + 0x54]
add ebx, 0x40
mov word [ebx + 0x18], 0xa2
mov ecx, dword [edi + 0xc]
mov dword [ebx + 0x10], ecx
mov edx, dword [edi + 4]
mov dword [ebx + 0x14], edx
mov dword [esp + 0x10], ebx
mov byte [ebx + 0x1b], al
jmp case.0x1003bad5.12
add ebx, 0x40
mov word [ebx + 0x18], 1
mov dword [esp + 0x10], ebx
mov dword [ebx + 0x14], 0
jmp case.0x1003bad5.12
mov edx, dword [edi + 0xc]
mov eax, edx
mov byte [edi], 0x7a
lea esi, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1003bcc7
sub eax, esi
shr eax, 1
mov dword [edi + 4], eax
je 0x1003bd0a
push edx
call fcn.1000ae90
mov esi, eax
add esp, 4
test esi, esi
je 0x1003fb8d
cmp dword [edi + 0x10], 0xffffffff
jne 0x1003bcfe
mov ecx, dword [edi + 0xc]
push ecx
call fcn.10008de0
add esp, 4
mov dword [edi + 0xc], esi
mov dword [edi + 0x10], 0xffffffff
jmp case.0x1003bad5.121
cmp dword [edi + 0x10], 0xffffffff
jne 0x1003bd19
push edx
call fcn.10008de0
add esp, 4
mov dword [edi + 0x10], 0xfffffffe
mov dword [edi + 0xc], 0x1004f7f6
mov edx, dword [edi + 4]
mov eax, dword [edi + 0xc]
push 0
push 0
push edx
add ebx, 0x40
push eax
push ebx
mov dword [esp + 0x24], ebx
call fcn.1000cb60
add esp, 0x14
jmp case.0x1003bad5.12
mov ecx, dword [edi + 4]
mov edx, dword [esi + 0x44]
shl ecx, 6
push 0x80
lea eax, [ecx + edx - 0x40]
add ebx, 0x40
push eax
push ebx
mov dword [esp + 0x1c], ebx
call fcn.10005380
add esp, 0xc
jmp case.0x1003bad5.12
mov eax, dword [edi + 4]
lea ecx, [esp + 0x10]
push ecx
jmp 0x1003f905
mov edx, dword [edi + 4]
shl edx, 6
mov eax, ebx
sub eax, edx
push 0x100
add ebx, 0x40
push eax
push ebx
mov dword [esp + 0x1c], ebx
call fcn.10005380
add esp, 0xc
cmp dword [edi + 8], 0
je case.0x1003bad5.12
test word [ebx + 0x18], 0x100
je case.0x1003bad5.12
push ebx
call fcn.1000c960
add esp, 4
test eax, eax
jne 0x1003fb8d
jmp case.0x1003bad5.12
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 4]
shl ecx, 6
mov esi, ebx
sub esi, ecx
test word [ebx + 0x18], 0x100
mov ecx, 0x10
lea edi, [esp + 0x1f8]
mov dword [esp + 0x1c], esi
rep movsd dword es:[edi], dword [esi]
je 0x1003be02
push ebx
call fcn.1000c960
add esp, 4
test eax, eax
jne 0x1003fb8d
mov edx, dword [esp + 0x24]
cmp dword [edx + 4], 0
mov dword [esp + 0x20], 0
jle 0x1003be7c
mov eax, dword [esp + 0x1c]
add eax, 0x40
mov dword [esp + 0x2c], eax
nop
mov eax, dword [esp + 0x2c]
test word [eax + 0x18], 0x100
je 0x1003be3d
push eax
call fcn.1000c960
add esp, 4
test eax, eax
jne 0x1003fb8d
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x1c]
mov ecx, 0x10
mov esi, eax
rep movsd dword es:[edi], dword [esi]
test word [eax - 0x28], 0x200
je 0x1003be5c
lea ecx, [eax - 0x20]
mov dword [eax - 0x30], ecx
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
add dword [esp + 0x1c], 0x40
add ecx, 1
add eax, 0x40
cmp ecx, dword [edx + 4]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x2c], eax
jl 0x1003be20
mov ecx, 0x10
lea esi, [esp + 0x1f8]
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
test word [ebx + 0x18], 0x200
je case.0x1003bad5.12
lea eax, [ebx + 0x20]
mov dword [ebx + 0x10], eax
jmp case.0x1003bad5.12
mov ecx, dword [edi + 4]
shl ecx, 6
mov edx, ebx
sub edx, ecx
push ebx
push edx
call fcn.1000cb00
add esp, 8
sub ebx, 0x40
mov dword [esp + 0x10], ebx
jmp case.0x1003bad5.12
mov esi, dword [edi + 4]
add esi, 2
mov eax, esi
shl eax, 6
mov ecx, ebx
sub ecx, eax
lea eax, [ecx + 0x40]
mov dword [esp + 0x28], eax
mov dword [esp + 0x1c], eax
xor eax, eax
cmp esi, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x20], eax
jle 0x1003bf6c
nop
mov edx, dword [esp + 0x1c]
movzx eax, word [edx + 0x18]
test al, 1
jne 0x1003bf41
test al, 0x12
jne 0x1003bf19
movzx eax, byte [esp + 0x54]
push eax
mov ecx, edx
push ecx
call fcn.10011aa0
add esp, 8
test eax, eax
jne 0x1003fb8d
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov edx, dword [ecx + 0x14]
add dword [esp + 0x44], edx
add eax, 1
add ecx, 0x40
cmp eax, esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], ecx
jl 0x1003bef0
cmp dword [esp + 0x44], 0
jge 0x1003bf6c
cmp dword [edi + 8], 0
jne 0x1003bf5a
lea eax, [esp + 0x10]
push eax
mov eax, esi
call fcn.10009f00
mov ebx, dword [esp + 0x14]
add esp, 4
add ebx, 0x40
mov dword [esp + 0x10], ebx
mov word [ebx + 0x18], 1
jmp case.0x1003bad5.12
mov ecx, dword [esp + 0x44]
add ecx, 2
push 1
push ecx
call fcn.1000ac70
add esp, 8
test eax, eax
mov dword [esp + 0x44], eax
je 0x1003fb8d
test esi, esi
mov dword [esp + 0x1c], 0
jle 0x1003bfdb
mov edx, dword [esp + 0x28]
add edx, 0x10
mov dword [esp + 0x2c], edx
mov dword [esp + 0x20], esi
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 4]
mov edx, dword [esp + 0x44]
push eax
mov dword [esp + 0x2c], eax
mov eax, dword [ecx]
mov ecx, dword [esp + 0x20]
push eax
add ecx, edx
push ecx
call fcn.10041060
mov eax, dword [esp + 0x34]
add dword [esp + 0x28], eax
add dword [esp + 0x38], 0x40
add esp, 0xc
sub dword [esp + 0x20], 1
jne 0x1003bfa5
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x44]
mov byte [eax + ecx], 0
mov byte [eax + ecx + 1], 0
cmp dword [edi + 8], 0
jne 0x1003c00d
lea ecx, [esp + 0x10]
push ecx
mov eax, esi
call fcn.10009f00
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x48]
add esp, 4
mov dl, byte [esp + 0x54]
add ebx, 0x40
mov dword [ebx + 0x14], eax
mov word [ebx + 0x18], 0x62
mov dword [ebx + 0x1c], 0
mov byte [ebx + 0x1b], dl
mov dword [esp + 0x10], ebx
mov dword [ebx + 0x10], ecx
jmp case.0x1003bad5.12
movzx eax, word [ebx - 0x28]
movzx edx, word [ebx + 0x18]
lea esi, [ebx - 0x40]
movzx ecx, ax
movzx edx, dx
or ecx, edx
test cl, 1
mov dword [esp + 0x24], esi
mov dword [esp + 0x3c], ecx
je 0x1003c086
movzx eax, word [ebx + 0x18]
test al, 0x40
je 0x1003c068
push ebx
call fcn.10009c40
add esp, 4
mov esi, dword [esp + 0x24]
test byte [esi + 0x18], 0x40
mov dword [esp + 0x10], esi
je 0x1003c07b
push esi
call fcn.10009c40
add esp, 4
mov word [esi + 0x18], 1
jmp 0x1003f90d
movzx ecx, word [ebx + 0x18]
and al, cl
test al, 4
je 0x1003c12c
mov edx, dword [esp + 0x20]
mov edi, dword [esi]
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov esi, dword [esi + 4]
add edx, 0xffffffb2
cmp edx, 3
ja case.default.0x1003c0aa
jmp dword [edx*4 + 0x1003fe18]
add edi, eax
adc esi, ecx
jmp 0x1003c0f4
sub edi, eax
sbb esi, ecx
jmp 0x1003c0f4
push ecx
push eax
push esi
push edi
call fcn.100413d0
jmp 0x1003c0f0
mov edx, eax
or edx, ecx
je 0x1003c207
push ecx
push eax
push esi
push edi
call fcn.100418d0
jmp 0x1003c0f0
mov edx, eax
or edx, ecx
je 0x1003c207
push ecx
push eax
push esi
push edi
call fcn.10042080
mov edi, eax
mov esi, edx
movzx eax, word [ebx + 0x18]
test al, 0x40
je 0x1003c105
push ebx
call fcn.10009c40
add esp, 4
mov ebx, dword [esp + 0x24]
test byte [ebx + 0x18], 0x40
mov dword [esp + 0x10], ebx
je 0x1003c11c
push ebx
call fcn.10009c40
add esp, 4
mov dword [ebx], edi
mov dword [ebx + 4], esi
mov word [ebx + 0x18], 4
jmp 0x1003f90d
push ebx
call fcn.10011ba0
fstp qword [esp + 0x5c]
mov esi, dword [esp + 0x28]
push esi
call fcn.10011ba0
movzx eax, byte [edi]
add eax, 0xffffffb2
add esp, 8
cmp eax, 3
ja case.default.0x1003c14e
jmp dword [eax*4 + 0x1003fe28]
fadd qword [esp + 0x58]
jmp 0x1003c1b4
fsub qword [esp + 0x58]
jmp 0x1003c1b4
fmul qword [esp + 0x58]
jmp 0x1003c1b4
fldz
fld qword [esp + 0x58]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x1003c203
fdivp st(1)
jmp 0x1003c1b4
fld qword [esp + 0x58]
call fcn.10040fb0
mov edi, eax
mov dword [esp + 0x28], edi
call fcn.10040fb0
fild dword [esp + 0x28]
mov ecx, eax
fcomp qword [0x10052f28]
fnstsw ax
test ah, 0x44
jnp 0x1003c207
mov eax, ecx
cdq
idiv edi
mov dword [esp + 0x28], edx
fild dword [esp + 0x28]
test byte [ebx + 0x18], 0x40
fstp qword [esp + 0x58]
je 0x1003c1c7
push ebx
call fcn.10009c40
add esp, 4
test byte [esi + 0x18], 0x40
mov dword [esp + 0x10], esi
je 0x1003c1da
push esi
call fcn.10009c40
add esp, 4
fld qword [esp + 0x58]
mov eax, 8
test byte [esp + 0x3c], al
fstp qword [esi + 8]
mov word [esi + 0x18], ax
jne 0x1003f90d
mov eax, dword [esp + 0x10]
push eax
call fcn.10005350
jmp 0x1003f90a
fstp st(0)
fstp st(0)
test byte [ebx + 0x18], 0x40
je 0x1003c064
jmp 0x1003c05b
mov eax, dword [edi + 8]
mov ecx, dword [esi + 0x30]
mov dword [esp + 0x20], ecx
mov edx, eax
shl edx, 6
mov ecx, ebx
sub ecx, edx
add ecx, 0x40
xor edx, edx
test eax, eax
mov dword [esp + 0x2c], eax
jle 0x1003c258
jmp 0x1003c240
mov eax, dword [esp + 0x20]
mov dword [eax + edx*4], ecx
call fcn.10005b40
add edx, 1
add ecx, 0x40
cmp edx, dword [esp + 0x2c]
jl 0x1003c240
xor edx, edx
cmp dword [edi + 0x10], 0xfffffffb
jne 0x1003c26c
mov ecx, dword [edi + 0xc]
mov dword [esp + 0x14c], edx
jmp 0x1003c278
mov eax, dword [edi + 0xc]
mov dword [esp + 0x14c], eax
mov ecx, dword [eax]
mov dword [esp + 0x148], ecx
mov word [esp + 0x168], 1
mov dword [esp + 0x160], edx
mov dword [esp + 0x16c], edx
mov byte [esp + 0x194], 0
cmp byte [ecx + 3], 0
je 0x1003c2af
mov edx, dword [edi - 8]
mov dword [esp + 0x198], edx
mov eax, dword [esp + 0x18]
push eax
call fcn.10003120
add esp, 4
test eax, eax
jne 0x1003f366
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
push edx
push eax
mov eax, dword [ecx + 0x10]
lea edx, [esp + 0x150]
push edx
call eax
mov ecx, dword [esp + 0x24]
push ecx
call fcn.100030e0
add esp, 0x10
test eax, eax
jne 0x1003f366
call fcn.10008e80
test eax, eax
jne 0x1003fb8d
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x10]
push edx
call fcn.10009f00
mov eax, dword [esp + 0x150]
add esp, 4
test eax, eax
je 0x1003c337
mov ecx, dword [edi + 4]
push ecx
push eax
call fcn.10005520
mov edx, dword [esp + 0x154]
add esp, 8
mov dword [edi + 0xc], edx
mov dword [edi + 0x10], 0xfffffff9
cmp byte [esp + 0x194], 0
je 0x1003c36d
push 0
lea eax, [esp + 0x154]
push 1
push eax
call fcn.10011cc0
add esp, 8
push eax
add esi, 0x230
push esi
call fcn.1000add0
add esp, 0xc
mov dword [esp + 0x14], 1
movzx ecx, byte [esp + 0x54]
push ecx
lea edx, [esp + 0x154]
push edx
call fcn.10011a70
mov eax, dword [esp + 0x18]
add eax, 0x40
lea ecx, [esp + 0x158]
push ecx
push eax
mov dword [esp + 0x20], eax
mov word [eax + 0x18], 0
call fcn.1000cb00
add esp, 0x10
jmp 0x1003f90d
mov dl, byte [ebx - 0x28]
or dl, byte [ebx + 0x18]
lea eax, [ebx - 0x40]
test dl, 1
mov dword [esp + 0x24], eax
je 0x1003c3eb
mov esi, 2
mov edi, edi
sub esi, 1
test byte [ebx + 0x18], 0x40
je 0x1003c3d2
push ebx
call fcn.10009c40
add esp, 4
sub ebx, 0x40
test esi, esi
jg 0x1003c3c0
lea eax, [ebx + 0x40]
mov dword [esp + 0x10], eax
mov word [eax + 0x18], 1
jmp 0x1003f90d
push eax
call fcn.10011b20
push ebx
mov esi, eax
mov dword [esp + 0x9c], edx
call fcn.10011b20
mov ecx, eax
movzx eax, byte [edi]
add eax, 0xffffffb6
add esp, 8
cmp eax, 3
ja case.default.0x1003c410
jmp dword [eax*4 + 0x1003fe38]
and esi, ecx
and dword [esp + 0x94], edx
jmp case.default.0x1003c410
or esi, ecx
or dword [esp + 0x94], edx
jmp case.default.0x1003c410
mov edx, dword [esp + 0x94]
mov eax, esi
call fcn.10041980
jmp 0x1003c44b
mov edx, dword [esp + 0x94]
mov eax, esi
call fcn.10042050
mov dword [esp + 0x94], edx
mov esi, eax
test byte [ebx + 0x18], 0x40
je 0x1003c463
push ebx
call fcn.10009c40
add esp, 4
mov edi, dword [esp + 0x24]
test byte [edi + 0x18], 0x40
mov dword [esp + 0x10], edi
je 0x1003c47a
push edi
call fcn.10009c40
add esp, 4
mov eax, dword [esp + 0x94]
mov dword [edi], esi
mov dword [edi + 4], eax
mov word [edi + 0x18], 4
jmp 0x1003f90d
push ebx
call fcn.10011c20
mov eax, dword [edi + 4]
cdq
add esp, 4
add dword [ebx], eax
adc dword [ebx + 4], edx
jmp case.0x1003bad5.12
mov esi, ebx
call fcn.10012620
movzx eax, word [ebx + 0x18]
test al, 8
mov dword [esp + 0x28], eax
je 0x1003c4df
fld qword [ebx + 8]
call fcn.10040fe6
mov dword [ebx], eax
mov dword [ebx + 4], edx
fild qword [ebx]
fcomp qword [ebx + 8]
fnstsw ax
test ah, 0x44
jp 0x1003c4df
mov eax, dword [esp + 0x28]
or eax, 4
mov word [ebx + 0x18], ax
movzx eax, word [ebx + 0x18]
test al, 0xc
jne 0x1003c50a
test al, 0x40
je 0x1003c4f4
push ebx
call fcn.10009c40
add esp, 4
sub ebx, 0x40
mov dword [esp + 0x10], ebx
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x30], edi
jmp case.0x1003bad5.12
test al, 4
je 0x1003c538
cmp dword [edi + 4], 0
je 0x1003c529
mov esi, dword [ebx]
mov edi, dword [ebx + 4]
mov eax, 1
xor ecx, ecx
add esi, eax
adc edi, ecx
jmp 0x1003c5a6
mov esi, dword [ebx]
mov edi, dword [ebx + 4]
xor eax, eax
xor ecx, ecx
add esi, eax
adc edi, ecx
jmp 0x1003c5a6
push ebx
call fcn.10011c50
fld qword [ebx + 8]
add esp, 4
call fcn.10040fb0
cdq
mov esi, eax
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], edx
fild qword [esp + 0x80]
fcomp qword [ebx + 8]
fnstsw ax
test ah, 5
jp 0x1003c57d
add esi, 1
adc dword [esp + 0x84], 0
mov dword [esp + 0x80], esi
cmp dword [edi + 4], 0
je 0x1003c59f
fild qword [esp + 0x80]
fcomp qword [ebx + 8]
fnstsw ax
test ah, 0x44
jp 0x1003c59f
add esi, 1
adc dword [esp + 0x84], 0
mov edi, dword [esp + 0x84]
test byte [ebx + 0x18], 0x40
je 0x1003c5b5
push ebx
call fcn.10009c40
add esp, 4
mov dword [ebx], esi
mov dword [ebx + 4], edi
mov word [ebx + 0x18], 4
jmp case.0x1003bad5.12
mov esi, ebx
call fcn.10012620
movzx eax, word [ebx + 0x18]
test al, 8
mov dword [esp + 0x28], eax
je 0x1003c5fc
fld qword [ebx + 8]
call fcn.10040fe6
mov dword [ebx], eax
mov dword [ebx + 4], edx
fild qword [ebx]
fcomp qword [ebx + 8]
fnstsw ax
test ah, 0x44
jp 0x1003c5fc
mov eax, dword [esp + 0x28]
or eax, 4
mov word [ebx + 0x18], ax
movzx eax, word [ebx + 0x18]
test al, 4
jne 0x1003c63f
cmp dword [edi + 8], 0
je 0x1003fa4f
cmp dword [edi + 4], 0
je 0x1003c4fb
test al, 0x40
je 0x1003c4f4
push ebx
call fcn.10009c40
mov edi, dword [edi + 8]
sub ebx, 0x40
add esp, 4
sub edi, 1
mov dword [esp + 0x10], ebx
mov dword [esp + 0x30], edi
jmp case.0x1003bad5.12
test al, 0x40
je 0x1003c64c
push ebx
call fcn.10009c40
add esp, 4
mov word [ebx + 0x18], 4
jmp case.0x1003bad5.12
test byte [ebx + 0x18], 4
je case.0x1003bad5.12
push ebx
call fcn.10011c50
add esp, 4
jmp case.0x1003bad5.12
test byte [ebx + 0x18], 1
jne case.0x1003bad5.12
movzx eax, word [ebx + 0x18]
movzx ecx, al
shr cl, 3
and ecx, 2
or ecx, eax
movzx eax, cx
test al, 2
mov word [ebx + 0x18], cx
jne 0x1003c6a6
test al, 0xc
je 0x1003c6a6
movzx edx, byte [esp + 0x54]
push edx
push ebx
call fcn.10011aa0
add esp, 8
and word [ebx + 0x18], 0xffe3
jmp case.0x1003bad5.12
movzx eax, word [ebx + 0x18]
test al, 1
jne case.0x1003bad5.12
test al, 0x10
jne 0x1003c6e7
movzx eax, word [ebx + 0x18]
test al, 2
jne 0x1003c6dc
test al, 0xc
je 0x1003c6dc
movzx eax, byte [esp + 0x54]
push eax
push ebx
call fcn.10011aa0
add esp, 8
and word [ebx + 0x18], 0xfff3
or word [ebx + 0x18], 0x10
and word [ebx + 0x18], 0xfff1
jmp case.0x1003bad5.12
test byte [ebx + 0x18], 1
jne case.0x1003bad5.12
push ebx
call fcn.10011c80
add esp, 4
jmp case.0x1003bad5.12
test byte [ebx + 0x18], 1
jne case.0x1003bad5.12
push ebx
call fcn.10011c20
add esp, 4
jmp case.0x1003bad5.12
test byte [ebx + 0x18], 1
jne case.0x1003bad5.12
push ebx
call fcn.10011c50
add esp, 4
jmp case.0x1003bad5.12
movzx eax, word [ebx + 0x18]
mov cl, byte [ebx - 0x28]
lea esi, [ebx - 0x40]
or cl, al
test cl, 1
je 0x1003c777
test dword [edi + 4], 0x200
je 0x1003c7c5
not eax
and eax, 1
cdq
push edx
push eax
push ebx
call fcn.10009cf0
movzx eax, word [esi + 0x18]
not eax
and eax, 1
cdq
push edx
push eax
push esi
call fcn.10009cf0
add esp, 0x18
mov al, byte [edi + 4]
test al, al
mov byte [esp + 0x3b], al
je 0x1003c7a1
mov edx, dword [esp + 0x54]
push edx
mov ecx, esi
call fcn.100126d0
mov eax, dword [esp + 0x58]
push eax
mov al, byte [esp + 0x43]
mov ecx, ebx
call fcn.100126d0
add esp, 8
mov ecx, dword [edi + 0xc]
push ecx
push ebx
push esi
call fcn.100182d0
movzx ecx, byte [edi]
add ecx, 0xffffffbd
add esp, 0xc
cmp ecx, 4
ja case.default.0x1003c7be
jmp dword [ecx*4 + 0x1003fe48]
mov esi, 2
lea ebx, [ebx]
sub esi, 1
test byte [ebx + 0x18], 0x40
je 0x1003c7e2
push ebx
call fcn.10009c40
add esp, 4
sub ebx, 0x40
test esi, esi
jg 0x1003c7d0
mov eax, dword [edi + 8]
test eax, eax
mov dword [esp + 0x10], ebx
je 0x1003c3d9
test dword [edi + 4], 0x100
je 0x1003f90d
add eax, 0xffffffff
mov dword [esp + 0x30], eax
jmp 0x1003f90d
xor edx, edx
test eax, eax
sete dl
mov dword [esp + 0x34], edx
jmp 0x1003c855
xor ecx, ecx
test eax, eax
setne cl
jmp 0x1003c851
xor edx, edx
test eax, eax
setl dl
mov dword [esp + 0x34], edx
jmp 0x1003c855
xor ecx, ecx
test eax, eax
setle cl
jmp 0x1003c851
xor edx, edx
test eax, eax
setg dl
mov dword [esp + 0x34], edx
jmp 0x1003c855
xor ecx, ecx
test eax, eax
setge cl
mov dword [esp + 0x34], ecx
mov esi, 2
lea ebx, [ebx]
sub esi, 1
test byte [ebx + 0x18], 0x40
je 0x1003c872
push ebx
call fcn.10009c40
add esp, 4
sub ebx, 0x40
test esi, esi
jg 0x1003c860
mov edi, dword [edi + 8]
test edi, edi
mov dword [esp + 0x10], ebx
je 0x1003c89b
cmp dword [esp + 0x34], 0
je case.0x1003bad5.12
add edi, 0xffffffff
mov dword [esp + 0x30], edi
jmp case.0x1003bad5.12
mov eax, dword [esp + 0x34]
lea ecx, [ebx + 0x40]
cdq
mov word [ecx + 0x18], 4
mov dword [ecx], eax
mov dword [esp + 0x10], ecx
mov dword [ecx + 4], edx
jmp 0x1003f90d
test byte [ebx + 0x18], 1
je 0x1003c8c4
mov esi, 2
jmp 0x1003c8db
push ebx
call fcn.10011c20
mov edx, dword [ebx]
add esp, 4
or edx, dword [ebx + 4]
jne 0x1003c8d9
lea esi, [edx + 1]
jmp 0x1003c8db
xor esi, esi
test byte [ebx - 0x28], 1
lea eax, [ebx - 0x40]
je 0x1003c8eb
mov eax, 2
jmp 0x1003c905
push eax
call fcn.10011c20
mov eax, dword [ebx - 0x40]
add esp, 4
or eax, dword [ebx - 0x3c]
jne 0x1003c903
mov eax, 1
jmp 0x1003c905
xor eax, eax
cmp byte [edi], 0x3d
jne 0x1003c917
lea ecx, [eax + esi*2]
movzx edi, byte [esi + ecx + 0x10050428]
jmp 0x1003c922
lea edx, [eax + esi*2]
movzx edi, byte [esi + edx + 0x10050434]
mov esi, 2
sub esi, 1
test byte [ebx + 0x18], 0x40
je 0x1003c939
push ebx
call fcn.10009c40
add esp, 4
sub ebx, 0x40
test esi, esi
jg 0x1003c927
cmp edi, 2
lea ecx, [ebx + 0x40]
mov dword [esp + 0x10], ecx
mov ebx, ecx
jne 0x1003c959
mov word [ecx + 0x18], 1
jmp case.0x1003bad5.12
xor eax, eax
test edi, edi
sete al
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov word [ecx + 0x18], 4
jmp case.0x1003bad5.12
movzx eax, word [ebx + 0x18]
test al, 8
jne 0x1003c9c9
test al, 4
je 0x1003c9b8
test al, 0x40
je 0x1003c98a
push ebx
call fcn.10009c40
add esp, 4
cmp byte [edi], 0x55
je 0x1003c99c
cmp dword [ebx + 4], 0
jg 0x1003c9ad
jl 0x1003c99c
cmp dword [ebx], 0
jae 0x1003c9ad
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
neg eax
adc ecx, 0
neg ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov word [ebx + 0x18], 4
jmp case.0x1003bad5.12
test al, 1
jne case.0x1003bad5.12
push ebx
call fcn.10011c80
add esp, 4
test byte [ebx + 0x18], 0x40
je 0x1003c9d8
push ebx
call fcn.10009c40
add esp, 4
cmp byte [edi], 0x55
je 0x1003c9e9
fldz
fcomp qword [ebx + 8]
fnstsw ax
test ah, 0x41
jne 0x1003c9f1
fld qword [ebx + 8]
fchs
fstp qword [ebx + 8]
mov word [ebx + 0x18], 8
jmp case.0x1003bad5.12
test byte [ebx + 0x18], 1
jne case.0x1003bad5.12
push ebx
call fcn.10011c20
mov edx, dword [ebx]
add esp, 4
or edx, dword [ebx + 4]
jne 0x1003ca2c
mov eax, 1
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov word [ebx + 0x18], 4
jmp case.0x1003bad5.12
xor eax, eax
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov word [ebx + 0x18], 4
jmp case.0x1003bad5.12
test byte [ebx + 0x18], 1
jne case.0x1003bad5.12
push ebx
call fcn.10011c20
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
not eax
not ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
add esp, 4
mov word [ebx + 0x18], 4
jmp case.0x1003bad5.12
test byte [ebx + 0x18], 1
je 0x1003ca76
mov esi, dword [edi + 4]
jmp 0x1003caa3
push ebx
call fcn.10011ba0
fcomp qword [0x10052f28]
add esp, 4
fnstsw ax
test ah, 0x44
jnp 0x1003ca93
mov esi, 1
jmp 0x1003ca95
xor esi, esi
cmp byte [edi], 0x56
jne 0x1003caa3
xor edx, edx
test esi, esi
sete dl
mov esi, edx
test byte [ebx + 0x18], 0x40
je 0x1003cab2
push ebx
call fcn.10009c40
add esp, 4
sub ebx, 0x40
test esi, esi
mov dword [esp + 0x10], ebx
je case.0x1003bad5.12
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x30], edi
jmp case.0x1003bad5.12
test byte [ebx + 0x18], 1
je 0x1003cafa
mov eax, dword [edi + 8]
sub eax, 1
mov dword [esp + 0x30], eax
mov eax, dword [edi + 4]
test eax, eax
jge 0x1003cafa
lea ecx, [esp + 0x10]
neg eax
push ecx
call fcn.10009f00
mov ebx, dword [esp + 0x14]
add esp, 4
mov edi, dword [edi + 4]
test edi, edi
jle case.0x1003bad5.12
mov eax, edi
jmp 0x1003f900
mov eax, dword [edi + 4]
test eax, eax
mov dword [esp + 0x28], eax
jge 0x1003cb19
neg eax
xor edx, edx
test eax, eax
jle 0x1003cb45
mov ecx, eax
shl ecx, 6
mov esi, ecx
mov ecx, ebx
sub ecx, esi
add ecx, 0x58
lea ecx, [ecx]
test byte [ecx], 1
jne 0x1003cb41
add edx, 1
add ecx, 0x40
cmp edx, eax
jl 0x1003cb30
jmp 0x1003cb45
cmp edx, eax
jl 0x1003cb4f
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x30], edi
cmp dword [esp + 0x28], 0
jle case.0x1003bad5.12
jmp 0x1003f900
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x3c]
mov edx, dword [ecx + eax*4]
mov eax, dword [edi + 8]
mov dword [edx + 0x50], eax
jmp case.0x1003bad5.12
mov ecx, dword [edi + 8]
mov eax, dword [edi + 4]
mov dword [esp + 0x20], ecx
xor ecx, ecx
add ebx, 0x40
mov word [esp + 0x160], cx
mov word [ebx + 0x18], 1
mov edx, dword [esi + 0x3c]
mov eax, dword [edx + eax*4]
cmp dword [eax], ecx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x24], eax
je 0x1003cc53
push eax
call fcn.1002bb40
add esp, 4
test eax, eax
mov dword [esp + 0x14], eax
jne 0x1003d649
mov eax, dword [esp + 0x24]
mov edx, dword [eax]
xor ecx, ecx
cmp byte [eax + 0x1c], cl
mov dword [esp + 0x44], ecx
mov dword [esp + 0x64], edx
je 0x1003cbd6
mov dword [esp + 0x6c], ecx
jmp 0x1003cc25
mov ecx, dword [eax + 0x68]
cmp ecx, dword [esi + 0x60]
jne 0x1003cbee
mov edx, dword [eax + 0x6c]
mov ecx, dword [eax + 0x78]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x44], ecx
jmp 0x1003cc25
cmp byte [eax + 0x21], 0
mov eax, dword [esp + 0x64]
je 0x1003cc13
lea edx, [esp + 0x140]
push edx
push eax
call fcn.1002ab40
mov ecx, dword [esp + 0x148]
mov dword [esp + 0x74], ecx
jmp 0x1003cc1e
lea edx, [esp + 0x6c]
push edx
push eax
call fcn.1002abd0
mov eax, dword [esp + 0x2c]
add esp, 8
mov ecx, dword [eax + 0x50]
mov dword [esp + 0x2c], ecx
xor ecx, ecx
cmp dword [esp + 0x6c], ecx
je case.0x1003bad5.12
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x68]
cmp ecx, dword [esi + 0x60]
jne 0x1003cc80
mov edx, dword [eax + 0x70]
mov eax, dword [eax + 0x74]
mov dword [esp + 0x1c], edx
jmp 0x1003ce7e
cmp byte [eax + 0x1e], 0
je 0x1003cc77
mov edx, dword [eax + 0x34]
mov dword [esp + 0x6c], edx
mov edx, dword [eax + 0x38]
mov dword [eax + 0x68], ecx
mov eax, dword [eax + 0x50]
mov dword [esp + 0x44], edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x64], ecx
jmp 0x1003cc2e
mov dword [esp + 0x6c], ecx
jmp case.0x1003bad5.12
mov eax, dword [eax + 0x70]
test eax, eax
mov dword [esp + 0x1c], eax
jne 0x1003ccb4
mov eax, dword [esp + 0x2c]
lea ecx, [eax*8]
push 1
push ecx
call fcn.1000ac70
mov edx, dword [esp + 0x2c]
add esp, 8
test eax, eax
mov dword [esp + 0x1c], eax
mov dword [edx + 0x70], eax
je 0x1003fb8d
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x6c]
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x28], ecx
mov dword [eax + 0x74], ecx
mov dword [eax + 0x6c], edx
mov ecx, dword [esi + 0x60]
mov esi, dword [esp + 0x44]
test esi, esi
mov dword [eax + 0x68], ecx
jne 0x1003cd35
cmp byte [eax + 0x21], 0
je 0x1003ccf9
mov eax, dword [esp + 0x64]
lea edx, [esp + 0xb0]
push edx
push eax
call fcn.100051a0
jmp 0x1003cd0b
mov edx, dword [esp + 0x64]
lea ecx, [esp + 0xb0]
push ecx
push edx
call fcn.10005210
mov esi, eax
mov eax, dword [esp + 0xb8]
add esp, 8
cmp eax, dword [esp + 0x6c]
jb 0x1003cd2a
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x44], esi
mov dword [ecx + 0x78], esi
jmp 0x1003cd35
mov edx, dword [esp + 0x24]
mov dword [edx + 0x78], 0
movzx eax, byte [esi]
cmp eax, 0x7f
mov dword [esp + 0x34], eax
ja 0x1003cd4b
mov dword [esp + 0x68], 1
jmp 0x1003cd61
lea eax, [esp + 0x34]
push eax
push esi
call fcn.10003360
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x3c]
add esp, 8
cmp dword [esp + 0x44], 0
jne 0x1003cdad
cmp dword [esp + 0xb0], eax
jae 0x1003cdad
mov edx, dword [esp + 0x24]
movzx eax, byte [edx + 0x21]
mov edx, dword [esp + 0x64]
lea ecx, [esp + 0x148]
push ecx
mov ecx, dword [esp + 0x38]
push eax
push ecx
push 0
push edx
call fcn.1002b500
add esp, 0x14
test eax, eax
mov dword [esp + 0x14], eax
jne case.0x1003bad5.12
mov esi, dword [esp + 0x158]
mov eax, dword [esp + 0x34]
add eax, esi
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x68]
add eax, esi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x2c]
test eax, eax
jbe 0x1003ce3a
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
sub ecx, esi
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x68], eax
jmp 0x1003cde0
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x3c]
jae 0x1003ce29
mov edx, dword [esp + 0x34]
mov dword [ecx + esi], edx
movzx eax, byte [eax]
cmp eax, 0x7f
mov dword [esi], eax
ja 0x1003ce02
mov eax, 1
jmp 0x1003ce14
mov eax, dword [esp + 0x14]
push esi
push eax
call fcn.10003360
mov ecx, dword [esp + 0x34]
add esp, 8
mov edx, dword [esi]
add dword [esp + 0x14], eax
push edx
call fcn.10005650
add esp, 4
add dword [esp + 0x34], eax
jmp 0x1003ce30
mov dword [ecx + esi], 0
add esi, 4
sub dword [esp + 0x68], 1
jne 0x1003cde0
test byte [esp + 0x160], 0x40
je 0x1003ce54
lea eax, [esp + 0x148]
push eax
call fcn.10009c40
add esp, 4
mov ecx, dword [esp + 0x3c]
cmp dword [esp + 0x14], ecx
mov word [esp + 0x160], 1
ja 0x1003cf45
mov edx, dword [esp + 0x34]
cmp edx, dword [esp + 0x6c]
ja 0x1003cf45
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
mov ecx, dword [eax + ecx*4]
test ecx, ecx
je 0x1003cef8
mov eax, dword [esp + 0x44]
test eax, eax
je 0x1003ce95
add eax, ecx
jmp 0x1003ced9
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov edx, dword [eax + edx*4]
push edx
call fcn.10005650
lea edx, [esp + 0x14c]
push edx
mov edx, dword [esp + 0x2c]
movzx edx, byte [edx + 0x21]
push edx
push eax
mov eax, dword [esp + 0x74]
push ecx
push eax
call fcn.1002b500
add esp, 0x18
test eax, eax
mov dword [esp + 0x14], eax
jne case.0x1003bad5.12
mov eax, dword [esp + 0x158]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + edx*4]
push ebx
push ecx
push eax
call fcn.10005700
mov dl, byte [esp + 0x60]
add esp, 0xc
mov byte [ebx + 0x1b], dl
jmp 0x1003cf18
cmp dword [edi + 0x10], 0xfffffff8
jne 0x1003cf12
mov eax, dword [edi + 0xc]
push 0x80
push eax
push ebx
call fcn.10005380
add esp, 0xc
jmp 0x1003cf18
mov word [ebx + 0x18], 1
test byte [esp + 0x160], 0x40
je 0x1003cf33
mov cx, word [ebx + 0x18]
and cx, 0xfeff
or cx, 0x60
mov word [ebx + 0x18], cx
push ebx
call fcn.1000c960
add esp, 4
mov dword [esp + 0x14], eax
jmp case.0x1003bad5.12
mov dword [esp + 0x14], 0xb
jmp case.0x1003bad5.12
mov eax, dword [edi + 4]
xor edx, edx
xor ecx, ecx
cmp eax, ecx
setl dl
mov dword [esp + 0x34], ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x28], 0
mov ecx, edx
xor edx, edx
test ecx, ecx
sete dl
mov dword [esp + 0x24], ecx
mov ecx, dword [edi + 8]
mov dword [esp + 0x58], ecx
mov ecx, dword [edi + 0xc]
mov dword [esp + 0x3c], ecx
lea edx, [edx + edx - 1]
imul eax, edx
xor edx, edx
cmp byte [edi], 0x36
mov dword [esp + 0x74], eax
sete dl
shl eax, 6
mov edi, ebx
sub edi, eax
lea eax, [edi + 0x40]
cmp eax, ebx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x44], edx
movzx edx, byte [esi + 0x239]
mov dword [esp + 0x20], edx
mov esi, eax
ja 0x1003d030
mov eax, 0xffffffe8
sub eax, esi
mov dword [esp + 0x68], eax
jmp 0x1003cfd8
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x68]
test ecx, ecx
je 0x1003cff5
mov edx, dword [esp + 0x54]
lea eax, [esi + eax + 0x18]
sar eax, 6
mov al, byte [eax + ecx]
push edx
mov ecx, esi
call fcn.100126d0
add esp, 4
test byte [esi + 0x18], 1
je 0x1003d003
mov dword [esp + 0x28], 1
mov ecx, dword [esp + 0x20]
push ecx
push esi
call fcn.10005580
mov ecx, eax
push ecx
call fcn.10005650
add dword [esp + 0x28], eax
push 0
push ecx
call fcn.100033d0
add dword [esp + 0x78], eax
add esi, 0x40
add esp, 0x14
cmp esi, ebx
jbe 0x1003cfd0
cmp dword [esp + 0x44], 0
je 0x1003d068
push edi
mov dword [esp + 0x38], edi
call fcn.10011c20
push 0
push edi
call fcn.10005580
mov ecx, eax
push ecx
call fcn.10005650
add dword [esp + 0x2c], eax
push 0
push ecx
call fcn.100033d0
mov esi, dword [esp + 0x7c]
add esp, 0x18
add esi, eax
jmp 0x1003d06c
mov esi, dword [esp + 0x64]
mov eax, esi
cdq
push edx
push eax
call fcn.100033d0
mov edi, eax
add esi, edi
mov eax, esi
cdq
push edx
push eax
mov dword [esp + 0x74], esi
call fcn.100033d0
add esp, 0x10
cmp edi, eax
jge 0x1003d096
add esi, 1
mov dword [esp + 0x64], esi
mov edx, dword [esp + 0x1c]
lea eax, [esi + edx]
cmp eax, 0x20
mov dword [esp + 0x3c], eax
jbe 0x1003d0c3
push 1
push eax
call fcn.1000ac70
add esp, 8
test eax, eax
mov dword [esp + 0x1c], eax
je 0x1003fb8d
mov esi, dword [esp + 0x64]
jmp 0x1003d0ce
lea eax, [esp + 0x23c]
mov dword [esp + 0x1c], eax
mov edi, dword [esp + 0x1c]
mov eax, esi
cdq
push edx
push eax
push edi
call fcn.10003150
mov esi, eax
add esi, edi
mov edi, dword [esp + 0x38]
add esp, 0xc
cmp edi, ebx
ja 0x1003d110
lea esp, [esp]
mov ecx, dword [esp + 0x20]
push ecx
push edi
call fcn.10005580
push 0
push eax
push esi
call fcn.10003150
add edi, 0x40
add esp, 0x14
add esi, eax
cmp edi, ebx
jbe 0x1003d0f0
cmp dword [esp + 0x44], 0
je 0x1003d131
mov edx, dword [esp + 0x34]
push 0
push edx
call fcn.10005580
push 0
push eax
push esi
call fcn.10003150
add esp, 0x14
add esi, eax
mov edi, dword [esp + 0x2c]
cmp edi, ebx
ja 0x1003d158
lea esp, [esp]
mov eax, dword [esp + 0x20]
push eax
push edi
push esi
call fcn.10005670
add edi, 0x40
add esp, 0xc
add esi, eax
cmp edi, ebx
jbe 0x1003d140
mov edi, dword [esp + 0x44]
test edi, edi
je 0x1003d170
mov ecx, dword [esp + 0x34]
push 0
push ecx
push esi
call fcn.10005670
add esp, 0xc
cmp dword [esp + 0x24], 0
jne 0x1003d18f
mov edx, dword [esp + 0x74]
lea ecx, [esp + 0x10]
lea eax, [edi + edx]
push ecx
call fcn.10009f00
mov ebx, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 0x3c]
add ebx, 0x40
cmp ecx, 0x20
mov dword [esp + 0x10], ebx
mov dword [ebx + 0x14], ecx
ja 0x1003d1c2
push ecx
lea edx, [esp + 0x240]
lea eax, [ebx + 0x20]
push edx
push eax
mov dword [ebx + 0x10], eax
call fcn.10041060
add esp, 0xc
mov word [ebx + 0x18], 0x210
jmp 0x1003d1d6
mov eax, dword [esp + 0x1c]
mov dword [ebx + 0x10], eax
mov word [ebx + 0x18], 0x50
mov dword [ebx + 0x1c], 0
mov eax, dword [esp + 0x58]
test eax, eax
mov byte [ebx + 0x1b], 1
je case.0x1003bad5.12
cmp dword [esp + 0x28], 0
je case.0x1003bad5.12
add eax, 0xffffffff
mov dword [esp + 0x30], eax
jmp case.0x1003bad5.12
mov edi, dword [edi + 4]
test edi, edi
jl case.0x1003bad5.12
mov ecx, dword [esp + 0x18]
cmp edi, dword [ecx]
jge case.0x1003bad5.12
mov eax, ecx
mov ecx, dword [eax + 4]
lea edx, [edi + edi*2]
mov ecx, dword [ecx + edx*8 + 4]
test ecx, ecx
je case.0x1003bad5.12
mov edx, eax
cmp byte [edx + 0x14], 0
jne case.0x1003bad5.12
push ecx
call fcn.10005330
add esp, 4
test eax, eax
jne case.0x1003bad5.12
push ecx
call fcn.10011a20
add esp, 4
mov dword [esp + 0x14], eax
jmp case.0x1003bad5.12
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 0x54], 1
mov al, byte [edi + 4]
mov dl, byte [edi + 8]
mov byte [esp + 0x3b], al
jle 0x1003d2ac
test al, al
je 0x1003d2ac
cmp byte [ecx + 0x14], 0
jne 0x1003d2ac
test dl, dl
mov eax, str.rollback
jne 0x1003d283
mov eax, str.commit
push 0
push str._transaction___SQL_statements_in_progress
push eax
push str.cannot
add esi, 0x230
push esi
call fcn.1000add0
add esp, 0x14
mov dword [esp + 0x14], 1
jmp case.0x1003bad5.12
cmp al, byte [ecx + 0x14]
jne 0x1003fa60
test al, al
jne 0x1003d2c0
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x1003d2ce
test dl, dl
mov eax, str.cannot_rollback___no_transaction_is_active
jne 0x1003d2ce
mov eax, str.cannot_commit___no_transaction_is_active
push 0
push eax
add esi, 0x230
push esi
call fcn.1000add0
add esp, 0xc
mov dword [esp + 0x14], 1
jmp case.0x1003bad5.12
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 4]
lea eax, [eax + eax*2]
mov eax, dword [edx + eax*8 + 4]
test eax, eax
je case.0x1003bad5.12
mov ecx, dword [edi + 8]
push ecx
push eax
call fcn.1001ec50
add esp, 8
cmp eax, 5
mov dword [esp + 0x14], eax
je 0x1003faca
test eax, eax
je case.0x1003bad5.12
cmp eax, 8
jne 0x1003d649
jmp case.0x1003bad5.12
mov eax, dword [edi + 8]
mov edi, dword [edi + 4]
lea edx, [esp + 0xf0]
push edx
mov edx, dword [esp + 0x1c]
add eax, 1
push eax
mov eax, dword [edx + 4]
lea ecx, [edi + edi*2]
mov ecx, dword [eax + ecx*8 + 4]
push ecx
call fcn.10021b70
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xfc]
cdq
add esp, 0xc
add ebx, 0x40
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov dword [esp + 0x10], ebx
mov word [ebx + 0x18], 4
jmp case.0x1003bad5.12
mov eax, dword [edi + 4]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 4]
push ebx
lea esi, [ecx + edx*8]
call fcn.10011c20
mov edx, dword [ebx]
mov eax, dword [edi + 8]
mov ecx, dword [esi + 4]
push edx
add eax, 1
push eax
push ecx
call fcn.10021bf0
mov dword [esp + 0x24], eax
mov eax, dword [edi + 8]
add esp, 0x10
test eax, eax
jne 0x1003d3ca
mov eax, dword [ebx]
mov edx, dword [esi + 0x14]
mov dword [edx], eax
mov eax, dword [esp + 0x18]
or dword [eax + 8], 0x10
jmp 0x1003d3d7
cmp eax, 1
jne 0x1003d3d7
mov ecx, dword [esi + 0x14]
mov dl, byte [ebx]
mov byte [ecx + 0x78], dl
sub ebx, 0x40
cmp dword [edi + 4], 1
mov dword [esp + 0x10], ebx
jne case.0x1003bad5.12
mov eax, dword [esp + 0x18]
push eax
call fcn.10005960
add esp, 4
jmp case.0x1003bad5.12
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x18]
lea ecx, [eax + eax*2]
mov eax, dword [edx + 4]
mov eax, dword [eax + ecx*8 + 4]
xor ecx, ecx
cmp eax, ecx
je 0x1003d49e
lea ecx, [esp + 0x9c]
push ecx
push 1
push eax
call fcn.10021b70
add esp, 0xc
test eax, eax
mov dword [esp + 0x14], eax
jne case.0x1003bad5.12
mov edx, dword [esp + 0x9c]
cmp edx, dword [edi + 8]
je case.0x1003bad5.12
push 0
push str.database_schema_has_changed
add esi, 0x230
push esi
call fcn.1000add0
mov ecx, dword [esp + 0x24]
mov edi, dword [edi + 4]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0xa8]
lea eax, [edi + edi*2]
mov eax, dword [edx + eax*8 + 0x14]
add esp, 0xc
cmp dword [eax], ecx
je 0x1003d484
mov edx, dword [esp + 0x18]
push edi
push edx
call fcn.1001a400
add esp, 8
mov eax, dword [esp + 0x18]
push eax
call fcn.10005960
add esp, 4
mov dword [esp + 0x14], 0x11
jmp case.0x1003bad5.12
mov dword [esp + 0x14], ecx
mov dword [esp + 0x9c], ecx
jmp 0x1003d434
mov ecx, dword [edi + 4]
mov edx, dword [edi + 8]
push ebx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x24], edx
call fcn.10011c20
mov eax, dword [ebx]
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 4]
mov dword [esp + 0x5c], eax
lea eax, [eax + eax*2]
mov ecx, dword [edx + eax*8 + 4]
lea eax, [edx + eax*8]
sub ebx, 0x40
add esp, 4
cmp byte [edi], 9
mov dword [esp + 0x10], ebx
mov dword [esp + 0x3c], ecx
jne 0x1003d507
mov edx, dword [eax + 0x14]
mov al, byte [edx + 0x78]
cmp al, byte [esi + 0x239]
mov dword [esp + 0x28], 1
jae 0x1003d50f
mov byte [esi + 0x239], al
jmp 0x1003d50f
mov dword [esp + 0x28], 0
cmp dword [esp + 0x20], 0
jg 0x1003d52c
push ebx
call fcn.10011c20
mov eax, dword [ebx]
add esp, 4
sub ebx, 0x40
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], ebx
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x74]
mov edi, dword [esp + 0x40]
push ecx
call fcn.10022870
mov esi, eax
add esp, 4
test esi, esi
je 0x1003fb89
mov eax, dword [esp + 0x3c]
test eax, eax
mov byte [esi + 0x1c], 1
je 0x1003f90d
mov edi, dword [esp + 0x24]
mov edx, dword [edi + 0xc]
mov ecx, dword [esp + 0x28]
push esi
push edx
mov edx, dword [esp + 0x28]
push fcn.100186d0
push ecx
push edx
push eax
call fcn.1002a9c0
mov ebx, 0xfffffffa
add esp, 0x18
cmp dword [edi + 0x10], ebx
mov dword [esp + 0x14], eax
jne 0x1003d5b1
mov ecx, dword [edi + 0xc]
mov dword [esi + 0x4c], ecx
mov ebx, dword [esi + 0x4c]
add ecx, 1
mov dword [esi + 0x48], ecx
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
mov edx, dword [edx + 0x14]
mov dl, byte [edx + 0x79]
mov byte [ebx], dl
mov ebx, 0xfffffffa
jmp 0x1003d5c2
lea ecx, [esi + 0x22]
mov dword [esi + 0x48], ecx
mov ecx, dword [esp + 0x40]
mov dword [esi + 0x4c], 0
test eax, eax
je 0x1003d5f2
cmp eax, 5
je 0x1003faf8
cmp eax, 0x10
jne 0x1003d641
cmp dword [edi + 0x10], ebx
mov dword [esp + 0x14], 0
setne al
test al, al
sete dl
mov byte [esi + 0x20], al
mov byte [esi + 0x21], dl
jmp 0x1003f90d
mov eax, dword [esi]
push eax
call fcn.10005310
add esp, 4
test al, 0xf0
jne 0x1003d639
mov ecx, eax
and ecx, 7
cmp ecx, 5
je 0x1003d610
cmp ecx, 2
jne 0x1003d639
mov cl, al
shr eax, 1
and cl, 1
and al, 1
test cl, cl
mov byte [esi + 0x20], cl
mov byte [esi + 0x21], al
je 0x1003d628
cmp dword [edi + 0x10], ebx
je 0x1003d639
test al, al
je 0x1003f90d
cmp dword [edi + 0x10], ebx
je 0x1003f90d
mov dword [esp + 0x14], 0xb
mov esi, dword [esp + 0x40]
mov ebx, dword [esp + 0x10]
cmp dword [esi + 0x230], 0
lea ecx, [esi + 0x230]
jne 0x1003d682
call fcn.10008e80
test eax, eax
je 0x1003d669
mov dword [esp + 0x14], 7
mov edx, dword [esp + 0x14]
push 0
push edx
call fcn.10007e90
add esp, 4
push eax
push ecx
call fcn.1000add0
add esp, 0xc
cmp dword [esp + 0x14], 0
je 0x1003fbb3
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x14]
mov dword [edi + 0x80], eax
mov esi, 1
jmp 0x1003fbbc
mov edx, dword [esp + 0x24]
mov ebx, dword [edx + 4]
mov edi, dword [esp + 0x40]
push 0xffffffffffffffff
call fcn.10022870
mov esi, eax
add esp, 4
test esi, esi
mov dword [esp + 0x34], esi
je 0x1003fb89
mov ebx, dword [esp + 0x18]
xor eax, eax
mov byte [esi + 0x1c], 1
test dword [ebx + 8], 0x1000
lea edi, [esi + 0x30]
lea ecx, [eax + 1]
je 0x1003d6e4
lea ecx, [eax + 3]
cmp byte [ebx + 0x15], 2
jne 0x1003d6ef
mov eax, str.:memory:
push ecx
push edi
push ebx
push eax
call fcn.10017d30
add esp, 0x10
test eax, eax
jne 0x1003d720
mov ecx, dword [edi]
mov ecx, dword [ecx + 4]
mov edx, dword [ecx]
add ebx, 0x114
mov dword [ecx + 0x28], ebx
mov dword [edx + 0x6c], ebx
mov ecx, dword [edi]
mov edx, dword [ecx + 4]
mov ecx, dword [edx]
mov dword [ecx + 0x48], 0x1f4
test eax, eax
mov dword [esp + 0x14], eax
jne 0x1003dbd4
mov eax, dword [edi]
mov ebx, dword [eax + 4]
xor edi, edi
cmp byte [eax + 8], 2
mov dword [esp + 0x58], eax
je 0x1003d823
cmp byte [ebx + 0xd], 0
je 0x1003d754
mov dword [esp + 0x14], 8
jmp 0x1003dbd4
cmp byte [ebx + 0x2c], 2
jne 0x1003d767
mov dword [esp + 0x14], 5
jmp 0x1003dbd4
cmp dword [ebx + 8], 0
jne 0x1003d776
mov esi, ebx
call fcn.1001e940
mov edi, eax
test edi, edi
jne 0x1003d785
cmp byte [ebx + 0xd], 0
je 0x1003d7bf
mov edi, 8
mov esi, ebx
call fcn.10018080
cmp edi, 5
jne 0x1003d7f3
cmp byte [ebx + 0x2c], 0
jne 0x1003d813
mov esi, dword [ebx + 0x28]
test esi, esi
je 0x1003d813
mov ecx, dword [esi]
test ecx, ecx
je 0x1003d813
mov eax, dword [esi + 8]
test eax, eax
jl 0x1003d813
mov edx, dword [esi + 4]
push eax
push edx
call ecx
add esp, 8
test eax, eax
je 0x1003d7ea
add dword [esi + 8], 1
jmp 0x1003d767
mov edx, dword [ebx + 8]
mov eax, dword [edx + 0x48]
push 0
push eax
call fcn.10017920
mov edi, eax
add esp, 8
test edi, edi
jne 0x1003d785
push ebx
call fcn.1001eb80
mov edi, eax
add esp, 4
test edi, edi
jne 0x1003d785
mov byte [ebx + 0xc], al
jmp 0x1003d78c
mov dword [esi + 8], 0xffffffff
jmp 0x1003d813
test edi, edi
jne 0x1003d813
mov eax, dword [esp + 0x58]
cmp byte [eax + 8], 0
jne 0x1003d805
add dword [ebx + 0x34], 1
mov byte [eax + 8], 2
cmp byte [ebx + 0x2c], 2
jae 0x1003d813
mov byte [ebx + 0x2c], 2
test edi, edi
mov esi, dword [esp + 0x34]
mov dword [esp + 0x14], edi
jne 0x1003dbd4
mov edi, dword [esp + 0x24]
cmp dword [edi + 0xc], 0
je 0x1003da3e
mov ecx, dword [esi + 0x30]
push 2
lea eax, [esp + 0xd0]
push eax
push ecx
call fcn.1002af20
add esp, 0xc
test eax, eax
mov dword [esp + 0x14], eax
jne 0x1003da35
mov edx, dword [edi + 0xc]
mov edi, dword [esi + 0x30]
mov eax, dword [edi + 4]
mov dword [esi], 0
cmp byte [eax + 0xd], 0
mov dword [esp + 0x74], edx
mov dword [esp + 0x28], edi
mov dword [esp + 0x1c], eax
je 0x1003d881
mov dword [esp + 0x14], 8
jmp 0x1003da11
mov eax, dword [esp + 0xcc]
push eax
xor ebx, ebx
mov eax, edi
call fcn.10021980
add esp, 4
test eax, eax
je 0x1003d8a6
mov dword [esp + 0x14], 6
jmp 0x1003da11
mov ecx, dword [esp + 0x1c]
cmp dword [ecx + 8], 0
jne 0x1003d8db
mov ebx, edi
call fcn.1002a530
test eax, eax
je 0x1003d8c4
mov dword [esp + 0x14], eax
jmp 0x1003da11
mov edx, dword [esp + 0x1c]
cmp byte [edx + 0xd], 0
je 0x1003d8db
mov dword [esp + 0x14], 8
jmp 0x1003da11
cmp dword [0x100593ac], 0
je 0x1003d8ed
cmp dword [0x100593b8], 0
jg 0x1003d919
push 0x58
call fcn.10041469
mov ebx, eax
add esp, 4
test ebx, ebx
mov dword [esp + 0x58], ebx
jne 0x1003d908
call fcn.10008ea0
jmp 0x1003d915
push 0x58
push 0
push ebx
call fcn.10041850
add esp, 0xc
test ebx, ebx
jne 0x1003d930
mov esi, dword [esp + 0x1c]
mov edi, 7
call fcn.10018080
mov dword [esp + 0x14], edi
jmp 0x1003da0d
mov eax, dword [esp + 0xcc]
cmp eax, 1
mov dword [ebx + 0x14], eax
jne 0x1003d957
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
push ecx
call fcn.100043e0
add esp, 4
test eax, eax
jne 0x1003d957
lea edi, [eax + 0x10]
jmp 0x1003d995
mov esi, dword [ebx + 0x14]
test esi, esi
jne 0x1003d963
lea edi, [esi + 0xb]
jmp 0x1003d995
mov edi, dword [esp + 0x1c]
lea eax, [ebx + 0x18]
push eax
xor eax, eax
call fcn.1001e830
add esp, 4
test eax, eax
jne 0x1003d98f
mov ecx, dword [ebx + 0x18]
cmp byte [ecx], al
jne 0x1003d98f
push eax
mov ebx, ecx
call fcn.10004cc0
mov ebx, dword [esp + 0x5c]
add esp, 4
test eax, eax
mov edi, eax
je 0x1003d9c0
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x1003d9a8
mov edx, dword [eax + 0x48]
push edx
call fcn.10017750
add esp, 4
push ebx
call fcn.100417c0
mov esi, dword [esp + 0x20]
add esp, 4
call fcn.10018080
mov dword [esp + 0x14], edi
jmp 0x1003da0d
mov eax, fcn.100186d0
test eax, eax
mov eax, fcn.100186d0
jne 0x1003d9d3
mov eax, 0x10007d80
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x28]
mov dword [ebx + 0x10], ecx
mov ecx, dword [esp + 0x1c]
mov dword [ebx + 0xc], eax
mov dword [ebx], edx
mov byte [ebx + 0x40], 1
mov eax, dword [ecx + 4]
test eax, eax
mov dword [ebx + 4], eax
je 0x1003d9f8
mov dword [eax + 8], ebx
mov eax, dword [esp + 0x34]
mov dword [ecx + 4], ebx
mov byte [ebx + 0x41], 0
mov dword [eax], ebx
mov dword [esp + 0x14], 0
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0xc]
mov edx, dword [esp + 0x40]
mov dword [esi + 0x4c], eax
mov ecx, dword [edx]
mov edx, dword [ecx + 4]
mov ecx, dword [edx + 0x14]
mov dl, byte [ecx + 0x79]
mov byte [eax], dl
mov eax, dword [esi + 0x4c]
add eax, 1
mov dword [esi + 0x48], eax
mov byte [esi + 0x20], 0
jmp 0x1003dbd4
mov eax, dword [esi + 0x30]
mov edi, dword [eax + 4]
mov dword [esi], 0
cmp byte [edi + 0xd], 0
mov dword [esp + 0x2c], eax
je 0x1003da61
mov dword [esp + 0x14], 8
jmp 0x1003dbca
mov eax, dword [esp + 0x2c]
push 1
xor ebx, ebx
call fcn.10021980
add esp, 4
test eax, eax
je 0x1003da82
mov dword [esp + 0x14], 6
jmp 0x1003dbca
cmp dword [edi + 8], 0
jne 0x1003dab1
mov ebx, dword [esp + 0x2c]
call fcn.1002a530
test eax, eax
je 0x1003da9e
mov dword [esp + 0x14], eax
jmp 0x1003dbca
cmp byte [edi + 0xd], 0
je 0x1003dab1
mov dword [esp + 0x14], 8
jmp 0x1003dbca
cmp dword [0x100593ac], 0
je 0x1003dac3
cmp dword [0x100593b8], 0
jg 0x1003daef
push 0x58
call fcn.10041469
mov ebx, eax
add esp, 4
test ebx, ebx
mov dword [esp + 0x58], ebx
jne 0x1003dade
call fcn.10008ea0
jmp 0x1003daeb
push 0x58
push 0
push ebx
call fcn.10041850
add esp, 0xc
test ebx, ebx
jne 0x1003db04
mov esi, edi
mov ebx, 7
call fcn.10018080
mov dword [esp + 0x14], ebx
jmp 0x1003dbc6
mov dword [ebx + 0x14], 1
mov ecx, dword [edi]
push ecx
call fcn.100043e0
add esp, 4
test eax, eax
jne 0x1003db24
mov dword [esp + 0x20], 0x10
jmp 0x1003db67
mov esi, dword [ebx + 0x14]
test esi, esi
jne 0x1003db35
mov dword [esp + 0x20], 0xb
jmp 0x1003db67
lea eax, [ebx + 0x18]
push eax
xor eax, eax
call fcn.1001e830
add esp, 4
test eax, eax
jne 0x1003db5d
mov ecx, dword [ebx + 0x18]
cmp byte [ecx], al
jne 0x1003db5d
push eax
mov ebx, ecx
call fcn.10004cc0
mov ebx, dword [esp + 0x5c]
add esp, 4
xor ecx, ecx
cmp eax, ecx
mov dword [esp + 0x20], eax
je 0x1003db94
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x1003db7a
mov edx, dword [eax + 0x48]
push edx
call fcn.10017750
add esp, 4
push ebx
call fcn.100417c0
mov ebx, dword [esp + 0x24]
add esp, 4
mov esi, edi
call fcn.10018080
mov dword [esp + 0x14], ebx
jmp 0x1003dbc6
mov eax, dword [esp + 0x2c]
mov dword [ebx + 0xc], 0x10007d80
mov dword [ebx + 0x10], ecx
mov dword [ebx], eax
mov byte [ebx + 0x40], 1
mov eax, dword [edi + 4]
cmp eax, ecx
mov dword [ebx + 4], eax
je 0x1003dbb5
mov dword [eax + 8], ebx
mov edx, dword [esp + 0x34]
mov dword [edi + 4], ebx
mov byte [ebx + 0x41], 0
mov dword [edx], ebx
mov dword [esp + 0x14], ecx
mov esi, dword [esp + 0x34]
lea eax, [esi + 0x22]
mov byte [esi + 0x20], 1
mov dword [esi + 0x48], eax
cmp byte [esi + 0x20], 0
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 8]
sete al
mov dword [esi + 0x50], edx
mov byte [esi + 0x21], al
jmp 0x1003f90d
mov ecx, dword [esp + 0x24]
mov ebx, dword [ecx + 4]
mov edi, dword [esp + 0x40]
push 0xffffffffffffffff
call fcn.10022870
add esp, 4
test eax, eax
je 0x1003fb89
mov cl, 1
lea edx, [eax + 0x22]
mov byte [eax + 0x1c], cl
mov byte [eax + 0x1e], cl
mov dword [eax + 0x48], edx
mov byte [eax + 0x20], cl
mov byte [eax + 0x21], 0
jmp 0x1003f90d
mov edi, dword [edi + 4]
test edi, edi
jl case.0x1003bad5.12
cmp edi, dword [esi + 0x38]
jge case.0x1003bad5.12
mov eax, dword [esi + 0x3c]
mov ecx, dword [eax + edi*4]
push ecx
push esi
call fcn.10022480
mov edx, dword [esi + 0x3c]
add esp, 8
mov dword [edx + edi*4], 0
jmp case.0x1003bad5.12
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x3c]
mov eax, dword [ecx + eax*4]
cmp dword [eax], 0
mov dword [esp + 0x24], eax
je 0x1003ddd5
mov ecx, dword [esp + 0x20]
cmp ecx, 7
mov byte [eax + 0x1c], 0
je 0x1003dc83
cmp ecx, 0x54
je 0x1003dc83
xor ecx, ecx
jmp 0x1003dc88
mov ecx, 1
mov edx, dword [eax + 0x48]
mov byte [edx], cl
cmp byte [eax + 0x20], 0
je 0x1003dd08
push ebx
call fcn.10011c20
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
add esp, 4
cmp dword [edi + 8], 0
jne 0x1003dcc6
cmp byte [edi], 0x7f
jne 0x1003dcc6
mov edx, dword [esp + 0x24]
sub ebx, 0x40
mov dword [edx + 0x28], eax
mov dword [edx + 0x2c], ecx
mov byte [edx + 0x1f], 1
mov dword [esp + 0x10], ebx
jmp case.0x1003bad5.12
lea edx, [esp + 0x70]
push edx
push 0
push ecx
push eax
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
push 0
push ecx
call fcn.1001f4d0
add esp, 0x18
test eax, eax
mov dword [esp + 0x14], eax
jne 0x1003d649
mov edx, dword [ebx]
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x70], 0
mov dword [eax + 8], edx
mov ecx, dword [ebx + 4]
sete dl
mov dword [eax + 0xc], ecx
mov byte [eax + 0x19], dl
jmp 0x1003dd3d
mov ecx, dword [ebx + 0x10]
lea eax, [esp + 0x70]
push eax
mov eax, dword [ebx + 0x14]
cdq
push 0
push edx
mov edx, dword [esp + 0x30]
push eax
mov eax, dword [edx]
push ecx
push eax
call fcn.1001f4d0
add esp, 0x18
test eax, eax
mov dword [esp + 0x14], eax
jne 0x1003d649
mov ecx, dword [esp + 0x24]
mov byte [ecx + 0x19], al
mov eax, ecx
mov ecx, dword [eax + 0x48]
xor edx, edx
mov byte [eax + 0x1f], 0
mov dword [eax + 0x68], edx
mov byte [ecx], dl
mov ecx, dword [esp + 0x20]
cmp ecx, 0x7f
je 0x1003dd98
cmp ecx, 7
je 0x1003dd98
cmp dword [esp + 0x70], edx
jl 0x1003dd72
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
lea edx, [esp + 0x70]
push edx
push ecx
call fcn.1002adb0
jmp 0x1003ddaf
mov eax, dword [eax]
xor ecx, ecx
cmp byte [eax + 0x41], 1
setne cl
mov dword [esp + 0x70], ecx
cmp dword [esp + 0x70], 0
je 0x1003ddd5
mov edi, dword [edi + 8]
test edi, edi
jle 0x1003ddcd
add edi, 0xffffffff
mov dword [esp + 0x30], edi
jmp 0x1003ddd5
cmp dword [esp + 0x70], edx
jge 0x1003ddc7
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
lea edx, [esp + 0x70]
push edx
push ecx
call fcn.1002ac90
add esp, 8
test eax, eax
mov dword [esp + 0x14], eax
jne 0x1003d649
mov edx, dword [esp + 0x24]
mov byte [edx + 0x19], al
jmp 0x1003dd81
mov dword [esp + 0x70], edx
jmp 0x1003ddd5
mov eax, dword [esp + 0x24]
mov byte [eax + 0x1c], 1
test byte [ebx + 0x18], 0x40
je 0x1003dde4
push ebx
call fcn.10009c40
add esp, 4
sub ebx, 0x40
mov dword [esp + 0x10], ebx
jmp case.0x1003bad5.12
mov ecx, dword [edi + 4]
mov edx, dword [esi + 0x3c]
mov esi, dword [edx + ecx*4]
xor eax, eax
cmp dword [esi], eax
je 0x1003de5c
test byte [ebx + 0x18], 0x12
jne 0x1003de1c
movzx eax, byte [esp + 0x54]
push eax
push ebx
call fcn.10011aa0
add esp, 8
test eax, eax
jne 0x1003fb8d
mov eax, dword [ebx + 0x14]
lea ecx, [esp + 0xe8]
push ecx
cdq
push 0
push edx
mov edx, dword [ebx + 0x10]
push eax
mov eax, dword [esi]
push edx
push eax
call fcn.1001f4d0
add esp, 0x18
test eax, eax
jne 0x1003de4f
cmp dword [esp + 0xe8], eax
jne 0x1003de4f
mov eax, 1
jmp 0x1003de51
xor eax, eax
mov byte [esi + 0x1f], 0
mov dword [esi + 0x68], 0
mov cl, byte [edi]
cmp cl, 0x85
jne 0x1003de69
test eax, eax
je 0x1003de77
jmp 0x1003de6d
test eax, eax
jne 0x1003de77
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x30], edi
cmp cl, 0x6f
je case.0x1003bad5.12
jmp 0x1003ddd5
mov ecx, dword [edi + 4]
lea edx, [ebx - 0x40]
push ebx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x28], edx
call fcn.10011c20
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov edx, dword [esp + 0x28]
mov dword [esp + 0xdc], eax
mov eax, dword [esi + 0x3c]
mov dword [esp + 0xe0], ecx
mov ecx, dword [esp + 0x5c]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x40], eax
mov eax, dword [eax]
add esp, 4
test eax, eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x20], eax
je 0x1003f90d
mov ebx, edx
test byte [ebx + 0x18], 0x12
jne 0x1003def2
movzx edx, byte [esp + 0x54]
push edx
push ebx
call fcn.10011aa0
add esp, 8
test eax, eax
jne 0x1003fb89
mov eax, dword [ebx + 0x10]
push eax
mov dword [esp + 0x2c], eax
call fcn.10005920
mov ebx, dword [ebx + 0x14]
sub ebx, eax
mov eax, dword [esp + 0x40]
mov dword [eax + 0x68], 0
lea ecx, [esp + 0x7c]
push ecx
push 0
mov eax, ebx
cdq
push edx
mov edx, dword [esp + 0x38]
push eax
mov eax, dword [esp + 0x34]
push edx
push eax
call fcn.1001f4d0
add esp, 0x1c
test eax, eax
mov dword [esp + 0x14], eax
jne 0x1003d645
cmp dword [esp + 0x78], eax
jge 0x1003df6b
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x78]
push ecx
push edx
call fcn.1002ac90
add esp, 8
cmp dword [esp + 0x78], 0
mov dword [esp + 0x14], eax
je 0x1003df6b
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x30], edi
jmp 0x1003f90d
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x3c]
lea eax, [esp + 0x78]
push eax
push ecx
push ebx
push edx
call fcn.1002bcc0
add esp, 0x10
test eax, eax
mov dword [esp + 0x14], eax
jne 0x1003d645
cmp dword [esp + 0x78], eax
jle 0x1003dfa4
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x30], edi
jmp 0x1003f90d
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x118]
push eax
push ecx
call fcn.1002bbb0
add esp, 8
test eax, eax
mov dword [esp + 0x14], eax
jne 0x1003d645
mov ecx, dword [esp + 0x118]
cmp ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0x11c]
jne 0x1003dff4
cmp edx, dword [esp + 0xdc]
jne 0x1003dff4
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x30], edi
jmp 0x1003f90d
mov eax, dword [esp + 0x10]
add eax, 0x40
mov dword [eax], ecx
mov dword [eax + 4], edx
mov dword [esp + 0x10], eax
mov word [eax + 0x18], 4
jmp 0x1003f90d
mov eax, dword [esi + 0x3c]
mov edx, dword [edi + 4]
mov esi, dword [eax + edx*4]
mov eax, dword [esi]
test eax, eax
je 0x1003ddd5
mov ecx, dword [ebx]
lea edx, [esp + 0xe4]
push edx
mov edx, dword [ebx + 4]
push 0
push edx
push ecx
push 0
push eax
call fcn.1001f4d0
mov dword [esp + 0x2c], eax
mov eax, dword [ebx]
mov dword [esi + 8], eax
mov eax, dword [esp + 0xfc]
mov ecx, dword [ebx + 4]
add esp, 0x18
test eax, eax
sete dl
test eax, eax
mov dword [esi + 0xc], ecx
mov byte [esi + 0x19], dl
mov byte [esi + 0x1c], 0
mov dword [esi + 0x68], 0
je 0x1003ddd5
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x30], edi
mov byte [esi + 0x19], 0
jmp 0x1003ddd5
mov edi, dword [edi + 4]
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + edi*4]
mov ecx, dword [eax + 0x58]
add ebx, 0x40
mov dword [ebx], ecx
mov edx, dword [eax + 0x5c]
mov dword [ebx + 4], edx
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + edi*4]
add dword [eax + 0x58], 1
mov dword [esp + 0x10], ebx
adc dword [eax + 0x5c], 0
mov word [ebx + 0x18], 4
jmp case.0x1003bad5.12
mov edx, dword [edi + 4]
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + edx*4]
xor ecx, ecx
cmp dword [eax], ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x10], eax
je 0x1003e360
mov dword [esp + 0x20], ecx
mov ecx, eax
mov eax, dword [ecx]
push eax
call fcn.10005310
and al, 3
add esp, 4
cmp al, 1
jne 0x1003fb38
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x1b], 0
jne 0x1003e22e
cmp byte [eax + 0x1d], 0
je 0x1003e114
mov edx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], eax
jmp 0x1003e187
mov edx, dword [esp + 0x10]
mov eax, dword [edx]
lea ecx, [esp + 0x8c]
push ecx
push eax
call fcn.1001f490
add esp, 8
test eax, eax
mov dword [esp + 0x14], eax
jne 0x1003d649
cmp dword [esp + 0x8c], eax
je 0x1003e14e
mov dword [esp + 0x48], 1
mov dword [esp + 0x4c], eax
jmp 0x1003e187
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
lea eax, [esp + 0x48]
push eax
push edx
call fcn.1002ab40
add esp, 8
cmp dword [esp + 0x48], 0xffffffff
jne 0x1003e17d
cmp dword [esp + 0x4c], 0x7fffffff
jne 0x1003e17d
mov eax, dword [esp + 0x10]
mov byte [eax + 0x1b], 1
jmp 0x1003e187
add dword [esp + 0x48], 1
adc dword [esp + 0x4c], 0
mov edi, dword [edi + 8]
test edi, edi
je 0x1003e1ea
shl edi, 6
add edi, dword [esi + 0x58]
push edi
call fcn.10011c20
mov eax, dword [edi]
mov ecx, dword [edi + 4]
add esp, 4
cmp eax, 0xffffffff
jne 0x1003e1b3
cmp ecx, 0x7fffffff
je 0x1003fb45
mov edx, dword [esp + 0x10]
cmp byte [edx + 0x1b], 0
jne 0x1003fb45
mov edx, dword [esp + 0x4c]
add eax, 1
adc ecx, 0
cmp edx, ecx
jg 0x1003e1e1
jl 0x1003e1d7
cmp dword [esp + 0x48], eax
jae 0x1003e1e1
mov edx, ecx
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0x48]
mov dword [edi], eax
mov dword [edi + 4], edx
mov eax, dword [esp + 0x4c]
cmp eax, 0x7fffffff
ja 0x1003e218
jb 0x1003e1fe
cmp dword [esp + 0x48], 0xffffffff
jae 0x1003e218
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x10]
add edx, 1
adc eax, 0
mov byte [ecx + 0x1d], 1
mov dword [ecx + 0x10], edx
mov dword [ecx + 0x14], eax
jmp 0x1003e220
mov eax, dword [esp + 0x10]
mov byte [eax + 0x1d], 0
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x1b], 0
je 0x1003e34d
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x28]
mov edx, dword [eax + 0x2c]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x1c], 0
jmp 0x1003e250
mov eax, dword [esp + 0x48]
or eax, dword [esp + 0x4c]
je 0x1003e287
cmp dword [esp + 0x1c], 2
jg 0x1003e287
mov edi, 1
add dword [0x100593b8], edi
call fcn.10008cc0
sub dword [0x100593b8], edi
movzx eax, al
add eax, edi
cdq
add dword [esp + 0x48], eax
adc dword [esp + 0x4c], edx
jmp 0x1003e2d3
add dword [0x100593b8], 1
lea ecx, [esp + 0x48]
mov edi, 8
mov dword [esp + 0x28], ecx
jmp 0x1003e2a0
sub edi, 1
call fcn.10008cc0
mov ecx, dword [esp + 0x28]
mov byte [ecx], al
add ecx, 1
test edi, edi
mov dword [esp + 0x28], ecx
jne 0x1003e2a0
sub dword [0x100593b8], 1
cmp dword [esp + 0x1c], 5
jge 0x1003e2d3
and dword [esp + 0x48], 0xffffff
mov dword [esp + 0x4c], edi
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x4c]
mov edx, ecx
or edx, eax
je 0x1003e307
lea edx, [esp + 0x8c]
push edx
push 0
push eax
mov eax, dword [esp + 0x1c]
push ecx
mov ecx, dword [eax]
push 0
push ecx
call fcn.1001f4d0
add esp, 0x18
add dword [esp + 0x1c], 1
mov dword [esp + 0x20], eax
cmp dword [esp + 0x1c], 0x3e8
jge 0x1003e326
cmp dword [esp + 0x20], 0
jne 0x1003e326
cmp dword [esp + 0x8c], 0
je 0x1003e250
cmp dword [esp + 0x20], 0
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov dword [eax + 0x28], edx
mov dword [eax + 0x2c], ecx
jne 0x1003e34d
cmp dword [esp + 0x8c], 0
je 0x1003fb45
mov eax, dword [esp + 0x10]
mov byte [eax + 0x19], 0
mov byte [eax + 0x1f], 0
mov dword [eax + 0x68], 0
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x4c]
add ebx, 0x40
mov dword [ebx], edx
mov dword [ebx + 4], eax
mov dword [esp + 0x10], ebx
mov word [ebx + 0x18], 4
jmp case.0x1003bad5.12
mov edx, dword [esi + 0x3c]
mov ecx, dword [edi + 4]
mov eax, dword [edx + ecx*4]
xor edx, edx
cmp dword [eax], edx
mov dword [esp + 0x2c], eax
jne 0x1003e39b
cmp byte [eax + 0x1e], dl
je 0x1003e528
test byte [edi + 8], 1
mov ecx, dword [ebx - 0x40]
mov dword [esp + 0xa0], ecx
mov ecx, dword [ebx - 0x3c]
mov dword [esp + 0xa4], ecx
je 0x1003e3bc
add dword [esi + 0x23c], 1
test byte [edi + 8], 2
je 0x1003e3d2
mov esi, dword [ebx - 0x40]
mov ecx, dword [esp + 0x18]
mov dword [ecx + 0x20], esi
mov esi, dword [ebx - 0x3c]
mov dword [ecx + 0x24], esi
cmp byte [eax + 0x1d], 0
je 0x1003e3ee
mov ecx, dword [ebx - 0x3c]
cmp ecx, dword [eax + 0x14]
jl 0x1003e3ee
jg 0x1003e3ea
mov ecx, dword [ebx - 0x40]
cmp ecx, dword [eax + 0x10]
jb 0x1003e3ee
mov byte [eax + 0x1d], 0
test byte [ebx + 0x18], 1
je 0x1003e3fa
mov dword [ebx + 0x10], edx
mov dword [ebx + 0x14], edx
cmp byte [eax + 0x1e], 0
je 0x1003e492
mov esi, dword [esp + 0x2c]
mov edx, dword [esi + 0x38]
push edx
call fcn.10008de0
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0xa8]
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], ecx
mov eax, dword [ebx + 0x14]
add esp, 4
mov dword [esi + 0x34], eax
test byte [ebx + 0x18], 0x40
je 0x1003e449
mov edx, dword [ebx + 0x10]
mov dword [esi + 0x38], edx
mov word [ebx + 0x18], 1
mov byte [esi + 0x1c], 0
jmp 0x1003e4ca
add eax, 2
push 1
push eax
call fcn.1000ac70
add esp, 8
test eax, eax
mov dword [esi + 0x38], eax
je 0x1003fb8d
mov esi, dword [esp + 0x2c]
mov ecx, dword [esi + 0x34]
mov edx, dword [ebx + 0x10]
push ecx
push edx
push eax
call fcn.10041060
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x38]
mov byte [eax + ecx], 0
mov edx, dword [esi + 0x34]
mov eax, dword [esi + 0x38]
mov byte [edx + eax + 1], 0
add esp, 0xc
mov byte [esi + 0x1c], 0
jmp 0x1003e4ca
mov ecx, dword [edi + 8]
mov edx, dword [ebx + 0x14]
mov eax, dword [ebx + 0x10]
and ecx, 8
push ecx
mov ecx, dword [esp + 0xa8]
push edx
mov edx, dword [esp + 0xa8]
push eax
mov eax, dword [esp + 0x38]
push ecx
mov ecx, dword [eax]
push edx
push 0
push ecx
call fcn.1002ce30
mov esi, dword [esp + 0x48]
add esp, 0x1c
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], 0
mov byte [esi + 0x19], 0
mov byte [esi + 0x1f], 0
mov dword [esi + 0x68], 0
jne 0x1003e528
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 0x7c]
test edx, edx
je 0x1003e528
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x1003e528
push dword [esp + 0xa4]
mov esi, dword [esi + 4]
push dword [esp + 0xa4]
push ecx
lea ecx, [esi + esi*2]
mov esi, dword [eax + 4]
mov ecx, dword [esi + ecx*8]
mov eax, dword [eax + 0x78]
push ecx
mov ecx, dword [edi + 8]
and cl, 4
neg cl
sbb ecx, ecx
and ecx, 5
add ecx, 0x12
push ecx
push eax
call edx
add esp, 0x18
mov esi, 2
lea ecx, [ecx]
sub esi, 1
test byte [ebx + 0x18], 0x40
je 0x1003e542
push ebx
call fcn.10009c40
add esp, 4
sub ebx, 0x40
test esi, esi
jg 0x1003e530
mov dword [esp + 0x10], ebx
jmp 0x1003f90d
mov ecx, dword [edi + 4]
mov edx, dword [esi + 0x3c]
mov eax, dword [edx + ecx*4]
mov dword [esp + 0x1c], eax
mov eax, dword [eax]
test eax, eax
je 0x1003e63c
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 0x7c], 0
je 0x1003e5b6
cmp dword [edi + 0xc], 0
je 0x1003e5b6
mov ecx, dword [esp + 0x1c]
cmp byte [ecx + 0x19], 0
je 0x1003e599
mov edx, dword [ecx + 8]
mov eax, dword [ecx + 0xc]
mov dword [esp + 0xd0], edx
mov dword [esp + 0xd4], eax
jmp 0x1003e5b6
lea ecx, [esp + 0xd0]
push ecx
push eax
call fcn.1002ab40
add esp, 8
test eax, eax
mov dword [esp + 0x14], eax
jne 0x1003d649
mov edx, dword [esp + 0x1c]
push edx
call fcn.1002bb40
add esp, 4
test eax, eax
mov dword [esp + 0x14], eax
jne 0x1003d649
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
push ecx
call fcn.1002d000
mov ecx, dword [esp + 0x20]
add esp, 4
test eax, eax
mov dword [esp + 0x14], eax
mov byte [ecx + 0x1d], 0
mov dword [ecx + 0x68], 0
jne 0x1003e63c
mov edx, dword [esp + 0x18]
mov ecx, dword [edx + 0x7c]
test ecx, ecx
je 0x1003e63c
mov eax, dword [edi + 0xc]
test eax, eax
je 0x1003e63c
mov edx, dword [esp + 0xd4]
push edx
mov edx, dword [esp + 0xd4]
push edx
push eax
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 4]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 4]
mov edx, dword [eax + edx*8]
mov eax, dword [esp + 0x24]
push edx
mov edx, dword [eax + 0x78]
push 9
push edx
call ecx
add esp, 0x18
test byte [edi + 8], 1
je case.0x1003bad5.12
add dword [esi + 0x23c], 1
jmp case.0x1003bad5.12
cmp dword [edi + 4], 0
je 0x1003e668
mov eax, dword [esi + 0x23c]
mov ecx, dword [esp + 0x18]
add dword [ecx + 0x38], eax
mov dword [ecx + 0x34], eax
mov dword [esi + 0x23c], 0
jmp case.0x1003bad5.12
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x3c]
mov edi, dword [ecx + eax*4]
add ebx, 0x40
cmp byte [edi + 0x1c], 0
mov dword [esp + 0x10], ebx
jne 0x1003e7a6
mov eax, dword [edi]
test eax, eax
mov dword [esp + 0x2c], eax
je 0x1003e785
push edi
call fcn.1002bb40
add esp, 4
test eax, eax
mov dword [esp + 0x14], eax
jne 0x1003d649
cmp byte [edi + 0x1c], al
je 0x1003e6c4
mov word [ebx + 0x18], 1
jmp case.0x1003bad5.12
cmp byte [edi + 0x21], 0
je 0x1003e6ec
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x138]
push edx
push eax
call fcn.1002ab40
mov esi, dword [esp + 0x140]
mov dword [esp + 0xcc], esi
jmp 0x1003e705
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0xc4]
push ecx
push edx
call fcn.1002abd0
mov esi, dword [esp + 0xcc]
add esp, 8
cmp esi, 0x20
mov dword [ebx + 0x14], esi
ja 0x1003e71b
mov word [ebx + 0x18], 0x210
lea eax, [ebx + 0x20]
jmp 0x1003e73b
push 1
push esi
call fcn.1000ac70
add esp, 8
test eax, eax
je 0x1003fb8d
mov word [ebx + 0x18], 0x50
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x10], eax
cmp byte [edi + 0x21], 0
je 0x1003e764
mov edx, dword [esp + 0x2c]
mov ecx, eax
push ecx
push esi
push 0
push edx
call fcn.1001f190
add esp, 0x10
mov dword [esp + 0x14], eax
mov byte [ebx + 0x1b], 1
jmp case.0x1003bad5.12
mov eax, dword [ebx + 0x10]
mov ecx, dword [esp + 0x2c]
push eax
push esi
push 0
push ecx
call fcn.1002ac50
add esp, 0x10
mov dword [esp + 0x14], eax
mov byte [ebx + 0x1b], 1
jmp case.0x1003bad5.12
cmp byte [edi + 0x1e], 0
je 0x1003e7a6
mov edx, dword [edi + 0x34]
mov dword [ebx + 0x14], edx
mov eax, dword [edi + 0x38]
mov dword [ebx + 0x10], eax
mov word [ebx + 0x18], 0x110
mov byte [ebx + 0x1b], 1
jmp case.0x1003bad5.12
mov word [ebx + 0x18], 1
mov byte [ebx + 0x1b], 1
jmp case.0x1003bad5.12
mov ecx, dword [edi + 4]
mov edx, dword [esi + 0x3c]
mov edi, dword [edx + ecx*4]
push edi
call fcn.1002bb40
add esp, 4
test eax, eax
mov dword [esp + 0x14], eax
jne 0x1003d649
add ebx, 0x40
cmp byte [edi + 0x19], al
mov dword [esp + 0x10], ebx
je 0x1003e7f5
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], ecx
jmp 0x1003e836
cmp byte [edi + 0x1e], 0
je 0x1003e811
mov edx, dword [edi + 0x40]
mov eax, dword [edi + 0x44]
mov dword [esp + 0xb8], edx
mov dword [esp + 0xbc], eax
jmp 0x1003e836
cmp byte [edi + 0x1c], 0
jne 0x1003e6b9
mov edi, dword [edi]
test edi, edi
je 0x1003e6b9
lea ecx, [esp + 0xb8]
push ecx
push edi
call fcn.1002ab40
add esp, 8
mov edx, dword [esp + 0xb8]
mov eax, dword [esp + 0xbc]
mov dword [ebx], edx
mov dword [ebx + 4], eax
mov word [ebx + 0x18], 4
jmp case.0x1003bad5.12
mov ecx, dword [edi + 4]
mov edx, dword [esi + 0x3c]
mov eax, dword [edx + ecx*4]
mov byte [eax + 0x1c], 1
mov byte [eax + 0x19], 0
jmp case.0x1003bad5.12
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x3c]
mov esi, dword [ecx + eax*4]
mov eax, dword [esi]
test eax, eax
je 0x1003e8a2
lea edx, [esp + 0xfc]
push edx
push eax
call fcn.1001f490
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x104]
add esp, 8
mov byte [esi + 0x1f], 0
mov dword [esi + 0x68], 0
jmp 0x1003e8f7
mov byte [esi + 0x1c], 0
jmp case.0x1003bad5.12
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x3c]
mov esi, dword [ecx + eax*4]
mov eax, dword [esi]
test eax, eax
je 0x1003e8eb
lea edx, [esp + 0xc8]
push edx
push eax
call fcn.1001f450
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xd0]
add esp, 8
test eax, eax
sete cl
mov byte [esi + 0x1a], cl
mov byte [esi + 0x1f], 0
mov dword [esi + 0x68], 0
jmp 0x1003e8f7
mov eax, 1
mov dword [esp + 0xc8], eax
test eax, eax
mov byte [esi + 0x1c], al
je case.0x1003bad5.12
mov edi, dword [edi + 8]
test edi, edi
jle case.0x1003bad5.12
add edi, 0xffffffff
mov dword [esp + 0x30], edi
jmp case.0x1003bad5.12
mov edx, dword [esp + 0x18]
cmp dword [edx + 0x98], 0
jne 0x1003fb52
mov edx, dword [esp + 0x40]
mov ecx, dword [edi + 4]
mov edx, dword [edx + 0x3c]
mov esi, dword [edx + ecx*4]
test esi, esi
je case.0x1003bad5.12
mov ecx, dword [esi]
test ecx, ecx
je 0x1003e9af
cmp byte [esi + 0x1c], 0
je 0x1003e95f
mov dword [esp + 0xb4], 1
mov byte [esi + 0x19], 0
jmp case.0x1003bad5.12
cmp al, 0x6d
jne 0x1003e973
lea eax, [esp + 0xb4]
push eax
push ecx
call fcn.1002ac90
jmp 0x1003e981
lea edx, [esp + 0xb4]
push edx
push ecx
call fcn.1002adb0
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xbc]
add esp, 8
test eax, eax
mov byte [esi + 0x1c], al
mov dword [esi + 0x68], 0
jne 0x1003e9b3
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x30], edi
mov byte [esi + 0x19], al
jmp case.0x1003bad5.12
mov byte [esi + 0x1c], 1
mov byte [esi + 0x19], 0
jmp case.0x1003bad5.12
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x3c]
mov esi, dword [ecx + eax*4]
cmp dword [esi], 0
je 0x1003ddd5
mov edx, dword [edi + 8]
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x10]
push edx
push 0
cdq
push 0x1004f7f6
push edx
push eax
mov eax, dword [esi]
push ecx
push eax
call fcn.1002ce30
add esp, 0x1c
mov dword [esp + 0x14], eax
mov dword [esi + 0x68], 0
jmp 0x1003ddd5
mov ecx, dword [esi + 0x3c]
mov eax, dword [edi + 4]
mov edi, dword [ecx + eax*4]
mov esi, dword [edi]
test esi, esi
je 0x1003ddd5
mov eax, dword [ebx + 0x14]
lea edx, [esp + 0xf8]
push edx
cdq
push 0
push edx
push eax
mov eax, dword [ebx + 0x10]
push eax
push esi
call fcn.1001f4d0
add esp, 0x18
test eax, eax
mov dword [esp + 0x14], eax
jne 0x1003ea4c
cmp dword [esp + 0xf8], eax
jne 0x1003ea4c
push esi
call fcn.1002d000
add esp, 4
mov dword [esp + 0x14], eax
mov dword [edi + 0x68], 0
jmp 0x1003ddd5
mov edi, dword [edi + 4]
add ebx, 0x40
mov word [ebx + 0x18], 1
mov ecx, dword [esi + 0x3c]
mov eax, dword [ecx + edi*4]
mov ecx, dword [eax]
test ecx, ecx
mov dword [esp + 0x10], ebx
je case.0x1003bad5.12
cmp byte [eax + 0x1c], 0
je 0x1003ea89
mov word [ebx + 0x18], 1
jmp case.0x1003bad5.12
lea edx, [esp + 0x100]
push edx
push ecx
call fcn.1002bbb0
add esp, 8
test eax, eax
mov dword [esp + 0x14], eax
jne 0x1003d649
mov eax, dword [esp + 0x100]
mov ecx, dword [esp + 0x104]
mov word [ebx + 0x18], 4
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp case.0x1003bad5.12
mov edx, dword [edi + 4]
mov eax, dword [esi + 0x3c]
mov esi, dword [eax + edx*4]
cmp dword [esi], 0
je 0x1003ddd5
test byte [ebx + 0x18], 0x12
jne 0x1003eaf3
movzx ecx, byte [esp + 0x54]
push ecx
push ebx
call fcn.10011aa0
add esp, 8
test eax, eax
jne 0x1003fb8d
cmp dword [edi + 0xc], 0
mov eax, dword [esi + 0x48]
setne dl
mov byte [eax], dl
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 0x14]
lea ecx, [esp + 0x7c]
push ecx
push edx
push eax
push esi
call fcn.1002bcc0
mov ecx, dword [esi + 0x48]
add esp, 0x10
test eax, eax
mov dword [esp + 0x14], eax
mov byte [ecx], 0
jne case.0x1003bad5.12
mov al, byte [edi]
cmp al, 0x26
jne 0x1003eb35
mov eax, dword [esp + 0x7c]
neg eax
jmp 0x1003eb40
cmp al, 0x3f
mov eax, dword [esp + 0x7c]
jne 0x1003eb44
add eax, 1
mov dword [esp + 0x7c], eax
test eax, eax
jle 0x1003ddd5
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x30], edi
jmp 0x1003ddd5
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x50]
xor ecx, ecx
test eax, eax
je 0x1003eba0
mov edx, 0xbdf20da3
lea ecx, [ecx]
cmp dword [eax + 0x50], edx
jne 0x1003eb87
cmp byte [eax + 0x23a], 2
jae 0x1003eb87
cmp dword [eax + 0x7c], 0
jl 0x1003eb87
add ecx, 1
mov eax, dword [eax + 8]
test eax, eax
jne 0x1003eb70
cmp ecx, 1
jle 0x1003eba0
mov dword [esp + 0x14], 6
jmp case.0x1003bad5.12
mov ecx, dword [edi + 4]
lea eax, [esp + 0xe0]
push eax
mov eax, dword [edi + 8]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x1c]
push ecx
mov ecx, dword [eax + 4]
mov edx, dword [ecx + edx*8 + 4]
push edx
call fcn.1002d2f0
mov ecx, dword [esp + 0xec]
mov esi, eax
add ebx, 0x40
mov eax, ecx
cdq
mov word [ebx + 0x18], 4
add esp, 0xc
test esi, esi
mov dword [ebx], eax
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], ebx
mov dword [ebx + 4], edx
jne case.0x1003bad5.12
test ecx, ecx
je case.0x1003bad5.12
mov eax, dword [edi + 4]
mov edi, dword [edi + 8]
mov edx, dword [esp + 0x18]
push eax
mov eax, dword [edx + 4]
push ecx
lea ecx, [edi + edi*2]
lea ecx, [eax + ecx*8]
push ecx
call fcn.100061e0
add esp, 0xc
jmp case.0x1003bad5.12
mov edx, dword [edi + 4]
mov edi, dword [edi + 8]
mov ecx, dword [esp + 0x18]
push edx
mov edx, dword [ecx + 4]
lea eax, [edi + edi*2]
mov eax, dword [edx + eax*8 + 4]
push eax
call fcn.1002d290
add esp, 8
mov dword [esp + 0x14], eax
jmp case.0x1003bad5.12
mov edi, dword [edi + 4]
mov edx, dword [esp + 0x18]
mov edx, dword [edx + 4]
sub al, 0x33
neg al
lea ecx, [edi + edi*2]
lea ecx, [edx + ecx*8]
mov ecx, dword [ecx + 4]
sbb eax, eax
and eax, 0xfffffffd
add eax, 5
push eax
lea eax, [esp + 0xf0]
push eax
push ecx
call fcn.1002af20
add ebx, 0x40
add esp, 0xc
test eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
jne 0x1003e6b9
mov eax, dword [esp + 0xec]
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov word [ebx + 0x18], 4
jmp case.0x1003bad5.12
cmp dword [edi + 8], 0
mov eax, dword [edi + 4]
jne 0x1003ecbf
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 4]
lea edx, [eax + eax*2]
mov edx, dword [ecx + edx*8 + 0x14]
test byte [edx + 0x7a], 1
je case.0x1003bad5.12
cmp eax, 1
mov ecx, str.sqlite_temp_master
je 0x1003ecce
mov ecx, str.sqlite_master
mov edx, dword [esp + 0x18]
add esi, 0x230
mov dword [esp + 0x130], esi
mov esi, dword [edi + 0xc]
push esi
push ecx
mov ecx, dword [edx + 4]
mov dword [esp + 0x134], eax
lea eax, [eax + eax*2]
mov dword [esp + 0x130], edx
mov edx, dword [ecx + eax*8]
push edx
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s
call fcn.100172b0
mov esi, eax
add esp, 0x10
test esi, esi
je 0x1003fb8d
mov ecx, dword [esp + 0x18]
push ecx
call fcn.10003120
push 0
lea eax, [esp + 0x130]
push eax
push fcn.1000e780
push esi
push ecx
mov byte [ecx + 0x44], 1
call fcn.10040140
mov edi, eax
add esp, 0x18
cmp edi, 4
mov dword [esp + 0x14], edi
jne 0x1003ed52
mov ecx, dword [esp + 0x134]
mov dword [esp + 0x14], ecx
mov edi, ecx
push esi
call fcn.10008de0
mov eax, dword [esp + 0x1c]
push eax
mov byte [eax + 0x44], 0
call fcn.100030e0
add esp, 8
cmp edi, 7
jne case.0x1003bad5.12
call fcn.10008ea0
jmp 0x1003fb8d
mov edx, dword [edi + 4]
mov eax, dword [esp + 0x18]
push edx
push eax
call fcn.10019fb0
add esp, 8
jmp case.0x1003bad5.12
mov ecx, dword [edi + 0xc]
mov edx, dword [edi + 4]
mov eax, dword [esp + 0x18]
push ecx
push edx
push eax
call fcn.1000d8c0
add esp, 0xc
jmp case.0x1003bad5.12
mov ecx, dword [edi + 0xc]
mov edx, dword [edi + 4]
mov eax, dword [esp + 0x18]
push ecx
push edx
push eax
call fcn.1000a3e0
add esp, 0xc
jmp case.0x1003bad5.12
mov ecx, dword [edi + 0xc]
mov edx, dword [edi + 4]
mov eax, dword [esp + 0x18]
push ecx
push edx
push eax
call fcn.1000efc0
add esp, 0xc
jmp case.0x1003bad5.12
xor ecx, ecx
cmp ebx, dword [esi + 0x28]
mov dword [esp + 0x1c], ecx
jb 0x1003ee0b
mov eax, ebx
lea ecx, [ecx]
test byte [eax + 0x18], 4
je 0x1003ee07
add ecx, 1
mov edx, ecx
shl edx, 6
mov eax, ebx
sub eax, edx
cmp eax, dword [esi + 0x28]
jae 0x1003edf0
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x1c]
lea ecx, [eax*4 + 4]
push 1
push ecx
call fcn.1000ac70
add esp, 8
test eax, eax
mov dword [esp + 0x2c], eax
je 0x1003fb8d
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x1c]
shl eax, 6
add eax, dword [esi + 0x58]
mov dword [esp + 0x58], eax
xor eax, eax
test ecx, ecx
jle 0x1003ee57
mov edx, dword [esp + 0x2c]
mov esi, dword [ebx]
mov dword [edx + eax*4], esi
add eax, 1
sub ebx, 0x40
cmp eax, ecx
jl 0x1003ee48
mov edx, dword [esp + 0x2c]
mov dword [edx + eax*4], 0
lea eax, [esp + 0x10]
push eax
mov eax, dword [esp + 0x20]
call fcn.10009f00
mov esi, dword [esp + 0x5c]
mov edx, dword [esi]
mov eax, dword [esp + 0x20]
mov edi, dword [edi + 8]
mov ebx, dword [esp + 0x14]
lea ecx, [esp + 0xf8]
push ecx
mov ecx, dword [esp + 0x34]
push edx
push eax
mov eax, dword [esp + 0x28]
push ecx
mov ecx, dword [eax + 4]
lea edx, [edi + edi*2]
mov edx, dword [ecx + edx*8 + 4]
add ebx, 0x40
push edx
mov dword [esp + 0x28], ebx
call fcn.1002b1a0
mov ecx, dword [esp + 0x10c]
mov edi, eax
mov eax, ecx
cdq
add esp, 0x18
sub dword [esi], eax
sbb dword [esi + 4], edx
test ecx, ecx
jne 0x1003eecb
mov word [ebx + 0x18], 1
jmp 0x1003eeee
mov eax, edi
mov dword [ebx + 0x10], edi
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1003eed3
sub eax, edx
mov dword [ebx + 0x14], eax
mov word [ebx + 0x18], 0x62
mov dword [ebx + 0x1c], 0
movzx eax, byte [esp + 0x54]
push eax
push ebx
mov byte [ebx + 0x1b], 1
call fcn.10011a70
mov ecx, dword [esp + 0x34]
push ecx
call fcn.10008de0
add esp, 0xc
jmp 0x1003f90d
push ebx
call fcn.10011c20
mov edx, dword [ebx + 4]
mov eax, dword [ebx]
push edx
push eax
add esi, 0x64
push esi
call fcn.1000c840
add esp, 0x10
sub ebx, 0x40
mov dword [esp + 0x10], ebx
jmp case.0x1003bad5.12
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 0x98], 0
jne 0x1003fb52
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x110]
push edx
add eax, 0x64
push eax
call fcn.10009ae0
add esp, 8
cmp eax, 0x65
jne 0x1003ef72
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x30], edi
jmp case.0x1003bad5.12
mov ecx, dword [esp + 0x110]
mov edx, dword [esp + 0x114]
add ebx, 0x40
mov dword [ebx], ecx
mov dword [ebx + 4], edx
mov dword [esp + 0x10], ebx
mov word [ebx + 0x18], 4
jmp case.0x1003bad5.12
mov edi, dword [esi + 0x70]
cmp edi, dword [esi + 0x74]
lea eax, [edi + 1]
mov dword [esi + 0x70], eax
jl 0x1003efca
mov ecx, dword [esi + 0x78]
mov dword [esi + 0x74], eax
lea eax, [edi + edi*2 + 3]
add eax, eax
add eax, eax
add eax, eax
push eax
push ecx
call fcn.10010930
add esp, 8
test eax, eax
mov dword [esi + 0x78], eax
je 0x1003fb8d
mov eax, dword [esi + 0x78]
mov ecx, dword [esp + 0x18]
lea edx, [edi + edi*2]
lea eax, [eax + edx*8]
mov edx, dword [ecx + 0x20]
mov dword [eax], edx
mov ecx, dword [ecx + 0x24]
mov dword [eax + 4], ecx
mov edx, dword [esi + 0x23c]
mov dword [eax + 8], edx
mov ecx, dword [esi + 0x64]
mov dword [eax + 0xc], ecx
mov edx, dword [esi + 0x68]
mov dword [eax + 0x10], edx
mov ecx, dword [esi + 0x6c]
mov dword [eax + 0x14], ecx
xor eax, eax
mov dword [esi + 0x64], eax
mov dword [esi + 0x68], eax
mov dword [esi + 0x6c], eax
jmp case.0x1003bad5.12
add dword [esi + 0x70], 0xffffffff
mov eax, dword [esi + 0x70]
lea edx, [eax + eax*2]
mov eax, dword [esi + 0x78]
mov ecx, dword [eax + edx*8]
lea edi, [eax + edx*8]
mov eax, dword [esp + 0x18]
mov dword [eax + 0x20], ecx
mov edx, dword [edi + 4]
mov dword [eax + 0x24], edx
mov eax, dword [edi + 8]
mov dword [esi + 0x23c], eax
add esi, 0x64
push esi
call fcn.10009b40
mov ecx, dword [edi + 0xc]
mov dword [esi], ecx
mov edx, dword [edi + 0x10]
mov dword [esi + 4], edx
mov eax, dword [edi + 0x14]
add esp, 4
mov dword [esi + 8], eax
jmp case.0x1003bad5.12
mov ecx, dword [edi + 4]
shl ecx, 6
add ecx, dword [esi + 0x58]
push ebx
push ecx
call fcn.1000cb00
sub ebx, 0x40
add esp, 8
cmp dword [edi + 8], 0
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
jne case.0x1003bad5.12
mov edx, dword [edi + 4]
shl edx, 6
add edx, dword [esi + 0x58]
push 0x100
add ebx, 0x40
push edx
push ebx
mov dword [esp + 0x1c], ebx
call fcn.10005380
add esp, 0xc
jmp case.0x1003bad5.12
mov edi, dword [edi + 4]
shl edi, 6
add edi, dword [esi + 0x58]
push edi
call fcn.10011c20
push ebx
call fcn.10011c20
mov eax, dword [ebx + 4]
mov edx, dword [edi + 4]
mov ecx, dword [ebx]
add esp, 8
cmp edx, eax
jg case.0x1003bad5.12
jl 0x1003f0d8
mov edx, dword [edi]
cmp edx, ecx
jae case.0x1003bad5.12
mov dword [edi], ecx
mov dword [edi + 4], eax
jmp case.0x1003bad5.12
mov ecx, dword [edi + 8]
mov eax, dword [edi + 4]
shl ecx, 6
add ecx, dword [esi + 0x58]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
jmp case.0x1003bad5.12
mov eax, dword [edi + 4]
mov esi, dword [esi + 0x58]
shl eax, 6
cmp dword [eax + esi + 4], 0
jl case.0x1003bad5.12
jg 0x1003f119
cmp dword [eax + esi], 0
jbe case.0x1003bad5.12
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x30], edi
jmp case.0x1003bad5.12
mov eax, dword [edi + 4]
mov esi, dword [esi + 0x58]
shl eax, 6
cmp dword [eax + esi + 4], 0
jg case.0x1003bad5.12
jl 0x1003f148
cmp dword [eax + esi], 0
jae case.0x1003bad5.12
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x30], edi
jmp case.0x1003bad5.12
mov eax, dword [edi + 4]
mov esi, dword [esi + 0x58]
shl eax, 6
mov ecx, dword [eax + esi]
or ecx, dword [eax + esi + 4]
jne case.0x1003bad5.12
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x30], edi
jmp case.0x1003bad5.12
mov edx, dword [edi + 4]
shl edx, 6
add edx, dword [esi + 0x58]
push edx
call fcn.10009cc0
add esp, 4
jmp case.0x1003bad5.12
mov eax, dword [edi + 4]
cdq
push edx
push eax
mov eax, dword [edi + 8]
shl eax, 6
add eax, dword [esi + 0x58]
push eax
call fcn.10009cf0
add esp, 0xc
jmp case.0x1003bad5.12
mov ecx, dword [edi + 8]
mov esi, dword [esi + 0x58]
mov edx, dword [edi + 4]
shl ecx, 6
add ecx, esi
shl edx, 6
push ecx
add edx, esi
push edx
call fcn.1000cb00
add esp, 8
mov dword [esp + 0x14], eax
jmp case.0x1003bad5.12
mov edx, dword [edi + 8]
mov eax, edx
shl eax, 6
sub ebx, eax
mov eax, dword [esi + 0x30]
add ebx, 0x40
mov ecx, ebx
xor ebx, ebx
test edx, edx
mov dword [esp + 0x58], edx
mov dword [esp + 0x28], eax
jle 0x1003f216
jmp 0x1003f200
mov eax, dword [esp + 0x28]
mov dword [eax + ebx*4], ecx
call fcn.10005b40
add ebx, 1
add ecx, 0x40
cmp ebx, edx
jl 0x1003f200
mov eax, dword [edi + 4]
mov ecx, dword [edi + 0xc]
shl eax, 6
add eax, dword [esi + 0x58]
mov dword [esp + 0x148], ecx
mov dword [esp + 0x190], eax
mov ecx, 1
add dword [eax + 0x14], ecx
xor eax, eax
mov dword [esp + 0x160], eax
mov dword [esp + 0x16c], eax
mov byte [esp + 0x194], al
mov dword [esp + 0x198], eax
mov eax, dword [esp + 0x148]
mov word [esp + 0x168], cx
cmp byte [eax + 3], 0
je 0x1003f275
mov edx, dword [edi - 8]
mov dword [esp + 0x198], edx
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x58]
mov eax, dword [eax + 0x14]
push ecx
lea edx, [esp + 0x14c]
push edi
push edx
call eax
lea ecx, [esp + 0x1c]
push ecx
mov eax, edi
call fcn.10009f00
add esp, 0x10
cmp byte [esp + 0x194], 0
je 0x1003f2d1
push 0
lea edx, [esp + 0x154]
push 1
push edx
call fcn.10011cc0
add esp, 8
push eax
add esi, 0x230
push esi
call fcn.1000add0
add esp, 0xc
mov dword [esp + 0x14], 1
lea eax, [esp + 0x150]
push eax
call fcn.10009c40
jmp 0x1003f90a
mov eax, dword [edi + 4]
mov ecx, dword [edi + 0xc]
shl eax, 6
add eax, dword [esi + 0x58]
push ecx
push eax
mov dword [esp + 0x60], eax
call fcn.10009b70
add esp, 8
cmp eax, 1
mov dword [esp + 0x14], eax
jne case.0x1003bad5.12
mov edx, dword [esp + 0x58]
push 0
push eax
push edx
call fcn.10011cc0
add esp, 8
push eax
add esi, 0x230
push esi
call fcn.1000add0
add esp, 0xc
jmp case.0x1003bad5.12
mov eax, dword [esp + 0x18]
push eax
call fcn.10003120
add esp, 4
test eax, eax
jne 0x1003f366
mov edi, dword [esp + 0x18]
lea ecx, [esi + 0x230]
push edi
push ecx
call fcn.1003b5d0
push edi
mov dword [esp + 0x20], eax
call fcn.100030e0
add esp, 0xc
test eax, eax
je case.0x1003bad5.12
mov dword [esp + 0x14], 0x15
jmp 0x1003d649
cmp dword [edi + 4], 0
jne 0x1003f38b
mov edx, dword [esp + 0x18]
push edx
call fcn.10005960
add esp, 4
jmp case.0x1003bad5.12
mov byte [esi + 0x238], 1
jmp case.0x1003bad5.12
mov eax, dword [edi + 4]
test eax, eax
setl cl
test cl, cl
mov byte [esp + 0xac], cl
je 0x1003f3b1
or ecx, 0xffffffff
sub ecx, eax
mov eax, ecx
mov edx, dword [esp + 0xac]
mov ecx, dword [edi + 8]
push edx
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x1c]
push ecx
mov ecx, dword [eax + 4]
mov edx, dword [ecx + edx*8 + 4]
push edx
call fcn.1000c7a0
add esp, 0xc
cmp eax, 6
mov dword [esp + 0x14], eax
jne case.0x1003bad5.12
mov eax, dword [edi + 0xc]
push 0
push eax
push str.database_table_is_locked:
add esi, 0x230
push esi
call fcn.1000add0
add esp, 0x10
jmp case.0x1003bad5.12
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0x18]
push ecx
push edx
call fcn.100160a0
add esp, 8
mov dword [esp + 0x14], eax
jmp case.0x1003bad5.12
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 4]
mov edx, dword [esp + 0x18]
add esi, 0x230
push esi
push eax
push ecx
push edx
call fcn.1001c9d0
add esp, 0x10
mov dword [esp + 0x14], eax
jmp case.0x1003bad5.12
mov edx, dword [esp + 0x18]
mov byte [esi + 0x23a], 2
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 4]
push eax
push ecx
push edx
call fcn.10007180
add esp, 0xc
mov dword [esp + 0x14], eax
mov byte [esi + 0x23a], 0
jmp case.0x1003bad5.12
mov edi, dword [edi + 0xc]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], 0
mov eax, dword [edi]
push ecx
mov dword [esp + 0x2c], eax
call fcn.10003120
add esp, 4
test eax, eax
jne 0x1003f366
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x18]
lea edx, [esp + 0x1c]
push edx
push edi
call ecx
mov edx, eax
mov eax, dword [esp + 0x20]
push eax
mov dword [esp + 0x20], edx
call fcn.100030e0
add esp, 0xc
test eax, eax
jne 0x1003f366
test edx, edx
jne case.0x1003bad5.12
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
mov dword [ecx], edi
mov ebx, dword [edx + 4]
mov edi, dword [esp + 0x40]
push 0xffffffffffffffff
call fcn.10022870
add esp, 4
test eax, eax
je 0x1003f4f9
mov ecx, dword [esp + 0x1c]
mov dword [eax + 0x60], ecx
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx]
mov edx, dword [ecx]
mov dword [eax + 0x64], edx
jmp 0x1003f90d
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 0x1c]
push eax
call edx
jmp 0x1003f90a
mov ecx, dword [esi + 0x3c]
mov eax, dword [edi + 4]
mov eax, dword [ecx + eax*4]
mov edx, dword [eax + 0x60]
mov dword [esp + 0x3c], eax
mov eax, dword [edx]
mov ecx, dword [eax]
mov eax, dword [ebx - 0x40]
xor edx, edx
cmp eax, edx
mov dword [esp + 0x68], ecx
mov ecx, dword [esi + 0x30]
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], ecx
jle 0x1003f568
add eax, 1
shl eax, 6
mov ecx, ebx
sub ecx, eax
jmp 0x1003f550
mov eax, dword [esp + 0x28]
mov dword [eax + edx*4], ecx
call fcn.10005b40
add edx, 1
add ecx, 0x40
cmp edx, dword [esp + 0x20]
jl 0x1003f550
mov ecx, dword [esp + 0x18]
push ecx
call fcn.10003120
add esp, 4
test eax, eax
jne 0x1003f366
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
push edx
mov byte [esi + 0x23a], 1
mov ecx, dword [edi + 0xc]
mov edx, dword [ebx]
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [eax + 0x60]
push edx
mov edx, dword [esp + 0x78]
mov eax, dword [edx + 0x20]
push ecx
call eax
add esp, 0x14
test eax, eax
mov dword [esp + 0x14], eax
mov byte [esi + 0x23a], 0
jne 0x1003f5d0
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx + 0x60]
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 0x28]
push edx
call ecx
add esp, 4
mov dword [esp + 0x2c], eax
mov edx, dword [esp + 0x18]
push edx
call fcn.100030e0
add esp, 4
test eax, eax
jne 0x1003f366
cmp dword [esp + 0x2c], eax
je 0x1003f5f5
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x30], edi
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x10]
add eax, 2
push ecx
jmp 0x1003f905
mov edx, dword [edi + 4]
mov eax, dword [esi + 0x3c]
mov ecx, dword [eax + edx*4]
mov edx, dword [ecx + 0x60]
mov eax, dword [edx]
mov edx, dword [eax]
cmp dword [edx + 0x30], 0
jne 0x1003f628
push 0
push str.Unsupported_module_operation:_xRowid
jmp 0x1003d2d1
mov eax, dword [esp + 0x18]
push eax
call fcn.10003120
add esp, 4
test eax, eax
jne 0x1003f366
mov ecx, dword [ecx + 0x60]
mov edx, dword [edx + 0x30]
lea eax, [esp + 0x108]
push eax
push ecx
call edx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
push eax
call fcn.100030e0
add esp, 0xc
test eax, eax
jne 0x1003f366
add ebx, 0x40
mov word [ebx + 0x18], 4
mov ecx, dword [esp + 0x108]
mov dword [ebx], ecx
mov edx, dword [esp + 0x10c]
mov dword [esp + 0x10], ebx
mov dword [ebx + 4], edx
jmp case.0x1003bad5.12
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x3c]
mov eax, dword [ecx + eax*4]
mov edx, dword [eax + 0x60]
mov dword [esp + 0x58], eax
mov eax, dword [edx]
mov eax, dword [eax]
cmp dword [eax + 0x2c], 0
mov dword [esp + 0x74], eax
jne 0x1003f6b6
push 0
push str.Unsupported_module_operation:_xColumn
jmp 0x1003d2d1
push 0x58
lea ecx, [esp + 0x1a4]
push 0
push ecx
call fcn.10041850
mov edx, dword [esp + 0x24]
push edx
mov word [esp + 0x1d0], 1
call fcn.10003120
add esp, 0x10
test eax, eax
jne 0x1003f366
mov eax, dword [edi + 8]
mov edx, dword [esp + 0x58]
push eax
mov eax, dword [edx + 0x60]
lea ecx, [esp + 0x1a4]
push ecx
mov ecx, dword [esp + 0x7c]
mov edx, dword [ecx + 0x2c]
push eax
call edx
mov dword [esp + 0x20], eax
movzx eax, byte [esp + 0x60]
push eax
lea ecx, [esp + 0x1b8]
push ecx
call fcn.10011a70
lea edx, [esp + 0x1bc]
add ebx, 0x40
push edx
push ebx
mov dword [esp + 0x2c], ebx
mov word [ebx + 0x18], 0
call fcn.1000cb00
mov eax, dword [esp + 0x34]
push eax
call fcn.100030e0
add esp, 0x20
test eax, eax
jne 0x1003f366
jmp case.0x1003bad5.12
mov ecx, dword [edi + 4]
mov edx, dword [esi + 0x3c]
mov eax, dword [edx + ecx*4]
mov dword [esp + 0x28], eax
mov eax, dword [eax + 0x60]
mov ecx, dword [eax]
mov eax, dword [ecx]
cmp dword [eax + 0x24], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x3c], eax
jne 0x1003f781
push 0
push str.Unsupported_module_operation:_xNext
jmp 0x1003d2d1
mov edx, dword [esp + 0x18]
push edx
call fcn.10003120
add esp, 4
test eax, eax
jne 0x1003f366
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x3c]
mov byte [esi + 0x23a], 1
mov ecx, dword [eax + 0x60]
mov eax, dword [edx + 0x24]
push ecx
call eax
add esp, 4
test eax, eax
mov dword [esp + 0x14], eax
mov byte [esi + 0x23a], 0
jne 0x1003f7d8
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 0x60]
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x28]
push edx
call ecx
add esp, 4
mov dword [esp + 0x68], eax
mov edx, dword [esp + 0x18]
push edx
call fcn.100030e0
add esp, 4
test eax, eax
jne 0x1003f366
cmp dword [esp + 0x68], eax
jne case.0x1003bad5.12
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x30], edi
jmp case.0x1003bad5.12
mov eax, dword [edi + 0xc]
mov ecx, dword [eax]
cmp dword [ecx + 0x34], 0
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 8]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x20], eax
jne 0x1003f843
push 0
push str.read_only_table
add esi, 0x230
push esi
call fcn.1000add0
add esp, 0xc
mov dword [esp + 0x14], 1
jmp 0x1003f8fc
mov ecx, dword [esi + 0x30]
mov dword [esp + 0x28], ecx
mov edx, eax
shl edx, 6
mov ecx, ebx
sub ecx, edx
add ecx, 0x40
xor edx, edx
test eax, eax
jle 0x1003f878
lea esp, [esp]
call fcn.10005b40
mov eax, dword [esp + 0x28]
mov dword [eax + edx*4], ecx
add edx, 1
add ecx, 0x40
cmp edx, dword [esp + 0x20]
jl 0x1003f860
mov ecx, dword [esp + 0x18]
push ecx
call fcn.10003120
add esp, 4
test eax, eax
jne 0x1003f366
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x3c]
add dword [eax + 4], 1
lea edx, [esp + 0x120]
push edx
mov edx, dword [esp + 0x24]
push ecx
push edx
push eax
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 0x34]
call ecx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x28]
push edx
push eax
call fcn.100070e0
mov ecx, dword [esp + 0x30]
push ecx
call fcn.100030e0
add esp, 0x1c
test eax, eax
jne 0x1003f366
cmp dword [edi + 4], eax
je 0x1003f8fc
cmp dword [esp + 0x14], eax
jne 0x1003f8fc
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x120]
mov ecx, dword [esp + 0x124]
mov dword [eax + 0x20], edx
mov dword [eax + 0x24], ecx
mov eax, dword [esp + 0x20]
lea edx, [esp + 0x10]
push edx
call fcn.10009f00
add esp, 4
mov ebx, dword [esp + 0x10]
add dword [esp + 0x30], 1
cmp dword [esp + 0x14], 0
je 0x1003ba10
jmp 0x1003d68d
mov ecx, dword [esp + 0x30]
mov dword [esi + 0x2c], ebx
mov eax, dword [edi + 4]
mov dword [esi + 0x80], eax
mov dword [esi + 0x7c], ecx
mov edx, dword [edi + 8]
mov dword [esi + 0x88], edx
mov edi, dword [edi + 0xc]
test edi, edi
je 0x1003f95b
push 0
lea eax, [esi + 0x230]
push edi
push eax
call fcn.1000add0
add esp, 0xc
push esi
call fcn.10032710
add esp, 4
cmp eax, 5
je 0x1003faa6
mov eax, dword [esi + 0x80]
neg eax
sbb eax, eax
and eax, 0xffffff9c
add eax, 0x65
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x250]
xor ecx, esp
call fcn.100408e7
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x28]
shl ecx, 6
mov edx, ecx
mov ecx, ebx
sub ecx, edx
cmp eax, ecx
mov dword [esp + 0xac], ecx
mov dword [esp + 0x1c], eax
jae 0x1003f9e3
test word [eax + 0x18], 0x100
je 0x1003f9d8
mov eax, dword [esp + 0x1c]
push eax
call fcn.1000c960
add esp, 4
test eax, eax
jne 0x1003fb8d
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xac]
add eax, 0x40
cmp eax, ecx
mov dword [esp + 0x1c], eax
jb 0x1003f9b0
mov ecx, dword [esi + 0x60]
add ecx, 2
or ecx, 1
cmp eax, ebx
mov dword [esi + 0x60], ecx
ja 0x1003fa14
mov edx, dword [esp + 0x1c]
push edx
call fcn.1000ca00
mov ecx, dword [esp + 0x20]
add esp, 4
call fcn.10005b40
add ecx, 0x40
cmp ecx, ebx
mov dword [esp + 0x1c], ecx
jbe 0x1003f9f3
add dword [esi + 0x5c], 1
mov ecx, dword [esp + 0x30]
mov byte [esi + 0x234], 1
mov eax, dword [edi + 4]
add ecx, 1
mov dword [esi + 0x22c], eax
mov dword [esi + 0x7c], ecx
mov dword [esi + 0x2c], ebx
mov eax, 0x64
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x250]
xor ecx, esp
call fcn.100408e7
mov esp, ebp
pop ebp
ret
mov esi, dword [esp + 0x40]
mov dword [esp + 0x14], 0x14
jmp 0x1003d649
cmp dword [edi + 8], 0
mov edi, ecx
je 0x1003fa7a
push edi
call fcn.10032370
add esp, 4
mov byte [edi + 0x14], 1
jmp 0x1003f96d
mov dl, byte [esp + 0x3b]
push esi
mov byte [edi + 0x14], dl
call fcn.10032710
add esp, 4
cmp eax, 5
jne 0x1003f96d
mov eax, dword [esp + 0x30]
mov cl, 1
sub cl, byte [esp + 0x3b]
mov dword [esi + 0x2c], ebx
mov dword [esi + 0x7c], eax
mov byte [edi + 0x14], cl
mov dword [esi + 0x80], 5
mov eax, 5
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x250]
xor ecx, esp
call fcn.100408e7
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x30]
mov dword [esi + 0x7c], edx
mov dword [esi + 0x80], 5
mov dword [esi + 0x2c], ebx
mov eax, 5
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x250]
xor ecx, esp
call fcn.100408e7
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x30]
xor edx, edx
mov dword [ecx + 0x7c], eax
mov dword [ecx + 0x80], 5
cmp dword [edi + 8], edx
mov eax, 5
setle dl
add edx, 1
shl edx, 6
add edx, dword [esp + 0x10]
mov dword [ecx + 0x2c], edx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x250]
xor ecx, esp
call fcn.100408e7
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x14], 0xb
jmp 0x1003d649
mov dword [esp + 0x14], 0xd
jmp 0x1003d649
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 0x30]
mov ecx, dword [esp + 0x40]
sub eax, 0xf03b7906
neg eax
sbb eax, eax
and eax, 0xc
add eax, 9
push 0
push eax
mov dword [esp + 0x1c], eax
mov dword [ecx + 0x80], eax
call fcn.10007e90
add ecx, 0x230
jmp 0x1003d675
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x40]
push 0
add eax, 0x230
push str.out_of_memory
push eax
call fcn.1000add0
add esp, 0xc
mov dword [esp + 0x14], 7
jmp 0x1003d68d
mov edi, dword [esp + 0x40]
mov esi, 0x65
push edi
call fcn.10032710
mov ecx, dword [esp + 0x260]
add esp, 4
mov dword [edi + 0x2c], ebx
pop edi
mov eax, esi
pop esi
pop ebx
xor ecx, esp
call fcn.100408e7
mov esp, ebp
pop ebp
ret