Function at 0x10040f92
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x1cc
push ebx
push ebp
push esi
push edi
mov edi, ecx
xor edx, edx
mov ebx, edx
mov dword [esp + 0x48], edi
mov dword [esp + 0x18], ebx
mov byte [esp + 0x6b], dl
mov esi, dword [edi]
mov ecx, dword [edi + 0x68]
mov ebp, ecx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x14], esi
mov al, byte [esi + 0x4e]
mov byte [esp + 0x58], al
mov eax, dword [edi + 0x58]
mov dword [esp + 0x20], eax
xor eax, eax
inc eax
mov dword [esp + 0x7c], edx
cmp dword [edi + 0x28], 7
mov dword [esp + 0xac], edx
je 0x10041609
and dword [edi + 0x38], edx
and dword [edi + 0x3c], edx
and dword [edi + 0x78], edx
and dword [esi + 0x188], edx
cmp dword [esi + 0x108], edx
jne 0x100436fd
fldz
imul ebp, dword [edi + 0x24], 0x14
fstp qword [esp + 0x170]
add ebp, ecx
inc edx
mov dword [esp + 0xac], edx
mov dword [esp + 0x1c], ebp
mov cl, byte [ebp]
movzx edx, cl
mov byte [esp + 0x37], cl
mov dword [esp + 0x30], edx
cmp edx, 0xa8
ja case.0x1003fdaf.86
jmp dword [edx*4 + 0x10044ace]
imul ecx, dword [ebp + 4], 0x28
push 4
pop eax
push 0x14
pop esi
add ecx, dword [esp + 0x20]
mov word [ecx + 8], ax
mov eax, ebp
sub eax, dword [esp + 0x5c]
cdq
idiv esi
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x100446cf
imul eax, dword [ebp + 4], 0x28
mov ecx, 0x80
add eax, dword [esp + 0x20]
imul ebp, dword [eax], 0x14
add ebp, dword [esp + 0x5c]
mov word [eax + 8], cx
jmp 0x1003fe6e
imul ecx, dword [ebp + 4], 0x28
mov eax, dword [ebp + 0xc]
push 4
add ecx, dword [esp + 0x24]
dec eax
cdq
mov dword [ecx], eax
pop eax
mov word [ecx + 8], ax
xor eax, eax
mov dword [ecx + 4], edx
cmp dword [ebp + 8], eax
jne 0x100446cf
jmp 0x1003fe6e
imul ecx, dword [ebp + 4], 0x28
mov edx, dword [esp + 0x5c]
add ecx, dword [esp + 0x20]
lea ebp, [edx - 0x14]
imul eax, dword [ecx], 0x14
imul eax, dword [eax + edx + 8], 0x14
add ebp, eax
mov eax, 0x80
mov word [ecx + 8], ax
jmp 0x1003fe6e
imul esi, dword [ebp + 4], 0x28
sub ebp, dword [esp + 0x5c]
push 4
pop eax
push 0x14
add esi, dword [esp + 0x24]
mov word [esi + 8], ax
mov eax, ebp
cdq
pop ebp
idiv ebp
mov ecx, dword [esi]
imul ebp, ecx, 0x14
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
add ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0x14]
xor eax, eax
inc eax
mov edx, dword [esp + 0xac]
push 0x14
pop ecx
jmp 0x1003fd87
imul eax, dword [ebp + 0xc], 0x28
mov ecx, dword [esp + 0x20]
test byte [eax + ecx + 8], 1
je 0x1003fe6e
mov eax, ebp
sub eax, dword [esp + 0x5c]
push 0x14
pop ecx
cdq
idiv ecx
mov ecx, dword [ebp + 4]
mov esi, eax
test ecx, ecx
jne 0x100446e1
mov edx, dword [edi + 0xc8]
test edx, edx
je 0x100446e1
mov eax, dword [edx + 4]
mov ecx, edx
mov esi, dword [esp + 0x14]
dec dword [edi + 0xd0]
mov dword [edi + 0xc8], eax
mov eax, dword [edi + 0x2c]
add dword [esi + 0x68], eax
mov dword [esi + 0x64], eax
call fcn.1003c248
push 4
pop ecx
cmp dword [ebp + 8], ecx
jne 0x1003feec
imul ecx, eax, 0x14
mov eax, dword [edi + 0x68]
mov eax, dword [ecx + eax + 8]
dec eax
mov edx, dword [edi + 0x68]
mov ecx, dword [edi + 0x58]
imul ebp, eax, 0x14
mov dword [esp + 0x5c], edx
mov dword [esp + 0x20], ecx
add ebp, edx
jmp 0x1003fe6e
mov edx, ebp
mov ecx, edi
call fcn.1003fce9
mov ecx, eax
mov eax, dword [ebp + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x1003fe6e
mov edx, ebp
mov ecx, edi
call fcn.1003fce9
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp 0x1003fe6e
mov edx, ebp
mov ecx, edi
call fcn.1003fce9
push 8
pop ecx
mov word [eax + 8], cx
mov ecx, dword [ebp + 0x10]
fld qword [ecx]
fstp qword [eax]
jmp 0x1003fe6e
mov edx, ebp
mov ecx, edi
call fcn.1003fce9
mov edx, dword [ebp + 0x10]
mov esi, eax
mov byte [ebp], 0x48
test edx, edx
jne 0x1003ff70
xor eax, eax
mov ecx, eax
jmp 0x1003ff8a
mov ecx, edx
lea eax, [ecx + 1]
mov dword [esp + 0x1c], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1003ff79
sub ecx, dword [esp + 0x1c]
and ecx, 0x3fffffff
xor eax, eax
mov dword [ebp + 4], ecx
inc eax
cmp byte [esp + 0x58], al
je 0x10040008
xor ecx, ecx
push ecx
push eax
push 0xffffffffffffffff
mov ecx, esi
call fcn.1003a7b1
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x18], ebx
test ebx, ebx
jne 0x10043d61
test byte [esi + 8], 2
je 0x1003ffd4
mov al, byte [esp + 0x58]
cmp byte [esi + 0xa], al
je 0x1003ffd4
mov dl, al
mov ecx, esi
call fcn.10025b34
test eax, eax
jne 0x10041605
xor eax, eax
mov dword [esi + 0x18], eax
mov eax, 0x800
or word [esi + 8], ax
cmp byte [ebp + 1], 0xf9
jne 0x1003fff8
mov edx, dword [ebp + 0x10]
test edx, edx
je 0x1003fff8
mov ecx, dword [esp + 0x14]
call fcn.10023dc7
mov byte [ebp + 1], 0xf9
mov eax, dword [esi + 0x10]
mov dword [ebp + 0x10], eax
mov ecx, dword [esi + 0xc]
mov dword [ebp + 4], ecx
mov esi, dword [esp + 0x14]
cmp ecx, dword [esi + 0x6c]
jg 0x10043d61
mov edx, ebp
mov ecx, edi
call fcn.1003fce9
mov ecx, 0xa02
mov word [eax + 8], cx
mov ecx, dword [ebp + 0x10]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp + 4]
mov dword [eax + 0xc], ecx
mov cl, byte [esp + 0x58]
mov byte [eax + 0xa], cl
jmp 0x1003fe6e
mov edx, ebp
mov ecx, edi
call fcn.1003fce9
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov dword [esp + 0x50], ecx
mov ecx, dword [ebp + 4]
lea esi, [eax + 8]
neg ecx
sbb ecx, ecx
and dword [eax + 0xc], 0
mov eax, dword [esp + 0x50]
and ecx, 0x100
inc ecx
sub eax, edx
movzx ecx, cx
mov dword [esp + 0x1c], ecx
mov word [esi], cx
mov dword [esp + 0x50], eax
test eax, eax
jle 0x1003fe6a
xor edx, edx
mov ebx, 0x2400
lea esi, [esi + 0x28]
test word [esi], bx
je 0x100400a4
lea ecx, [esi - 8]
call fcn.1003a12a
mov eax, dword [esp + 0x50]
xor edx, edx
mov ecx, dword [esp + 0x1c]
dec eax
mov word [esi], cx
mov dword [esi + 4], edx
mov dword [esp + 0x50], eax
test eax, eax
jg 0x1004008a
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x48]
jmp 0x1003fe6a
imul ecx, dword [ebp + 4], 0x28
mov edx, 0xff41
add ecx, dword [esp + 0x20]
mov ax, word [ecx + 8]
and ax, dx
xor edx, edx
inc edx
or ax, dx
jmp 0x1003fe3a
mov edx, ebp
mov ecx, edi
call fcn.1003fce9
mov edx, dword [ebp + 0x10]
mov esi, eax
xor eax, eax
mov ecx, esi
push eax
push eax
push dword [ebp + 4]
call fcn.1003a7b1
add esp, 0xc
mov al, byte [esp + 0x58]
mov byte [esi + 0xa], al
jmp 0x1003fe6a
imul ecx, dword [ebp + 4], 0x28
mov esi, dword [edi + 0x64]
add ecx, 0xffffffd8
add esi, ecx
mov ecx, esi
call fcn.1003a68f
test eax, eax
jne 0x10043d61
imul edx, dword [ebp + 8], 0x28
mov eax, 0x2400
add edx, dword [esp + 0x20]
mov dword [esp + 0x1c], edx
test word [edx + 8], ax
je 0x10040147
mov ecx, edx
call fcn.1003a12a
mov edx, dword [esp + 0x1c]
push 5
pop eax
mov ecx, eax
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ax, word [edx + 8]
mov ecx, 0xebff
and ax, cx
mov ecx, 0x840
or ax, cx
mov word [edx + 8], ax
jmp 0x100400b7
mov eax, dword [ebp + 0xc]
imul esi, dword [ebp + 8], 0x28
mov dword [esp + 0x4c], eax
imul eax, dword [ebp + 4], 0x28
add eax, dword [esp + 0x20]
add esi, dword [esp + 0x20]
mov dword [esp + 0x24], eax
mov edx, eax
mov ecx, esi
call fcn.1003a78f
mov eax, 0x1000
test word [esi + 8], ax
je 0x100401ab
mov ecx, esi
call fcn.10039f62
test eax, eax
jne 0x10041605
mov eax, dword [esp + 0x24]
add esi, 0x28
add eax, 0x28
sub dword [esp + 0x4c], 1
mov dword [esp + 0x24], eax
jne 0x10040188
jmp 0x1003fe6a
mov eax, dword [ebp + 0xc]
imul esi, dword [ebp + 8], 0x28
mov dword [esp + 0x24], eax
imul eax, dword [ebp + 4], 0x28
add eax, dword [esp + 0x20]
add esi, dword [esp + 0x20]
push 0x1000
mov edx, eax
mov dword [esp + 0x50], eax
mov ecx, esi
call fcn.1003a6ce
mov eax, 0x1000
pop ecx
test word [esi + 8], ax
je 0x10040209
mov ecx, esi
call fcn.10039f62
test eax, eax
jne 0x10041605
mov ecx, dword [esp + 0x24]
mov eax, ecx
dec ecx
mov dword [esp + 0x24], ecx
test eax, eax
je 0x1003fe6a
mov eax, dword [esp + 0x4c]
add esi, 0x28
add eax, 0x28
jmp 0x100401dc
imul edx, dword [ebp + 4], 0x28
mov eax, 0x1000
imul ecx, dword [ebp + 8], 0x28
push eax
add edx, dword [esp + 0x24]
add ecx, dword [esp + 0x24]
call fcn.1003a6ce
pop ecx
jmp 0x1003fe6e
imul eax, dword [ebp + 4], 0x28
imul ecx, dword [ebp + 8], 0x28
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x20]
add ecx, edx
mov edx, dword [eax + edx]
mov eax, dword [eax + edi + 4]
mov edi, 0x2400
test word [ecx + 8], di
mov edi, dword [esp + 0x48]
je 0x1004027b
push eax
push edx
call fcn.1003a56d
pop ecx
jmp 0x10040243
mov dword [ecx], edx
mov dword [ecx + 4], eax
push 4
pop eax
jmp 0x1003fe3a
imul edx, dword [ebp + 4], 0x28
mov eax, dword [esp + 0x20]
imul ecx, dword [ebp + 8], 0x28
imul esi, dword [ebp + 0xc], 0x28
add edx, eax
mov dword [esp + 0x30], edx
add ecx, eax
add esi, eax
mov dword [esp + 0x38], ecx
movzx eax, word [edx + 8]
mov dword [esp + 0x28], eax
mov al, byte [ecx + 8]
or al, byte [esp + 0x28]
test al, 1
je 0x100402e0
mov eax, 0x2400
test word [esi + 8], ax
je 0x100402d0
mov ecx, esi
call fcn.1003a12a
jmp 0x1003fe6a
xor eax, eax
inc eax
mov word [esi + 8], ax
mov esi, dword [esp + 0x14]
jmp case.0x1003fdaf.86
mov eax, dword [esp + 0x28]
test al, 0x12
jne 0x1004031a
mov dl, byte [esp + 0x58]
xor eax, eax
mov ecx, dword [esp + 0x30]
push eax
call fcn.1003a013
pop ecx
test eax, eax
jne 0x10041605
mov eax, dword [esp + 0x30]
mov ecx, 0xfffd
mov ax, word [eax + 8]
and ax, cx
movzx edx, ax
mov dword [esp + 0x28], edx
jmp 0x10040347
test eax, 0x4000
je 0x1004034b
mov ecx, edx
call fcn.10039fa8
test eax, eax
jne 0x10041605
mov eax, dword [esp + 0x30]
mov ecx, 0xfffd
mov ax, word [eax + 8]
and ax, cx
movzx eax, ax
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x38]
movzx eax, word [ecx + 8]
mov dword [esp + 0x2c], eax
test al, 0x12
jne 0x10040385
mov dl, byte [esp + 0x58]
xor eax, eax
push eax
call fcn.1003a013
pop ecx
test eax, eax
jne 0x10041605
mov edx, dword [esp + 0x38]
mov ecx, 0xfffd
mov ax, word [edx + 8]
and ax, cx
movzx eax, ax
mov dword [esp + 0x2c], eax
jmp 0x10040396
bt eax, 0xe
jae 0x10040392
call fcn.10039fa8
jmp 0x10040364
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0xc]
mov eax, dword [esp + 0x14]
add ecx, dword [edx + 0xc]
mov dword [esp + 0x1c], ecx
cmp ecx, dword [eax + 0x6c]
jg 0x10043d61
xor eax, eax
cmp esi, edx
lea edx, [ecx + 3]
mov ecx, esi
sete al
push eax
call fcn.10039e33
pop ecx
test eax, eax
jne 0x10041605
mov ax, word [esi + 8]
mov ecx, 0x3e40
and ax, cx
push 2
pop ecx
or ax, cx
mov word [esi + 8], ax
mov eax, dword [esp + 0x38]
cmp esi, eax
je 0x10040407
push dword [eax + 0xc]
push dword [eax + 0x10]
push dword [esi + 0x10]
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esp + 0x44]
add esp, 0xc
mov ecx, dword [esp + 0x2c]
mov word [eax + 8], cx
mov ecx, dword [esp + 0x30]
mov eax, dword [eax + 0xc]
add eax, dword [esi + 0x10]
push dword [ecx + 0xc]
push dword [ecx + 0x10]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esp + 0x3c]
xor edx, edx
mov ecx, dword [esp + 0x34]
add esp, 0xc
mov word [eax + 8], cx
mov eax, dword [esi + 0x10]
mov ecx, dword [esp + 0x1c]
mov byte [ecx + eax], dl
mov eax, dword [esi + 0x10]
mov byte [ecx + eax + 1], dl
mov eax, dword [esi + 0x10]
mov byte [ecx + eax + 2], dl
mov eax, 0x200
or word [esi + 8], ax
mov dword [esi + 0xc], ecx
jmp 0x100400fe
imul eax, dword [ebp + 4], 0x28
add eax, dword [esp + 0x20]
mov ecx, eax
mov dword [esp + 0x28], eax
call fcn.1003fcba
imul esi, dword [ebp + 8], 0x28
movzx ebx, ax
add esi, dword [esp + 0x20]
mov ecx, esi
mov dword [esp + 0x60], esi
call fcn.1003fcba
movzx ecx, ax
imul eax, dword [ebp + 0xc], 0x28
and cl, bl
push 4
pop edx
add eax, dword [esp + 0x20]
mov dword [esp + 0x50], eax
mov ax, word [esi + 8]
mov esi, dword [esp + 0x28]
or ax, word [esi + 8]
movzx eax, ax
test dl, cl
je 0x100406c0
mov eax, esi
mov edx, dword [eax]
mov esi, dword [eax + 4]
mov eax, dword [esp + 0x60]
mov ecx, dword [eax + 4]
mov ebx, dword [eax]
movzx eax, byte [ebp]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ecx
sub eax, 0x64
je 0x10040612
sub eax, 1
je 0x10040559
sub eax, 1
je 0x10040549
sub eax, 1
mov eax, edx
je 0x1004051f
or eax, esi
je 0x10040740
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
jne 0x10040503
xor edx, edx
inc edx
xor eax, eax
mov esi, eax
push esi
push edx
push ecx
push ebx
call fcn.10086c30
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], edx
jmp 0x100406a5
or eax, esi
je 0x10040740
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
jne 0x1004053e
xor eax, eax
cmp ebx, eax
jne 0x1004053e
cmp ecx, 0x80000000
je 0x10040571
push esi
push edx
push ecx
push ebx
call fcn.10086b10
jmp 0x1004050c
push esi
push edx
lea ecx, [esp + 0x88]
call fcn.100271cd
jmp 0x10040567
push esi
push edx
lea ecx, [esp + 0x88]
call fcn.10027183
pop ecx
pop ecx
test eax, eax
je 0x100406a5
mov esi, dword [esp + 0x28]
mov ecx, esi
call fcn.1003a270
mov ecx, dword [esp + 0x60]
fstp qword [esp + 0x40]
call fcn.1003a270
movzx eax, byte [ebp]
sub eax, 0x64
je 0x100406ed
sub eax, 1
je 0x100406e7
sub eax, 1
je 0x100406e1
sub eax, 1
je 0x100406c9
mov ecx, esi
fstp st(0)
call fcn.1003a209
mov ecx, dword [esp + 0x60]
mov esi, eax
mov ebx, edx
call fcn.1003a209
mov ecx, esi
mov dword [esp + 0x80], eax
or ecx, ebx
mov dword [esp + 0x84], edx
je 0x10040740
mov ecx, esi
and ecx, ebx
cmp ecx, 0xffffffff
jne 0x100405ef
xor esi, esi
inc esi
xor ecx, ecx
mov ebx, ecx
push ebx
push esi
push edx
push eax
call fcn.10086c30
mov dword [esp + 0x138], eax
mov dword [esp + 0x13c], edx
fild qword [esp + 0x138]
jmp 0x100406f1
xor eax, eax
cmp esi, eax
jl 0x1004064d
jg 0x1004061e
cmp edx, eax
jb 0x1004064d
cmp ecx, eax
jl 0x10040693
jg 0x10040628
cmp ebx, eax
jbe 0x10040693
or eax, 0xffffffff
sub eax, ebx
mov dword [esp + 0x1c], eax
mov eax, 0x7fffffff
sbb eax, ecx
cmp eax, esi
jg 0x10040693
jl 0x10040571
cmp dword [esp + 0x1c], edx
jae 0x10040693
jmp 0x10040571
cmp ecx, eax
jg 0x10040693
jl 0x10040657
cmp ebx, eax
jae 0x10040693
xor eax, eax
mov ecx, 0x80000000
inc eax
sub eax, ebx
mov dword [esp + 0x1c], eax
mov eax, edx
sbb ecx, dword [esp + 0x2c]
add eax, 1
mov dword [esp + 0x3c], eax
mov eax, esi
adc eax, 0
cmp ecx, eax
jg 0x10040571
jl 0x1004068f
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x3c]
ja 0x10040571
mov ecx, dword [esp + 0x2c]
add ebx, edx
mov dword [esp + 0x80], ebx
adc ecx, esi
mov dword [esp + 0x84], ecx
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x84]
push 4
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x1004071c
test al, 1
jne 0x10040740
jmp 0x10040575
fld qword [esp + 0x40]
fld qword [esp + 0x170]
fucomp st(1)
fnstsw ax
test ah, 0x44
jnp 0x1004073c
fdivp st(1)
jmp 0x100406f1
fmul qword [esp + 0x40]
jmp 0x100406f1
fsub qword [esp + 0x40]
jmp 0x100406f1
fadd qword [esp + 0x40]
fst qword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov ebx, 0x7ff00000
mov eax, ecx
and eax, ebx
cmp eax, ebx
jne 0x10040714
mov eax, dword [esp + 0x40]
and ecx, 0xfffff
or eax, ecx
jne 0x1004073e
mov edx, dword [esp + 0x50]
push 8
fstp qword [edx]
mov ax, word [edx + 8]
mov ecx, 0x3e40
and ax, cx
pop ecx
or ax, cx
movzx eax, ax
mov word [edx + 8], ax
mov ebx, dword [esp + 0x18]
jmp 0x1003fe6a
fstp st(1)
fstp st(0)
mov edx, dword [esp + 0x50]
mov eax, 0x2400
test word [edx + 8], ax
je 0x10040758
mov ecx, edx
call fcn.1003a12a
jmp 0x10040733
mov ebx, dword [esp + 0x18]
xor eax, eax
inc eax
mov word [edx + 8], ax
jmp 0x100402d7
mov eax, dword [ebp + 4]
test eax, eax
je 0x1003fe6e
imul eax, eax, 0x28
mov ecx, 0x2400
add eax, dword [esp + 0x20]
test word [eax + 8], cx
je 0x10040790
xor ecx, ecx
push ecx
push ecx
mov ecx, eax
jmp 0x10040273
xor ecx, ecx
push 4
mov dword [eax], ecx
mov dword [eax + 4], ecx
pop ecx
jmp 0x1003fdf0
imul ecx, dword [ebp + 8], 0x28
imul esi, dword [ebp + 4], 0x28
mov eax, dword [esp + 0x20]
imul edx, dword [ebp + 0xc], 0x28
add ecx, eax
add esi, eax
add edx, eax
mov al, byte [ecx + 8]
or al, byte [esi + 8]
mov dword [esp + 0x24], edx
test al, 1
je 0x100407d9
mov eax, 0x2400
test word [edx + 8], ax
je 0x10042db4
mov ecx, edx
jmp 0x100402c6
call fcn.1003a209
mov ecx, esi
mov dword [esp + 0x28], eax
mov dword [esp + 0x38], edx
call fcn.1003a209
mov cl, byte [ebp]
mov esi, eax
cmp cl, 0x60
jne 0x10040808
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x38]
and ecx, esi
and eax, edx
jmp 0x100408dc
cmp cl, 0x61
jne 0x1004081e
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x38]
or ecx, esi
or eax, edx
jmp 0x100408dc
mov eax, esi
or eax, edx
je 0x100408d4
xor eax, eax
cmp edx, eax
jg 0x10040876
jl 0x10040834
cmp esi, eax
jae 0x1004084f
mov al, 0xc5
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x10040874
jg 0x10040846
cmp esi, 0xffffffc0
jbe 0x10040874
neg esi
push 0
pop eax
adc edx, eax
neg edx
cmp edx, eax
jl 0x1004085a
jg 0x10040876
cmp esi, 0x40
jae 0x10040876
mov eax, dword [esp + 0x28]
cmp cl, 0x62
mov edx, dword [esp + 0x38]
mov ecx, esi
jne 0x10040894
call fcn.10086cf0
mov ecx, eax
mov eax, edx
jmp 0x100408dc
xor eax, eax
cmp dword [esp + 0x38], eax
jg 0x10040890
jl 0x10040884
cmp dword [esp + 0x28], eax
jae 0x10040890
cmp cl, 0x62
je 0x10040890
or ecx, 0xffffffff
or eax, ecx
jmp 0x100408dc
mov ecx, eax
jmp 0x100408dc
call fcn.10086e00
mov ecx, eax
mov eax, edx
xor edx, edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x3c], eax
cmp dword [esp + 0x38], edx
jg 0x100408dc
jl 0x100408b5
cmp dword [esp + 0x28], edx
jae 0x100408dc
push 0x40
pop ecx
sub ecx, esi
or eax, 0xffffffff
or edx, 0xffffffff
call fcn.10086cf0
mov ecx, dword [esp + 0x1c]
or ecx, eax
mov eax, dword [esp + 0x3c]
jmp 0x10040817
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
push 4
mov dword [edx + 4], eax
mov ax, word [edx + 8]
mov dword [edx], ecx
mov ecx, 0x3e40
and ax, cx
pop ecx
or ax, cx
mov word [edx + 8], ax
jmp 0x1003fe6a
imul esi, dword [ebp + 4], 0x28
add esi, dword [esp + 0x20]
mov ecx, esi
call fcn.1003a320
mov eax, dword [ebp + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp 0x1003fe6a
imul esi, dword [ebp + 4], 0x28
push 4
pop edx
add esi, dword [esp + 0x20]
movzx eax, word [esi + 8]
mov ecx, eax
test dl, al
jne 0x10040962
push dword [esp + 0x58]
mov dl, 0x43
mov ecx, esi
call fcn.1003fbb6
movzx eax, word [esi + 8]
pop ecx
push 4
pop edx
mov ecx, eax
test dl, al
jne 0x10040962
xor edx, edx
cmp dword [ebp + 8], edx
jne 0x100446cf
push 0x14
pop eax
mov ebx, eax
jmp 0x10041622
mov eax, 0x3e40
and ecx, eax
push 4
pop eax
or ecx, eax
mov word [esi + 8], cx
jmp 0x1003fe6a
imul ecx, dword [ebp + 4], 0x28
add ecx, dword [esp + 0x20]
test byte [ecx + 8], 0x24
je case.0x1003fdaf.86
call fcn.1003a345
jmp 0x1003fe6e
imul esi, dword [ebp + 4], 0x28
mov eax, 0x4000
add esi, dword [esp + 0x20]
test word [esi + 8], ax
je 0x100409af
mov ecx, esi
call fcn.10039fa8
jmp 0x100409b1
xor eax, eax
push dword [esp + 0x58]
mov dl, byte [ebp + 8]
mov ebx, eax
mov ecx, esi
mov dword [esp + 0x1c], ebx
call fcn.1003a470
pop ecx
test ebx, ebx
jne 0x10041620
jmp 0x1003fe6a
imul esi, dword [ebp + 0xc], 0x28
imul eax, dword [ebp + 4], 0x28
add esi, dword [esp + 0x20]
add eax, dword [esp + 0x20]
mov dword [esp + 0x30], eax
movzx edx, word [esi + 8]
movzx eax, word [eax + 8]
mov ecx, edx
or ecx, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x28], edx
test cl, 1
je 0x10040a8c
movzx eax, word [ebp + 2]
mov ecx, 0x80
test cl, al
je 0x10040a51
xor ecx, ecx
mov al, dl
and al, byte [esp + 0x38]
inc ecx
test cl, al
je 0x10040a41
test edx, 0x100
jne 0x10040a41
xor eax, eax
mov edx, eax
movzx eax, byte [ebp]
test edx, edx
jne 0x10040bae
mov al, byte [eax + 0x10090378]
jmp 0x10040bb4
not edx
and edx, ecx
lea edx, [edx*2 - 1]
jmp 0x10040b9a
test al, 0x20
je 0x10040a7c
imul ecx, dword [ebp + 8], 0x28
xor edx, edx
mov esi, 0x3e40
inc edx
mov dword [esp + 0x7c], edx
add ecx, dword [esp + 0x20]
mov ax, word [ecx + 8]
and ax, si
or ax, dx
mov word [ecx + 8], ax
jmp 0x1003fe6a
push 0x10
pop ecx
test cl, al
jne 0x100446cf
jmp 0x1003fe6a
mov al, byte [ebp + 2]
and al, 0x47
cmp al, 0x43
jb 0x10040b1f
push 2
pop edx
test dl, cl
je 0x10040ad3
mov al, byte [esp + 0x38]
and al, 0x2e
cmp al, dl
jne 0x10040ac0
mov ecx, dword [esp + 0x30]
xor edx, edx
call fcn.1003fb39
movzx eax, word [esi + 8]
push 2
mov dword [esp + 0x2c], eax
pop edx
mov al, byte [esp + 0x28]
and al, 0x2e
cmp al, dl
jne 0x10040ad3
xor edx, edx
mov ecx, esi
call fcn.1003fb39
mov eax, dword [esp + 0x30]
push 4
pop ecx
mov al, byte [eax + 8]
and al, byte [esi + 8]
test cl, al
je 0x10040b89
mov eax, dword [esp + 0x30]
mov ecx, dword [esi + 4]
mov edx, dword [esi]
cmp ecx, dword [eax + 4]
jl 0x10040b17
jg 0x10040afc
cmp edx, dword [eax]
jbe 0x10040b04
xor edx, edx
inc edx
jmp 0x10040a2a
cmp ecx, dword [eax + 4]
jg 0x10040a26
jl 0x10040b17
cmp edx, dword [eax]
jae 0x10040a26
or edx, 0xffffffff
jmp 0x10040ba2
cmp al, 0x42
jne 0x10040b89
mov al, byte [esp + 0x38]
test al, 2
jne 0x10040b59
test al, 0x2c
je 0x10040b59
mov dl, byte [esp + 0x58]
mov ecx, dword [esp + 0x30]
push 1
call fcn.1003a013
mov eax, dword [esp + 0x34]
pop ecx
mov ecx, 0x3e40
mov ax, word [eax + 8]
xor ax, word [esp + 0x38]
and ax, cx
xor word [esp + 0x38], ax
mov al, byte [esp + 0x28]
test al, 2
jne 0x10040b89
test al, 0x2c
je 0x10040b89
mov dl, byte [esp + 0x58]
mov ecx, esi
push 1
call fcn.1003a013
mov ax, word [esi + 8]
xor ax, word [esp + 0x2c]
pop ecx
mov ecx, 0x3e40
and ax, cx
xor word [esp + 0x28], ax
push dword [ebp + 0x10]
mov edx, dword [esp + 0x34]
mov ecx, esi
call fcn.1003d814
pop ecx
mov edx, eax
test edx, edx
jns 0x10040a2a
movzx ecx, byte [ebp]
mov al, byte [ecx + 0x100901cc]
jmp 0x10040bb4
mov al, byte [eax + 0x1008b660]
mov edi, dword [esp + 0x30]
movzx ecx, al
mov ax, word [esp + 0x38]
mov dword [esp + 0x1c], ecx
mov word [edi + 8], ax
mov ax, word [esp + 0x28]
mov edi, dword [esp + 0x48]
mov word [esi + 8], ax
movzx eax, word [ebp + 2]
test al, 0x20
je 0x10040c23
imul esi, dword [ebp + 8], 0x28
mov dword [esp + 0x7c], edx
add esi, dword [esp + 0x20]
test al, 8
je 0x10040bfe
xor eax, eax
cmp byte [ebp], 0x35
sete al
cmp eax, ecx
je 0x1003fe6a
mov cx, word [esi + 8]
mov eax, 0x3e40
and cx, ax
push 4
pop eax
or cx, ax
mov eax, dword [esp + 0x1c]
mov word [esi + 8], cx
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x1003fe6a
test ecx, ecx
jmp 0x10040a81
cmp dword [esp + 0x7c], 0
jne 0x100446cf
jmp case.0x1003fdaf.86
test byte [ebp + 2], al
jne 0x10040c43
xor eax, eax
jmp 0x10040c4b
mov eax, dword [ebp - 4]
push 4
pop ecx
add eax, ecx
mov esi, dword [ebp + 4]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x2c], esi
mov esi, dword [ebp + 8]
mov dword [esp + 0x3c], esi
xor esi, esi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x60], ecx
mov dword [esp + 0x1c], edx
test ecx, ecx
jle 0x1003fe6a
add edx, 0x14
mov dword [esp + 0x24], edx
test eax, eax
je 0x10040c85
mov ecx, dword [eax + esi*4]
jmp 0x10040c87
mov ecx, esi
mov eax, dword [esp + 0x1c]
push dword [edx]
mov eax, dword [eax + 0x10]
mov al, byte [esi + eax]
mov byte [esp + 0x3b], al
mov eax, dword [esp + 0x40]
add eax, ecx
imul edx, eax, 0x28
mov eax, dword [esp + 0x30]
add eax, ecx
imul ecx, eax, 0x28
add edx, dword [esp + 0x24]
add ecx, dword [esp + 0x24]
call fcn.1003d814
pop ecx
mov ecx, eax
mov dword [esp + 0x7c], ecx
test ecx, ecx
jne 0x10040cde
mov edx, dword [esp + 0x24]
inc esi
push 4
pop eax
add edx, eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x24], edx
cmp esi, dword [esp + 0x60]
jl 0x10040c7c
jmp 0x1003fe6a
mov esi, dword [esp + 0x14]
xor eax, eax
cmp byte [esp + 0x37], al
je 0x1003fe70
neg ecx
mov dword [esp + 0x7c], ecx
jmp 0x1003fe70
mov ecx, dword [esp + 0x7c]
test ecx, ecx
jns 0x10040d07
imul ebp, dword [ebp + 4], 0x14
jmp 0x10040d13
jne 0x10040d0f
imul ebp, dword [ebp + 8], 0x14
jmp 0x10040d13
imul ebp, dword [ebp + 0xc], 0x14
add ebp, dword [esp + 0x5c]
add ebp, 0xffffffec
jmp case.0x1003fdaf.86
imul ecx, dword [ebp + 4], 0x28
push 2
pop edx
add ecx, dword [esp + 0x20]
call fcn.1003a28d
imul ecx, dword [ebp + 8], 0x28
mov esi, eax
push 2
pop edx
add ecx, dword [esp + 0x20]
call fcn.1003a28d
imul ecx, esi, 3
cmp byte [ebp], 0x2c
jne 0x10040d53
mov dl, byte [ecx + eax + 0x1008b6b4]
jmp 0x10040d5a
mov dl, byte [ecx + eax + 0x100903a0]
imul esi, dword [ebp + 0xc], 0x28
mov ecx, 0x3e40
add esi, dword [esp + 0x20]
mov ax, word [esi + 8]
and ax, cx
movzx ecx, ax
cmp dl, 2
jne 0x10040d7b
or ecx, 1
jmp 0x10040d89
movzx eax, dl
cdq
push 4
mov dword [esi], eax
pop eax
mov dword [esi + 4], edx
or ecx, eax
movzx eax, cx
mov word [esi + 8], ax
jmp 0x1003fe6a
imul ecx, dword [ebp + 4], 0x28
mov edx, dword [ebp + 0xc]
add ecx, dword [esp + 0x20]
call fcn.1003a28d
imul ecx, dword [ebp + 8], 0x28
mov edi, 0x2400
xor eax, dword [ebp + 0x10]
cdq
add ecx, dword [esp + 0x20]
test word [ecx + 8], di
mov edi, dword [esp + 0x48]
je 0x10040dc7
push edx
push eax
jmp 0x10040273
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x10040280
imul ecx, dword [ebp + 4], 0x28
xor edx, edx
imul esi, dword [ebp + 8], 0x28
inc edx
add ecx, dword [esp + 0x20]
add esi, dword [esp + 0x20]
test byte [ecx + 8], dl
jne 0x10040e21
xor edx, edx
call fcn.1003a28d
neg eax
mov ecx, 0x2400
sbb eax, eax
inc eax
test word [esi + 8], cx
je 0x10040e12
xor ecx, ecx
push ecx
push eax
mov ecx, esi
call fcn.1003a56d
pop ecx
pop ecx
jmp 0x1003fe6a
mov dword [esi], eax
xor eax, eax
push 4
mov dword [esi + 4], eax
pop eax
jmp 0x10040d8c
mov eax, 0x2400
test word [esi + 8], ax
jne 0x100402c4
mov word [esi + 8], dx
jmp 0x1003fe6a
imul esi, dword [ebp + 8], 0x28
mov ecx, 0x2400
imul eax, dword [ebp + 4], 0x28
add esi, dword [esp + 0x20]
add eax, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
test word [esi + 8], cx
je 0x10040e68
mov ecx, esi
call fcn.1003a12a
mov eax, dword [esp + 0x1c]
xor edx, edx
inc edx
jmp 0x10040e6f
xor edx, edx
inc edx
mov word [esi + 8], dx
test byte [eax + 8], dl
jne 0x1003fe6a
push 4
pop ecx
mov word [esi + 8], cx
mov ecx, eax
call fcn.1003a209
not eax
not edx
jmp 0x10040c19
cmp dword [edi + 0xc8], 0
je 0x10040edb
mov eax, ebp
sub eax, dword [edi + 0x68]
cdq
push 0x14
pop ecx
idiv ecx
xor edx, edx
mov ecx, eax
inc edx
mov eax, dword [edi + 0xc8]
mov esi, ecx
shr esi, 3
and ecx, 7
shl edx, cl
mov eax, dword [eax + 0x18]
mov dword [esp + 0x1c], eax
movzx eax, byte [esi + eax]
test eax, edx
jne 0x100446cf
bts eax, ecx
mov ecx, dword [esp + 0x1c]
mov byte [esi + ecx], al
mov esi, dword [esp + 0x14]
jmp 0x10040eea
mov eax, dword [edi + 0x68]
mov eax, dword [eax + 4]
cmp eax, dword [ebp + 4]
je 0x100446cf
mov eax, dword [edi + 0x68]
mov eax, dword [eax + 4]
mov dword [ebp + 4], eax
jmp 0x1003fe6e
imul ecx, dword [ebp + 4], 0x28
mov edx, dword [ebp + 0xc]
add ecx, dword [esp + 0x20]
call fcn.1003a28d
test eax, eax
jmp 0x1003fe14
xor edx, edx
xor eax, eax
cmp dword [ebp + 0xc], eax
sete dl
imul ecx, dword [ebp + 4], 0x28
add ecx, dword [esp + 0x20]
call fcn.1003a28d
test eax, eax
je 0x100446cf
jmp 0x1003fe6e
imul eax, dword [ebp + 4], 0x28
mov ecx, dword [esp + 0x20]
test byte [eax + ecx + 8], 1
jmp 0x1003fe14
imul eax, dword [ebp + 4], 0x28
mov ecx, dword [esp + 0x20]
test byte [eax + ecx + 8], 1
jmp 0x10040f28
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 2], 0
je 0x1003fe6e
imul eax, dword [ebp + 0xc], 0x28
mov ecx, 0x2400
add eax, dword [esp + 0x20]
test word [eax + 8], cx
je 0x10040f86
mov ecx, eax
call fcn.1003a12a
jmp 0x100446cf
xor ecx, ecx
inc ecx
mov word [eax + 8], cx
jmp 0x100446cf
mov ecx, dword [ebp + 4]
lea edx, [esp + 0x78]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
lea ecx, [esp + 0x54]
mov dword [esp + 0x54], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x78], eax
call fcn.1003d09f
mov ebx, eax
mov dword [esp + 0x18], ebx
test ebx, ebx
jne 0x10041620
mov esi, dword [esp + 0x54]
imul ecx, dword [ebp + 0xc], 0x28
mov eax, dword [esi + 0x48]
mov dword [esp + 0x28], eax
add ecx, dword [esp + 0x20]
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x30], ecx
cmp eax, dword [edi + 0x20]
je 0x100410eb
cmp byte [esi + 2], bl
je 0x10041031
cmp byte [esi], 3
jne 0x10041016
imul edx, dword [esi + 0x20], 0x28
add edx, dword [esp + 0x20]
mov eax, dword [edx + 0xc]
mov dword [esi + 0x54], eax
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx + 0x54]
mov dword [ecx + 0x50], eax
mov eax, dword [esp + 0x54]
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x4c], ecx
mov ecx, dword [esp + 0x54]
jmp 0x1004106e
mov eax, 0x2400
test word [ecx + 8], ax
jne 0x100402c6
xor eax, eax
inc eax
mov word [ecx + 8], ax
jmp 0x100402d7
mov esi, dword [esi + 0x28]
mov ecx, esi
call fcn.10034079
mov eax, dword [esp + 0x54]
mov ecx, esi
mov edx, dword [esi + 0x2c]
mov dword [eax + 0x50], edx
mov edx, dword [esp + 0x54]
lea edx, [edx + 0x54]
call fcn.100344f9
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x14]
mov dword [ecx + 0x4c], eax
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx + 0x50]
cmp eax, dword [edx + 0x6c]
ja 0x10043d61
mov eax, dword [edi + 0x20]
mov edx, 0x80
mov dword [ecx + 0x1c], eax
mov eax, dword [esp + 0x54]
mov ecx, dword [eax + 0x4c]
mov al, byte [ecx]
cmp al, dl
jae 0x10041093
mov ecx, dword [esp + 0x28]
movzx eax, al
mov dword [ecx], eax
mov al, 1
jmp 0x1004109c
mov edx, dword [esp + 0x28]
call fcn.10026f6e
movzx ecx, al
mov eax, dword [esp + 0x54]
mov dword [eax + 0x30], ecx
xor ecx, ecx
mov eax, dword [esp + 0x54]
mov word [eax + 0x3a], cx
mov esi, dword [esp + 0x54]
mov ecx, dword [esp + 0x28]
mov eax, dword [esi + 0x54]
cmp eax, dword [ecx]
jae 0x100410e6
xor edx, edx
mov dword [esi + 0x4c], edx
mov eax, dword [esp + 0x54]
mov dword [eax + 0x54], edx
mov eax, dword [ecx]
cmp eax, 0x18003
ja 0x100412b5
mov esi, dword [esp + 0x54]
cmp eax, dword [esi + 0x50]
jbe 0x100410ef
jmp 0x100412b5
mov edx, dword [esi + 0x4c]
jmp 0x10041158
mov ecx, dword [esp + 0x28]
movzx eax, word [esi + 0x3a]
mov edx, dword [esp + 0x78]
cmp eax, edx
jg 0x10041355
mov eax, dword [esi + 0x30]
cmp eax, dword [ecx]
jae 0x1004131d
mov edx, dword [esi + 0x4c]
mov dword [esp + 0x2c], edx
test edx, edx
jne 0x1004115c
push 0xa
xor eax, eax
lea edi, [esp + 0x18c]
pop ecx
rep stosd dword es:[edi], eax
mov ecx, dword [esi + 0x28]
lea eax, [esp + 0x188]
push eax
mov eax, dword [esp + 0x2c]
push dword [eax]
call fcn.1003a9c7
mov ebx, eax
mov dword [esp + 0x20], ebx
pop ecx
pop ecx
test ebx, ebx
jne 0x10041620
mov edx, dword [esp + 0x198]
mov esi, dword [esp + 0x54]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x2c], edx
mov edi, dword [esi + 0x30]
xor ebx, ebx
movzx eax, word [esi + 0x3a]
add edi, edx
mov edx, dword [esp + 0x28]
mov ebp, eax
mov dword [esp + 0x60], eax
mov ecx, dword [ecx + eax*4]
mov edx, dword [edx]
add edx, dword [esp + 0x2c]
mov dword [esp + 0x50], edx
lea edx, [eax*4 + 0x58]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x4c], edx
movzx eax, byte [edi]
mov dword [esp + 0x64], eax
mov dword [esi + edx], eax
mov edx, 0x80
mov eax, dword [esp + 0x64]
cmp eax, edx
jae 0x100411ba
movzx eax, al
inc edi
movzx eax, byte [eax + 0x1008cb98]
cdq
add ecx, eax
adc ebx, edx
mov edx, dword [esp + 0x4c]
jmp 0x100411ff
lea edx, [esp + 0x64]
mov ecx, edi
call fcn.10026f6e
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x64]
movzx eax, al
add edi, eax
mov eax, dword [esp + 0x54]
mov dword [eax + edx], ecx
mov ecx, 0x80
mov eax, dword [esp + 0x64]
cmp eax, ecx
jb 0x100411ed
add eax, 0xfffffff4
shr eax, 1
jmp 0x100411f4
movzx eax, byte [eax + 0x1008cb98]
mov ecx, dword [esp + 0x38]
add ecx, eax
push 0
pop eax
adc ebx, eax
mov esi, dword [esp + 0x50]
inc ebp
push 4
pop eax
add edx, eax
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0x28]
mov dword [esp + 0x4c], edx
mov dword [eax + edx - 0x58], ecx
cmp ebp, dword [esp + 0x78]
jg 0x1004122c
cmp edi, esi
jae 0x1004122c
mov esi, dword [esp + 0x54]
jmp 0x1004118d
mov edx, dword [esp + 0x54]
cmp edi, esi
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x60], ebp
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x18]
jb 0x10041267
cmp ecx, esi
ja 0x1004127e
mov eax, dword [esp + 0x38]
cmp eax, dword [edx + 0x50]
jne 0x1004127e
mov esi, dword [esp + 0x24]
test esi, esi
jne 0x1004127a
jmp 0x1004126f
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x24]
test esi, esi
jb 0x100412d1
ja 0x1004127a
cmp eax, dword [edx + 0x50]
jbe 0x100412d1
mov esi, dword [esp + 0x50]
mov ecx, dword [esp + 0x28]
xor eax, eax
cmp dword [ecx], eax
jne 0x1004128c
mov ecx, esi
jmp 0x100412d5
cmp dword [edx + 0x4c], eax
jne 0x100412b5
mov eax, 0x2400
test dword [esp + 0x190], eax
jne 0x100412a9
cmp dword [esp + 0x1a0], 0
je 0x100412b5
lea ecx, [esp + 0x188]
call fcn.1003a15a
mov edx, dword [esp + 0x5c]
mov eax, dword [edx + 0xc]
test eax, eax
jle 0x1004477b
imul eax, eax, 0x14
lea ebp, [edx - 0x14]
add ebp, eax
jmp 0x1003fe6a
mov eax, dword [esp + 0x60]
sub ecx, dword [esp + 0x2c]
mov word [edx + 0x3a], ax
mov eax, dword [esp + 0x54]
mov dword [eax + 0x30], ecx
xor eax, eax
mov esi, dword [esp + 0x54]
cmp dword [esi + 0x4c], eax
jne 0x10041317
mov eax, 0x2400
test dword [esp + 0x190], eax
jne 0x10041307
cmp dword [esp + 0x1a0], 0
je 0x10041317
lea ecx, [esp + 0x188]
call fcn.1003a15a
mov esi, dword [esp + 0x54]
mov edx, dword [esp + 0x64]
jmp 0x10041325
xor eax, eax
mov edx, eax
mov dword [esp + 0x64], edx
movzx eax, word [esi + 0x3a]
cmp eax, dword [esp + 0x78]
jg 0x1004135d
cmp byte [ebp + 1], 0xf5
jne 0x1004134c
mov edx, dword [ebp + 0x10]
mov eax, 0x800
mov ecx, dword [esp + 0x30]
push eax
call fcn.1003a6ce
jmp 0x10040e0c
mov esi, dword [esp + 0x30]
jmp 0x100402b9
mov edx, dword [esi + edx*4 + 0x58]
mov dword [esp + 0x64], edx
mov ecx, dword [esp + 0x30]
mov eax, 0x2400
test word [ecx + 8], ax
je 0x10041379
call fcn.1003a12a
mov esi, dword [esp + 0x54]
mov edx, dword [esp + 0x64]
mov edi, dword [esp + 0x78]
mov ecx, dword [esp + 0x28]
mov eax, dword [esi + 0x54]
cmp eax, dword [ecx + edi*4 + 4]
mov edi, dword [esp + 0x48]
mov ecx, dword [esp + 0x30]
jb 0x10041438
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x78]
mov esi, dword [esi + 0x4c]
add esi, dword [edi + eax*4]
mov edi, dword [esp + 0x48]
mov dword [esp + 0x1c], esi
cmp edx, 0xc
jae 0x100413be
push ecx
mov ecx, esi
call fcn.1003d35c
jmp 0x10040e0c
mov al, byte [esp + 0x58]
lea esi, [edx - 0xc]
shr esi, 1
mov dword [esp + 0x3c], esi
mov dword [ecx + 0xc], esi
mov byte [ecx + 0xa], al
lea edx, [esi + 2]
cmp dword [ecx + 0x18], edx
jge 0x100413f7
xor eax, eax
inc eax
mov word [ecx + 8], ax
xor eax, eax
push eax
call fcn.10039e33
pop ecx
test eax, eax
jne 0x10041605
mov ecx, dword [esp + 0x30]
jmp 0x100413fd
mov eax, dword [ecx + 0x14]
mov dword [ecx + 0x10], eax
push esi
push dword [esp + 0x20]
push dword [ecx + 0x10]
call sub.VCRUNTIME140.dll_memcpy
mov esi, dword [esp + 0x3c]
xor edx, edx
mov ecx, dword [esp + 0x48]
add esp, 0xc
mov eax, dword [esi + 0x10]
mov byte [ecx + eax], dl
mov eax, dword [esi + 0x10]
mov byte [eax + ecx + 1], dl
mov eax, dword [esp + 0x64]
and eax, 1
mov ax, word [eax*2 + 0x1008d058]
jmp 0x10040d8c
mov al, byte [esp + 0x58]
mov byte [ecx + 0xa], al
movzx eax, word [ebp + 2]
mov edx, dword [esp + 0x64]
test al, 0xc0
je 0x10041459
cmp edx, 0xc
jb 0x10041455
test dl, 1
je 0x10041474
test al, al
js 0x10041474
mov eax, 0x80
cmp edx, eax
jb 0x10041469
lea eax, [edx - 0xc]
shr eax, 1
jmp 0x10041470
movzx eax, byte [edx + 0x1008cb98]
test eax, eax
jne 0x1004147f
push ecx
mov ecx, 0x100aaffc
jmp 0x100413b4
mov edx, dword [esp + 0x78]
push ecx
mov ecx, dword [esp + 0x58]
push eax
mov eax, dword [esp + 0x30]
mov ecx, dword [ecx + 0x28]
mov edx, dword [eax + edx*4]
call fcn.1003a9c7
mov ebx, eax
mov dword [esp + 0x20], ebx
pop ecx
pop ecx
test ebx, ebx
jne 0x10041620
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x64]
push esi
mov ecx, dword [esi + 0x10]
call fcn.1003d35c
mov eax, 0xefff
and word [esi + 8], ax
pop ecx
jmp 0x1003fe6a
mov eax, dword [ebp + 0x10]
imul esi, dword [ebp + 4], 0x28
mov dword [esp + 0x24], eax
mov al, byte [eax]
add esi, dword [esp + 0x20]
push dword [esp + 0x58]
mov dl, al
mov ecx, esi
call fcn.1003fbb6
pop ecx
mov ecx, dword [esp + 0x24]
cmp byte [ecx], 0x45
jne 0x10041507
movzx eax, word [esi + 8]
push 4
pop edx
test dl, al
je 0x10041507
and eax, 0xfffb
or eax, 0x20
mov word [esi + 8], ax
inc ecx
mov dword [esp + 0x24], ecx
mov al, byte [ecx]
test al, al
je 0x1003fe6a
add esi, 0x28
jmp 0x100414d9
imul edx, dword [ebp + 4], 0x28
xor eax, eax
mov esi, dword [ebp + 0x10]
mov ecx, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x60], eax
add edx, dword [esp + 0x20]
mov dword [esp + 0x50], eax
imul eax, dword [ebp + 8], 0x28
mov dword [esp + 0x28], ecx
movzx ecx, byte [edi + 0x93]
mov edi, dword [esp + 0x48]
mov dword [esp + 0x3c], edx
add eax, 0xffffffd8
mov dword [esp + 0x4c], ecx
add eax, edx
mov dword [esp + 0x1c], eax
imul eax, dword [ebp + 0xc], 0x28
add eax, dword [esp + 0x20]
mov dword [esp + 0x40], eax
test esi, esi
je 0x100415af
mov al, byte [esi]
lea edi, [edx + 8]
mov ebx, dword [esp + 0x58]
push ebx
lea ecx, [edi - 8]
mov dl, al
call fcn.1003fbb6
cmp byte [esi], 0x45
pop ecx
jne 0x1004159d
movzx eax, word [edi]
push 4
pop ecx
test cl, al
je 0x1004159d
and eax, 0xfffb
or eax, 0x20
mov word [edi], ax
inc esi
add edi, 0x28
mov al, byte [esi]
test al, al
jne 0x10041577
mov edi, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0x1c]
lea eax, [esp + 0x98]
mov edx, ecx
push eax
mov ecx, esi
call fcn.1003d0e3
pop ecx
mov ecx, 0x4000
mov dword [esp + 0x2c], eax
test word [esi + 8], cx
je 0x100416e4
test eax, eax
jne 0x100415e8
push 0xa
pop eax
mov dword [esp + 0x2c], eax
jmp 0x100416e4
mov eax, dword [esp + 0x38]
or eax, dword [esp + 0x30]
je 0x100416cc
mov ecx, esi
call fcn.10039fa8
test eax, eax
je 0x100416e0
mov esi, dword [esp + 0x14]
mov ecx, esi
call fcn.10024203
push str.out_of_memory
push edi
call fcn.1003af0d
pop ecx
pop ecx
push 7
pop ebx
xor edx, edx
mov esi, dword [esp + 0x14]
cmp byte [esi + 0x51], 0
je 0x1004162f
push 7
pop ebx
mov edi, dword [esp + 0x48]
cmp dword [edi + 0x7c], edx
jne 0x10041656
cmp ebx, 0xc0a
je 0x10041656
mov ecx, ebx
call fcn.1007becb
push eax
push 0x10094a6c
push edi
call fcn.1003af0d
add esp, 0xc
mov edx, ebx
mov dword [edi + 0x28], ebx
mov ecx, esi
call fcn.10026147
push dword [edi + 0x7c]
sub ebp, dword [esp + 0x60]
push dword [edi + 0xc0]
mov eax, ebp
push 0x14
pop ecx
cdq
idiv ecx
push eax
push str.statement_aborts_at__d:___s___s
push ebx
call fcn.10025979
add esp, 0x14
mov ecx, edi
call fcn.1003caeb
cmp ebx, 0xc0a
jne 0x1004169c
mov ecx, esi
call fcn.10024203
mov al, byte [esp + 0x6b]
xor ebx, ebx
inc ebx
test al, al
je 0x100416b2
movzx edx, al
mov ecx, esi
dec edx
call fcn.10051e91
mov eax, dword [esp + 0xac]
add dword [edi + 0xb4], eax
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1cc
ret
mov ecx, dword [esi]
mov eax, ecx
cdq
add dword [esp + 0x60], eax
adc dword [esp + 0x50], edx
sub dword [esp + 0x98], ecx
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x38]
add ecx, dword [esp + 0x98]
push 0
pop edx
adc dword [esp + 0x30], edx
mov dword [esp + 0x38], ecx
cmp eax, 0x7f
ja 0x10041704
xor eax, eax
inc eax
jmp 0x10041735
mov ecx, eax
mov dword [esp + 0x24], 1
shr ecx, 7
mov eax, ecx
or eax, edx
je 0x10041731
mov edi, dword [esp + 0x24]
shrd ecx, edx, 7
inc edi
shr edx, 7
mov eax, ecx
or eax, edx
jne 0x1004171b
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x48]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
add ecx, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x28], ecx
mov dword [esi + 0x1c], eax
cmp esi, dword [esp + 0x3c]
je 0x10041758
mov ecx, dword [esp + 0x4c]
sub esi, 0x28
jmp 0x100415b3
cmp ecx, 0x7e
jle 0x100417e3
mov eax, ecx
mov dword [esp + 0x2c], 1
cdq
mov esi, eax
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x10041795
mov edi, dword [esp + 0x2c]
shrd esi, edx, 7
inc edi
shr edx, 7
mov eax, esi
or eax, edx
jne 0x1004177f
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x48]
mov ecx, dword [esp + 0x28]
add ecx, dword [esp + 0x2c]
mov eax, ecx
mov dword [esp + 0x28], ecx
cdq
mov esi, eax
mov dword [esp + 0x24], 1
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x100417d5
mov edi, dword [esp + 0x24]
shrd esi, edx, 7
inc edi
shr edx, 7
mov eax, esi
or eax, edx
jne 0x100417bf
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x48]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
cmp eax, dword [esp + 0x24]
jge 0x100417e8
inc ecx
mov dword [esp + 0x28], ecx
mov esi, dword [esp + 0x40]
mov eax, ecx
cdq
mov ecx, edx
mov dword [esp + 0x2c], eax
mov edx, dword [esp + 0x38]
add edx, eax
mov dword [esp + 0x4c], ecx
mov eax, dword [esp + 0x30]
adc eax, ecx
mov dword [esp + 0x38], edx
mov ecx, edx
add ecx, dword [esp + 0x60]
adc eax, dword [esp + 0x50]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0x18]
cdq
cmp dword [esp + 0x30], edx
jg 0x1004182f
jl 0x10041827
cmp ecx, eax
ja 0x1004182f
mov eax, dword [esi + 0x14]
mov dword [esi + 0x10], eax
jmp 0x10041864
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x6c]
cdq
cmp dword [esp + 0x30], edx
jg 0x10043d61
jl 0x1004184b
cmp ecx, eax
ja 0x10043d61
mov eax, dword [esp + 0x38]
mov ecx, esi
mov edx, eax
mov dword [esp + 0x38], eax
call fcn.10039f00
test eax, eax
jne 0x10041605
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x60]
mov dword [esi + 0xc], eax
push 0x10
pop eax
mov word [esi + 8], ax
mov eax, ecx
or eax, dword [esp + 0x50]
je 0x10041889
mov eax, 0x4010
mov dword [esi], ecx
mov word [esi + 8], ax
mov ecx, dword [esp + 0x28]
mov edx, 0x80
mov esi, dword [esi + 0x10]
lea eax, [esi + ecx]
mov dword [esp + 0x24], eax
cmp ecx, edx
jae 0x100418a7
xor eax, eax
mov byte [esi], cl
inc eax
jmp 0x100418bd
push dword [esp + 0x4c]
mov ecx, esi
push dword [esp + 0x30]
call fcn.10026db4
pop ecx
pop ecx
mov edx, 0x80
mov edi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x1c]
movzx eax, al
add esi, eax
mov eax, dword [edi + 0x1c]
mov dword [esp + 0x40], eax
cmp eax, edx
jae 0x100418dc
mov byte [esi], al
xor eax, eax
inc eax
jmp 0x100418e9
xor ecx, ecx
push ecx
push eax
mov ecx, esi
call fcn.10026db4
pop ecx
pop ecx
push dword [esp + 0x40]
mov ecx, dword [esp + 0x28]
mov edx, edi
movzx eax, al
add esi, eax
call fcn.1003d249
add dword [esp + 0x28], eax
add edi, 0x28
mov edx, 0x80
pop ecx
cmp edi, ebx
jbe 0x100418ca
jmp 0x100400b3
mov ecx, dword [ebp + 4]
lea edx, [esp + 0x100]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x28]
xor eax, eax
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], eax
call fcn.10038767
mov ebx, eax
mov dword [esp + 0x18], ebx
test ebx, ebx
jne 0x10041620
mov edx, ebp
mov ecx, edi
call fcn.1003fce9
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x104]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x1003fe6e
mov ecx, dword [ebp + 4]
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x24], eax
test ecx, ecx
jne 0x10041a59
cmp dword [esi + 0xb4], ecx
jg 0x100447a0
test eax, eax
jne 0x10041994
mov esi, ecx
jmp 0x100419a8
mov esi, eax
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x10041999
sub esi, ecx
and esi, 0x3fffffff
mov ecx, dword [esp + 0x14]
xor edx, edx
mov eax, dword [ecx + 0x1bc]
add eax, dword [ecx + 0x1b8]
push eax
call fcn.1006c161
mov ebx, eax
mov dword [esp + 0x1c], ebx
pop ecx
test ebx, ebx
jne 0x10041620
xor ecx, ecx
lea eax, [esi + 0x21]
push ecx
mov ecx, dword [esp + 0x18]
push eax
call fcn.10023fa8
mov dword [esp + 0x48], eax
pop ecx
pop ecx
test eax, eax
je 0x1003fe6a
lea ecx, [esi + 1]
push ecx
push dword [esp + 0x28]
lea edx, [eax + 0x20]
push edx
mov dword [eax], edx
call sub.VCRUNTIME140.dll_memcpy
mov esi, dword [esp + 0x20]
add esp, 0xc
cmp byte [esi + 0x4f], bl
je 0x10041a17
xor eax, eax
mov byte [esi + 0x57], 1
mov byte [esi + 0x4f], al
jmp 0x10041a1d
inc dword [esi + 0x1b8]
mov edx, dword [esp + 0x40]
mov eax, dword [esi + 0x1b0]
mov dword [edx + 0x18], eax
mov eax, dword [esi + 0x1c0]
mov ecx, dword [esi + 0x1c4]
mov dword [esi + 0x1b0], edx
mov dword [edx + 8], eax
mov dword [edx + 0xc], ecx
mov eax, dword [esi + 0x1c8]
mov ecx, dword [esi + 0x1cc]
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], ecx
jmp 0x1003fe6e
mov esi, dword [esi + 0x1b0]
xor ecx, ecx
mov dword [esp + 0x28], ecx
test esi, esi
je 0x100447dc
mov ecx, dword [esi]
mov edx, eax
call fcn.100262c7
test eax, eax
je 0x10041a87
inc dword [esp + 0x28]
mov esi, dword [esi + 0x18]
mov eax, dword [esp + 0x24]
jmp 0x10041a65
mov ecx, dword [esp + 0x14]
xor eax, eax
mov edx, dword [esp + 0x30]
cmp dword [ecx + 0xb4], eax
jle 0x10041aa2
cmp edx, 1
je 0x100447b7
lea eax, [esi + 0x18]
cmp dword [eax], 0
mov dword [esp + 0x4c], eax
jne 0x10041b0e
cmp byte [ecx + 0x57], 0
je 0x10041b0e
xor eax, eax
inc eax
mov dword [esp + 0x2c], eax
cmp edx, eax
jne 0x10041b1c
mov edx, eax
mov ecx, edi
call fcn.1003ca90
mov ebx, eax
test ebx, ebx
jne 0x100416b2
mov ebx, dword [esp + 0x14]
mov ecx, edi
mov byte [ebx + 0x4f], 1
call fcn.1003caeb
push 5
pop ecx
cmp eax, ecx
je 0x100447be
xor eax, eax
mov dword [esp + 0x2c], 1
mov byte [ebx + 0x57], al
mov eax, dword [esp + 0x14]
mov ebx, dword [edi + 0x28]
add eax, 0x1b8
mov dword [esp + 0x18], ebx
jmp 0x10041c59
xor eax, eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x28], eax
lea eax, [ecx + 0x1b8]
mov ecx, dword [eax]
sub ecx, dword [esp + 0x28]
dec ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x28], ecx
cmp edx, 2
jne 0x10041bb5
mov eax, dword [esp + 0x14]
xor edi, edi
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x14]
mov eax, dword [eax + 0x18]
and eax, 1
cmp dword [edi + 0x14], 0
mov dword [esp + 0x24], eax
jle 0x10041bbb
mov ecx, eax
xor ecx, 1
xor eax, eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], eax
push ecx
mov ecx, edi
mov edx, 0x204
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx + eax + 4]
call fcn.10033dcb
mov ebx, eax
mov dword [esp + 0x1c], ebx
pop ecx
test ebx, ebx
jne 0x10041620
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x1c]
push 0x10
pop edx
add eax, edx
inc ecx
mov edx, edi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x3c], eax
cmp ecx, dword [edx + 0x14]
mov ecx, dword [esp + 0x40]
jl 0x10041b63
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
jmp 0x10041bbb
xor eax, eax
mov dword [esp + 0x24], eax
xor edi, edi
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x14]
cmp dword [edi + 0x14], 0
mov edi, dword [esp + 0x48]
jle 0x10041c20
xor eax, eax
mov dword [esp + 0x3c], eax
push ecx
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx + eax + 4]
call fcn.10033f03
mov ebx, eax
mov dword [esp + 0x1c], ebx
pop ecx
test ebx, ebx
jne 0x10041620
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x1c]
push 0x10
pop edx
add eax, edx
inc ecx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x3c], eax
cmp ecx, dword [edx + 0x14]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
jl 0x10041bd5
mov eax, dword [esp + 0x24]
test eax, eax
je 0x10041c5d
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 4]
jmp 0x10041c42
mov eax, dword [ecx + 0x98]
and eax, 0xfffffffd
or eax, 1
mov dword [ecx + 0x98], eax
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x10041c2d
mov ecx, edx
call fcn.10051ee9
mov eax, dword [esp + 0x14]
or dword [eax + 0x18], 1
mov eax, dword [esp + 0x50]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x1b0]
cmp ecx, esi
je 0x10041c97
mov edi, dword [esp + 0x50]
mov ebx, eax
mov eax, dword [ecx + 0x18]
mov edx, ecx
mov ecx, ebx
mov dword [ebx + 0x1b0], eax
call fcn.10023dc7
dec dword [edi]
mov ecx, dword [ebx + 0x1b0]
cmp ecx, esi
jne 0x10041c71
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x30]
cmp edx, 1
jne 0x10041ccc
mov ecx, dword [esp + 0x14]
mov edx, esi
mov eax, dword [esp + 0x4c]
mov esi, ecx
mov eax, dword [eax]
mov dword [ecx + 0x1b0], eax
call fcn.10023dc7
cmp dword [esp + 0x2c], 0
jne 0x10041d23
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x30]
dec dword [eax]
jmp 0x10041d08
cmp dword [esp + 0x2c], 0
mov edi, dword [esp + 0x14]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [edi + 0x1c0], eax
mov eax, edi
mov dword [eax + 0x1c4], ecx
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov esi, edi
mov edi, dword [esp + 0x48]
mov dword [esi + 0x1c8], eax
mov dword [esi + 0x1cc], ecx
je 0x10041d08
cmp edx, 2
jne 0x10041d23
mov ecx, dword [esp + 0x28]
push ecx
mov ecx, esi
call fcn.1006c161
mov ebx, eax
mov dword [esp + 0x1c], ebx
pop ecx
test ebx, ebx
jne 0x10041620
test ebx, ebx
jne 0x10041620
jmp 0x1003fe6e
mov edx, dword [ebp + 8]
xor ecx, ecx
mov dword [esp + 0x24], ecx
test edx, edx
je 0x10041d4d
mov eax, dword [esi + 0x20]
and eax, 0x100000
or eax, ecx
jne 0x100447f3
mov ecx, dword [ebp + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
test esi, esi
je 0x10041e14
lea eax, [esp + 0x24]
mov ecx, esi
push eax
call fcn.1003343d
mov ebx, eax
mov dword [esp + 0x1c], ebx
pop ecx
test ebx, ebx
jne 0x100447f7
xor edx, edx
cmp dword [ebp + 8], edx
je 0x10041e1c
mov eax, 0x80
test byte [edi + 0x98], al
je 0x10041e1c
mov ecx, dword [esp + 0x14]
cmp byte [ecx + 0x4f], dl
je 0x10041daa
cmp dword [ecx + 0xb0], 1
jle 0x10041e22
mov eax, dword [edi + 0x30]
test eax, eax
jne 0x10041dc6
mov eax, dword [ecx + 0x1b8]
inc dword [ecx + 0x1bc]
add eax, dword [ecx + 0x1bc]
mov dword [edi + 0x30], eax
dec eax
xor edx, edx
push eax
call fcn.1006c161
mov ebx, eax
mov dword [esp + 0x1c], ebx
pop ecx
test ebx, ebx
jne 0x10041dea
mov edx, dword [edi + 0x30]
mov ecx, esi
call fcn.10033ee7
mov ebx, eax
mov dword [esp + 0x18], ebx
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0x1c0]
mov ecx, dword [esi + 0x1c4]
mov dword [edi + 0x48], eax
mov dword [edi + 0x4c], ecx
mov eax, dword [esi + 0x1c8]
mov ecx, dword [esi + 0x1cc]
mov dword [edi + 0x50], eax
mov dword [edi + 0x54], ecx
jmp 0x10041e18
mov esi, dword [esp + 0x14]
xor edx, edx
jmp 0x10041e24
mov esi, dword [esp + 0x14]
jmp 0x10041e24
mov esi, ecx
cmp word [ebp + 2], dx
je 0x10041e4f
mov eax, dword [esp + 0x24]
cmp eax, dword [ebp + 0xc]
jne 0x10044817
mov ecx, dword [ebp + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax + 4]
cmp eax, dword [ebp + 0x10]
jne 0x10044817
test ebx, ebx
jne 0x10041622
jmp 0x1003fe6e
mov ecx, dword [esi + 0x10]
lea eax, [esp + 0x120]
mov edx, dword [ebp + 0xc]
push eax
mov eax, dword [ebp + 4]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.10038709
pop ecx
mov edx, ebp
mov ecx, edi
call fcn.1003fce9
mov ecx, eax
mov eax, dword [esp + 0x120]
jmp 0x1003ff12
mov eax, dword [esp + 0x14]
mov esi, dword [ebp + 4]
push dword [ebp + 0xc]
mov edx, dword [ebp + 8]
shl esi, 4
add esi, dword [eax + 0x10]
mov ecx, dword [esi + 4]
call fcn.10038733
xor edx, edx
mov ebx, eax
inc edx
mov dword [esp + 0x1c], ebx
pop ecx
cmp dword [ebp + 8], edx
jne 0x10041ecb
mov ecx, dword [esi + 0xc]
mov esi, dword [esp + 0x14]
mov eax, dword [ebp + 0xc]
mov dword [ecx], eax
or dword [esi + 0x18], edx
jmp 0x10041ede
cmp dword [ebp + 8], 2
jne 0x10041eda
mov ecx, dword [esi + 0xc]
mov al, byte [ebp + 0xc]
mov byte [ecx + 0x4c], al
mov esi, dword [esp + 0x14]
cmp dword [ebp + 4], edx
jne 0x10041d23
mov ecx, dword [esi + 4]
jmp 0x10041f00
mov eax, dword [ecx + 0x98]
and eax, 0xfffffffd
or eax, edx
mov dword [ecx + 0x98], eax
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x10041eec
and dword [edi + 0x98], 0xfffffffc
jmp 0x10041d23
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x10041f29
mov eax, dword [esi + 0x34]
cmp eax, dword [ebp + 8]
je 0x10042059
mov cl, byte [esp + 0x37]
mov eax, dword [edi + 0x98]
and al, 3
cmp al, 1
je 0x1004486a
mov esi, dword [ebp + 0xc]
xor eax, eax
mov ebx, dword [esp + 0x14]
mov edx, dword [ebp + 8]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x24], eax
mov eax, esi
shl eax, 4
add eax, dword [ebx + 0x10]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x40], esi
mov ebx, dword [eax + 4]
mov dword [esp + 0x4c], ebx
cmp cl, 0x6d
jne 0x10041f91
mov eax, dword [eax + 0xc]
movzx ebx, word [ebp + 2]
push 8
pop ecx
mov al, byte [eax + 0x4c]
and ebx, ecx
push 4
pop ecx
or ebx, ecx
cmp al, byte [edi + 0x93]
jae 0x10041f95
mov byte [edi + 0x93], al
jmp 0x10041f95
xor eax, eax
mov ebx, eax
push 0x10
pop eax
test byte [ebp + 2], al
je 0x10041fb5
imul esi, edx, 0x28
add esi, dword [esp + 0x20]
mov ecx, esi
call fcn.1003a320
mov eax, dword [esi]
mov esi, dword [esp + 0x40]
mov dword [esp + 0x1c], eax
mov al, byte [ebp + 1]
cmp al, 0xf7
jne 0x10041fc9
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x24], eax
movzx eax, word [eax + 8]
jmp 0x10041fd6
cmp al, 0xfd
jne 0x10041fd2
mov eax, dword [ebp + 0x10]
jmp 0x10041fd6
mov eax, dword [esp + 0x3c]
mov edx, dword [ebp + 4]
xor ecx, ecx
push ecx
push esi
push eax
mov ecx, edi
call fcn.1003fa24
mov esi, eax
add esp, 0xc
test esi, esi
je 0x10041605
push 4
xor ecx, ecx
pop eax
or dword [esi + 8], eax
inc ecx
mov eax, dword [esp + 0x1c]
mov byte [esi + 2], cl
mov dword [esi + 0x34], eax
cmp eax, ecx
jge 0x1004202c
push 0x100995b4
push 0x10854
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.10025979
add esp, 0x14
push 0xb
pop ebx
jmp 0x10042044
push dword [esi + 0x28]
mov ecx, dword [esp + 0x50]
mov edx, eax
push dword [esp + 0x28]
push ebx
call fcn.10033f78
add esp, 0xc
mov ebx, eax
mov eax, dword [esp + 0x24]
mov dword [esi + 0x2c], eax
cmp byte [ebp + 1], 0xf7
mov dword [esp + 0x18], ebx
setne al
mov byte [esi + 4], al
mov cl, byte [ebp + 2]
mov eax, dword [esi + 0x28]
and cl, 3
mov byte [eax + 3], cl
jmp 0x100409c6
mov ecx, dword [ebp + 8]
mov eax, dword [edi + 0x60]
mov edx, dword [ebp + 4]
mov esi, dword [eax + ecx*4]
xor eax, eax
push eax
push 0xffffffffffffffff
mov ecx, edi
movsx eax, word [esi + 0x38]
push eax
call fcn.1003fa24
mov edx, eax
add esp, 0xc
test edx, edx
je 0x10041605
mov ecx, dword [edx + 8]
xor eax, eax
inc eax
or ecx, eax
mov byte [edx + 2], al
mov dword [edx + 8], ecx
mov eax, dword [esi + 0x2c]
mov dword [edx + 0x2c], eax
mov dword [esp + 0x40], eax
mov al, byte [esi + 4]
mov byte [edx + 4], al
mov ebx, dword [esi + 0x34]
mov dword [edx + 0x34], ebx
mov eax, dword [esi + 8]
xor eax, ecx
and eax, 4
xor eax, ecx
mov dword [edx + 8], eax
mov eax, dword [edx + 0x28]
cmp ebx, 1
jge 0x100420f0
push 0x100995b4
push 0x10854
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.10025979
add esp, 0x14
push 0xb
pop ebx
jmp 0x10042108
mov ecx, dword [esi + 0xc]
mov edx, ebx
push eax
push dword [esp + 0x44]
push 4
pop eax
push eax
call fcn.10033f78
add esp, 0xc
mov ebx, eax
mov dword [esp + 0x18], ebx
jmp 0x1003fe6a
mov edx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + edx*4]
test esi, esi
je 0x1004214b
mov ecx, dword [esi + 0xc]
xor edx, edx
mov dword [esi + 0x10], edx
mov dword [esi + 0x14], edx
mov dword [esi + 0x1c], edx
test ecx, ecx
je 0x10042273
push edx
mov edx, dword [esi + 0x34]
call fcn.10038526
mov ebx, eax
xor edx, edx
pop ecx
mov dword [esp + 0x18], ebx
jmp 0x10042273
xor eax, eax
mov ecx, edi
push eax
push 0xffffffffffffffff
push dword [ebp + 8]
call fcn.1003fa24
mov esi, eax
add esp, 0xc
test esi, esi
je 0x10041605
or dword [esi + 8], 1
lea ecx, [esi + 0xc]
movzx eax, word [ebp + 2]
xor edx, edx
push 0x41e
or eax, 5
push eax
mov eax, dword [esp + 0x1c]
push ecx
push eax
mov ecx, dword [eax]
call fcn.10032c63
mov ebx, eax
add esp, 0x10
xor edx, edx
mov dword [esp + 0x18], ebx
test ebx, ebx
jne 0x10042259
mov ecx, dword [esi + 0xc]
inc edx
push eax
call fcn.1003343d
mov ebx, eax
mov dword [esp + 0x1c], ebx
pop ecx
test ebx, ebx
jne 0x10042257
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x40], eax
mov dword [esi + 0x2c], eax
test eax, eax
je 0x10042230
movzx eax, word [ebp + 2]
lea edx, [esi + 0x34]
mov ecx, dword [esi + 0xc]
or eax, 2
push eax
call fcn.100381a5
mov ebx, eax
mov dword [esp + 0x1c], ebx
pop ecx
test ebx, ebx
jne 0x10042229
mov edx, dword [esi + 0x34]
cmp edx, 1
jge 0x1004220d
push 0x100995b4
push 0x10854
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.10025979
add esp, 0x14
push 0xb
pop ebx
jmp 0x10042225
push dword [esi + 0x28]
mov ecx, dword [esi + 0xc]
push dword [esp + 0x44]
push 4
pop eax
push eax
call fcn.10033f78
add esp, 0xc
mov ebx, eax
mov dword [esp + 0x18], ebx
xor edx, edx
mov byte [esi + 4], dl
jmp 0x10042259
push dword [esi + 0x28]
xor ecx, ecx
xor eax, eax
push ecx
push 4
inc eax
pop ecx
push ecx
mov ecx, dword [esi + 0xc]
mov edx, eax
mov dword [esi + 0x34], eax
call fcn.10033f78
mov ebx, eax
mov byte [esi + 4], 1
add esp, 0xc
mov dword [esp + 0x18], ebx
xor edx, edx
xor ecx, ecx
push 8
pop eax
cmp word [ebp + 2], ax
mov eax, dword [esi + 8]
setne cl
and eax, 0xfffffffb
shl ecx, 2
or ecx, eax
mov dword [esi + 8], ecx
test ebx, ebx
jne 0x10041622
xor eax, eax
inc eax
mov byte [esi + 2], al
jmp 0x100402d7
mov edx, dword [ebp + 4]
mov ecx, edi
push eax
push 0xffffffffffffffff
push dword [ebp + 8]
call fcn.1003fa24
add esp, 0xc
test eax, eax
je 0x10041609
mov ecx, dword [ebp + 0x10]
mov dword [eax + 0x2c], ecx
mov ecx, esi
mov edx, dword [ebp + 0xc]
push eax
call fcn.10045b00
pop ecx
mov ebx, eax
mov dword [esp + 0x18], ebx
jmp 0x10041d23
mov eax, dword [edi + 0x60]
mov ecx, dword [ebp + 4]
mov edx, dword [eax + ecx*4]
mov edi, dword [edx + 0x10]
mov ecx, edi
mov esi, dword [edx + 0x14]
add ecx, 1
mov eax, esi
mov dword [edx + 0x10], ecx
adc eax, 0
or edi, esi
mov dword [edx + 0x14], eax
je 0x100446cf
jmp 0x100400b7
mov edx, dword [ebp + 4]
mov ecx, edi
push 3
push 0xffffffffffffffff
push dword [ebp + 0xc]
call fcn.1003fa24
add esp, 0xc
test eax, eax
je 0x10041609
xor edx, edx
inc edx
mov byte [eax + 2], dl
mov ecx, dword [ebp + 8]
mov dword [eax + 0x20], ecx
mov byte [eax + 4], dl
mov dword [eax + 0x28], 0x100aae98
jmp 0x1003fe6e
mov eax, dword [ebp + 4]
mov ecx, edi
mov edx, dword [edi + 0x60]
mov edx, dword [edx + eax*4]
call fcn.1003c19b
mov ecx, dword [ebp + 4]
xor edx, edx
mov eax, dword [edi + 0x60]
mov dword [eax + ecx*4], edx
jmp 0x1003fe6e
mov eax, dword [edi + 0x60]
mov ecx, dword [ebp + 4]
mov ecx, dword [eax + ecx*4]
xor eax, eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x2c], eax
mov word [ecx + 2], ax
mov dword [ecx + 0x1c], eax
cmp byte [ecx + 4], al
je 0x1004245d
imul esi, dword [ebp + 0xc], 0x28
add esi, dword [esp + 0x20]
mov al, byte [esi + 8]
and al, 0x2e
cmp al, 2
jne 0x1004237e
xor edx, edx
mov ecx, esi
call fcn.1003fb39
mov ecx, esi
call fcn.1003a209
movzx ecx, word [esi + 8]
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], edx
test cl, 0x24
jne 0x1004240f
test cl, 8
jne 0x100423d8
test cl, 1
jne 0x100446cf
cmp dword [esp + 0x30], 0x18
jae 0x100446cf
mov esi, dword [esp + 0x24]
lea edx, [esp + 0x6c]
mov ecx, dword [esi + 0x28]
call fcn.10034772
mov ebx, eax
mov dword [esp + 0x18], ebx
test ebx, ebx
jne 0x10041620
jmp 0x10042571
fild qword [esp + 0xd0]
fld qword [esi]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x100423f9
mov eax, dword [esp + 0x30]
fstp st(0)
fstp st(0)
test al, 1
je 0x1004240f
dec eax
jmp 0x1004240b
fcompp
fnstsw ax
test ah, 0x41
jne 0x1004240f
mov eax, dword [esp + 0x30]
test al, 1
jne 0x1004240f
inc eax
mov dword [esp + 0x30], eax
mov esi, dword [esp + 0x24]
lea eax, [esp + 0x6c]
push eax
xor eax, eax
add esi, 0x28
push eax
push edx
push dword [esp + 0xdc]
mov ecx, dword [esi]
xor edx, edx
call fcn.100347c6
mov ecx, dword [esp + 0xe0]
mov ebx, eax
mov eax, dword [esp + 0x34]
add esp, 0x10
mov dword [esp + 0x18], ebx
mov dword [eax + 0x40], ecx
mov ecx, dword [esp + 0xd4]
mov dword [eax + 0x44], ecx
test ebx, ebx
jne 0x10041620
jmp 0x100424f4
lea esi, [ecx + 0x28]
mov eax, dword [esi]
push 0
mov al, byte [eax + 3]
and al, 2
mov byte [esp + 0x3b], al
pop eax
setne al
mov dword [esp + 0x2c], eax
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x128], eax
mov ax, word [ebp + 0x10]
mov word [esp + 0x130], ax
mov eax, edx
and al, 1
lea edx, [esp + 0x128]
neg al
sbb al, al
xor ecx, ecx
and al, 0xfe
mov byte [esp + 0x136], cl
inc al
mov byte [esp + 0x132], al
imul eax, dword [ebp + 0xc], 0x28
add eax, dword [esp + 0x20]
mov dword [esp + 0x12c], eax
lea eax, [esp + 0x6c]
push eax
push ecx
push ecx
push ecx
mov ecx, dword [esi]
call fcn.100347c6
mov ebx, eax
add esp, 0x10
mov dword [esp + 0x18], ebx
test ebx, ebx
jne 0x10041620
cmp byte [esp + 0x37], al
je 0x100424f4
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x2c], eax
cmp byte [esp + 0x136], bl
je 0x10042571
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x6c]
cmp eax, 0x18
jl 0x10042524
test ecx, ecx
js 0x10042514
jne 0x1004250c
cmp eax, 0x19
je 0x10042514
xor eax, eax
mov dword [esp + 0x6c], eax
jmp 0x1004257c
xor eax, eax
push eax
mov dword [esp + 0x70], eax
push dword [esi]
call fcn.10034cbe
jmp 0x1004254c
test ecx, ecx
jg 0x1004253e
jne 0x1004252f
cmp eax, 0x16
je 0x1004253e
mov eax, dword [esi]
xor ecx, ecx
cmp byte [eax], cl
setne cl
mov dword [esp + 0x6c], ecx
jmp 0x10042571
xor eax, eax
push eax
mov dword [esp + 0x70], eax
push dword [esi]
call fcn.10034dce
mov ebx, eax
mov dword [esp + 0x20], ebx
pop ecx
pop ecx
test ebx, ebx
je 0x10042571
cmp ebx, 0x65
jne 0x10041620
xor eax, eax
mov dword [esp + 0x6c], 1
mov ebx, eax
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x6c], 0
jne 0x100446cf
cmp dword [esp + 0x2c], 0
mov esi, dword [esp + 0x14]
je 0x1003fe6e
push 0x14
pop eax
add ebp, eax
jmp 0x1003fe6e
mov eax, dword [edi + 0x60]
mov ecx, dword [ebp + 4]
push 8
pop edx
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebp + 8]
shl eax, 3
xor eax, dword [ecx + 8]
and eax, edx
xor dword [ecx + 8], eax
jmp 0x1003fe6e
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
test byte [eax + 8], 8
jne 0x1003fe6e
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
imul esi, dword [ebp + 0xc], 0x28
mov ebx, dword [eax + ecx*4]
xor ecx, ecx
mov dword [esp + 0x1c], ebx
add esi, dword [esp + 0x20]
cmp dword [ebp + 0x10], ecx
jle 0x10042611
mov eax, dword [ebx + 0x2c]
lea ebx, [esp + 0x178]
mov dword [esp + 0x178], eax
mov ax, word [ebp + 0x10]
mov dword [esp + 0x17c], esi
mov esi, dword [esp + 0x1c]
mov word [esp + 0x180], ax
mov dword [esp + 0x3c], ecx
jmp 0x10042658
mov eax, 0x4000
test word [esi + 8], ax
je 0x1004262b
mov ecx, esi
call fcn.10039fa8
test eax, eax
jne 0x10041605
mov ecx, dword [ebx + 0x2c]
call fcn.1003d4ec
mov ebx, eax
mov dword [esp + 0x3c], ebx
test ebx, ebx
je 0x10041605
mov edx, dword [esi + 0xc]
push ebx
push dword [esi + 0x10]
mov esi, dword [esp + 0x24]
mov ecx, dword [esi + 0x2c]
call fcn.1003d542
pop ecx
pop ecx
xor ecx, ecx
mov byte [ebx + 0xa], cl
cmp byte [ebp], 0x1b
mov dword [esp + 0x1c], ecx
jne 0x1004268c
movzx edx, word [ebx + 8]
test edx, edx
je 0x1004268a
mov eax, dword [ebx + 4]
add eax, 8
test byte [eax], 1
jne 0x10042682
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x10042673
jmp 0x1004268a
mov dword [esp + 0x1c], 1
xor ecx, ecx
lea eax, [esp + 0xcc]
mov edx, ebx
push eax
push ecx
push ecx
push ecx
mov ecx, dword [esi + 0x28]
call fcn.100347c6
mov ebx, eax
add esp, 0x10
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x18], ebx
test eax, eax
je 0x100426bd
mov ecx, dword [esp + 0x14]
mov edx, eax
call fcn.10023dc7
test ebx, ebx
jne 0x10041620
mov eax, dword [esp + 0xcc]
xor ecx, ecx
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0xcc]
test eax, eax
sete cl
test eax, eax
setne al
xor edx, edx
mov byte [esi + 2], al
mov byte [esi + 3], dl
mov dword [esi + 0x1c], edx
cmp byte [ebp], 0x1d
je 0x10040c23
cmp dword [esp + 0x1c], edx
jne 0x100446cf
test ecx, ecx
je 0x100446cf
jmp 0x1003fe6a
imul esi, dword [ebp + 0xc], 0x28
add esi, dword [esp + 0x20]
movzx eax, word [esi + 8]
mov ecx, eax
mov dword [esp + 0x40], ecx
test al, 0x24
jne case.0x1003fdaf.31
push dword [esp + 0x58]
mov dl, 0x43
mov ecx, esi
call fcn.1003fbb6
movzx eax, word [esi + 8]
shr eax, 2
pop ecx
mov ecx, dword [esp + 0x40]
not eax
mov word [esi + 8], cx
test al, 1
jne 0x100446cf
mov eax, dword [edi + 0x60]
xor edx, edx
mov ecx, dword [ebp + 4]
mov edi, dword [esp + 0x20]
mov ebx, dword [eax + ecx*4]
imul eax, dword [ebp + 0xc], 0x28
mov ecx, dword [ebx + 0x28]
mov dword [esp + 0x9c], edx
mov esi, dword [eax + edi]
mov edi, dword [eax + edi + 4]
lea eax, [esp + 0x9c]
push eax
push edx
push edi
push esi
call fcn.100347c6
xor edx, edx
mov dword [ebx + 0x40], esi
mov dword [ebx + 0x44], edi
add esp, 0x10
mov word [ebx + 2], dx
mov dword [ebx + 0x1c], edx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x9c]
mov dword [ebx + 0x20], eax
cmp dword [esp + 0x9c], edx
je 0x100427ba
cmp dword [ebp + 8], edx
je 0x10044874
mov ebx, dword [esp + 0x18]
jmp 0x100446cf
mov ebx, dword [esp + 0x18]
test ebx, ebx
jne 0x10041622
jmp 0x100400b7
mov edx, ebp
mov ecx, edi
call fcn.1003fce9
mov edx, dword [ebp + 4]
mov ecx, dword [edi + 0x60]
push 0
mov ecx, dword [ecx + edx*4]
mov edx, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x14]
mov dword [eax + 4], ecx
mov dword [eax], edx
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
pop ecx
add dword [eax + 0x10], 1
adc dword [eax + 0x14], ecx
jmp 0x1003fe6e
xor eax, eax
mov edx, ebp
mov ecx, edi
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x2c], eax
call fcn.1003fce9
mov edx, dword [ebp + 4]
mov ecx, dword [edi + 0x60]
mov dword [esp + 0x40], eax
mov esi, dword [ecx + edx*4]
mov dword [esp + 0x24], esi
test byte [esi + 8], 2
jne 0x1004289d
mov ecx, dword [esi + 0x28]
lea edx, [esp + 0x2c]
call fcn.10034772
mov ebx, eax
mov dword [esp + 0x18], ebx
test ebx, ebx
jne 0x10041620
cmp dword [esp + 0x2c], eax
je 0x1004285c
mov dword [esp + 0x70], 1
mov dword [esp + 0x74], eax
jmp 0x1004289d
mov esi, dword [esi + 0x28]
mov ecx, esi
call fcn.10034079
mov ecx, dword [esi + 0x24]
mov eax, dword [esi + 0x20]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ecx
cmp ecx, 0x7fffffff
jl 0x1004288d
jg 0x10042883
cmp eax, 0xffffffff
jb 0x1004288d
mov eax, dword [esp + 0x24]
or dword [eax + 8], 2
jmp 0x1004289d
add eax, 1
push 0
pop edx
adc ecx, edx
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ecx
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x1004292c
mov eax, dword [edi + 0xc8]
test eax, eax
jne 0x10042910
imul esi, edx, 0x28
add esi, dword [esp + 0x20]
mov ecx, esi
call fcn.1003a320
mov ecx, dword [esi]
mov edx, dword [esi + 4]
cmp ecx, 0xffffffff
jne 0x100428d6
cmp edx, 0x7fffffff
je 0x10044883
mov eax, dword [esp + 0x24]
test byte [eax + 8], 2
jne 0x10044883
add ecx, 1
push 0
pop eax
adc edx, eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x1c], eax
cmp eax, edx
jg 0x1004291f
jl 0x10042902
mov eax, dword [esp + 0x70]
cmp eax, ecx
jae 0x10042923
mov eax, ecx
mov dword [esp + 0x74], edx
mov dword [esp + 0x70], eax
jmp 0x10042927
mov eax, ecx
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x1004290e
imul esi, edx, 0x28
add esi, dword [eax + 0x10]
jmp 0x100428b9
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x1c]
mov dword [esi], eax
mov dword [esi + 4], edx
mov esi, dword [esp + 0x24]
test byte [esi + 8], 2
je 0x100429a4
xor ebx, ebx
mov dword [esp + 0x1c], ebx
lea eax, [esp + 0x70]
push eax
push 8
pop eax
push eax
call fcn.100259ac
mov eax, dword [esp + 0x7c]
lea edx, [esp + 0x34]
mov ecx, dword [esp + 0x78]
and eax, 0x3fffffff
add ecx, 1
push edx
adc eax, ebx
mov dword [esp + 0x7c], ecx
push ebx
push eax
mov dword [esp + 0x88], eax
xor edx, edx
push ecx
mov ecx, dword [esi + 0x28]
call fcn.100347c6
mov ebx, eax
add esp, 0x18
mov dword [esp + 0x18], ebx
test ebx, ebx
jne 0x10041620
cmp dword [esp + 0x2c], eax
jne 0x100429a4
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x1c], eax
cmp eax, 0x64
jge 0x10044883
jmp 0x1004293c
mov edx, dword [esp + 0x40]
xor eax, eax
mov byte [esi + 3], al
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x1003fe6a
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
imul edx, dword [ebp + 8], 0x28
mov esi, dword [eax + ecx*4]
imul eax, dword [ebp + 0xc], 0x28
mov ecx, dword [esp + 0x20]
add edx, dword [esp + 0x20]
cmp byte [ebp + 1], 0xfa
mov ebx, dword [eax + ecx]
mov eax, dword [eax + ecx + 4]
mov dword [esp + 0x40], eax
mov dword [esp + 0xe0], ebx
mov dword [esp + 0xe4], eax
jne 0x10042a24
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0xe4], 0
je 0x10042a24
mov eax, dword [esp + 0x14]
movsx ecx, byte [esi + 1]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + ecx*8]
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x40]
jmp 0x10042a2a
xor ecx, ecx
mov dword [esp + 0x1c], ecx
test byte [ebp + 2], 1
mov dword [esp + 0x3c], ecx
je 0x10042a37
inc dword [edi + 0x2c]
test byte [ebp + 2], 0x20
je 0x10042a47
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x28], ebx
mov dword [ecx + 0x2c], eax
mov eax, dword [edx + 0x10]
movzx ecx, word [ebp + 2]
mov dword [esp + 0xe8], eax
mov eax, dword [edx + 0xc]
push 0x10
mov dword [esp + 0xf8], eax
pop eax
test al, cl
je 0x10042a6b
mov ebx, dword [esi + 0x20]
jmp 0x10042a6f
xor eax, eax
mov ebx, eax
mov eax, 0x4000
test word [edx + 8], ax
push 0
pop eax
je 0x10042a8a
mov eax, dword [edx]
mov dword [esp + 0xf8], eax
xor eax, eax
jmp 0x10042a91
mov dword [esp + 0xf8], eax
and ecx, 0xa
mov dword [esp + 0xd8], eax
push ebx
push ecx
mov ecx, dword [esi + 0x28]
lea edx, [esp + 0xe0]
call fcn.10037ae4
mov ebx, eax
xor edx, edx
mov dword [esp + 0x20], ebx
mov byte [esi + 3], dl
mov dword [esi + 0x1c], edx
pop ecx
pop ecx
test ebx, ebx
jne 0x10041622
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
test eax, eax
je 0x1003fe6e
push dword [esp + 0xe4]
push dword [esp + 0xe4]
push dword [eax]
mov al, byte [ebp + 2]
push dword [esp + 0x48]
push 4
pop ecx
and al, cl
movzx eax, al
neg eax
sbb eax, eax
and eax, 5
add eax, 0x12
push eax
push dword [esi + 0xe0]
call dword [esi + 0xe4]
add esp, 0x18
jmp 0x1003fe6e
cmp byte [ebp + 1], 0xfa
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 4]
mov dword [esp + 0x4c], eax
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
mov dword [esp + 0x40], esi
jne 0x10042b7f
mov edx, dword [esp + 0x14]
xor ecx, ecx
lea eax, [edx + 0xe4]
mov dword [esp + 0x1c], eax
cmp dword [eax], ecx
je 0x10042b8a
movsx ecx, byte [esi + 1]
mov eax, dword [edx + 0x10]
add ecx, ecx
test byte [ebp + 2], 2
mov eax, dword [eax + ecx*8]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x3c], eax
je 0x10042b96
cmp byte [esi + 4], 0
je 0x10042b96
mov esi, dword [esi + 0x28]
mov ecx, esi
call fcn.10034079
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x24]
mov esi, dword [esp + 0x40]
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], ecx
jmp 0x10042b96
mov eax, dword [esp + 0x14]
add eax, 0xe4
xor ecx, ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x1c], eax
mov dl, byte [ebp + 2]
mov ecx, dword [esi + 0x28]
call fcn.10037e81
mov ebx, eax
xor edx, edx
mov dword [esp + 0x18], ebx
mov dword [esi + 0x1c], edx
mov dword [esi + 0x20], edx
test ebx, ebx
jne 0x10041622
inc eax
test byte [esp + 0x4c], al
je 0x100402d7
mov eax, dword [esp + 0x1c]
inc dword [edi + 0x2c]
mov eax, dword [eax]
test eax, eax
je 0x1003fe6a
mov ecx, dword [esp + 0x3c]
test byte [ecx + 0x24], 0x20
jne 0x1003fe6a
push dword [esi + 0x44]
push dword [esi + 0x40]
mov esi, dword [esp + 0x1c]
push dword [ecx]
push dword [esp + 0x30]
push 9
push dword [esi + 0xe0]
call eax
jmp 0x10042b0a
mov eax, dword [edi + 0x2c]
add dword [esi + 0x68], eax
mov dword [esi + 0x64], eax
xor eax, eax
mov dword [edi + 0x2c], eax
jmp 0x1003fe6e
mov eax, dword [edi + 0x60]
mov ecx, dword [ebp + 4]
imul edx, dword [ebp + 0xc], 0x28
mov ecx, dword [eax + ecx*4]
xor eax, eax
mov dword [esp + 0xc4], eax
lea eax, [esp + 0xc4]
add edx, dword [esp + 0x20]
push eax
push dword [ebp + 0x10]
call fcn.10046dc3
mov ebx, eax
mov dword [esp + 0x20], ebx
pop ecx
pop ecx
test ebx, ebx
jne 0x10041620
cmp dword [esp + 0xc4], eax
jmp 0x1003fe14
imul edx, dword [ebp + 8], 0x28
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
add edx, dword [esp + 0x20]
mov ecx, dword [eax + ecx*4]
call fcn.10046d6d
mov ebx, eax
mov dword [esp + 0x18], ebx
test ebx, ebx
jne 0x10041620
mov ecx, dword [ebp + 0xc]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [eax + 0x1c], ecx
jmp 0x1003fe6e
mov edx, ebp
mov ecx, edi
call fcn.1003fce9
mov edx, dword [ebp + 4]
mov esi, eax
mov ecx, dword [edi + 0x60]
mov ecx, dword [ecx + edx*4]
mov ebx, dword [ecx + 0x28]
mov ecx, ebx
call fcn.10034079
mov ecx, dword [esp + 0x14]
mov eax, dword [ebx + 0x2c]
cmp eax, dword [ecx + 0x6c]
ja 0x10043d61
push esi
push eax
xor edx, edx
mov ecx, ebx
call fcn.1003a9c7
mov ebx, eax
mov dword [esp + 0x20], ebx
pop ecx
pop ecx
test ebx, ebx
jne 0x10041620
cmp dword [ebp + 0xc], eax
jne 0x1003fe6a
mov eax, 0x1000
test word [esi + 8], ax
je 0x1003fe6a
mov ecx, esi
call fcn.10039f62
mov esi, dword [esp + 0x14]
test eax, eax
jne 0x10041609
jmp 0x1003fe6e
mov edx, ebp
mov ecx, edi
call fcn.1003fce9
mov edx, dword [ebp + 4]
mov ecx, dword [edi + 0x60]
mov dword [esp + 0x1c], eax
mov esi, dword [ecx + edx*4]
cmp byte [esi + 2], 0
je 0x10042d31
xor ecx, ecx
inc ecx
mov word [eax + 8], cx
jmp 0x1003fe6a
cmp byte [esi + 3], 0
je 0x10042d42
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
jmp 0x10042dd0
cmp byte [esi], 2
jne 0x10042d83
mov ecx, dword [esi + 0x28]
lea edx, [esp + 0xb0]
push edx
push ecx
mov esi, dword [ecx]
mov eax, dword [esi]
call dword [eax + 0x30]
pop ecx
pop ecx
mov ebx, eax
mov edx, esi
mov ecx, edi
mov dword [esp + 0x18], ebx
call fcn.1003e3fd
test ebx, ebx
jne 0x10041620
mov ecx, dword [esp + 0xb4]
mov eax, dword [esp + 0xb0]
jmp 0x10042dde
mov eax, dword [esi + 0x28]
cmp byte [eax], 0
je 0x10042da2
mov ecx, esi
call fcn.1003d065
mov ebx, eax
mov dword [esp + 0x18], ebx
test ebx, ebx
jne 0x10041620
jmp 0x10042daa
xor eax, eax
mov ebx, eax
mov dword [esp + 0x18], ebx
cmp byte [esi + 2], 0
je 0x10042dc0
mov edx, dword [esp + 0x1c]
xor eax, eax
inc eax
mov word [edx + 8], ax
jmp 0x100402d7
mov esi, dword [esi + 0x28]
mov ecx, esi
call fcn.10034079
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x24]
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb0], eax
mov edx, dword [esp + 0x1c]
jmp 0x100429b8
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
xor eax, eax
xor ecx, ecx
inc eax
mov byte [esi + 2], al
mov dword [esi + 0x1c], ecx
cmp byte [esi], cl
jne 0x100402d7
mov esi, dword [esi + 0x28]
push dword [esi + 0x10]
call fcn.10023d7f
xor eax, eax
mov dword [esi + 0x10], eax
inc eax
pop ecx
mov byte [esi], al
jmp 0x100402d7
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
xor eax, eax
cmp byte [esp + 0x37], 0x82
mov ecx, dword [esi + 0x28]
mov dword [esp + 0xa0], eax
jne 0x10042e44
or dword [esi + 0x20], 0xffffffff
cmp byte [ecx], al
je 0x1003fe6a
lea edx, [esp + 0xa0]
call fcn.10034772
mov ebx, eax
xor edx, edx
mov al, byte [esp + 0xa0]
mov dword [esp + 0x18], ebx
mov byte [esi + 2], al
mov byte [esi + 3], dl
mov dword [esi + 0x1c], edx
test ebx, ebx
jne 0x10041622
cmp dword [ebp + 8], edx
jle 0x1003fe6a
cmp dword [esp + 0xa0], edx
jmp 0x10040a81
mov ecx, dword [ebp + 4]
lea edx, [esp + 0xa8]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x28]
mov ecx, esi
call fcn.10034746
mov ebx, eax
mov dword [esp + 0x18], ebx
test ebx, ebx
jne 0x10041620
cmp dword [esp + 0xa8], eax
jne 0x100446cf
mov ecx, esi
call fcn.10034ba7
xor ecx, ecx
cmp edx, ecx
jl 0x10042ee8
jg 0x10042ecd
cmp eax, ecx
jb 0x10042ee8
push edx
push eax
call fcn.1002733e
cwde
pop ecx
pop ecx
cmp eax, dword [ebp + 0xc]
jge 0x10042ee8
xor eax, eax
inc eax
mov dword [esp + 0xa8], eax
jmp 0x10042eef
mov eax, dword [esp + 0xa8]
test eax, eax
jmp 0x10040a81
inc dword [edi + 0xac]
mov eax, dword [edi + 0x60]
lea edx, [esp + 0x8c]
mov ecx, dword [ebp + 4]
mov esi, dword [eax + ecx*4]
xor eax, eax
inc eax
mov dword [esp + 0x8c], eax
cmp byte [esi], al
jne 0x10042f25
mov ecx, esi
call fcn.10046c91
xor edx, edx
jmp 0x10042f35
mov ecx, dword [esi + 0x28]
call fcn.10034746
xor edx, edx
mov byte [esi + 3], dl
mov dword [esi + 0x1c], edx
mov ebx, eax
mov dword [esp + 0x18], ebx
test ebx, ebx
jne 0x10041622
mov al, byte [esp + 0x8c]
mov byte [esi + 2], al
cmp dword [esp + 0x8c], ebx
jmp 0x10040a81
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
mov edx, esi
mov ecx, dword [esp + 0x14]
call fcn.10046cdd
jmp 0x10042f83
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
push dword [ebp + 0xc]
mov esi, dword [eax + ecx*4]
push dword [esi + 0x28]
call dword [ebp + 0x10]
pop ecx
pop ecx
mov ebx, eax
mov dword [esp + 0x18], ebx
xor edx, edx
mov dword [esi + 0x1c], edx
test ebx, ebx
jne 0x10042fa9
mov byte [esi + 2], dl
movzx eax, word [ebp + 2]
mov esi, dword [esp + 0x14]
inc dword [edi + eax*4 + 0xa4]
jmp 0x100442fc
cmp ebx, 0x65
jne 0x10041622
xor eax, eax
mov ebx, edx
inc eax
mov dword [esp + 0x18], ebx
mov byte [esi + 2], al
jmp 0x100436ed
imul esi, dword [ebp + 8], 0x28
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
mov ebx, dword [esp + 0x20]
add esi, ebx
test byte [ebp + 2], 1
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x1c], ecx
je 0x10042fe3
inc dword [edi + 0x2c]
mov eax, 0x4000
test word [esi + 8], ax
je 0x10043007
mov ecx, esi
call fcn.10039fa8
mov ebx, eax
test ebx, ebx
jne 0x10041620
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
cmp byte [ebp], 0x83
jne 0x1004301a
mov edx, esi
call fcn.100463f9
mov ebx, eax
xor edx, edx
jmp 0x10043082
mov eax, dword [esi + 0xc]
cdq
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], edx
mov eax, dword [esi + 0x10]
mov dword [esp + 0xd8], eax
imul eax, dword [ebp + 0xc], 0x28
push 0x10
pop edx
add eax, ebx
mov dword [esp + 0xec], eax
mov ax, word [ebp + 0x10]
mov word [esp + 0xf0], ax
movzx eax, word [ebp + 2]
test dl, al
je 0x1004305f
mov edx, dword [ecx + 0x20]
jmp 0x10043061
xor edx, edx
mov ecx, dword [ecx + 0x28]
and eax, 0xa
push edx
push eax
lea edx, [esp + 0xe0]
call fcn.10037ae4
mov ebx, eax
xor edx, edx
mov eax, dword [esp + 0x24]
pop ecx
pop ecx
mov dword [eax + 0x1c], edx
mov dword [esp + 0x18], ebx
test ebx, ebx
jne 0x10041622
jmp 0x1003fe6a
mov ecx, dword [ebp + 4]
xor edx, edx
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x28]
mov dword [esp + 0x150], eax
mov ax, word [ebp + 0xc]
mov word [esp + 0x158], ax
imul eax, dword [ebp + 8], 0x28
mov byte [esp + 0x15a], dl
mov dword [esp + 0x40], ecx
add eax, dword [esp + 0x20]
mov dword [esp + 0x154], eax
lea eax, [esp + 0x124]
push eax
push edx
push edx
push edx
lea edx, [esp + 0x160]
call fcn.100347c6
mov ebx, eax
add esp, 0x10
mov dword [esp + 0x18], ebx
test ebx, ebx
jne 0x10041620
cmp dword [esp + 0x124], eax
jne 0x1004311e
mov ecx, dword [esp + 0x40]
push 4
pop eax
mov dl, al
call fcn.10037e81
mov ebx, eax
mov dword [esp + 0x18], ebx
test ebx, ebx
jne 0x10041620
xor eax, eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], eax
jmp 0x1003fe6a
mov eax, dword [edi + 0x60]
mov ecx, dword [ebp + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 0x28]
cmp byte [eax], 0
je 0x10043155
mov ecx, esi
call fcn.1003d065
mov ebx, eax
xor edx, edx
mov dword [esp + 0x18], ebx
test ebx, ebx
jne 0x10041622
jmp 0x1004315d
xor edx, edx
mov ebx, edx
mov dword [esp + 0x18], ebx
cmp byte [esi + 2], 0
jne 0x100431f3
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0xb8]
mov dword [esp + 0xb8], edx
mov dword [esp + 0xbc], edx
mov edx, dword [esi + 0x28]
push eax
call fcn.1003e1c2
mov ebx, eax
mov dword [esp + 0x1c], ebx
pop ecx
test ebx, ebx
jne 0x10041620
cmp byte [ebp], 0x86
jne 0x100431d2
mov ecx, dword [ebp + 0xc]
mov eax, dword [edi + 0x60]
mov edx, dword [eax + ecx*4]
xor eax, eax
mov byte [edx + 2], al
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xbc]
mov dword [edx + 0x40], eax
mov dword [edx + 0x44], ecx
mov byte [edx + 3], 1
mov eax, dword [ebp + 0x10]
mov dword [edx + 0x18], eax
mov dword [edx + 0x24], esi
jmp 0x1003fe6a
mov edx, ebp
mov ecx, edi
call fcn.1003fce9
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xbc]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x1003fe6a
imul eax, dword [ebp + 8], 0x28
mov ecx, 0x2400
add eax, dword [esp + 0x20]
test word [eax + 8], cx
je 0x10042d25
mov ecx, eax
jmp 0x100402c6
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
cmp byte [esp + 0x37], 0x27
mov edx, dword [eax + ecx*4]
mov ecx, esi
mov eax, dword [edx + 0x2c]
mov dword [esp + 0x160], eax
mov ax, word [ebp + 0x10]
mov word [esp + 0x168], ax
sbb al, al
mov byte [esp + 0x16a], al
imul eax, dword [ebp + 0xc], 0x28
add eax, dword [esp + 0x20]
mov dword [esp + 0x164], eax
xor eax, eax
mov dword [esp + 0x90], eax
lea eax, [esp + 0x90]
push eax
lea eax, [esp + 0x164]
push eax
call fcn.1003e2b7
test byte [ebp], 1
mov ebx, eax
mov eax, dword [esp + 0x98]
pop ecx
pop ecx
mov dword [esp + 0x18], ebx
je 0x10043286
neg eax
jmp 0x10043287
inc eax
mov dword [esp + 0x90], eax
test ebx, ebx
jne 0x10041620
test eax, eax
jg 0x100446cf
jmp 0x1003fe6e
mov edx, ebp
mov ecx, edi
call fcn.1003fce9
mov edx, dword [esp + 0x14]
mov esi, eax
xor eax, eax
inc eax
mov word [esi + 8], ax
mov ecx, dword [edx + 0xbc]
inc ecx
cmp dword [edx + 0xb0], ecx
jg 0x1004488a
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov dword [esp + 0x94], ecx
mov ecx, eax
mov dword [esp + 0x1c], eax
add ecx, ecx
mov eax, dword [edx + 0x10]
lea edx, [esp + 0x94]
push edx
mov edx, dword [ebp + 4]
mov ecx, dword [eax + ecx*8 + 4]
call fcn.10038563
pop ecx
mov ebx, eax
mov dword [esp + 0x18], ebx
push 4
pop eax
mov word [esi + 8], ax
mov eax, dword [esp + 0x94]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
test ebx, ebx
jne 0x10041620
mov esi, dword [esp + 0x14]
cmp dword [esp + 0x94], ebx
je 0x1003fe6e
push dword [ebp + 4]
mov edx, dword [esp + 0x20]
mov ecx, esi
push dword [esp + 0x98]
call fcn.10053cd0
mov al, byte [esp + 0x24]
pop ecx
inc al
pop ecx
mov byte [esp + 0x6b], al
jmp 0x1003fe6e
mov edx, dword [ebp + 4]
lea ecx, [esp + 0x1c]
xor eax, eax
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0xc]
neg eax
sbb eax, eax
and eax, ecx
mov ecx, dword [esi + 0x10]
push eax
mov eax, dword [ebp + 8]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.10038526
xor edx, edx
mov ebx, eax
pop ecx
mov dword [esp + 0x18], ebx
cmp dword [ebp + 0xc], edx
je 0x10041e4f
mov eax, dword [esp + 0x1c]
add dword [edi + 0x2c], eax
mov ecx, dword [ebp + 0xc]
test ecx, ecx
jle 0x10041e4f
mov esi, dword [esp + 0x20]
imul ecx, ecx, 0x28
cdq
add dword [ecx + esi], eax
mov eax, esi
mov esi, dword [esp + 0x14]
adc dword [ecx + eax + 4], edx
xor edx, edx
jmp 0x10041e4f
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx], 1
jne 0x100433d6
mov edx, dword [ecx + 0x28]
mov ecx, esi
call fcn.10045cf1
jmp 0x1003fe6e
mov ecx, dword [ecx + 0x28]
xor eax, eax
push eax
mov edx, dword [ecx + 0x40]
mov ecx, dword [ecx + 8]
call fcn.10038526
jmp 0x100422b2
mov edx, ebp
mov ecx, edi
call fcn.1003fce9
mov edx, dword [ebp + 4]
mov esi, eax
push dword [ebp + 0xc]
xor eax, eax
add edx, edx
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + edx*8 + 4]
lea edx, [esp + 0xcc]
call fcn.100381a5
mov ebx, eax
mov dword [esp + 0x1c], ebx
pop ecx
test ebx, ebx
jne 0x10041620
mov eax, dword [esp + 0xc8]
jmp 0x10040c18
inc byte [esi + 0x5a]
xor eax, eax
push eax
push eax
push eax
push dword [ebp + 0x10]
push esi
call fcn.1005d7da
mov ebx, eax
add esp, 0x14
dec byte [esi + 0x5a]
mov dword [esp + 0x18], ebx
jmp 0x10041d23
cmp dword [ebp + 0x10], 0
mov esi, dword [ebp + 4]
mov ebx, dword [esp + 0x14]
jne 0x100434a9
mov eax, dword [ebx + 0x10]
mov ecx, esi
add ecx, ecx
push dword [eax + ecx*8 + 0xc]
call fcn.100568f1
and dword [ebx + 0x18], 0xffffffef
lea eax, [edi + 0x7c]
pop ecx
mov edx, esi
mov esi, ebx
push 1
push eax
mov ecx, esi
call fcn.10060c11
mov ebx, eax
xor eax, eax
inc eax
mov dword [esp + 0x20], ebx
or dword [esi + 0x18], eax
and dword [edi + 0x98], 0xfffffffc
pop ecx
pop ecx
jmp 0x1004357e
push dword [ebp + 0x10]
lea eax, [edi + 0x7c]
mov dword [esp + 0xe4], esi
mov dword [esp + 0xe0], eax
add esi, esi
xor eax, eax
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xec], eax
mov eax, dword [ebx + 0x10]
push str.sqlite_master
push dword [eax + esi*8]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push ebx
call fcn.10025826
mov esi, eax
add esp, 0x14
test esi, esi
je 0x10044898
xor eax, eax
mov byte [ebx + 0xa5], 1
push eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0xf0], eax
lea eax, [esp + 0xdc]
push eax
push fcn.10060a9b
push esi
push ebx
call fcn.1005d7da
mov ebx, eax
add esp, 0x14
mov dword [esp + 0x18], ebx
test ebx, ebx
jne 0x10043568
mov ebx, dword [esp + 0xe4]
mov dword [esp + 0x18], ebx
test ebx, ebx
jne 0x10043568
cmp dword [esp + 0xec], ebx
jne 0x10043568
push 0x100995b4
push 0x15e52
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.10025979
add esp, 0x14
push 0xb
pop ebx
mov dword [esp + 0x18], ebx
mov edx, esi
mov esi, dword [esp + 0x14]
mov ecx, esi
call fcn.10023dc7
xor eax, eax
mov byte [esi + 0xa5], al
inc eax
test ebx, ebx
jne 0x1004489f
jmp case.0x1003fdaf.86
mov edx, dword [ebp + 4]
mov ecx, esi
call fcn.10050c58
jmp 0x100422b3
push dword [ebp + 0x10]
mov edx, dword [ebp + 4]
mov ecx, esi
call fcn.100520bc
jmp 0x10040243
push dword [ebp + 0x10]
mov edx, dword [ebp + 4]
mov ecx, esi
call fcn.10051d82
jmp 0x10040243
push dword [ebp + 0x10]
mov edx, dword [ebp + 4]
mov ecx, esi
call fcn.10068ece
jmp 0x10040243
imul eax, dword [ebp + 4], 0x28
imul esi, dword [ebp + 0xc], 0x28
mov ecx, dword [esp + 0x14]
mov edx, dword [ebp + 0x10]
add edx, 4
add eax, dword [esp + 0x20]
add esi, dword [esp + 0x20]
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0x24], eax
lea eax, [esp + 0xa4]
push eax
mov eax, dword [esi]
inc eax
push eax
movzx eax, word [ebp + 2]
push dword [ebp + 8]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.100390af
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov dword [esp + 0x40], eax
call fcn.1003a524
mov eax, dword [esp + 0xa4]
test eax, eax
je 0x10043654
mov ecx, dword [esp + 0x40]
test ecx, ecx
je 0x10041605
dec eax
cdq
sub dword [esi], eax
push fcn.10023d7f
sbb dword [esi + 4], edx
mov edx, ecx
mov ecx, dword [esp + 0x28]
push 1
push 0xffffffffffffffff
call fcn.1003a7b1
add esp, 0xc
movzx edx, byte [esp + 0x58]
mov ecx, dword [esp + 0x24]
call fcn.10039e1e
jmp 0x1003fe6a
imul esi, dword [ebp + 4], 0x28
imul eax, dword [ebp + 8], 0x28
push 0x10
pop ecx
add esi, dword [esp + 0x20]
add eax, dword [esp + 0x20]
mov dword [esp + 0x40], eax
test byte [esi + 8], cl
jne 0x10043696
mov ecx, esi
call fcn.1003a61b
test eax, eax
jne 0x10041605
mov eax, dword [esp + 0x40]
push dword [eax + 4]
mov ecx, dword [esi + 0x10]
push dword [eax]
call fcn.1002b348
jmp 0x10040e0b
imul esi, dword [ebp + 4], 0x28
push 0x10
pop eax
add esi, dword [esp + 0x20]
test byte [esi + 8], al
je 0x1004371b
mov ecx, dword [esi + 0x10]
lea edx, [esp + 0x140]
call fcn.1002b53a
test eax, eax
je 0x1004371b
imul ecx, dword [ebp + 0xc], 0x28
push dword [esp + 0x144]
push dword [esp + 0x144]
add ecx, dword [esp + 0x28]
call fcn.1003a58b
pop ecx
pop ecx
xor eax, eax
inc eax
xor edx, edx
mov esi, dword [esp + 0x14]
cmp dword [esi + 0x108], edx
je case.0x1003fdaf.86
xor ebx, ebx
cmp byte [esi + 0x51], bl
sete bl
lea ebx, [ebx*2 + 7]
mov ecx, ebx
mov dword [edi + 0x28], ebx
call fcn.1007becb
jmp 0x100448d0
mov ecx, esi
call fcn.1003a524
jmp 0x100442f6
imul esi, dword [ebp + 4], 0x28
imul eax, dword [ebp + 0xc], 0x28
mov ecx, dword [ebp + 0x10]
push 0x10
pop edx
add esi, dword [esp + 0x20]
add eax, dword [esp + 0x20]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x1c], ecx
test byte [esi + 8], dl
jne 0x10043761
mov ecx, esi
call fcn.1003a61b
test eax, eax
jne 0x10041605
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x10043784
push dword [eax + 4]
mov edx, ecx
mov ecx, dword [esi + 0x10]
push dword [eax]
call fcn.1002b588
pop ecx
pop ecx
test eax, eax
jne 0x100446cf
mov ecx, dword [esp + 0x1c]
test ecx, ecx
js 0x1003fe6a
mov eax, dword [esp + 0x3c]
jmp 0x10043696
imul ecx, dword [ebp + 0xc], 0x28
xor eax, eax
mov esi, dword [ebp + 0x10]
mov dword [esp + 0x2c], esi
add ecx, dword [esp + 0x20]
mov dword [esp + 0x1c], ecx
cmp word [ebp + 2], ax
je 0x100437c9
mov edx, dword [esi + 0x14]
mov eax, dword [edi + 0xc8]
jmp 0x100437c5
cmp dword [eax + 0x1c], edx
je 0x1003fe6a
mov eax, dword [eax + 4]
test eax, eax
jne 0x100437b9
mov edx, dword [esp + 0x14]
mov eax, dword [edi + 0xd0]
cmp eax, dword [edx + 0x94]
jge 0x100448b4
push 0x10
pop eax
test byte [ecx + 8], al
jne 0x100438e6
mov edx, dword [esi + 0xc]
mov esi, dword [esi + 8]
add esi, edx
test edx, edx
jne 0x100437f8
inc esi
lea eax, [esi + 2]
imul ecx, eax, 0xa
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 4]
add ecx, edx
add eax, 7
mov eax, eax
test eax, eax
jns 0x10043813
add eax, 7
sar eax, 3
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x40], eax
cdq
push edx
push eax
call fcn.10023f4f
mov dword [esp + 0x2c], eax
pop ecx
pop ecx
test eax, eax
je 0x10041605
mov ecx, dword [esp + 0x1c]
call fcn.1003a188
mov eax, dword [esp + 0x1c]
mov ecx, 0x410
mov edx, dword [esp + 0x40]
sub ebp, dword [esp + 0x5c]
push 0x14
mov word [eax + 8], cx
mov ecx, dword [esp + 0x28]
mov dword [eax + 0x10], ecx
mov dword [eax + 0xc], edx
mov dword [eax + 0x24], 0x1003bae8
mov eax, dword [esp + 0x30]
mov dword [ecx], edi
mov dword [ecx + 0x3c], esi
mov eax, dword [eax + 0xc]
mov dword [ecx + 0x40], eax
mov eax, ebp
cdq
pop ecx
idiv ecx
mov edx, dword [esp + 0x24]
mov dword [edx + 0x30], eax
mov eax, dword [edi + 0x58]
mov dword [edx + 0x10], eax
mov eax, dword [edi + 0x18]
mov dword [edx + 0x38], eax
mov eax, dword [edi + 0x60]
mov dword [edx + 0x14], eax
mov eax, dword [edi + 0x1c]
mov dword [edx + 0x2c], eax
mov eax, dword [edi + 0x68]
mov dword [edx + 8], eax
mov eax, dword [edi + 0x6c]
mov dword [edx + 0x34], eax
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x14]
mov dword [edx + 0x1c], eax
lea eax, [esi + 2]
imul ecx, eax, 0x28
lea eax, [edx + 0x50]
add ecx, edx
cmp eax, ecx
je 0x100438e0
mov esi, dword [esp + 0x14]
mov ebx, 0x80
mov word [eax + 8], bx
mov dword [eax + 0x20], esi
add eax, 0x28
cmp eax, ecx
jne 0x100438ca
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x2c]
jmp 0x100438e9
mov edx, dword [ecx + 0x10]
inc dword [edi + 0xd0]
lea ebp, [edx + 0x50]
mov eax, dword [edi + 0xc8]
mov ecx, dword [esp + 0x14]
mov dword [edx + 4], eax
mov dword [esp + 0x20], ebp
mov eax, dword [ecx + 0x28]
mov ecx, dword [ecx + 0x2c]
mov dword [edx + 0x20], eax
mov dword [edx + 0x24], ecx
mov eax, dword [edi + 0x2c]
mov dword [edx + 0x44], eax
mov eax, dword [edi]
mov eax, dword [eax + 0x64]
mov dword [edx + 0x48], eax
mov eax, dword [edi + 0xdc]
mov dword [edx + 0x28], eax
xor eax, eax
mov dword [edi + 0xdc], eax
mov dword [edi + 0x2c], eax
mov dword [edi + 0xc8], edx
mov dword [edi + 0x58], ebp
mov ecx, dword [edx + 0x3c]
mov dword [edi + 0x18], ecx
movzx eax, word [edx + 0x40]
imul ecx, ecx, 0x28
mov dword [edi + 0x1c], eax
add ecx, ebp
mov dword [edi + 0x60], ecx
mov eax, dword [esi + 0xc]
lea ecx, [ecx + eax*4]
mov dword [edx + 0x18], ecx
mov eax, dword [esi + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
xor eax, eax
push eax
push ecx
call sub.VCRUNTIME140.dll_memset
mov edx, dword [esi]
add esp, 0xc
mov dword [edi + 0x68], edx
mov eax, dword [esi + 4]
mov dword [esp + 0x5c], edx
mov dword [edi + 0x6c], eax
lea ebp, [edx - 0x14]
jmp 0x100436e8
mov edx, ebp
mov ecx, edi
call fcn.1003fce9
mov esi, dword [edi + 0xc8]
mov ecx, 0x1000
push ecx
imul edx, dword [esi + 0x30], 0x14
mov ecx, dword [esi + 8]
mov ecx, dword [edx + ecx + 4]
add ecx, dword [ebp + 4]
imul edx, ecx, 0x28
mov ecx, eax
add edx, dword [esi + 0x10]
jmp 0x10041342
mov eax, dword [esi + 0x20]
xor ecx, ecx
and eax, 0x80000
or eax, ecx
mov eax, dword [ebp + 8]
cdq
je 0x100439de
add dword [esi + 0x1c8], eax
adc dword [esi + 0x1cc], edx
jmp 0x1003fe6e
cmp dword [ebp + 4], ecx
je 0x100439f4
add dword [esi + 0x1c0], eax
adc dword [esi + 0x1c4], edx
jmp 0x1003fe6e
add dword [edi + 0x40], eax
adc dword [edi + 0x44], edx
jmp 0x1003fe6e
xor eax, eax
cmp dword [ebp + 4], eax
je 0x10043a29
mov eax, dword [esi + 0x1c0]
or eax, dword [esi + 0x1c4]
jne 0x1003fe6e
mov eax, dword [esi + 0x1c8]
or eax, dword [esi + 0x1cc]
jmp 0x10040f28
mov eax, dword [edi + 0x40]
or eax, dword [edi + 0x44]
jmp 0x10043a12
mov ecx, dword [edi + 0xc8]
test ecx, ecx
jne 0x10043a84
imul eax, dword [ebp + 4], 0x28
add eax, dword [esp + 0x20]
mov ecx, eax
mov dword [esp + 0x1c], eax
call fcn.1003a320
imul esi, dword [ebp + 8], 0x28
add esi, dword [esp + 0x20]
mov ecx, esi
call fcn.1003a320
mov eax, dword [esp + 0x1c]
mov edx, dword [esi + 4]
mov ecx, dword [esi]
cmp dword [eax + 4], edx
jg 0x1003fe6a
jl 0x100431e9
cmp dword [eax], ecx
jae 0x1003fe6a
jmp 0x100431e9
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x10043a82
imul eax, dword [ebp + 4], 0x28
add eax, dword [ecx + 0x10]
jmp 0x10043a43
imul ecx, dword [ebp + 4], 0x28
xor edx, edx
add ecx, dword [esp + 0x20]
mov esi, dword [ecx]
cmp dword [ecx + 4], edx
jl 0x1003fe6a
jg 0x10043ab3
cmp esi, edx
jbe 0x1003fe6a
mov eax, dword [ebp + 0xc]
cdq
sub esi, eax
mov eax, dword [ecx + 4]
mov dword [ecx], esi
sbb eax, edx
mov dword [ecx + 4], eax
jmp 0x100446cf
imul eax, dword [ebp + 0xc], 0x28
mov edx, ebp
imul esi, dword [ebp + 4], 0x28
mov ecx, edi
add eax, dword [esp + 0x20]
add esi, dword [esp + 0x20]
mov dword [esp + 0x40], eax
call fcn.1003fce9
mov ecx, dword [esi + 4]
mov edx, dword [esi]
xor esi, esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x108], edx
mov dword [esp + 0x10c], ecx
cmp ecx, esi
jl 0x10043b4e
jg 0x10043b0a
xor ecx, ecx
cmp edx, ecx
jbe 0x10043b4e
mov eax, dword [esp + 0x40]
xor edx, edx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
cmp eax, edx
jl 0x10043b1f
jg 0x10043b23
cmp ecx, edx
ja 0x10043b23
mov ecx, edx
mov eax, edx
push eax
push ecx
lea ecx, [esp + 0x110]
call fcn.100270f7
pop ecx
pop ecx
test eax, eax
jne 0x10043b4a
mov eax, dword [esp + 0x108]
mov ecx, dword [esp + 0x10c]
jmp 0x10042dde
mov eax, dword [esp + 0x1c]
or dword [eax], 0xffffffff
or dword [eax + 4], 0xffffffff
jmp 0x1003fe6a
imul ecx, dword [ebp + 4], 0x28
add ecx, dword [esp + 0x20]
mov edx, dword [ecx]
mov eax, edx
mov esi, dword [ecx + 4]
or eax, esi
je 0x1003fe6a
xor eax, eax
cmp esi, eax
jl 0x100446cf
jg 0x10043b85
cmp edx, eax
jbe 0x100446cf
sub edx, 1
mov dword [ecx], edx
sbb esi, eax
mov dword [ecx + 4], esi
jmp 0x100446cf
imul edx, dword [ebp + 4], 0x28
add edx, dword [esp + 0x20]
mov ecx, dword [edx + 4]
mov eax, dword [edx]
cmp ecx, 0x80000000
jl 0x10043bba
jg 0x10043baf
test eax, eax
je 0x10043bba
sub eax, 1
mov dword [edx], eax
sbb ecx, 0
mov dword [edx + 4], ecx
or eax, ecx
jmp 0x10040f28
movzx eax, word [ebp + 2]
xor ecx, ecx
mov dword [esp + 0x1c], eax
push ecx
mov ecx, esi
lea eax, [eax*4 + 0x44]
push eax
call fcn.10023fa8
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x10041605
mov edx, dword [esp + 0x14]
xor eax, eax
mov dword [esi + 8], eax
mov eax, dword [esp + 0x1c]
add eax, 7
push 1
lea ecx, [esi + eax*4]
mov dword [esi], ecx
call fcn.1003a513
mov eax, dword [ebp + 0x10]
mov dword [esi + 4], eax
mov eax, ebp
sub eax, dword [esp + 0x60]
pop ecx
cdq
push 0x14
pop ecx
idiv ecx
mov dword [esi + 0xc], edi
mov dword [esi + 0x10], eax
xor eax, eax
mov byte [esi + 0x18], al
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x1c]
mov byte [esi + 0x19], al
mov word [ebp], 0xf09b
mov dword [ebp + 0x10], esi
imul edx, dword [ebp + 0xc], 0x28
mov esi, dword [ebp + 0x10]
add edx, dword [esp + 0x20]
mov dword [esp + 0x40], edx
cmp dword [esi + 8], edx
je 0x10043c7a
movzx ecx, byte [esi + 0x19]
sub ecx, 1
mov dword [esi + 8], edx
js 0x10043c7a
lea edi, [ecx + 7]
push 4
lea edi, [esi + edi*4]
pop edx
mov eax, dword [ebp + 8]
add eax, ecx
imul eax, eax, 0x28
add eax, dword [esp + 0x20]
mov dword [edi], eax
sub edi, edx
sub ecx, 1
jns 0x10043c5d
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x40]
inc dword [edx + 0xc]
lea eax, [esi + 0x1c]
cmp dword [ebp + 4], 0
movzx edx, byte [esi + 0x19]
mov ecx, dword [esi + 4]
push eax
push edx
push esi
je 0x10043c95
call dword [ecx + 0x1c]
jmp 0x10043c98
call dword [ecx + 0x10]
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x1003fe6a
jle 0x10043cc6
push dword [esi]
call fcn.1003e699
pop ecx
push eax
push 0x10094a6c
push edi
call fcn.1003af0d
mov ebx, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x18], ebx
cmp byte [esi + 0x18], 0
je 0x10043ceb
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x10043ce6
xor ecx, ecx
push ecx
imul ecx, eax, 0x28
push 1
add ecx, dword [esp + 0x28]
call fcn.1003a58b
pop ecx
pop ecx
xor eax, eax
mov byte [esi + 0x18], al
mov ecx, dword [esi]
call fcn.1003a188
mov eax, dword [esi]
xor ecx, ecx
inc ecx
xor edx, edx
mov word [eax + 8], cx
mov dword [esi + 0x14], edx
jmp 0x10043086
imul esi, dword [ebp + 4], 0x28
mov ecx, dword [esp + 0x20]
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
add esi, ecx
test eax, eax
je 0x10043d31
push edx
imul edx, eax, 0x28
add edx, ecx
mov ecx, esi
call fcn.1003a0eb
imul esi, dword [ebp + 0xc], 0x28
pop ecx
add esi, dword [esp + 0x20]
jmp 0x10043d38
mov ecx, esi
call fcn.1003a084
mov ebx, eax
mov dword [esp + 0x18], ebx
test ebx, ebx
jne 0x100448c9
movzx edx, byte [esp + 0x58]
mov ecx, esi
call fcn.10039e1e
mov ecx, esi
call fcn.1003a68f
test eax, eax
je 0x1003fe6a
push str.string_or_blob_too_big
push edi
call fcn.1003af0d
pop ecx
pop ecx
push 0x12
jmp 0x1004161f
mov edx, dword [ebp + 4]
xor eax, eax
or dword [esp + 0x11c], 0xffffffff
mov ecx, esi
or dword [esp + 0x118], 0xffffffff
mov dword [esp + 0x114], eax
lea eax, [esp + 0x11c]
push eax
lea eax, [esp + 0x11c]
push eax
push dword [ebp + 8]
call fcn.1007c591
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x18], ebx
test ebx, ebx
je 0x10043dd8
push 5
pop eax
cmp ebx, eax
jne 0x10041620
xor eax, eax
mov dword [esp + 0x114], 1
mov ebx, eax
mov dword [esp + 0x18], ebx
jmp 0x10043dda
xor eax, eax
imul esi, dword [ebp + 0xc], 0x28
mov edi, eax
add esi, dword [esp + 0x20]
mov eax, dword [esp + edi*4 + 0x114]
mov ecx, esi
cdq
push edx
push eax
call fcn.1003a58b
inc edi
add esi, 0x28
pop ecx
pop ecx
cmp edi, 3
jl 0x10043de4
jmp 0x100400b7
mov edx, ebp
mov ecx, edi
call fcn.1003fce9
mov edx, dword [ebp + 4]
mov esi, dword [ebp + 0xc]
add edx, edx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx + edx*8 + 4]
mov ecx, eax
mov dword [esp + 0x40], eax
call fcn.1003882a
mov ecx, eax
mov dword [esp + 0x30], eax
call fcn.1002f0ef
mov dword [esp + 0x2c], eax
cmp esi, 0xffffffff
jne 0x10043e46
mov esi, eax
mov ecx, dword [esp + 0x30]
call fcn.1002f0f4
test eax, eax
jne 0x10043e57
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
xor edx, edx
inc edx
call fcn.1002eebd
push 5
pop edx
cmp esi, edx
jne 0x10043e8e
mov ecx, eax
call fcn.100260d0
test eax, eax
je 0x10043e82
mov ecx, dword [esp + 0x30]
call fcn.1002f165
test eax, eax
jne 0x10043e8b
mov esi, dword [esp + 0x2c]
jmp 0x10043f10
push 5
pop edx
mov eax, dword [esp + 0x2c]
cmp esi, eax
je 0x10043f10
cmp eax, edx
je 0x10043e9e
cmp esi, edx
jne 0x10043f10
mov ecx, dword [esp + 0x14]
cmp byte [ecx + 0x4f], 0
je 0x100448e4
cmp dword [ecx + 0xb0], 1
jg 0x100448e4
cmp eax, edx
jne 0x10043edf
mov edx, ecx
mov ecx, dword [esp + 0x30]
call fcn.1002f23e
mov ebx, eax
mov dword [esp + 0x18], ebx
test ebx, ebx
jne 0x10043f14
mov ecx, dword [esp + 0x30]
mov edx, esi
call fcn.1002f026
jmp 0x10043ef6
push 4
pop ecx
cmp eax, ecx
jne 0x10043ef2
mov ecx, dword [esp + 0x30]
push 2
pop edx
call fcn.1002f026
test ebx, ebx
jne 0x10043f14
mov ecx, dword [esp + 0x40]
xor edx, edx
push 5
pop eax
cmp esi, eax
sete dl
inc edx
call fcn.10039420
mov ebx, eax
mov dword [esp + 0x18], ebx
test ebx, ebx
je 0x10043f18
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov edx, esi
call fcn.1002f026
mov esi, dword [esp + 0x1c]
mov ecx, 0xa02
mov word [esi + 8], cx
mov ecx, eax
call fcn.1005e254
mov ecx, eax
mov dword [esi + 0x10], eax
call fcn.100260d0
movzx edx, byte [esp + 0x58]
mov ecx, esi
mov dword [esi + 0xc], eax
mov byte [esi + 0xa], 1
call fcn.10039e1e
jmp 0x100409c6
mov eax, dword [ebp + 8]
test eax, eax
je 0x10043f69
imul eax, eax, 0x28
add eax, dword [esp + 0x20]
jmp 0x10043f6b
xor eax, eax
push eax
push dword [ebp + 4]
lea ecx, [edi + 0x7c]
mov edx, esi
call fcn.1006b0e8
pop ecx
jmp 0x100422b2
mov ecx, dword [ebp + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
call fcn.10033b10
mov ebx, eax
mov dword [esp + 0x18], ebx
test ebx, ebx
je 0x1003fe6e
cmp ebx, 0x65
jne 0x10041620
xor eax, eax
mov ebx, eax
mov dword [esp + 0x18], ebx
jmp 0x100446cf
xor eax, eax
cmp dword [ebp + 4], eax
jne 0x10043fca
mov edx, dword [ebp + 8]
mov ecx, esi
call fcn.1003e34d
jmp 0x1003fe6e
mov eax, dword [ebp + 8]
inc eax
xor eax, dword [edi + 0x98]
and eax, 3
xor dword [edi + 0x98], eax
jmp 0x1003fe6e
mov esi, dword [ebp + 0x10]
mov edx, esi
mov ecx, dword [esp + 0x14]
call fcn.1006c0a8
mov ebx, eax
mov dword [esp + 0x18], ebx
test esi, esi
je 0x100409c6
mov edx, dword [esi + 8]
mov ecx, edi
call fcn.1003e3fd
jmp 0x100409c6
imul edx, dword [ebp + 8], 0x28
lea edi, [esp + 0x1b0]
push 0xa
pop ecx
xor eax, eax
rep stosd dword es:[edi], eax
add edx, dword [esp + 0x20]
lea ecx, [esp + 0x1b0]
mov dword [esp + 0x1d0], esi
call fcn.1003a71f
mov ebx, eax
lea eax, [esp + 0x1b0]
push eax
mov dword [esp + 0x1c], ebx
call fcn.1003e699
pop ecx
test eax, eax
je 0x10044069
mov ecx, dword [esp + 0x48]
mov edx, dword [ebp + 4]
add ecx, 0x7c
push ecx
push eax
mov ecx, esi
call fcn.1006bd96
pop ecx
mov ebx, eax
pop ecx
mov dword [esp + 0x18], ebx
lea ecx, [esp + 0x1b0]
call fcn.1003a188
test ebx, ebx
jne 0x10041620
mov edi, dword [esp + 0x48]
jmp 0x1003fe6e
inc dword [esi + 0xbc]
mov ecx, esi
push dword [ebp + 0x10]
mov edx, dword [ebp + 4]
call fcn.1006bfc3
dec dword [esi + 0xbc]
mov ebx, eax
pop ecx
mov dword [esp + 0x18], ebx
jmp 0x10041d23
mov eax, dword [ebp + 0x10]
xor edx, edx
mov dword [esp + 0x2c], edx
mov esi, dword [eax + 8]
test esi, esi
je 0x1004490e
mov eax, dword [esi]
mov dword [esp + 0x40], eax
test eax, eax
je 0x1004490e
lea ecx, [esp + 0x2c]
push ecx
push esi
call dword [eax + 0x18]
pop ecx
pop ecx
mov ebx, eax
mov edx, esi
mov ecx, edi
mov dword [esp + 0x18], ebx
call fcn.1003e3fd
test ebx, ebx
jne 0x10041620
mov eax, dword [esp + 0x2c]
mov ecx, edi
push 2
push 0xffffffffffffffff
mov dword [eax], esi
xor eax, eax
mov edx, dword [ebp + 4]
push eax
call fcn.1003fa24
add esp, 0xc
test eax, eax
je 0x100448fd
mov ecx, dword [esp + 0x2c]
mov dword [eax + 0x28], ecx
inc dword [esi + 4]
jmp 0x1003fe6a
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
imul edx, dword [ebp + 0xc], 0x28
mov ebx, dword [edi + 0x5c]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x24], eax
add edx, dword [esp + 0x20]
mov esi, dword [eax + 0x28]
mov ecx, dword [edx + 0x28]
mov eax, dword [esi]
mov dword [esp + 0x3c], eax
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
mov eax, dword [edx]
mov dword [esp + 0x40], eax
xor eax, eax
test ecx, ecx
jle 0x10044164
add edx, 0x50
mov dword [ebx + eax*4], edx
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x10044159
mov eax, dword [esp + 0x1c]
push ebx
push ecx
push dword [ebp + 0x10]
push dword [esp + 0x4c]
push esi
call dword [eax + 0x20]
mov edx, dword [esp + 0x50]
add esp, 0x14
mov ebx, eax
mov ecx, edi
mov dword [esp + 0x18], ebx
call fcn.1003e3fd
test ebx, ebx
jne 0x10041620
mov eax, dword [esp + 0x1c]
push esi
call dword [eax + 0x28]
pop ecx
mov ecx, dword [esp + 0x24]
xor edx, edx
mov byte [ecx + 2], dl
test eax, eax
je 0x1003fe6a
jmp 0x100446cf
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
imul esi, dword [ebp + 0xc], 0x28
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x40], eax
add esi, dword [esp + 0x20]
cmp byte [eax + 2], 0
je 0x100441d7
mov ecx, esi
call fcn.1003a524
jmp 0x1003fe6a
mov eax, dword [eax + 0x28]
lea edi, [esp + 0xd8]
push 8
mov eax, dword [eax]
mov dword [esp + 0x20], eax
mov ebx, dword [eax]
pop eax
mov ecx, eax
xor eax, eax
rep stosd dword es:[edi], eax
xor ecx, ecx
mov dword [esp + 0xd8], esi
inc ecx
test byte [ebp + 2], cl
je 0x10044213
mov ecx, esi
call fcn.1003a524
xor eax, eax
mov dword [esi], eax
mov eax, 0x4001
jmp 0x10044225
mov ax, word [esi + 8]
mov edx, 0x3e40
and ax, dx
or ax, cx
movzx eax, ax
mov word [esi + 8], ax
lea eax, [esp + 0xd8]
push dword [ebp + 8]
push eax
mov eax, dword [esp + 0x48]
push dword [eax + 0x28]
call dword [ebx + 0x2c]
mov edi, dword [esp + 0x54]
add esp, 0xc
mov edx, dword [esp + 0x1c]
mov ebx, eax
mov ecx, edi
mov dword [esp + 0x18], ebx
call fcn.1003e3fd
cmp dword [esp + 0xec], 0
jle 0x10044281
push esi
call fcn.1003e699
pop ecx
push eax
push 0x10094a6c
push edi
call fcn.1003af0d
mov ebx, dword [esp + 0xf8]
add esp, 0xc
mov dword [esp + 0x18], ebx
movzx edx, byte [esp + 0x58]
mov ecx, esi
call fcn.10039e1e
mov ecx, esi
call fcn.1003a68f
test eax, eax
jne 0x10043d61
jmp 0x100409c6
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x40], eax
cmp byte [eax + 2], 0
jne 0x1003fe6e
mov eax, dword [eax + 0x28]
push eax
mov esi, dword [eax]
mov ecx, dword [esi]
mov dword [esp + 0x20], ecx
call dword [ecx + 0x24]
pop ecx
mov ebx, eax
mov edx, esi
mov ecx, edi
mov dword [esp + 0x18], ebx
call fcn.1003e3fd
test ebx, ebx
jne 0x10041620
mov eax, dword [esp + 0x40]
push dword [eax + 0x28]
mov eax, dword [esp + 0x20]
call dword [eax + 0x28]
pop ecx
test eax, eax
jne 0x100436e8
mov esi, dword [esp + 0x14]
xor edx, edx
imul eax, dword [ebp + 8], 0x14
mov ebp, dword [esp + 0x5c]
add ebp, 0xffffffec
add ebp, eax
xor eax, eax
inc eax
jmp 0x100436f1
mov eax, dword [esi + 0x20]
mov ecx, 0x4000000
or dword [esi + 0x20], ecx
and eax, ecx
mov dword [esp + 0x40], eax
xor edx, edx
mov eax, dword [esi + 0x24]
inc edx
mov dword [esi + 0x24], eax
imul esi, dword [ebp + 4], 0x28
mov eax, dword [ebp + 0x10]
add esi, dword [esp + 0x20]
mov eax, dword [eax + 8]
mov ecx, esi
mov dword [esp + 0x1c], eax
call fcn.10039e1e
mov ebx, eax
test ebx, ebx
jne 0x10041620
mov ecx, dword [esp + 0x1c]
push dword [esi + 0x10]
push ecx
mov eax, dword [ecx]
call dword [eax + 0x4c]
cmp dword [esp + 0x48], 0
mov ebx, eax
mov esi, dword [esp + 0x1c]
pop ecx
pop ecx
mov dword [esp + 0x18], ebx
jne 0x1004437b
mov eax, dword [esi + 0x24]
and dword [esi + 0x20], 0xfbffffff
mov dword [esi + 0x24], eax
mov edx, dword [esp + 0x1c]
mov ecx, edi
call fcn.1003e3fd
jmp 0x10041f04
cmp byte [esi + 0x51], 0
jne 0x10041609
mov eax, dword [ebp + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x1004492c
mov eax, dword [esi]
mov dword [esp + 0x40], eax
test eax, eax
je 0x1004492c
mov edx, dword [ebp + 8]
xor ecx, ecx
cmp dword [eax + 0x34], ecx
je 0x1003fe6a
mov eax, dword [esp + 0x14]
mov ebx, dword [edi + 0x5c]
mov al, byte [eax + 0x56]
mov byte [esp + 0x37], al
imul eax, dword [ebp + 0xc], 0x28
add eax, dword [esp + 0x20]
test edx, edx
jle 0x100443e4
mov dword [ebx + ecx*4], eax
add eax, 0x28
inc ecx
cmp ecx, edx
jl 0x100443d9
mov ecx, dword [esp + 0x14]
mov al, byte [ebp + 2]
mov byte [ecx + 0x56], al
lea eax, [esp + 0x148]
push eax
mov eax, dword [esp + 0x44]
push ebx
push edx
push esi
call dword [eax + 0x34]
mov ecx, dword [esp + 0x24]
mov ebx, eax
mov al, byte [esp + 0x47]
add esp, 0x10
mov edx, esi
mov dword [esp + 0x18], ebx
mov byte [ecx + 0x56], al
mov ecx, edi
call fcn.1003e3fd
test ebx, ebx
jne 0x10044442
mov esi, dword [esp + 0x14]
xor edx, edx
cmp dword [ebp + 4], edx
je 0x1004446d
mov eax, dword [esp + 0x148]
mov ecx, dword [esp + 0x14c]
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], ecx
jmp 0x1004446d
cmp bl, 0x13
jne 0x10044467
mov eax, dword [ebp + 0x10]
cmp byte [eax + 0x10], 0
je 0x10044467
movzx eax, word [ebp + 2]
push 4
pop ecx
cmp ax, cx
jne 0x10044916
xor eax, eax
jmp 0x10042106
mov esi, dword [esp + 0x14]
xor edx, edx
inc dword [edi + 0x2c]
jmp 0x10041e4f
mov edx, ebp
mov ecx, edi
call fcn.1003fce9
mov edx, dword [ebp + 4]
mov esi, eax
mov eax, dword [esp + 0x14]
add edx, edx
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + edx*8 + 4]
call fcn.10032ac8
mov dword [esi], eax
xor eax, eax
mov dword [esi + 4], eax
jmp 0x1003fe6a
mov edx, ebp
mov ecx, edi
call fcn.1003fce9
mov edx, dword [ebp + 4]
mov ecx, dword [esi + 0x10]
add edx, edx
mov dword [esp + 0x40], eax
mov esi, dword [ecx + edx*8 + 4]
xor ecx, ecx
mov eax, ecx
cmp dword [ebp + 0xc], ecx
je 0x100444d2
mov ecx, esi
call fcn.10032ac8
cmp eax, dword [ebp + 0xc]
jae 0x100444d2
mov eax, dword [ebp + 0xc]
mov edx, eax
mov ecx, esi
call fcn.10033051
mov ecx, dword [esp + 0x40]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x1003fe6a
movzx eax, word [ebp + 2]
xor ecx, ecx
mov dword [esp + 0x40], eax
push ecx
mov ecx, esi
lea eax, [eax*4 + 0x1c]
push eax
call fcn.10023fa8
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x10041605
xor eax, eax
mov dword [esi], eax
mov eax, ebp
mov ecx, dword [ebp + 0x10]
sub eax, dword [esp + 0x5c]
mov dword [esi + 4], ecx
cdq
push 0x14
pop ecx
idiv ecx
mov dword [esi + 0xc], edi
mov dword [esi + 0x10], eax
xor eax, eax
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x40]
mov byte [esi + 0x19], al
add byte [ebp], 2
mov byte [ebp + 1], pe_nt_image_headers32
mov dword [ebp + 0x10], esi
imul ecx, dword [ebp + 0xc], 0x28
mov esi, dword [ebp + 0x10]
add ecx, dword [esp + 0x20]
mov dword [esp + 0x24], ecx
cmp dword [esi], ecx
je 0x10044587
movzx edx, byte [esi + 0x19]
sub edx, 1
mov dword [esi], ecx
js 0x10044587
lea edi, [edx + 7]
push 4
lea edi, [esi + edi*4]
pop ecx
mov eax, dword [ebp + 8]
add eax, edx
imul eax, eax, 0x28
add eax, dword [esp + 0x20]
mov dword [edi], eax
sub edi, ecx
sub edx, 1
jns 0x1004456a
mov edi, dword [esp + 0x48]
mov ecx, dword [esp + 0x24]
mov ax, word [ecx + 8]
mov edx, 0x3e40
and ax, dx
xor edx, edx
inc edx
or ax, dx
mov word [ecx + 8], ax
lea eax, [esi + 0x1c]
mov ecx, dword [esi + 4]
push eax
movzx eax, byte [esi + 0x19]
push eax
push esi
call dword [ecx + 0x10]
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x100445fd
jle 0x100445d9
push dword [esp + 0x24]
call fcn.1003e699
pop ecx
push eax
push 0x10094a6c
push edi
call fcn.1003af0d
mov ebx, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x18], ebx
push dword [ebp + 4]
mov ecx, dword [esp + 0x18]
lea edx, [edi + 0xdc]
push dword [esi + 0x10]
call fcn.1003cecd
xor edx, edx
mov dword [esi + 0x14], edx
pop ecx
pop ecx
test ebx, ebx
jne 0x10041622
mov esi, dword [esp + 0x24]
test byte [esi + 8], 0x12
je 0x1003fe6a
jmp 0x10043d46
xor edx, edx
inc edx
test byte [esi + 0x58], dl
je 0x10044687
push 0x10
pop eax
test byte [edi + 0x98], al
jne 0x10044687
mov eax, dword [ebp + 0x10]
test eax, eax
jne 0x10044634
mov eax, dword [edi + 0xc0]
test eax, eax
je 0x10044687
push eax
cmp dword [esi + 0xb8], edx
jle 0x10044673
push str.____s
push esi
call fcn.10025826
add esp, 0xc
mov esi, eax
mov eax, dword [esp + 0x14]
push esi
push edi
push dword [eax + 0xcc]
push 1
call dword [eax + 0xc8]
add esp, 0x10
mov edx, esi
mov esi, dword [esp + 0x14]
mov ecx, esi
call fcn.10023df8
jmp 0x10044684
push edi
push dword [esi + 0xcc]
push edx
call dword [esi + 0xc8]
add esp, 0x10
xor edx, edx
inc edx
mov eax, dword [ebp + 4]
cmp eax, dword [0x100a5148]
jl 0x100446c5
cmp byte [ebp], 0xa8
je 0x1003fe6e
mov ecx, edx
cmp dword [edi + 0x6c], edx
jle 0x100446c3
push 0x14
pop esi
mov eax, esi
xor ebx, ebx
mov edx, dword [edi + 0x68]
cmp byte [eax + edx], 0x11
jne 0x100446b7
mov dword [eax + edx + 4], ebx
inc ecx
add eax, esi
cmp ecx, dword [edi + 0x6c]
jl 0x100446aa
mov ebx, dword [esp + 0x18]
xor eax, eax
inc eax
mov dword [ebp + 4], eax
inc dword [edi + 0xbc]
imul eax, dword [ebp + 8], 0x14
mov ebp, dword [esp + 0x5c]
add ebp, 0xffffffec
add ebp, eax
jmp 0x100400b7
mov dword [edi + 0x28], ecx
mov al, byte [ebp + 8]
mov byte [edi + 0x92], al
mov dword [edi + 0x24], esi
test ecx, ecx
je 0x1004475f
movzx eax, word [ebp + 2]
test ax, ax
je 0x10044734
push dword [eax*4 + 0x1008cab8]
push str._s_constraint_failed
push edi
call fcn.1003af0d
add esp, 0xc
cmp dword [ebp + 0x10], 0
je 0x10044745
push dword [ebp + 0x10]
push dword [edi + 0x7c]
push str._z:__s
push dword [esp + 0x20]
call fcn.10025826
add esp, 0x10
mov dword [edi + 0x7c], eax
jmp 0x10044745
push dword [ebp + 0x10]
push 0x10094a6c
push edi
call fcn.1003af0d
add esp, 0xc
push dword [edi + 0x7c]
push dword [edi + 0xc0]
push esi
push str.abort_at__d_in___s_:__s
push dword [ebp + 4]
call fcn.10025979
add esp, 0x14
mov ecx, edi
call fcn.1003caeb
mov ebx, eax
push 5
pop eax
cmp ebx, eax
jne 0x10044a95
mov dword [edi + 0x28], eax
jmp 0x100416b2
push 0x100995b4
push 0x15240
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.10025979
add esp, 0x14
push 0xb
jmp 0x1004161f
push str.cannot_open_savepoint___SQL_statements_in_progress
push edi
call fcn.1003af0d
pop ecx
pop ecx
push 5
pop eax
mov ebx, eax
jmp 0x10041620
push str.cannot_release_savepoint___SQL_statements_in_progress
jmp 0x100447a5
sub ebp, dword [esp + 0x5c]
mov eax, ebp
push 0x14
cdq
pop ebp
idiv ebp
mov dword [edi + 0x24], eax
xor eax, eax
mov byte [ebx + 0x4f], al
mov ebx, ecx
mov dword [edi + 0x28], ecx
jmp 0x100416b2
push eax
push str.no_such_savepoint:__s
push edi
call fcn.1003af0d
add esp, 0xc
xor ebx, ebx
inc ebx
jmp 0x10041620
push 8
jmp 0x100447af
cmp bl, 5
jne 0x10041620
sub ebp, dword [esp + 0x5c]
mov eax, ebp
mov dword [edi + 0x28], ebx
push 0x14
cdq
pop ecx
idiv ecx
mov dword [edi + 0x24], eax
jmp 0x100416b2
mov edx, dword [edi + 0x7c]
test edx, edx
je 0x10044825
mov ecx, esi
call fcn.10023dc7
mov edx, str.database_schema_has_changed
mov ecx, esi
call fcn.10024106
mov dword [edi + 0x7c], eax
mov edx, dword [ebp + 4]
mov ecx, edx
mov eax, dword [esi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax]
cmp eax, dword [esp + 0x24]
je 0x10044851
mov ecx, esi
call fcn.10051e91
mov eax, dword [edi + 0x98]
and eax, 0xfffffffd
or eax, 1
mov dword [edi + 0x98], eax
push 0x11
jmp 0x1004161f
mov ebx, 0x204
jmp 0x10041620
push 0x100995b4
push 0x158d1
jmp 0x10044785
push 0xd
jmp 0x1004161f
push 6
mov byte [edi + 0x92], 2
jmp 0x1004161f
mov esi, dword [esp + 0x14]
push 7
pop ebx
mov ecx, esi
call fcn.10051ee9
cmp ebx, 7
je 0x10041609
jmp 0x10041620
xor ebx, ebx
push str.too_many_levels_of_trigger_recursion
push edi
inc ebx
call fcn.1003af0d
pop ecx
pop ecx
jmp 0x10041620
push esi
call fcn.1003e699
pop ecx
push eax
push 0x10094a6c
push edi
call fcn.1003af0d
add esp, 0xc
jmp 0x10041620
xor ebx, ebx
mov eax, str.into
inc ebx
cmp esi, edx
je 0x100448f5
mov eax, str.out_of
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
jmp 0x100448d6
mov eax, dword [esp + 0x40]
push dword [esp + 0x2c]
call dword [eax + 0x1c]
pop ecx
jmp 0x10041605
push 6
pop ebx
jmp 0x10041622
push 5
pop ecx
cmp ax, cx
jne 0x10044921
push 2
pop eax
mov byte [edi + 0x92], al
jmp 0x10041620
push 6
jmp 0x1004161f
xor edx, edx
mov ecx, edi
call fcn.1003ca90
mov ebx, eax
test ebx, ebx
jne 0x10041620
mov eax, dword [edi]
xor edx, edx
cmp dword [eax + 0x1bc], edx
je 0x10044961
cmp dword [edi + 0x30], edx
je 0x10044961
inc edx
mov ecx, edi
call fcn.1003c9af
xor edx, edx
mov eax, dword [edi + 0x20]
mov ebx, edx
add eax, 2
or eax, 1
mov dword [edi + 0x20], eax
imul esi, dword [ebp + 4], 0x28
add esi, dword [esp + 0x20]
mov dword [edi + 0x78], esi
cmp dword [ebp + 8], edx
jle 0x100449bf
mov eax, 0x1000
test word [esi + 8], ax
je 0x10044999
mov ecx, esi
call fcn.10039f62
test eax, eax
jne 0x10041605
mov ax, word [esi + 8]
mov ecx, 0x202
and ax, cx
push 2
pop ecx
cmp ax, cx
jne 0x100449b4
mov ecx, esi
call fcn.10039f1c
inc ebx
add esi, 0x28
cmp ebx, dword [ebp + 8]
jl 0x1004497f
xor edx, edx
mov esi, dword [esp + 0x14]
cmp byte [esi + 0x51], 0
jne 0x10041609
push 4
pop eax
test byte [esi + 0x58], al
je 0x100449e7
push edx
push edi
push dword [esi + 0xcc]
push eax
call dword [esi + 0xc8]
add esp, 0x10
sub ebp, dword [esp + 0x5c]
push 0x14
mov eax, ebp
pop ecx
cdq
idiv ecx
push 0x64
inc eax
mov dword [edi + 0x24], eax
pop ebx
jmp 0x100416b2
mov ebx, dword [ebp + 4]
movzx eax, byte [esi + 0x4f]
mov ecx, dword [ebp + 8]
mov dword [esp + 0xa4], ebx
cmp ebx, eax
je 0x10044aa7
test ecx, ecx
je 0x10044a2c
mov edx, 0x204
mov ecx, esi
call fcn.1007bddf
mov al, 1
jmp 0x10044a61
test ebx, ebx
je 0x10044a44
xor eax, eax
cmp dword [esi + 0xb4], eax
jle 0x10044a44
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x100447a5
xor edx, edx
mov ecx, edi
inc edx
call fcn.1003ca90
mov ebx, eax
test ebx, ebx
jne 0x100416b2
mov al, byte [esp + 0xa4]
mov bl, al
mov ecx, edi
mov byte [esi + 0x4f], al
call fcn.1003caeb
push 5
pop ecx
cmp eax, ecx
jne 0x10044a8e
sub ebp, dword [esp + 0x5c]
mov eax, ebp
cdq
push 0x14
pop ebp
idiv ebp
mov dword [edi + 0x24], eax
xor eax, eax
inc eax
sub al, bl
mov byte [esi + 0x4f], al
jmp 0x100447d2
mov ecx, esi
call fcn.1007ba28
mov ebx, dword [edi + 0x28]
neg ebx
sbb ebx, ebx
and ebx, 0xffffff9c
add ebx, 0x65
jmp 0x100416b2
test ebx, ebx
jne 0x10044ab2
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x10044ac0
mov eax, str.cannot_rollback___no_transaction_is_active
test ecx, ecx
jne 0x10044ac0
mov eax, str.cannot_commit___no_transaction_is_active
push eax
push edi
call fcn.1003af0d
pop ecx
pop ecx
jmp 0x100447eb