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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x2b8
mov eax, dword [0x101e3070]
xor eax, esp
mov dword [esp + 0x2b4], eax
push esi
mov esi, ecx
mov dword [esp + 0x10], 0
push edi
mov dword [esp + 0xc], esi
mov byte [esp + 0x53], 0
mov edi, dword [esi]
mov eax, dword [esi + 4]
mov dword [esp + 0x44], eax
mov dword [esp + 8], eax
mov al, byte [edi + 0x3e]
mov byte [esp + 0x48], al
mov eax, dword [esi + 8]
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x20]
mov dword [esp + 0x5c], eax
mov eax, dword [edi + 0x24]
mov dword [esp + 0x10], edi
mov dword [esp + 0x8c], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x58], eax
call fcn.10039f10
cmp dword [esi + 0x50], 7
je 0x10045be6
mov dword [esi + 0x50], 0
mov dword [esi + 0x88], 0
mov dword [esi + 0x8c], 0
mov dword [esi + 0x14], 0
cmp dword [edi + 0xf0], 0
mov dword [edi + 0x1c4], 0
jne 0x10046662
cmp dword [edi + 0x124], 0
je 0x100406e9
mov ecx, dword [edi + 0x12c]
xor edx, edx
mov eax, dword [esi + 0x7c]
div ecx
sub ecx, edx
mov dword [esp + 0x84], ecx
mov eax, dword [esi + 0x4c]
mov ecx, dword [esp + 0x44]
mov dword [esp + 0xa4], 0xff7f
mov dword [esp + 0xbc], 0xbe01
lea eax, [eax + eax*4]
lea edx, [ecx + eax*4]
mov dword [esp + 8], edx
cmp byte [edi + 0x41], 0
jne 0x10045be6
mov cl, byte [edx]
inc dword [esp + 0x6c]
movzx edx, cl
mov byte [esp + 0x27], cl
mov dword [esp + 0x1c], edx
lea eax, [edx - 1]
cmp eax, 0x9e
ja case.0x10040739.63
jmp dword [eax*4 + 0x100466e4]
mov ecx, dword [esp + 8]
mov edx, 4
mov eax, dword [ecx + 4]
sub ecx, dword [esp + 0x44]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x18]
mov word [eax + esi*8 + 8], dx
mov eax, 0x66666667
imul ecx
mov ecx, dword [esp + 0x18]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ecx + esi*8], eax
mov dword [ecx + esi*8 + 4], edx
mov edx, dword [esp + 8]
mov edx, dword [edx + 8]
mov ecx, dword [esp + 0x44]
dec edx
lea edx, [edx + edx*4]
lea edx, [ecx + edx*4]
jmp 0x10040f0b
mov eax, dword [esp + 8]
mov esi, 0x80
mov edx, dword [esp + 0x44]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + ecx*8]
lea eax, [eax + eax*4]
lea edx, [edx + eax*4]
mov eax, dword [esp + 0x18]
mov word [eax + ecx*8 + 8], si
jmp 0x10040f0f
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x18]
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
dec eax
cdq
mov dword [edi + ecx*8], eax
mov eax, edi
mov edi, dword [esp + 0x10]
mov dword [eax + ecx*8 + 4], edx
mov edx, 4
mov word [eax + ecx*8 + 8], dx
mov edx, dword [esp + 8]
cmp dword [edx + 8], 0
jne 0x1004077d
jmp 0x10040f13
mov eax, dword [esp + 8]
mov esi, 0x80
mov edx, dword [esp + 0x44]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + ecx*8]
lea eax, [eax + eax*4]
mov eax, dword [edx + eax*4 + 8]
lea eax, [eax + eax*4]
lea edx, [edx + eax*4]
mov eax, dword [esp + 0x18]
add edx, 0xffffffec
mov word [eax + ecx*8 + 8], si
jmp 0x10040f0f
mov edx, dword [esp + 8]
mov ecx, 4
mov edi, dword [esp + 0x18]
mov eax, dword [edx + 4]
sub edx, dword [esp + 0x44]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x18]
mov word [eax + esi*8 + 8], cx
mov ecx, dword [eax + esi*8]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [edi + esi*8], eax
mov eax, edi
mov dword [eax + esi*8 + 4], edx
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x44]
lea edx, [ecx + eax*4]
jmp 0x10040f0b
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
je case.0x10040739.63
mov ecx, dword [esp + 8]
mov eax, 0x66666667
sub ecx, dword [esp + 0x44]
imul ecx
mov eax, dword [esp + 0xc]
sar edx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
mov edx, dword [esp + 8]
cmp dword [edx + 4], 0
jne 0x10046239
mov ecx, dword [eax + 0xb0]
test ecx, ecx
je 0x10046239
mov esi, dword [esp + 0xc]
mov eax, dword [ecx + 4]
dec dword [esi + 0xb8]
mov dword [esi + 0xb0], eax
mov eax, dword [esi + 0x5c]
add dword [edi + 0x54], eax
mov dword [edi + 0x50], eax
call fcn.1003a940
mov ecx, dword [edi + 0x20]
mov dword [esp + 0x5c], ecx
mov ecx, dword [edi + 0x24]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 8]
cmp dword [ecx + 8], 4
jne 0x10040912
lea ecx, [eax + eax*4]
mov eax, dword [esi + 4]
mov eax, dword [eax + ecx*4 + 8]
dec eax
mov edx, dword [esi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [esi + 8]
mov dword [esp + 0x44], edx
mov dword [esp + 0x18], ecx
lea edx, [edx + eax*4]
jmp 0x10040f13
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea ecx, [eax + ecx*8]
mov eax, 0x2460
test word [ecx + 8], ax
je 0x10040963
call fcn.100405c0
mov ecx, eax
mov eax, dword [esp + 8]
mov eax, dword [eax + 4]
cdq
mov dword [ecx + 4], edx
mov edx, dword [esp + 8]
mov dword [ecx], eax
jmp 0x10040f13
mov eax, 4
mov word [ecx + 8], ax
mov eax, dword [esp + 8]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov edx, dword [esp + 8]
jmp 0x10040f13
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea edx, [eax + ecx*8]
mov eax, 0x2460
test word [edx + 8], ax
je 0x100409a8
mov ecx, edx
call fcn.100405c0
mov edx, eax
jmp 0x100409b1
mov eax, 4
mov word [edx + 8], ax
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov edx, dword [esp + 8]
jmp 0x10040f13
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea ecx, [eax + ecx*8]
mov eax, 0x2460
test word [ecx + 8], ax
je 0x100409ef
call fcn.100405c0
mov ecx, eax
jmp 0x100409f8
mov eax, 4
mov word [ecx + 8], ax
mov edx, dword [esp + 8]
mov eax, 8
mov word [ecx + 8], ax
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x10]
movsd xmm0, qword [eax]
movsd qword [ecx], xmm0
jmp 0x10040f13
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x10040a3f
mov ecx, esi
call fcn.100405c0
mov esi, eax
jmp 0x10040a48
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [esp + 8]
mov edi, dword [eax + 0x10]
mov ecx, edi
mov byte [eax], 0x19
call fcn.1001e7f0
cmp byte [esp + 0x48], 1
mov ecx, dword [esp + 8]
mov dword [ecx + 4], eax
je 0x10040ad0
push 0
push 1
push 0xffffffffffffffff
mov edx, edi
mov ecx, esi
call fcn.10038320
add esp, 0xc
mov dword [esp + 0x14], eax
cmp eax, 0x12
je 0x1004650a
movzx edx, byte [esp + 0x48]
mov ecx, esi
call fcn.10037740
test eax, eax
jne 0x10045bde
mov ecx, dword [esp + 8]
mov dword [esi + 0x18], eax
mov eax, 0x800
or word [esi + 8], ax
cmp byte [ecx + 1], 0xff
jne 0x10040ac0
mov edx, dword [ecx + 0x10]
mov ecx, dword [esp + 0x10]
call fcn.1001bca0
mov ecx, dword [esp + 8]
mov byte [ecx + 1], 0xff
mov eax, dword [esi + 0x10]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0xc]
mov dword [ecx + 4], eax
mov edi, dword [esp + 0x10]
mov eax, dword [ecx + 4]
cmp eax, dword [edi + 0x58]
jg 0x1004650a
mov esi, dword [esp + 0xc]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea edx, [eax + ecx*8]
mov eax, 0x2460
test word [edx + 8], ax
je 0x10040b0c
mov ecx, edx
call fcn.100405c0
mov edx, eax
jmp 0x10040b15
mov ecx, dword [esp + 8]
jmp 0x10040ae4
mov eax, 4
mov word [edx + 8], ax
mov eax, 0xa02
mov word [edx + 8], ax
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x10]
mov dword [edx + 0x10], eax
mov eax, dword [esp + 8]
mov eax, dword [eax + 4]
mov dword [edx + 0xc], eax
mov al, byte [esp + 0x48]
mov byte [edx + 0xa], al
mov eax, dword [esp + 8]
cmp byte [eax + 3], 0
je case.0x10040739.63
mov eax, dword [eax + 0xc]
mov edi, dword [esp + 0x18]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + ecx*8]
or eax, dword [edi + ecx*8 + 4]
mov edi, dword [esp + 0x10]
je case.0x10040739.63
mov eax, 0xa10
mov word [edx + 8], ax
mov edx, dword [esp + 8]
jmp 0x10040f13
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x10040b9e
mov ecx, esi
call fcn.100405c0
mov esi, eax
jmp 0x10040ba7
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [esp + 8]
mov ecx, 0x101
mov edx, dword [esp + 8]
mov edi, dword [eax + 0xc]
sub edi, dword [eax + 8]
mov eax, 1
cmp dword [edx + 4], 0
cmovne eax, ecx
movzx eax, ax
mov dword [esp + 0x28], eax
mov word [esi + 8], ax
test edi, edi
jle 0x10040f0b
nop dword [eax]
add esi, 0x28
mov ecx, esi
call fcn.100380c0
mov eax, dword [esp + 0x28]
dec edi
mov word [esi + 8], ax
test edi, edi
jg 0x10040be0
jmp 0x10040f07
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x18]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov ax, word [edx + ecx*8 + 8]
and ax, word [esp + 0xa4]
or ax, 1
mov word [edx + ecx*8 + 8], ax
mov edx, dword [esp + 8]
jmp 0x10040f13
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x10040c4f
mov ecx, esi
call fcn.100405c0
mov esi, eax
jmp 0x10040c58
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [esp + 8]
mov ecx, esi
push 0
push 0
push dword [eax + 4]
mov edx, dword [eax + 0x10]
call fcn.10038320
mov al, byte [esp + 0x54]
add esp, 0xc
mov byte [esi + 0xa], al
mov edx, dword [esp + 8]
jmp 0x10040f0f
mov eax, dword [esp + 8]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x3c]
lea esi, [eax + ecx*8]
movzx eax, word [esi - 0x20]
test al, 0x12
je 0x10040cb8
mov edx, dword [esi - 0x1c]
test eax, 0x4000
je 0x10040ca5
add edx, dword [esi - 0x28]
mov eax, dword [esi - 8]
xor ecx, ecx
cmp edx, dword [eax + 0x58]
setg cl
test ecx, ecx
jne 0x1004650a
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 8]
lea eax, [eax + ecx*8]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x10040ce0
mov ecx, eax
call fcn.100405c0
jmp 0x10040ce9
mov ecx, 4
mov word [eax + 8], cx
push 0x800
lea edx, [esi - 0x28]
mov ecx, eax
call fcn.10038260
mov edx, dword [esp + 0xc]
add esp, 4
jmp 0x10040f0f
mov edx, dword [esp + 8]
mov esi, dword [esp + 0x18]
mov eax, dword [edx + 4]
mov ecx, dword [edx + 0xc]
mov dword [esp + 0x1c], ecx
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, 0x2460
test word [esi + 8], ax
jne 0x10040d36
cmp dword [esi + 0x18], 0
je 0x10040d41
mov ecx, esi
call fcn.10037c00
mov ecx, dword [esp + 0x1c]
movups xmm0, xmmword [edi]
mov eax, 1
movups xmmword [esi], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [esi + 0x10], xmm0
movq xmm0, qword [edi + 0x20]
movq qword [esi + 0x20], xmm0
mov word [edi + 8], ax
mov eax, 0x1000
mov dword [edi + 0x18], 0
test word [esi + 8], ax
je 0x10040d87
mov ecx, esi
call fcn.100378b0
test eax, eax
jne 0x10045bde
mov ecx, dword [esp + 0x1c]
add edi, 0x28
add esi, 0x28
sub ecx, 1
mov dword [esp + 0x1c], ecx
jne 0x10040d25
jmp 0x10040f07
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x1c], eax
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
nop dword [eax]
push 0x1000
mov edx, edi
mov ecx, esi
call fcn.10038260
mov eax, 0x1000
add esp, 4
test word [esi + 8], ax
je 0x10040deb
mov ecx, esi
call fcn.100378b0
test eax, eax
jne 0x10045bde
mov ecx, dword [esp + 0x1c]
mov eax, ecx
dec ecx
mov dword [esp + 0x1c], ecx
test eax, eax
je 0x10040f07
add esi, 0x28
add edi, 0x28
jmp 0x10040dc0
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x18]
push 0x1000
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [ecx + 8]
mov ecx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.10038260
mov edx, dword [esp + 0xc]
add esp, 4
jmp 0x10040f13
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
push dword [edx + eax*8 + 4]
push dword [edx + eax*8]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
call fcn.10038120
mov edx, dword [esp + 0x10]
add esp, 8
jmp 0x10040f13
mov eax, dword [edi + 0x124]
test eax, eax
je 0x10040e93
mov ecx, dword [esp + 0x6c]
cmp ecx, dword [esp + 0x84]
jb 0x10040e93
push dword [edi + 0x128]
call eax
add esp, 4
test eax, eax
jne 0x100462f0
xor edx, edx
mov ecx, esi
call fcn.1003b610
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne case.0x10040739.63
lea edx, [eax + 1]
mov ecx, esi
call fcn.1003b410
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
je 0x100462fe
mov edx, dword [esp + 8]
jmp 0x10040f13
mov edx, dword [esp + 8]
mov esi, dword [esp + 0x18]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [edx + 8]
mov dword [esp + 0x1c], ecx
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov eax, dword [edx + 0xc]
movzx edx, word [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov al, byte [edi + 8]
or al, dl
test al, 1
je 0x10040fc6
mov ecx, esi
call fcn.100380c0
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
add edx, 0x14
cmp dword [esp + 0x14], 0
mov dword [esp + 8], edx
je 0x10040710
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 8]
mov eax, dword [esp + 0xc]
sub esi, dword [esp + 0x44]
push dword [eax + 0x2c]
mov dword [eax + 0x50], edx
push dword [eax + 0xa8]
mov eax, 0x66666667
imul esi
mov esi, dword [esp + 0x1c]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.statement_aborts_at__d:___s___s
push esi
call fcn.1001dd80
mov ecx, dword [esp + 0x20]
add esp, 0x14
call fcn.1003b680
mov edi, dword [esp + 0x10]
cmp esi, 0xc0a
jne 0x10040f7e
mov byte [edi + 0x41], 1
mov cl, byte [esp + 0x53]
mov eax, 1
mov dword [esp + 0x14], eax
test cl, cl
je 0x100466a6
mov eax, dword [edi + 0x10]
movzx esi, cl
dec esi
mov ecx, esi
add ecx, ecx
push dword [eax + ecx*8 + 0xc]
call fcn.1005d770
add esp, 4
cmp esi, 1
je 0x10040fbd
mov eax, dword [edi + 0x10]
push dword [eax + 0x1c]
call fcn.1005d770
add esp, 4
mov eax, dword [esp + 0x14]
jmp 0x100466a6
test edx, 0x4000
je 0x10040fdb
call fcn.10037920
test eax, eax
jne 0x10045bde
mov eax, 0x4000
test word [edi + 8], ax
je 0x10040ff5
mov ecx, edi
call fcn.10037920
test eax, eax
jne 0x10045bde
mov eax, dword [esp + 0x1c]
test byte [eax + 8], 0x12
jne 0x10041017
mov dl, byte [esp + 0x48]
mov ecx, eax
push 0
call fcn.100379e0
add esp, 4
test eax, eax
jne 0x10045bde
test byte [edi + 8], 0x12
jne 0x10041035
mov dl, byte [esp + 0x48]
mov ecx, edi
push 0
call fcn.100379e0
add esp, 4
test eax, eax
jne 0x10045bde
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0xc]
add eax, dword [edi + 0xc]
cdq
mov dword [esp + 0xdc], eax
mov ecx, edx
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x58]
cdq
cmp ecx, edx
jg 0x1004650a
mov edx, dword [esp + 0xdc]
jl 0x1004106a
cmp edx, eax
ja 0x1004650a
xor eax, eax
mov ecx, esi
cmp esi, edi
sete al
add edx, 2
push eax
call fcn.10037760
add esp, 4
test eax, eax
jne 0x10045bde
mov ax, word [esi + 8]
mov ecx, 0xbe02
and ax, cx
or ax, 2
mov word [esi + 8], ax
cmp esi, edi
je 0x100410b0
push dword [edi + 0xc]
push dword [edi + 0x10]
push dword [esi + 0x10]
call fcn.101544a0
add esp, 0xc
mov eax, dword [esp + 0x1c]
push dword [eax + 0xc]
push dword [eax + 0x10]
mov eax, dword [esi + 0x10]
add eax, dword [edi + 0xc]
push eax
call fcn.101544a0
mov eax, dword [esi + 0x10]
add esp, 0xc
mov ecx, dword [esp + 0xdc]
mov byte [ecx + eax], 0
mov eax, dword [esi + 0x10]
mov byte [ecx + eax + 1], 0
mov eax, 0x200
or word [esi + 8], ax
mov al, byte [esp + 0x48]
mov dword [esi + 0xc], ecx
mov byte [esi + 0xa], al
jmp 0x10040f07
mov eax, dword [esp + 8]
mov esi, dword [esp + 0x18]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
movzx ecx, word [esi + eax*8 + 8]
lea edx, [esi + eax*8]
mov eax, ecx
mov dword [esp + 0x30], edx
and eax, 0xc
je 0x10041121
mov dword [esp + 0xdc], eax
jmp 0x10041144
test cl, 0x12
je 0x10041139
mov ecx, edx
call fcn.10040570
movzx eax, ax
mov dword [esp + 0xdc], eax
jmp 0x10041144
mov dword [esp + 0xdc], 0
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
movzx ecx, word [esi + eax*8 + 8]
lea edx, [esi + eax*8]
mov eax, ecx
mov dword [esp + 0x20], edx
and eax, 0xc
je 0x10041167
mov dword [esp + 0x1c], eax
jmp 0x10041188
test cl, 0x12
je 0x10041180
mov ecx, edx
call fcn.10040570
mov edx, dword [esp + 0x20]
movzx eax, ax
mov dword [esp + 0x1c], eax
jmp 0x10041188
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x30]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x40], eax
mov al, byte [edx + 8]
or al, byte [ecx + 8]
test al, 1
jne 0x100413d6
mov al, byte [esp + 0x1c]
and al, byte [esp + 0xdc]
test al, 4
je 0x100412d0
mov eax, ecx
mov byte [esp + 0x27], 1
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x20]
mov esi, dword [eax]
mov edi, dword [eax + 4]
mov eax, dword [esp + 8]
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], edi
movzx eax, byte [eax]
add eax, 0xffffffa7
cmp eax, 3
ja case.default.0x100411ee
jmp dword [eax*4 + 0x10046960]
push ecx
push edx
lea ecx, [esp + 0x80]
call fcn.1001fbe0
add esp, 8
test eax, eax
jne 0x100412d7
mov edi, dword [esp + 0x7c]
mov esi, dword [esp + 0x78]
jmp 0x100412ae
test edx, edx
jne 0x10041244
cmp ecx, 0x80000000
jne 0x10041244
test edi, edi
jg 0x100412d7
jl 0x10041239
test esi, esi
jae 0x100412d7
add esi, 0
adc edi, 0x80000000
jmp 0x100412ae
neg edx
adc ecx, 0
neg ecx
jmp case.0x100411ee.89
push ecx
push edx
lea ecx, [esp + 0x80]
call fcn.1001fc80
jmp 0x10041203
mov eax, edx
or eax, ecx
je 0x100413d6
mov eax, edx
and eax, ecx
cmp eax, 0xffffffff
jne 0x1004127c
test esi, esi
jne 0x1004127c
cmp edi, 0x80000000
je 0x100412d7
push ecx
push edx
push edi
push esi
call fcn.1017a9f0
jmp 0x100412aa
mov eax, edx
or eax, ecx
je 0x100413d6
mov eax, edx
and eax, ecx
cmp eax, 0xffffffff
jne 0x100412a1
mov edx, 1
xor ecx, ecx
push ecx
push edx
push edi
push esi
call fcn.1017aaa0
mov edi, edx
mov esi, eax
mov ecx, dword [esp + 0x40]
mov edx, 0xbe04
mov ax, word [ecx + 8]
and ax, dx
mov dword [ecx], esi
or ax, 4
mov dword [ecx + 4], edi
mov word [ecx + 8], ax
jmp 0x10040f07
mov byte [esp + 0x27], 0
jmp 0x100412db
mov ecx, dword [esp + 0x30]
call fcn.10037d70
mov ecx, dword [esp + 0x20]
movsd qword [esp + 0x28], xmm0
call fcn.10037d70
mov eax, dword [esp + 8]
movaps xmm1, xmm0
movsd qword [esp + 0x60], xmm1
movzx eax, byte [eax]
add eax, 0xffffffa7
cmp eax, 3
ja case.default.0x10041307
jmp dword [eax*4 + 0x10046970]
addsd xmm1, qword [esp + 0x28]
jmp 0x10041386
subsd xmm1, qword [esp + 0x28]
jmp 0x10041386
mulsd xmm1, qword [esp + 0x28]
jmp 0x10041386
movsd xmm0, qword [esp + 0x28]
xorps xmm2, xmm2
ucomisd xmm0, xmm2
lahf
test ah, 0x44
jnp 0x100413d6
divsd xmm1, xmm0
jmp 0x10041386
movsd xmm0, qword [esp + 0x28]
call fcn.1017a4bf
movsd xmm0, qword [esp + 0x60]
mov esi, eax
mov edi, edx
call fcn.1017a4bf
mov ecx, esi
or ecx, edi
je 0x100413d6
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x10041373
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.1017aaa0
mov ecx, eax
call fcn.1017a610
movaps xmm1, xmm0
movaps xmm0, xmm1
call fcn.1001e7b0
test eax, eax
jne 0x100413d6
mov ecx, dword [esp + 0x40]
mov edx, 0xbe08
mov ax, word [ecx + 8]
and ax, dx
movsd qword [ecx], xmm1
or ax, 8
mov word [ecx + 8], ax
mov eax, dword [esp + 0x1c]
or al, byte [esp + 0xdc]
test al, 8
jne 0x10040f07
cmp byte [esp + 0x27], 0
jne 0x10040f07
call fcn.10037dd0
jmp 0x10040f07
mov ecx, dword [esp + 0x40]
jmp 0x10040f02
mov eax, dword [esp + 8]
mov eax, dword [eax + 4]
test eax, eax
je case.0x10040739.63
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
push 0
push 0
lea ecx, [ecx + eax*8]
call fcn.10038120
mov edx, dword [esp + 0x10]
add esp, 8
jmp 0x10040f13
mov eax, dword [esp + 8]
mov ecx, edi
push 0
movzx eax, byte [eax + 3]
mov dword [esp + 0x2c], eax
lea eax, [eax*4 + 0x1c]
push eax
call fcn.1001bee0
mov esi, eax
add esp, 8
test esi, esi
je 0x10045be2
mov eax, dword [esp + 8]
mov dword [esi], 0
mov ecx, dword [eax + 0x10]
mov dword [esi + 4], ecx
mov ecx, eax
sub ecx, dword [esp + 0x44]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x28]
mov byte [esi + 0x1a], al
mov eax, dword [esp + 8]
mov word [eax], 0xec25
mov dword [eax + 0x10], esi
jmp 0x10041481
mov eax, dword [esp + 8]
mov esi, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x28], esi
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov dword [esp + 0x38], edi
cmp dword [esi], edi
je 0x100414d4
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi], edi
js 0x100414d4
mov edi, dword [esp + 8]
lea edx, [esi + 0x1c]
mov esi, dword [esp + 0x18]
lea edx, [edx + ecx*4]
mov eax, dword [edi + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [edx + 4], eax
jns 0x100414b6
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x38]
mov ecx, dword [esi]
mov edx, 0xbe01
mov ax, word [ecx + 8]
and ax, dx
or ax, 1
mov word [ecx + 8], ax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x5c]
mov byte [esi + 0x19], 0
mov dword [eax + 0x20], ecx
mov ecx, dword [esp + 0x58]
mov dword [eax + 0x24], ecx
lea eax, [esi + 0x1c]
mov ecx, dword [esi + 4]
push eax
movzx eax, byte [esi + 0x1a]
push eax
mov eax, dword [ecx + 0xc]
push esi
call eax
mov eax, dword [esp + 0x1c]
add esp, 0xc
cmp byte [esi + 0x19], 0
mov ecx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x58], eax
je 0x1004156c
cmp dword [esi + 0x14], 0
je 0x10041556
push dword [esi]
call fcn.1003de40
add esp, 4
push eax
push 0x101d419c
push dword [esp + 0x14]
call fcn.10038c50
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x14], eax
mov eax, dword [esp + 8]
mov edx, dword [esi + 0x10]
mov ecx, dword [esp + 0xc]
push dword [eax + 4]
call fcn.1003bb60
add esp, 4
test byte [edi + 8], 0x12
je 0x10040f07
movzx edx, byte [esp + 0x48]
mov ecx, dword [esi]
call fcn.10037740
mov eax, dword [esi]
movzx ecx, word [eax + 8]
test cl, 0x12
je 0x10040f07
mov edx, dword [eax + 0xc]
test ecx, 0x4000
je 0x1004159e
add edx, dword [eax]
mov eax, dword [eax + 0x20]
xor ecx, ecx
mov esi, dword [esp + 0xc]
cmp edx, dword [eax + 0x58]
setg cl
test ecx, ecx
jne 0x1004650e
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x10]
jmp 0x10040f13
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [edx + 0xc]
mov edx, dword [esp + 0x18]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov al, byte [ecx + 8]
or al, byte [edi + 8]
mov dword [esp + 0x28], edx
test al, 1
je 0x1004160b
mov ecx, edx
call fcn.100380c0
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x10]
jmp 0x10040f13
call fcn.10037cc0
mov esi, edx
mov dword [esp + 0x20], eax
mov ecx, edi
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], esi
call fcn.10037cc0
mov edi, eax
mov eax, dword [esp + 8]
mov cl, byte [eax]
cmp cl, 0x55
jne 0x10041645
mov ecx, dword [esp + 0x20]
and ecx, edi
and esi, edx
jmp 0x1004171c
cmp cl, 0x56
jne 0x10041657
mov ecx, dword [esp + 0x20]
or ecx, edi
or esi, edx
jmp 0x1004171c
mov eax, edi
or eax, edx
je 0x10041718
test edx, edx
jg 0x1004168f
jl 0x1004166b
test edi, edi
jae 0x10041684
mov al, 0xaf
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x1004168f
jg 0x1004167d
cmp edi, 0xffffffc0
jbe 0x1004168f
neg edi
adc edx, 0
neg edx
test edx, edx
jl 0x100416bb
jg 0x1004168f
cmp edi, 0x40
jb 0x100416bb
test esi, esi
jg 0x100416a8
jl 0x1004169c
cmp dword [esp + 0x20], 0
jae 0x100416a8
cmp cl, 0x57
je 0x100416a8
or ecx, 0xffffffff
or esi, ecx
jmp 0x1004171c
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov esi, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
jmp 0x1004171c
movq xmm1, qword [esp + 0xc0]
movd xmm0, edi
cmp cl, 0x57
jne 0x100416e1
psllq xmm1, xmm0
movq qword [esp + 0x38], xmm1
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
jmp 0x1004171c
psrlq xmm1, xmm0
movq qword [esp + 0x38], xmm1
test esi, esi
jg 0x100416d7
jl 0x100416f8
cmp dword [esp + 0x20], 0
jae 0x100416d7
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, edi
or edx, 0xffffffff
call fcn.1017a6e0
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
or ecx, eax
or esi, edx
jmp 0x1004171c
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
mov ax, word [edx + 8]
mov dword [edx], ecx
mov ecx, 0xbe04
and ax, cx
mov dword [edx + 4], esi
or ax, 4
mov word [edx + 8], ax
jmp 0x10040f07
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.10037e70
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
mov edx, dword [esp + 8]
jmp 0x10040f0f
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 8]
test al, 4
jne 0x100417c6
test al, 8
jne 0x1004179b
test al, 2
je 0x100417a2
mov edx, 1
mov ecx, esi
call fcn.100403d0
jmp 0x100417a2
mov ecx, esi
call fcn.10037dd0
movzx eax, word [esi + 8]
test al, 4
jne 0x100417c6
mov edx, dword [esp + 8]
cmp dword [edx + 8], 0
jne 0x1004077d
mov edx, 0x14
mov dword [esp + 0x14], edx
jmp 0x10043ebb
mov edx, dword [esp + 8]
and eax, 0xbe04
or eax, 4
mov word [esi + 8], ax
jmp 0x10040f0f
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 4
lea ecx, [ecx + eax*8]
je case.0x10040739.63
call fcn.10037ea0
mov edx, dword [esp + 8]
jmp 0x10040f13
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x4000
test word [esi + 8], ax
je 0x1004182e
mov ecx, esi
call fcn.10037920
mov dword [esp + 0x14], eax
jmp 0x10041836
mov dword [esp + 0x14], 0
mov eax, dword [esp + 8]
mov ecx, esi
push dword [esp + 0x48]
mov dl, byte [eax + 8]
call fcn.10037ff0
mov edx, dword [esp + 0xc]
add esp, 4
jmp 0x10040f0f
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x1c], esi
lea eax, [eax + eax*4]
movzx ecx, word [edx + eax*8 + 8]
lea edi, [edx + eax*8]
movzx edx, word [esi + 8]
mov al, cl
or al, dl
mov dword [esp + 0x20], edi
test al, 1
mov dword [esp + 0x1a8], edx
mov eax, dword [esp + 8]
mov dword [esp + 0x30], ecx
mov al, byte [eax + 3]
je 0x10041912
test al, al
jns 0x100418d4
mov eax, ecx
and eax, edx
xor edx, edx
bt ax, dx
jae 0x100418bf
test ecx, 0x100
jne 0x100418bf
mov edi, dword [esp + 0x1a8]
mov esi, ecx
jmp 0x10041994
mov esi, dword [esp + 0x30]
mov edx, 1
mov edi, dword [esp + 0x1a8]
jmp 0x10041994
test al, 0x20
je 0x10041901
mov eax, dword [esp + 8]
mov esi, 0xbe01
mov edx, dword [esp + 0x18]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov ax, word [edx + ecx*8 + 8]
and ax, si
or ax, 1
mov word [edx + ecx*8 + 8], ax
jmp 0x10040f07
mov edx, dword [esp + 8]
test al, 0x10
jne 0x1004077d
jmp 0x10040f0b
and al, 0x47
cmp al, 0x43
jb 0x100419ae
mov al, dl
and al, 0xe
cmp al, 2
jne 0x10041931
xor edx, edx
mov ecx, esi
call fcn.100403d0
mov ecx, dword [esp + 0x30]
mov al, cl
and al, 0xe
cmp al, 2
jne 0x10041942
xor edx, edx
mov ecx, edi
call fcn.100403d0
mov edi, dword [esp + 0x1a8]
mov esi, dword [esp + 0x30]
test edi, 0x4000
je 0x10041964
mov ecx, dword [esp + 0x1c]
call fcn.10037920
and edi, 0xbfff
test esi, 0x4000
je 0x1004197b
mov ecx, dword [esp + 0x20]
call fcn.10037920
and esi, 0xbfff
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
push dword [eax + 0x10]
call fcn.1003c8a0
add esp, 4
mov edx, eax
mov eax, dword [esp + 8]
movzx ecx, byte [eax]
add ecx, 0xffffffb2
cmp ecx, 4
ja case.default.0x100419a7
jmp dword [ecx*4 + 0x10046980]
cmp al, 0x42
jne 0x10041942
test dl, 2
jne 0x100419ef
test dl, 0xc
je 0x100419ef
mov dl, byte [esp + 0x48]
mov ecx, esi
push 1
call fcn.100379e0
mov ax, word [esi + 8]
mov ecx, 0x1ff
mov edi, dword [esp + 0x1ac]
add esp, 4
xor ax, di
and ax, cx
mov ecx, dword [esp + 0x30]
xor ax, word [esi + 8]
movzx edi, ax
jmp 0x100419f6
mov edi, dword [esp + 0x1a8]
test cl, 2
jne 0x10041949
test cl, 0xc
je 0x10041949
mov dl, byte [esp + 0x48]
mov ecx, dword [esp + 0x20]
push 1
call fcn.100379e0
mov ecx, dword [esp + 0x24]
mov edx, 0x1ff
mov esi, dword [esp + 0x34]
add esp, 4
mov ax, word [ecx + 8]
xor ax, si
and ax, dx
xor ax, word [ecx + 8]
movzx esi, ax
jmp 0x1004194d
xor eax, eax
test edx, edx
sete al
jmp 0x10041a6c
xor eax, eax
test edx, edx
setne al
jmp 0x10041a6c
mov eax, edx
jmp 0x10041a69
xor eax, eax
test edx, edx
setle al
jmp 0x10041a6c
xor eax, eax
test edx, edx
setg al
jmp 0x10041a6c
mov eax, edx
not eax
shr eax, 0x1f
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 8]
mov word [ecx + 8], di
mov ecx, dword [esp + 0x20]
mov word [ecx + 8], si
test byte [edx + 3], 0x20
je 0x10041ab3
mov ecx, dword [edx + 8]
mov edx, 0xbe04
mov edi, dword [esp + 0x18]
lea esi, [ecx + ecx*4]
mov cx, word [edi + esi*8 + 8]
and cx, dx
cdq
or cx, 4
mov dword [edi + esi*8], eax
mov word [edi + esi*8 + 8], cx
mov dword [edi + esi*8 + 4], edx
jmp 0x10040f07
test eax, eax
jne 0x1004077d
jmp 0x10040f0b
mov edx, dword [esp + 8]
mov eax, dword [edx + 0x10]
mov dword [esp + 0x74], eax
jmp 0x10040f13
mov ecx, dword [esp + 8]
mov edi, 0
mov esi, dword [esp + 8]
test byte [ecx + 3], 1
mov eax, dword [ecx + 0xc]
mov edx, dword [ecx + 0x10]
mov ecx, dword [ecx + 4]
cmovne edi, dword [esp + 0x74]
mov dword [esp + 0x38], ecx
mov ecx, dword [esi + 8]
xor esi, esi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x54], edx
mov dword [esp + 0x28], ecx
test eax, eax
jle 0x10041b79
test edi, edi
je 0x10041b11
mov ecx, dword [edi + esi*4]
jmp 0x10041b13
mov ecx, esi
mov eax, dword [edx + 0x10]
push dword [edx + esi*4 + 0x14]
mov edx, dword [esp + 0x1c]
movzx eax, byte [eax + esi]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x2c]
add eax, ecx
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [esp + 0x3c]
add eax, ecx
mov ecx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.1003c8a0
add esp, 4
mov dword [esp + 0x8c], eax
test eax, eax
jne 0x10041b69
mov edx, dword [esp + 0x54]
inc esi
cmp esi, dword [esp + 0x4c]
jl 0x10041b08
mov dword [esp + 0x74], eax
jmp 0x10040f07
cmp dword [esp + 0x74], 0
je 0x10041b79
neg eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x74], 0
jmp 0x10040f07
mov eax, dword [esp + 0x8c]
test eax, eax
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 8]
jns 0x10041ba8
mov edx, dword [eax + 4]
dec edx
lea edx, [edx + edx*4]
lea edx, [ecx + edx*4]
jmp 0x10040f13
jne 0x10041bb9
mov edx, dword [eax + 8]
dec edx
lea edx, [edx + edx*4]
lea edx, [ecx + edx*4]
jmp 0x10040f13
mov edx, dword [eax + 0xc]
dec edx
lea edx, [edx + edx*4]
lea edx, [ecx + edx*4]
jmp 0x10040f13
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea ecx, [ecx + eax*8]
je 0x10041be7
mov esi, 2
jmp 0x10041bf9
call fcn.10037cc0
or eax, edx
je 0x10041bf7
mov esi, 1
jmp 0x10041bf9
xor esi, esi
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea ecx, [ecx + eax*8]
je 0x10041c18
mov eax, 2
jmp 0x10041c2a
call fcn.10037cc0
or eax, edx
je 0x10041c28
mov eax, 1
jmp 0x10041c2a
xor eax, eax
mov ecx, dword [esp + 8]
lea eax, [eax + esi*2]
cmp byte [ecx], 0x48
jne 0x10041c3f
mov al, byte [esi + eax + 0x101d08c4]
jmp 0x10041c46
mov al, byte [esi + eax + 0x101d0af4]
movzx edx, al
mov eax, dword [ecx + 0xc]
lea ecx, [eax + eax*4]
cmp edx, 2
jne 0x10041c77
mov edx, dword [esp + 0x18]
mov esi, 0xbe01
mov ax, word [edx + ecx*8 + 8]
and ax, si
or ax, 1
mov word [edx + ecx*8 + 8], ax
mov edx, dword [esp + 8]
jmp 0x10040f0f
mov esi, dword [esp + 0x18]
mov ax, word [esi + ecx*8 + 8]
mov dword [esi + ecx*8], edx
mov edx, 0xbe04
and ax, dx
mov dword [esi + ecx*8 + 4], 0
mov edx, dword [esp + 8]
or ax, 4
mov word [esi + ecx*8 + 8], ax
jmp 0x10040f0f
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov ecx, esi
call fcn.100380c0
test byte [edi + 8], 1
jne 0x10040f07
mov eax, 4
mov ecx, edi
mov word [esi + 8], ax
call fcn.10037cc0
or eax, edx
jne 0x10041cf5
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x10040f07
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x10040f07
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov ecx, esi
call fcn.100380c0
test byte [edi + 8], 1
jne 0x10040f07
mov eax, 4
mov ecx, edi
mov word [esi + 8], ax
call fcn.10037cc0
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x10040f07
mov ecx, dword [esp + 8]
mov eax, dword [esi + 0xc8]
mov edx, dword [esp + 8]
mov ecx, dword [ecx + 4]
cmp byte [eax + ecx], 0
jne 0x1004077d
mov byte [eax + ecx], 1
jmp 0x10040f13
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea ecx, [ecx + eax*8]
je 0x10041da2
mov eax, dword [esp + 8]
mov edx, dword [esp + 8]
mov eax, dword [eax + 0xc]
jmp 0x10041dc9
call fcn.10037d70
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x10041dbb
mov eax, 1
jmp 0x10041dbd
xor eax, eax
mov edx, dword [esp + 8]
cmp byte [edx], 0x2f
jne 0x10041dc9
xor eax, 1
test eax, eax
jne 0x1004077d
jmp 0x10040f13
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 8]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
jne 0x1004077d
jmp 0x10040f13
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 8]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
je 0x1004077d
jmp 0x10040f13
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + 8]
mov dword [esp + 0x20], eax
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x30], esi
mov eax, dword [eax + 0x38]
mov edi, dword [eax + ecx*4]
mov dword [esp + 0x1c], edi
cmp byte [edi], 0
mov edx, dword [edi + 0x4c]
mov ecx, dword [edi + 0x14]
mov dword [esp + 0x1a4], edx
mov dword [esp + 0x1a8], ecx
jne 0x10041e9a
cmp byte [edi + 3], 0
je 0x10041e6f
mov ecx, edi
call fcn.1003bf20
jmp 0x10041e7c
cmp byte [ecx + 0x42], 1
je 0x10041e9a
mov ecx, edi
call fcn.1003bf80
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x10043eb7
mov edx, dword [esp + 0x1a4]
mov ecx, dword [esp + 0x1a8]
jmp 0x10041ea2
mov dword [esp + 0x14], 0
mov esi, dword [esp + 0xc]
mov eax, dword [edi + 0x38]
cmp eax, dword [esi + 0x48]
mov esi, dword [esp + 0x30]
je 0x10041ffb
cmp byte [edi + 2], 0
je 0x10041efc
cmp byte [edi], 3
jne 0x10041ee1
mov eax, dword [edi + 0x14]
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
mov esi, dword [ecx + eax*8 + 0xc]
mov dword [edi + 0x40], esi
mov dword [edi + 0x3c], esi
mov eax, dword [ecx + eax*8 + 0x10]
mov dword [edi + 0x48], eax
jmp 0x10041f82
mov ecx, esi
call fcn.100380c0
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x10]
add edx, 0x14
mov esi, dword [esp + 0xc]
jmp 0x1004070c
cmp byte [edi + 4], 0
jne 0x10041f38
mov esi, dword [esp + 0x1a8]
mov ecx, esi
call fcn.10030880
mov eax, dword [esi + 0x14]
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 0x18]
mov dword [esp + 0x64], eax
movsx eax, byte [esi + 0x44]
mov eax, dword [esi + eax*4 + 0x78]
mov esi, dword [eax + 0x3c]
mov eax, dword [esp + 0x1a8]
movzx eax, word [eax + 0x20]
mov dword [edi + 0x3c], edx
jmp 0x10041f5c
call fcn.10030880
mov edx, dword [esp + 0x1a8]
mov eax, dword [edx + 0x1c]
mov dword [edi + 0x3c], eax
movsx eax, byte [edx + 0x44]
mov ecx, dword [edx + 0x18]
mov eax, dword [edx + eax*4 + 0x78]
mov esi, dword [eax + 0x3c]
movzx eax, word [edx + 0x20]
sub esi, ecx
mov dword [edi + 0x48], ecx
cmp eax, esi
cmovb esi, eax
mov eax, dword [edi + 0x3c]
cmp eax, esi
ja 0x10041f72
mov dword [edi + 0x40], eax
jmp 0x10041f82
mov ecx, dword [esp + 0x10]
cmp eax, dword [ecx + 0x58]
ja 0x1004650a
mov dword [edi + 0x40], esi
mov eax, dword [esp + 0xc]
mov ecx, dword [edi + 0x48]
mov eax, dword [eax + 0x48]
mov dword [edi + 0x38], eax
mov al, byte [ecx]
cmp al, 0x80
jae 0x10041fa6
movzx ecx, al
mov eax, 1
mov dword [esp + 0x98], ecx
jmp 0x10041fbc
lea edx, [esp + 0x98]
call fcn.1001fa60
mov ecx, dword [esp + 0x98]
movzx eax, al
mov edx, dword [esp + 0x1a4]
movzx eax, al
mov dword [edi + 0x44], eax
xor eax, eax
mov word [edi + 0x12], ax
mov dword [edx], ecx
cmp esi, ecx
jae 0x1004200b
mov dword [edi + 0x48], eax
mov dword [edi + 0x40], eax
cmp ecx, 0x18003
ja 0x10041fe8
cmp ecx, dword [edi + 0x3c]
jbe 0x1004200b
mov ecx, 0x12a9e
call fcn.1008ebc0
mov dword [esp + 0x14], eax
jmp 0x10040f07
movzx eax, word [edi + 0x12]
mov ecx, dword [esp + 0x20]
cmp eax, ecx
jg 0x10042260
mov eax, dword [edi + 0x44]
cmp eax, dword [edx]
jae 0x10042210
mov edx, dword [edi + 0x48]
mov dword [esp + 0xdc], edx
test edx, edx
jne 0x100420ea
mov esi, dword [esp + 0x1a8]
xor ecx, ecx
mov edx, dword [esp + 0x1a4]
xorps xmm0, xmm0
movaps xmmword [esp + 0x120], xmm0
movaps xmmword [esp + 0x130], xmm0
movq qword [esp + 0x140], xmm0
mov al, byte [edi + 4]
mov edx, dword [edx]
test al, al
mov dword [esp + 0x14], 0
sete cl
test al, al
movsx eax, byte [esi + 0x44]
mov dword [esp + 0x28], ecx
mov eax, dword [esi + eax*4 + 0x78]
mov ecx, dword [eax + 0x3c]
sub ecx, dword [esi + 0x18]
movzx eax, word [esi + 0x20]
cmp eax, ecx
cmovb ecx, eax
cmp edx, ecx
ja 0x100420b5
mov eax, dword [esi + 0x18]
mov dword [esp + 0xdc], eax
mov dword [esp + 0x130], eax
mov eax, 0x1010
mov dword [esp + 0x12c], edx
mov edx, dword [esp + 0xdc]
mov word [esp + 0x128], ax
jmp 0x100420ea
lea eax, [esp + 0x120]
mov ecx, esi
push eax
push dword [esp + 0x2c]
push edx
xor edx, edx
call fcn.10038540
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
jne 0x10040f07
mov edx, dword [esp + 0x130]
mov dword [esp + 0xdc], edx
movzx eax, word [edi + 0x12]
mov ecx, dword [esp + 0x1a4]
mov dword [esp + 0x4c], eax
mov edi, dword [ecx + eax*4]
xor ecx, ecx
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x1c]
mov esi, dword [ecx + 0x44]
add esi, edx
mov edx, dword [esp + 0x1a4]
mov edx, dword [edx]
add edx, dword [esp + 0xdc]
add eax, 0x14
mov dword [esp + 0x28], edx
lea eax, [ecx + eax*4]
mov dword [esp + 0x38], eax
nop dword [eax]
movzx ecx, byte [esi]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x54], ecx
cmp ecx, 0x80
jae 0x1004215b
movzx eax, cl
movzx eax, byte [eax + 0x101d0dd8]
cdq
add edi, eax
adc dword [esp + 0x40], edx
mov edx, 1
jmp 0x1004217d
lea edx, [esp + 0x54]
mov ecx, esi
call fcn.1001fa60
mov ecx, dword [esp + 0x54]
movzx edx, al
mov dword [esp + 0x34], ecx
call fcn.1003c130
add edi, eax
adc dword [esp + 0x40], 0
mov eax, dword [esp + 0x4c]
add esi, edx
mov edx, dword [esp + 0x38]
inc eax
mov dword [esp + 0x4c], eax
mov dword [edx], ecx
add edx, 4
mov ecx, dword [esp + 0x1a4]
mov dword [esp + 0x38], edx
mov dword [ecx + eax*4], edi
cmp eax, dword [esp + 0x20]
jg 0x100421ab
cmp esi, dword [esp + 0x28]
jb 0x10042130
mov edx, dword [esp + 0x1c]
mov word [edx + 0x12], ax
mov eax, esi
sub eax, dword [esp + 0xdc]
cmp dword [edx + 0x48], 0
mov dword [edx + 0x44], eax
jne 0x100421d5
lea ecx, [esp + 0x120]
call fcn.10037ca0
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
cmp esi, eax
jb 0x100421ee
ja 0x100421fd
cmp edi, dword [edx + 0x3c]
jne 0x100421fd
mov ecx, dword [esp + 0x40]
test ecx, ecx
jne 0x100421fd
jmp 0x100421f2
mov ecx, dword [esp + 0x40]
test ecx, ecx
jb 0x10042218
ja 0x100421fd
cmp edi, dword [edx + 0x3c]
jbe 0x10042218
mov ecx, 0x12adb
call fcn.1008ebc0
mov dword [esp + 0x14], eax
jmp 0x10040f07
xor ecx, ecx
mov dword [esp + 0x34], ecx
jmp 0x10042220
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x34]
movzx eax, word [edi + 0x12]
cmp eax, dword [esp + 0x20]
jg 0x1004226a
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x30]
cmp byte [eax + 1], 0xf8
jne 0x10041ee3
mov edx, dword [eax + 0x10]
push 0x800
call fcn.10038260
add esp, 4
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x10]
add edx, 0x14
mov esi, dword [esp + 0xc]
jmp 0x1004070c
mov ecx, dword [edi + ecx*4 + 0x50]
mov dword [esp + 0x34], ecx
jmp 0x1004226e
mov esi, dword [esp + 0x30]
mov eax, 0x2460
test word [esi + 8], ax
je 0x10042284
mov ecx, esi
call fcn.100380c0
mov ecx, dword [esp + 0x34]
mov al, byte [esp + 0x48]
mov edx, dword [esp + 0x1a4]
mov byte [esi + 0xa], al
mov esi, dword [esp + 0x20]
mov eax, dword [edi + 0x40]
cmp eax, dword [edx + esi*4 + 4]
mov esi, dword [esp + 0x30]
jb 0x10042359
mov eax, dword [esp + 0x20]
mov edi, dword [edi + 0x48]
add edi, dword [edx + eax*4]
cmp ecx, 0xc
jae 0x100422d7
mov edx, ecx
mov ecx, edi
push esi
call fcn.1003c250
mov edx, dword [esp + 0xc]
add esp, 4
mov edi, dword [esp + 0x10]
add edx, 0x14
mov esi, dword [esp + 0xc]
jmp 0x1004070c
lea esi, [ecx - 0xc]
mov ecx, dword [esp + 0x30]
shr esi, 1
mov dword [ecx + 0xc], esi
lea edx, [esi + 2]
cmp dword [ecx + 0x18], edx
jge 0x1004230c
mov eax, 1
push 0
mov word [ecx + 8], ax
call fcn.10037760
add esp, 4
test eax, eax
jne 0x10045bde
mov ecx, dword [esp + 0x30]
jmp 0x10042312
mov eax, dword [ecx + 0x14]
mov dword [ecx + 0x10], eax
push esi
push edi
push dword [ecx + 0x10]
call fcn.101544a0
mov ecx, dword [esp + 0x3c]
add esp, 0xc
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x10]
mov eax, dword [ecx + 0x10]
mov byte [esi + eax], 0
mov eax, dword [ecx + 0x10]
mov byte [esi + eax + 1], 0
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0xc]
and eax, 1
add edx, 0x14
mov ax, word [eax*2 + 0x101cfecc]
mov word [ecx + 8], ax
jmp 0x1004070c
mov eax, dword [esp + 8]
mov al, byte [eax + 3]
test al, 0xc0
je 0x10042372
cmp ecx, 0xc
jb 0x1004236e
test cl, 1
je 0x10042381
test al, al
js 0x10042381
call fcn.1003c130
mov esi, eax
test esi, esi
jne 0x100423a5
mov esi, dword [esp + 0x30]
mov edx, ecx
mov ecx, 0x10200534
push esi
call fcn.1003c250
mov edx, dword [esp + 0xc]
add esp, 4
mov edi, dword [esp + 0x10]
add edx, 0x14
mov esi, dword [esp + 0xc]
jmp 0x1004070c
mov al, byte [edi + 4]
xor edx, edx
mov edi, dword [esp + 0x20]
test al, al
mov dword [esp + 0x14], 0
sete dl
test al, al
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x1a4]
mov edi, dword [edx + edi*4]
mov edx, dword [esp + 0x1a8]
movsx eax, byte [edx + 0x44]
mov eax, dword [edx + eax*4 + 0x78]
mov edx, dword [eax + 0x3c]
mov eax, dword [esp + 0x1a8]
sub edx, dword [eax + 0x18]
movzx eax, word [eax + 0x20]
cmp eax, edx
cmovb edx, eax
lea eax, [esi + edi]
cmp eax, edx
ja 0x10042418
mov eax, dword [esp + 0x1a8]
mov eax, dword [eax + 0x18]
add eax, edi
mov edi, dword [esp + 0x30]
mov dword [edi + 0x10], eax
mov eax, 0x1010
mov word [edi + 8], ax
mov dword [edi + 0xc], esi
jmp 0x10042449
mov ecx, dword [esp + 0x30]
mov edx, edi
push ecx
push dword [esp + 0x2c]
mov ecx, dword [esp + 0x1b0]
push esi
call fcn.10038540
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
jne 0x10040f07
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
mov edx, ecx
mov ecx, dword [edi + 0x10]
push edi
call fcn.1003c250
mov eax, 0xefff
add esp, 4
and word [edi + 8], ax
jmp 0x10040f07
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov esi, dword [eax + 0x10]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov al, byte [esi]
test al, al
je 0x10040f07
push dword [esp + 0x48]
mov dl, al
lea esi, [esi + 1]
mov ecx, edi
call fcn.10040460
mov al, byte [esi]
add esp, 4
add edi, 0x28
test al, al
jne 0x10042483
jmp 0x10040f07
mov edx, dword [esp + 8]
xor eax, eax
mov edi, dword [esp + 0x18]
xorps xmm0, xmm0
mov dword [esp + 0x30], eax
movlpd qword [esp + 0x60], xmm0
mov eax, dword [edx + 4]
mov esi, dword [edx + 0x10]
movlpd qword [esp + 0x90], xmm0
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
mov eax, dword [edx + 8]
mov dword [esp + 0x1c], ecx
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*8]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xc]
movzx edx, byte [eax + 0x57]
mov eax, dword [esp + 8]
mov dword [esp + 0x28], edx
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [esp + 0x1a4], eax
test esi, esi
je 0x10042531
mov al, byte [esi]
mov edi, ecx
nop dword [eax]
push dword [esp + 0x48]
mov dl, al
mov ecx, edi
call fcn.10040460
mov al, byte [esi + 1]
lea esi, [esi + 1]
add esp, 4
add edi, 0x28
test al, al
jne 0x10042510
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x64]
mov edi, dword [esp + 0x38]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0xdc], eax
nop
lea eax, [esp + 0x88]
mov ecx, edi
push eax
call fcn.1003bfd0
mov esi, eax
add esp, 4
mov eax, 0x4000
mov dword [edi + 0x1c], esi
test word [edi + 8], ax
je 0x100425b4
mov ecx, dword [esp + 0x34]
or ecx, dword [esp + 0x20]
je 0x1004259d
mov ecx, edi
call fcn.10037920
test eax, eax
jne 0x10045bde
jmp 0x100425b4
mov ecx, dword [edi]
mov eax, ecx
cdq
add dword [esp + 0xdc], eax
adc dword [esp + 0x40], edx
sub dword [esp + 0x88], ecx
mov eax, dword [esp + 0x34]
mov edx, 1
add eax, dword [esp + 0x88]
mov dword [esp + 0x34], eax
adc dword [esp + 0x20], 0
cmp esi, 0x7f
jbe 0x100425ee
shr esi, 7
xor ecx, ecx
mov eax, esi
or eax, ecx
je 0x100425ee
nop dword [eax]
shrd esi, ecx, 7
inc edx
shr ecx, 7
mov eax, esi
or eax, ecx
jne 0x100425e0
mov eax, dword [esp + 0x30]
sub edi, 0x28
add eax, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x30], eax
cmp edi, dword [esp + 0x1c]
jae 0x10042560
cmp eax, 0x7e
jle 0x10042670
cdq
mov edi, 1
mov esi, eax
mov dword [esp + 0x28], edi
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x10042639
shrd esi, edx, 7
inc edi
shr edx, 7
mov eax, esi
or eax, edx
jne 0x10042627
mov dword [esp + 0x28], edi
mov eax, dword [esp + 0x30]
add eax, edi
mov edi, 1
mov dword [esp + 0x30], eax
cdq
mov esi, eax
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x10042666
shrd esi, edx, 7
inc edi
shr edx, 7
mov eax, esi
or eax, edx
jne 0x10042658
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x28], edi
jge 0x10042675
inc eax
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x34]
cdq
mov edi, eax
mov esi, edx
mov eax, dword [esp + 0x20]
add ecx, edi
mov dword [esp + 0x34], ecx
adc eax, esi
add ecx, dword [esp + 0xdc]
adc eax, dword [esp + 0x40]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x58]
cdq
cmp dword [esp + 0x20], edx
jg 0x1004650a
jl 0x100426b5
cmp ecx, eax
ja 0x1004650a
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x1a4]
call fcn.10037890
test eax, eax
jne 0x10045bde
mov eax, dword [esp + 0x1a4]
mov ecx, dword [eax + 0x10]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x20], ecx
cmp eax, 0x80
jae 0x100426ef
mov byte [ecx], al
mov eax, 1
jmp 0x100426fd
push esi
push edi
call fcn.1001f880
mov ecx, dword [esp + 0x28]
add esp, 8
mov esi, dword [esp + 0x1c]
movzx edi, al
nop dword [eax]
nop dword [eax + eax]
mov edx, dword [esi + 0x1c]
mov dword [esp + 0x28], edx
cmp edx, 0x80
jae 0x10042729
mov byte [edi + ecx], dl
mov eax, 1
jmp 0x1004273e
push 0
push edx
add ecx, edi
call fcn.1001f880
mov edx, dword [esp + 0x30]
add esp, 8
mov ecx, dword [esp + 0x20]
movzx eax, al
add edi, eax
lea eax, [edx - 1]
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x30]
add edi, ecx
cmp eax, 6
ja 0x10042774
movzx edx, byte [edx + 0x101d0dd8]
mov ecx, dword [esi]
mov eax, dword [esi + 4]
mov esi, edx
dec edx
mov byte [edx + edi], cl
shrd ecx, eax, 8
shr eax, 8
test edx, edx
jne 0x10042763
jmp 0x10042795
cmp edx, 0xc
jb 0x10042793
mov esi, dword [esi + 0xc]
test esi, esi
je 0x10042795
mov eax, dword [esp + 0x1c]
push esi
push dword [eax + 0x10]
push edi
call fcn.101544a0
add esp, 0xc
jmp 0x10042795
xor esi, esi
add dword [esp + 0x30], esi
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x28]
add esi, 0x28
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x1c], esi
cmp esi, dword [esp + 0x38]
jbe 0x10042710
mov edx, dword [esp + 0x1a4]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0xdc]
mov dword [edx + 0xc], eax
mov eax, 0x10
mov word [edx + 8], ax
mov eax, ecx
or eax, dword [esp + 0x40]
je 0x100427e7
mov eax, 0x4010
mov dword [edx], ecx
mov word [edx + 8], ax
mov byte [edx + 0xa], 1
jmp 0x10040f07
mov eax, dword [esp + 8]
lea edx, [esp + 0x90]
xorps xmm0, xmm0
movlpd qword [esp + 0x90], xmm0
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x14]
call fcn.10035580
mov dword [esp + 0x14], eax
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea ecx, [eax + ecx*8]
mov eax, 0x2460
test word [ecx + 8], ax
je 0x1004285a
call fcn.100405c0
mov edx, dword [esp + 8]
mov ecx, eax
mov eax, dword [esp + 0x90]
mov dword [ecx], eax
mov eax, dword [esp + 0x94]
mov dword [ecx + 4], eax
jmp 0x10040f13
mov edx, dword [esp + 8]
mov eax, 4
mov word [ecx + 8], ax
mov eax, dword [esp + 0x90]
mov dword [ecx], eax
mov eax, dword [esp + 0x94]
mov dword [ecx + 4], eax
jmp 0x10040f13
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 4]
mov esi, dword [ecx + 0x10]
mov dword [esp + 0x20], eax
test eax, eax
jne 0x1004296a
cmp dword [edi + 0x9c], eax
jg 0x10046397
mov ecx, esi
call fcn.1001e7f0
mov edi, eax
xor edx, edx
mov eax, dword [esp + 0x10]
mov dword [esp + 0x28], edi
mov ecx, dword [eax + 0x1f4]
add ecx, dword [eax + 0x1f0]
push ecx
mov ecx, eax
call fcn.1007d000
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x10043eb7
mov ecx, dword [esp + 0x10]
lea eax, [edi + 0x21]
push edx
push eax
call fcn.1001bee0
mov edi, eax
add esp, 8
test edi, edi
je 0x1004224c
mov ecx, dword [esp + 0x28]
lea edx, [edi + 0x20]
inc ecx
mov dword [edi], edx
push ecx
push esi
push edx
call fcn.101544a0
mov ecx, dword [esp + 0x1c]
add esp, 0xc
cmp byte [ecx + 0x3f], 0
je 0x1004291d
mov byte [ecx + 0x3f], 0
mov byte [ecx + 0x46], 1
jmp 0x10042923
inc dword [ecx + 0x1f0]
mov eax, dword [ecx + 0x1e8]
mov edx, dword [esp + 8]
mov esi, dword [esp + 0xc]
add edx, 0x14
mov dword [edi + 0x18], eax
mov eax, dword [ecx + 0x1f8]
mov dword [ecx + 0x1e8], edi
mov dword [edi + 8], eax
mov eax, dword [ecx + 0x1fc]
mov dword [edi + 0xc], eax
mov eax, dword [ecx + 0x200]
mov dword [edi + 0x10], eax
mov eax, dword [ecx + 0x204]
mov dword [edi + 0x14], eax
mov edi, dword [esp + 0x10]
jmp 0x1004070c
mov edi, dword [edi + 0x1e8]
mov dword [esp + 0x34], 0
mov dword [esp + 0x40], edi
test edi, edi
je 0x1004299e
push esi
push dword [edi]
call fcn.1001eb60
add esp, 8
test eax, eax
je 0x100429c5
mov edi, dword [edi + 0x18]
inc dword [esp + 0x34]
mov dword [esp + 0x40], edi
test edi, edi
jne 0x10042980
push esi
push str.no_such_savepoint:__s
push dword [esp + 0x14]
call fcn.10038c50
mov esi, dword [esp + 0x14]
mov edx, 1
add esp, 0xc
mov dword [esp + 0x14], edx
add esi, 0x14
jmp 0x10040f2d
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x20]
cmp dword [eax + 0x9c], 0
jle 0x100429df
cmp esi, 1
je 0x100463bd
cmp dword [edi + 0x18], 0
jne 0x10042a44
cmp byte [eax + 0x46], 0
je 0x10042a44
mov dword [esp + 0x1a4], 1
cmp esi, 1
jne 0x10042a4f
mov ecx, dword [esp + 0xc]
mov edx, esi
call fcn.1003b610
mov dword [esp + 0x14], eax
test eax, eax
jne 0x100466a2
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov byte [eax + 0x3f], 1
call fcn.1003b680
cmp eax, 5
je 0x100463c4
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov byte [edx + 0x46], 0
mov ecx, dword [eax + 0x50]
mov dword [esp + 0x14], ecx
jmp 0x10042bd6
mov dword [esp + 0x1a4], 0
mov edi, eax
mov eax, dword [edi + 0x1f0]
sub eax, dword [esp + 0x34]
dec eax
mov dword [esp + 0x34], eax
cmp esi, 2
jne 0x10042bbd
mov eax, dword [edi + 0x18]
xor edi, edi
mov ecx, dword [esp + 0x10]
shr eax, 1
and eax, 1
mov dword [esp + 0x28], eax
cmp dword [ecx + 0x14], edi
jle 0x10042ac4
xor eax, 1
xor esi, esi
mov dword [esp + 0x38], eax
nop dword [eax]
mov ecx, dword [ecx + 0x10]
mov edx, 0x204
push eax
mov ecx, dword [ecx + esi + 4]
call fcn.10030470
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x10043eb7
mov ecx, dword [esp + 0x10]
inc edi
mov eax, dword [esp + 0x38]
add esi, 0x10
cmp edi, dword [ecx + 0x14]
jl 0x10042a90
mov edi, ecx
xor edx, edx
mov dword [esp + 0x1c], edx
cmp dword [edi + 0x14], edx
jle 0x10042ba0
xor ecx, ecx
mov dword [esp + 0xdc], ecx
nop
mov eax, dword [edi + 0x10]
mov esi, dword [eax + ecx + 4]
xor eax, eax
mov dword [esp + 0x14], eax
test esi, esi
je 0x10042b80
cmp byte [esi + 8], 2
jne 0x10042b80
mov edi, dword [esi + 4]
cmp byte [esi + 9], al
je 0x10042b16
inc dword [esi + 0xc]
cmp byte [esi + 0xa], al
jne 0x10042b16
mov ecx, esi
call fcn.1002cae0
push dword [esp + 0x34]
mov edx, dword [esp + 0x24]
mov ecx, dword [edi]
call fcn.10029bc0
mov ecx, eax
add esp, 4
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x10042b5a
cmp dword [esp + 0x34], eax
jge 0x10042b41
test byte [edi + 0x16], 8
je 0x10042b41
mov dword [edi + 0x2c], eax
mov ecx, edi
call fcn.1002f5e0
mov dword [esp + 0x14], eax
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 0x1c]
bswap eax
mov dword [edi + 0x2c], eax
cmp byte [esi + 9], 0
je 0x10042b6d
add dword [esi + 0xc], 0xffffffff
jne 0x10042b6d
mov ecx, esi
call fcn.1002caa0
mov ecx, dword [esp + 0xdc]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
test eax, eax
jne 0x1004645f
inc edx
add ecx, 0x10
mov dword [esp + 0x1c], edx
mov dword [esp + 0xdc], ecx
cmp edx, dword [edi + 0x14]
jl 0x10042ae0
cmp dword [esp + 0x28], 0
je 0x10042bca
mov ecx, edi
call fcn.1003d7f0
call fcn.100574d0
mov edx, dword [esp + 0x10]
or dword [edx + 0x18], 2
jmp 0x10042bce
mov dword [esp + 0x28], 0
jmp 0x10042ac6
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x40]
cmp dword [edx + 0x1e8], edi
je 0x10042c4a
nop
cmp dword [edx + 0x208], 0
mov ecx, dword [edx + 0x1e8]
mov eax, dword [ecx + 0x18]
mov dword [edx + 0x1e8], eax
je 0x10042c05
mov edx, ecx
mov ecx, dword [esp + 0x10]
call fcn.1001bc60
jmp 0x10042c34
cmp ecx, dword [edx + 0x114]
jb 0x10042c2b
cmp ecx, dword [edx + 0x118]
jae 0x10042c2b
mov eax, dword [edx + 0x110]
mov dword [ecx], eax
dec dword [edx + 0xfc]
mov dword [edx + 0x110], ecx
jmp 0x10042c38
push ecx
call fcn.1001bbf0
add esp, 4
mov edx, dword [esp + 0x10]
dec dword [edx + 0x1f0]
cmp dword [edx + 0x1e8], edi
jne 0x10042be0
mov esi, dword [esp + 0x20]
cmp esi, 1
jne 0x10042c7b
mov eax, dword [edi + 0x18]
mov dword [edx + 0x1e8], eax
mov edx, edi
mov edi, dword [esp + 0x10]
mov ecx, edi
call fcn.1001bca0
cmp dword [esp + 0x1a4], 0
jne 0x10040c77
dec dword [edi + 0x1f0]
jmp 0x10042cb6
cmp dword [esp + 0x1a4], 0
mov eax, dword [edi + 8]
mov dword [edx + 0x1f8], eax
mov eax, dword [edi + 0xc]
mov dword [edx + 0x1fc], eax
mov eax, dword [edi + 0x10]
mov dword [edx + 0x200], eax
mov eax, dword [edi + 0x14]
mov edi, dword [esp + 0x10]
mov dword [edx + 0x204], eax
je 0x10042cb6
cmp esi, 2
jne 0x10040c77
push dword [esp + 0x34]
mov edx, esi
mov ecx, edi
call fcn.1007d000
mov esi, dword [esp + 0x10]
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x10043ebf
mov edx, dword [esp + 8]
jmp 0x10040f13
mov edx, dword [esp + 8]
mov edx, dword [edx + 8]
test edx, edx
je 0x10042cf9
test dword [edi + 0x18], 0x2000000
jne 0x100463fd
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x10]
shl ecx, 4
mov esi, dword [ecx + eax + 4]
test esi, esi
je 0x10042e5a
mov ecx, esi
call fcn.1002f680
mov edx, eax
mov dword [esp + 0x14], edx
cmp dl, 5
je 0x1004640b
test edx, edx
jne 0x10043ebb
mov eax, dword [esp + 8]
cmp dword [eax + 8], edx
je 0x10042e26
mov ecx, dword [esp + 0xc]
test byte [ecx + 0x58], 0x20
je 0x10042e26
cmp byte [edi + 0x3f], dl
je 0x10042d5d
cmp dword [edi + 0x98], 1
jle 0x10042e26
cmp dword [ecx + 0x68], 0
jne 0x10042d78
mov eax, dword [edi + 0x1f0]
inc dword [edi + 0x1f4]
add eax, dword [edi + 0x1f4]
mov dword [ecx + 0x68], eax
mov eax, dword [ecx + 0x68]
xor edx, edx
dec eax
mov ecx, edi
push eax
call fcn.1007d000
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x10042df2
cmp byte [esi + 9], 0
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0x68]
mov eax, dword [esi + 4]
mov dword [esp + 0x28], eax
je 0x10042db9
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x10042db9
mov ecx, esi
call fcn.1002cae0
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
cmp edi, dword [ecx + 0x60]
jle 0x10042dd3
cmp byte [ecx + 6], 0
je 0x10042dd3
mov edx, edi
call fcn.10029a90
mov dword [esp + 0x14], eax
jmp 0x10042ddb
mov dword [esp + 0x14], 0
cmp byte [esi + 9], 0
je 0x10042dee
add dword [esi + 0xc], 0xffffffff
jne 0x10042dee
mov ecx, esi
call fcn.1002caa0
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov eax, dword [edi + 0x1f8]
mov dword [ecx + 0x98], eax
mov eax, dword [edi + 0x1fc]
mov dword [ecx + 0x9c], eax
mov eax, dword [edi + 0x200]
mov dword [ecx + 0xa0], eax
mov eax, dword [edi + 0x204]
mov dword [ecx + 0xa4], eax
lea eax, [esp + 0x9c]
mov edx, 1
push eax
mov ecx, esi
call fcn.100354a0
mov eax, dword [esp + 0xc]
add esp, 4
mov esi, dword [esp + 0x9c]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x10]
shl ecx, 4
mov eax, dword [ecx + eax + 0xc]
mov eax, dword [eax + 4]
jmp 0x10042e65
xor esi, esi
xor eax, eax
mov dword [esp + 0x9c], esi
mov edx, dword [esp + 8]
cmp byte [edx + 3], 0
je 0x10040f0f
cmp esi, dword [edx + 0xc]
jne 0x10042e81
cmp eax, dword [edx + 0x10]
je 0x10040f0f
mov eax, dword [esp + 0xc]
mov ecx, edi
mov edx, dword [eax + 0x2c]
call fcn.1001bca0
mov edx, str.database_schema_has_changed
mov ecx, edi
call fcn.1001c0e0
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x2c], eax
mov eax, dword [esp + 8]
mov edx, dword [eax + 4]
mov ecx, edx
mov eax, dword [edi + 0x10]
shl ecx, 4
mov eax, dword [ecx + eax + 0xc]
cmp dword [eax], esi
je 0x10042ec0
mov ecx, edi
call fcn.10057490
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov dword [esp + 0x14], 0x11
or dword [esi + 0x58], 8
jmp 0x10040f13
mov edx, dword [esp + 8]
lea eax, [esp + 0xa8]
mov ecx, dword [edi + 0x10]
push eax
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.100354a0
mov eax, dword [esp + 0xc]
add esp, 4
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea ecx, [eax + ecx*8]
mov eax, 0x2460
test word [ecx + 8], ax
je 0x10042f34
call fcn.100405c0
mov ecx, eax
mov eax, dword [esp + 0xa8]
cdq
mov dword [ecx + 4], edx
mov edx, dword [esp + 8]
mov dword [ecx], eax
jmp 0x10040f13
mov eax, 4
mov word [ecx + 8], ax
mov eax, dword [esp + 0xa8]
cdq
mov dword [ecx + 4], edx
mov edx, dword [esp + 8]
mov dword [ecx], eax
jmp 0x10040f13
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov esi, dword [eax + 4]
mov eax, dword [eax + 0xc]
shl esi, 4
add esi, dword [edi + 0x10]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov ecx, edi
call fcn.10037e70
mov eax, dword [esp + 8]
push dword [edi]
mov ecx, dword [esi + 4]
mov edx, dword [eax + 8]
call fcn.10035500
mov dword [esp + 0x18], eax
add esp, 4
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
cmp eax, 1
jne 0x10042fa9
mov eax, dword [edi]
mov ecx, dword [esi + 0xc]
mov edi, dword [esp + 0x10]
mov dword [ecx], eax
or dword [edi + 0x18], 2
jmp 0x10042fba
cmp eax, 2
jne 0x10042fb6
mov ecx, dword [esi + 0xc]
mov al, byte [edi]
mov byte [ecx + 0x4c], al
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 8]
cmp dword [edx + 4], 1
jne 0x10040f0f
mov ecx, edi
call fcn.1003d7f0
mov esi, dword [esp + 0xc]
and dword [esi + 0x58], 0xfffffff7
jmp 0x10040f13
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x10042ffd
mov ecx, dword [esp + 8]
mov eax, dword [esi + 0xc]
cmp eax, dword [ecx + 8]
je 0x10043246
mov esi, dword [esp + 0xc]
mov cl, byte [esp + 0x27]
test byte [esi + 0x58], 8
jne 0x1004644c
mov eax, dword [esp + 8]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov esi, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x54], eax
shl eax, 4
add eax, dword [edi + 0x10]
mov dword [esp + 0xdc], esi
mov edx, dword [eax + 4]
mov dword [esp + 0x40], edx
mov edx, dword [esp + 8]
cmp cl, 0x38
jne 0x1004306c
movzx ecx, byte [edx + 3]
mov eax, dword [eax + 0xc]
and ecx, 8
or ecx, 4
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0xc]
mov al, byte [eax + 0x4c]
cmp al, byte [ecx + 0x57]
jae 0x10043074
mov byte [ecx + 0x57], al
jmp 0x10043074
mov dword [esp + 0x38], 0
test byte [edx + 3], 0x10
je 0x100430a1
mov ecx, dword [esp + 0x18]
lea eax, [esi + esi*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.10037e70
mov eax, dword [esi]
mov dword [esp + 0xdc], eax
cmp eax, 2
jl 0x10046437
mov edx, dword [esp + 8]
mov al, byte [edx + 1]
cmp al, 0xfa
jne 0x100430bf
mov eax, dword [edx + 0x10]
mov dword [esp + 0x20], eax
movzx ecx, word [eax + 8]
movzx eax, word [eax + 6]
add ecx, eax
mov dword [esp + 0x1c], ecx
jmp 0x100430ca
cmp al, 0xf2
jne 0x100430ca
mov eax, dword [edx + 0x10]
mov dword [esp + 0x1c], eax
mov esi, dword [esp + 0xc]
mov edx, dword [edx + 4]
mov dword [esp + 0x28], edx
mov eax, dword [esi + 0x1c]
sub eax, edx
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
xor esi, esi
lea edi, [eax + ecx*8]
mov eax, dword [esp + 0x1c]
lea ecx, [eax*8 + 0x120]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x4c], ecx
mov eax, dword [eax + 0x38]
mov edx, dword [eax + edx*4]
test edx, edx
je 0x1004311d
mov ecx, dword [esp + 0xc]
call fcn.1003a860
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x38]
mov ecx, dword [esp + 0x28]
mov dword [eax + ecx*4], esi
mov ecx, dword [esp + 0x4c]
cmp dword [edi + 0x18], ecx
jge 0x10043136
mov edx, ecx
mov ecx, edi
push 0
call fcn.10037760
add esp, 4
test eax, eax
jne 0x10043193
jmp 0x10043141
mov eax, dword [edi + 0x14]
and word [edi + 8], 0xd
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov esi, dword [edi + 0x10]
push 0x58
mov eax, dword [eax + 0x38]
push 0
push esi
mov dword [eax + ecx*4], esi
call fcn.10154a20
mov ecx, dword [esp + 0x28]
add esp, 0xc
mov eax, dword [esp + 0x54]
mov byte [esi + 1], al
mov byte [esi], 0
lea eax, [ecx + 0x14]
mov word [esi + 0x10], cx
lea eax, [esi + eax*4]
mov dword [esi + 0x4c], eax
mov eax, dword [edi + 0x10]
push 0x44
push 0
lea eax, [eax + ecx*8]
add eax, 0x58
push eax
mov dword [esi + 0x14], eax
call fcn.10154a20
add esp, 0xc
test esi, esi
je 0x10045bde
mov ecx, dword [esp + 0xdc]
or dword [esi + 8], 4
mov eax, dword [esi + 0x14]
mov byte [esi + 2], 1
mov dword [esi + 0xc], ecx
mov dword [esp + 0x28], eax
cmp ecx, 1
jge 0x100431dc
push 0x101d8f94
push 0xe884
push str.database_corruption_at_line__d_of___.10s_
push 0xb
call fcn.1001dd80
add esp, 0x10
mov dword [esp + 0x14], 0xb
jmp 0x1004322d
mov edi, dword [esp + 0x40]
cmp byte [edi + 9], 0
je 0x10043201
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x10043201
mov ecx, edi
call fcn.1002cae0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0xdc]
push eax
push dword [esp + 0x24]
mov edx, ecx
mov ecx, edi
push dword [esp + 0x40]
call fcn.10030690
add esp, 0xc
mov dword [esp + 0x14], eax
cmp byte [edi + 9], 0
je 0x1004322d
add dword [edi + 0xc], 0xffffffff
jne 0x1004322d
mov ecx, edi
call fcn.1002caa0
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x10]
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 8]
cmp byte [eax + 1], 0xfa
setne al
mov byte [esi + 4], al
mov eax, dword [esp + 8]
mov edx, dword [esp + 8]
mov cl, byte [eax + 3]
mov eax, dword [esi + 0x14]
and cl, 3
mov byte [eax + 0x43], cl
jmp 0x10040f0f
mov eax, dword [esp + 8]
mov edi, dword [eax + 8]
mov edx, dword [eax + 4]
mov eax, dword [esi + 0x1c]
sub eax, edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x38], edi
lea edi, [edi*8 + 0x120]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea esi, [eax + ecx*8]
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x38]
mov edx, dword [eax + edx*4]
test edx, edx
je 0x100432ab
call fcn.1003a860
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x38]
mov ecx, dword [esp + 0x28]
mov dword [eax + ecx*4], 0
cmp dword [esi + 0x18], edi
jge 0x100432c8
push 0
mov edx, edi
mov ecx, esi
call fcn.10037760
add esp, 4
test eax, eax
jne 0x10045bde
jmp 0x100432d3
mov eax, dword [esi + 0x14]
and word [esi + 8], 0xd
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov edi, dword [esi + 0x10]
push 0x58
mov eax, dword [eax + 0x38]
push 0
push edi
mov dword [eax + ecx*4], edi
call fcn.10154a20
mov ecx, dword [esp + 0x44]
add esp, 0xc
mov word [edi], 0xff00
mov word [edi + 0x10], cx
lea eax, [ecx + 0x14]
lea eax, [edi + eax*4]
mov dword [edi + 0x4c], eax
mov eax, dword [esi + 0x10]
push 0x44
push 0
lea eax, [eax + ecx*8]
add eax, 0x58
push eax
mov dword [edi + 0x14], eax
call fcn.10154a20
mov eax, dword [esp + 0x14]
lea esi, [edi + 0x18]
or dword [edi + 8], 1
add esp, 0xc
mov byte [edi + 2], 1
xor edx, edx
movzx eax, byte [eax + 3]
push 0x41e
or eax, 5
push eax
mov eax, dword [esp + 0x18]
push esi
push eax
mov ecx, dword [eax]
call fcn.1002e670
mov edx, eax
add esp, 0x10
mov dword [esp + 0x14], edx
test edx, edx
jne 0x100434ca
mov ecx, dword [esi]
lea edx, [eax + 1]
call fcn.1002f680
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x100434ca
mov ecx, dword [esp + 8]
mov esi, dword [esi]
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x28], eax
test eax, eax
je 0x1004347a
movzx eax, byte [ecx + 3]
or eax, 2
mov dword [esp + 0x38], eax
cmp byte [esi + 9], dl
je 0x100433ac
inc dword [esi + 0xc]
cmp byte [esi + 0xa], dl
jne 0x100433ac
mov ecx, esi
call fcn.1002cae0
mov eax, dword [esp + 0x38]
push eax
lea edx, [esp + 0xa4]
mov ecx, esi
call fcn.10034d40
add esp, 4
mov edx, eax
cmp byte [esi + 9], 0
mov dword [esp + 0x14], edx
je 0x100433db
add dword [esi + 0xc], 0xffffffff
jne 0x100433db
mov ecx, esi
call fcn.1002caa0
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x10043474
mov eax, dword [esp + 0x28]
mov esi, dword [edi + 0x18]
mov dword [edi + 0x1c], eax
mov eax, dword [edi + 0x14]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xa0]
cmp eax, 1
jge 0x1004342a
push 0x101d8f94
push 0xe884
push str.database_corruption_at_line__d_of___.10s_
push 0xb
call fcn.1001dd80
add esp, 0x10
mov dword [esp + 0x14], 0xb
mov byte [edi + 4], 0
jmp 0x100434ca
cmp byte [esi + 9], 0
je 0x10043447
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x10043447
mov ecx, esi
call fcn.1002cae0
mov eax, dword [esp + 0xa0]
push dword [esp + 0x38]
mov edx, eax
mov ecx, esi
push dword [esp + 0x2c]
push 4
call fcn.10030690
add esp, 0xc
mov dword [esp + 0x14], eax
cmp byte [esi + 9], 0
je 0x10043474
add dword [esi + 0xc], 0xffffffff
jne 0x10043474
mov ecx, esi
call fcn.1002caa0
mov byte [edi + 4], 0
jmp 0x100434ca
cmp byte [esi + 9], 0
mov eax, dword [edi + 0x14]
mov dword [esp + 0x28], eax
je 0x1004349b
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x1004349b
mov ecx, esi
call fcn.1002cae0
mov eax, dword [esp + 0x28]
push eax
push 0
push 4
mov edx, 1
mov ecx, esi
call fcn.10030690
add esp, 0xc
mov dword [esp + 0x14], eax
cmp byte [esi + 9], 0
je 0x100434c6
add dword [esi + 0xc], 0xffffffff
jne 0x100434c6
mov ecx, esi
call fcn.1002caa0
mov byte [edi + 4], 1
mov eax, dword [esp + 8]
xor ecx, ecx
cmp byte [eax + 3], 8
mov eax, 4
cmovne ecx, eax
mov eax, dword [edi + 8]
and eax, 0xfffffffb
or ecx, eax
mov dword [edi + 8], ecx
jmp 0x10040f07
mov eax, dword [esp + 8]
mov edx, dword [eax + 8]
mov edi, dword [eax + 4]
mov eax, dword [esi + 0x1c]
sub eax, edi
mov dword [esp + 0x38], edx
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea esi, [eax + ecx*8]
mov eax, dword [esp + 0xc]
lea ecx, [edx*8 + 0x58]
mov dword [esp + 0x28], ecx
mov eax, dword [eax + 0x38]
mov edx, dword [eax + edi*4]
test edx, edx
je 0x1004353c
mov ecx, dword [esp + 0xc]
call fcn.1003a860
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x38]
mov ecx, dword [esp + 0x28]
mov dword [eax + edi*4], 0
cmp dword [esi + 0x18], ecx
jge 0x10043559
mov edx, ecx
mov ecx, esi
push 0
call fcn.10037760
add esp, 4
test eax, eax
jne 0x10045bde
jmp 0x10043564
mov eax, dword [esi + 0x14]
and word [esi + 8], 0xd
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0xc]
mov esi, dword [esi + 0x10]
push 0x58
push 0
mov eax, dword [eax + 0x38]
push esi
mov dword [eax + edi*4], esi
call fcn.10154a20
mov eax, dword [esp + 0x44]
add esp, 0xc
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x10]
mov word [esi + 0x10], ax
add eax, 0x14
mov word [esi], 0xff01
push esi
lea eax, [esi + eax*4]
mov dword [esi + 0x4c], eax
mov eax, dword [ecx + 0x10]
mov dword [esi + 0x1c], eax
mov edx, dword [ecx + 0xc]
mov ecx, edi
call fcn.10047f90
mov edx, dword [esp + 0xc]
add esp, 4
mov dword [esp + 0x14], eax
jmp 0x10040f0f
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov edx, dword [eax + ecx*4]
mov edi, dword [edx + 0x28]
mov ecx, edi
mov esi, dword [edx + 0x2c]
add ecx, 1
mov eax, esi
mov dword [edx + 0x28], ecx
adc eax, 0
or edi, esi
mov dword [edx + 0x2c], eax
mov edx, dword [esp + 8]
je 0x1004077d
jmp 0x10040f0b
mov eax, dword [esp + 8]
mov edx, dword [eax + 0xc]
mov edi, dword [eax + 4]
mov eax, dword [esi + 0x1c]
sub eax, edi
mov dword [esp + 0x38], edx
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea esi, [eax + ecx*8]
mov eax, dword [esp + 0xc]
lea ecx, [edx*8 + 0x58]
mov dword [esp + 0x28], ecx
mov eax, dword [eax + 0x38]
mov edx, dword [eax + edi*4]
test edx, edx
je 0x10043641
mov ecx, dword [esp + 0xc]
call fcn.1003a860
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x38]
mov ecx, dword [esp + 0x28]
mov dword [eax + edi*4], 0
cmp dword [esi + 0x18], ecx
jge 0x1004365e
mov edx, ecx
mov ecx, esi
push 0
call fcn.10037760
add esp, 4
test eax, eax
jne 0x10045bde
jmp 0x10043669
mov eax, dword [esi + 0x14]
and word [esi + 8], 0xd
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0xc]
mov esi, dword [esi + 0x10]
push 0x58
push 0
mov eax, dword [eax + 0x38]
push esi
mov dword [eax + edi*4], esi
call fcn.10154a20
mov eax, dword [esp + 0x44]
add esp, 0xc
mov word [esi + 0x10], ax
add eax, 0x14
mov word [esi], 0xff03
lea eax, [esi + eax*4]
mov dword [esi + 0x4c], eax
mov eax, dword [esp + 8]
mov byte [esi + 2], 1
mov eax, dword [eax + 8]
mov dword [esi + 0x14], eax
mov byte [esi + 4], 1
jmp 0x10040f07
mov eax, dword [esp + 8]
mov ecx, esi
mov edx, dword [esi + 0x38]
mov eax, dword [eax + 4]
mov edx, dword [edx + eax*4]
call fcn.1003a860
mov eax, dword [esp + 8]
mov edx, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov dword [eax + ecx*4], 0
jmp 0x10040f13
mov eax, dword [esp + 8]
mov dword [esp + 0xdc], 0
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 4], 0
mov byte [esi + 2], 0
je 0x1004380e
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov al, byte [edi + 8]
and al, 0xe
cmp al, 2
jne 0x10043727
xor edx, edx
mov ecx, edi
call fcn.100403d0
mov ecx, edi
call fcn.10037cc0
movzx ecx, word [edi + 8]
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], edx
test cl, 4
jne 0x10043781
test cl, 8
je 0x10040779
mov ecx, eax
call fcn.1017a610
movsd xmm1, qword [edi]
comisd xmm0, xmm1
jbe 0x1004376e
mov ecx, dword [esp + 0x1c]
test cl, 1
lea eax, [ecx - 1]
cmove eax, ecx
mov ecx, eax
mov dword [esp + 0x1c], ecx
jmp 0x10043781
comisd xmm1, xmm0
jbe 0x10043781
mov eax, dword [esp + 0x1c]
test al, 1
jne 0x10043781
inc eax
mov dword [esp + 0x1c], eax
mov edi, dword [esp + 0x28]
lea eax, [esp + 0x1b0]
mov ecx, dword [esi + 0x14]
xor edx, edx
push eax
push 0
push dword [esp + 0x28]
push edi
call fcn.10031140
mov edx, eax
mov dword [esi + 0x30], edi
mov eax, dword [esp + 0x30]
add esp, 0x10
mov dword [esp + 0x14], edx
mov dword [esi + 0x34], eax
test edx, edx
jne 0x10043eb7
mov edi, dword [esp + 0xdc]
mov eax, dword [esp + 0x1c]
mov byte [esi + 3], 0
mov dword [esi + 0x38], 0
mov ecx, dword [esp + 0x1b0]
cmp eax, 0x42
jl 0x100438ed
test ecx, ecx
js 0x100438d0
jne 0x100437f2
cmp eax, 0x43
je 0x100438d0
mov ecx, dword [esp + 8]
test edi, edi
mov dword [esp + 0x1b0], 0
lea edx, [ecx + 0x14]
cmove edx, ecx
jmp 0x10040f0b
mov eax, dword [esi + 0x14]
mov ecx, dword [esp + 8]
mov al, byte [eax + 0x43]
and al, 2
mov byte [esp + 0x27], al
mov eax, 0
setne al
test dl, 1
mov dword [esp + 0xdc], eax
mov eax, dword [esi + 0x1c]
mov dword [esp + 0xe0], eax
mov ax, word [ecx + 0x10]
mov word [esp + 0xe8], ax
sete al
lea eax, [eax*2 - 1]
mov byte [esp + 0xea], al
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, 0x4000
mov dword [esp + 0xe4], ecx
test word [ecx + 8], ax
je 0x1004387b
call fcn.10037920
lea eax, [esp + 0x1b0]
mov byte [esp + 0xee], 0
mov ecx, dword [esi + 0x14]
lea edx, [esp + 0xe0]
push eax
push 0
push 0
push 0
call fcn.10031140
mov edx, eax
add esp, 0x10
mov dword [esp + 0x14], edx
test edx, edx
jne 0x10043ebb
cmp byte [esp + 0x27], al
je 0x100437b9
mov edi, dword [esp + 0xdc]
cmp byte [esp + 0xee], al
je 0x10043939
jmp 0x100437c0
lea eax, [esp + 0x1b0]
mov dword [esp + 0x1b0], 0
push eax
push dword [esi + 0x14]
call fcn.100316e0
jmp 0x10043928
test ecx, ecx
jg 0x1004390d
jne 0x100438f8
cmp eax, 0x40
je 0x1004390d
mov eax, dword [esi + 0x14]
xor ecx, ecx
cmp byte [eax + 0x42], 1
setne cl
mov dword [esp + 0x1b0], ecx
jmp 0x10043939
lea eax, [esp + 0x1b0]
mov dword [esp + 0x1b0], 0
push eax
push dword [esi + 0x14]
call fcn.10031860
mov edx, eax
add esp, 8
mov dword [esp + 0x14], edx
test edx, edx
jne 0x10043eb7
cmp dword [esp + 0x1b0], 0
jne 0x10040779
mov ecx, dword [esp + 8]
test edi, edi
lea edx, [ecx + 0x14]
cmove edx, ecx
jmp 0x10040f0b
mov edx, dword [esp + 8]
mov eax, dword [esi + 0x38]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x18]
mov byte [esi + 2], 0
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.10037cc0
mov dword [esi + 0x34], edx
mov edx, dword [esp + 8]
mov dword [esi + 0x30], eax
mov byte [esi + 3], 1
jmp 0x10040f0f
mov edx, dword [esp + 8]
mov eax, dword [esi + 0x38]
mov dword [esp + 0x38], 0
cmp dword [edx + 0x10], 0
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x28], esi
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [esp + 0x1c], ecx
jle 0x10043a2f
mov eax, dword [esi + 0x1c]
xor edi, edi
mov dx, word [edx + 0x10]
mov dword [esp + 0xf0], eax
xor eax, eax
mov word [esp + 0xf8], dx
mov dword [esp + 0xf4], ecx
cmp ax, dx
jae 0x10043a26
xor esi, esi
nop word [eax + eax]
add ecx, esi
mov eax, 0x4000
test word [ecx + 8], ax
je 0x10043a17
call fcn.10037920
mov ecx, dword [esp + 0xf4]
mov dx, word [esp + 0xf8]
mov dword [esp + 0x1c], ecx
jmp 0x10043a1b
mov ecx, dword [esp + 0x1c]
inc edi
movzx eax, dx
add esi, 0x28
cmp edi, eax
jl 0x100439f0
lea edi, [esp + 0xf0]
jmp 0x10043a81
mov ecx, dword [esi + 0x1c]
lea eax, [esp + 0x38]
push eax
push 0xb7
lea edx, [esp + 0x208]
call fcn.1003c410
mov edi, eax
add esp, 8
test edi, edi
je 0x10045bde
mov esi, dword [esp + 0x1c]
mov eax, 0x4000
test word [esi + 8], ax
je 0x10043a6b
mov ecx, esi
call fcn.10037920
mov ecx, dword [esp + 0x28]
mov edx, dword [esi + 0xc]
push edi
push dword [esi + 0x10]
mov ecx, dword [ecx + 0x1c]
call fcn.1003c480
add esp, 8
mov eax, dword [esp + 8]
xor esi, esi
mov byte [edi + 0xa], 0
cmp byte [eax], 0x45
jne 0x10043ab4
movzx edx, word [edi + 8]
xor ecx, ecx
test edx, edx
je 0x10043ab4
mov eax, dword [edi + 4]
add eax, 8
test byte [eax], 1
jne 0x10043aaf
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x10043aa0
jmp 0x10043ab4
mov esi, 1
lea eax, [esp + 0xac]
mov edx, edi
mov edi, dword [esp + 0x28]
push eax
push 0
push 0
mov ecx, dword [edi + 0x14]
push 0
call fcn.10031140
mov edx, dword [esp + 0x48]
add esp, 0x10
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x14], eax
call fcn.1001bca0
cmp dword [esp + 0x14], 0
mov edx, dword [esp + 8]
jne 0x10040f0b
mov eax, dword [esp + 0xac]
xor ecx, ecx
test eax, eax
mov dword [edi + 0x20], eax
mov al, 1
mov byte [edi + 3], 0
sete cl
mov dword [edi + 0x38], 0
sub al, cl
mov byte [edi + 2], al
cmp byte [edx], 0x49
jne 0x10043b33
test ecx, ecx
jne 0x1004077d
mov edi, dword [esp + 0x10]
add edx, 0x14
mov esi, dword [esp + 0xc]
jmp 0x1004070c
test esi, esi
jne 0x1004077d
test ecx, ecx
je 0x1004077d
mov edi, dword [esp + 0x10]
add edx, 0x14
mov esi, dword [esp + 0xc]
jmp 0x1004070c
mov edx, dword [esp + 8]
mov eax, dword [esi + 0x38]
mov dword [esp + 0x28], 0
mov ecx, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x38], ecx
mov ecx, dword [ecx + 0x14]
lea eax, [eax + eax*4]
mov esi, dword [edx + eax*8]
mov edi, dword [edx + eax*8 + 4]
lea eax, [esp + 0x28]
push eax
push 0
push edi
push esi
xor edx, edx
call fcn.10031140
mov ecx, dword [esp + 0x48]
add esp, 0x10
mov edx, dword [esp + 8]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
mov dword [ecx + 0x30], esi
mov dword [ecx + 0x34], edi
mov word [ecx + 2], 0
mov dword [ecx + 0x38], 0
mov dword [ecx + 0x20], eax
test eax, eax
je 0x10040f0b
cmp dword [edx + 8], 0
jne 0x1004077d
mov ecx, 0x130e5
call fcn.1008ebc0
mov dword [esp + 0x14], eax
jmp 0x10040f07
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea edx, [eax + ecx*8]
mov eax, 0x2460
test word [edx + 8], ax
je 0x10043c04
mov ecx, edx
call fcn.100405c0
mov edx, eax
jmp 0x10043c0d
mov eax, 4
mov word [edx + 8], ax
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x28]
mov dword [edx], eax
mov eax, dword [ecx + 0x2c]
mov dword [edx + 4], eax
mov eax, dword [esp + 8]
mov edx, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + ecx*4]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
jmp 0x10040f13
mov eax, dword [esp + 8]
xorps xmm0, xmm0
movlpd qword [esp + 0x1a8], xmm0
mov dword [esp + 0x1c], 0
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea edx, [eax + ecx*8]
mov eax, 0x2460
mov dword [esp + 0x38], edx
test word [edx + 8], ax
je 0x10043c83
mov ecx, edx
call fcn.100405c0
mov dword [esp + 0x38], eax
jmp 0x10043c8c
mov eax, 4
mov word [edx + 8], ax
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov edi, dword [eax + ecx*4]
mov dword [esp + 0x20], edi
test byte [edi + 8], 2
jne 0x10043d76
mov esi, dword [edi + 0x14]
cmp byte [esi + 0x42], 1
jne 0x10043cb6
test byte [esi + 0x40], 8
jne 0x10043d21
mov ecx, esi
call fcn.10030e20
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x10043eb7
cmp byte [esi + 0x42], al
jne 0x10043cf6
mov edi, 1
mov dword [esp + 0x1c], 1
xor esi, esi
mov dword [esp + 0x14], edx
mov dword [esp + 0x1a8], edi
mov dword [esp + 0x1ac], esi
jmp 0x10043d84
mov ecx, esi
mov dword [esp + 0x1c], 0
call fcn.10031080
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x10043d15
or byte [esi + 0x40], 8
jmp 0x10043d21
and byte [esi + 0x40], 0xf7
test edx, edx
jne 0x10043eb7
mov esi, dword [edi + 0x14]
mov ecx, esi
call fcn.10030880
mov edi, dword [esi + 0x10]
mov esi, dword [esi + 0x14]
mov dword [esp + 0x1a8], edi
mov dword [esp + 0x1ac], esi
mov dword [esp + 0x14], 0
cmp esi, 0x7fffffff
jl 0x10043d60
jg 0x10043d56
cmp edi, 0xffffffff
jb 0x10043d60
mov eax, dword [esp + 0x20]
or dword [eax + 8], 2
jmp 0x10043d84
add edi, 1
mov dword [esp + 0x1a8], edi
adc esi, 0
mov dword [esp + 0x1ac], esi
jmp 0x10043d84
mov esi, dword [esp + 0x1ac]
mov edi, dword [esp + 0x1a8]
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x10043e2b
mov eax, dword [esp + 0xc]
mov edx, dword [eax + 0xb0]
test edx, edx
je 0x10043dbc
mov eax, dword [edx + 4]
test eax, eax
je 0x10043db1
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x10043da8
mov eax, dword [edx + 0x10]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*8]
jmp 0x10043dc6
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x18]
lea ecx, [ecx + eax*8]
mov dword [esp + 0xdc], ecx
call fcn.10037e70
mov eax, dword [esp + 0xdc]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
cmp ecx, 0xffffffff
jne 0x10043def
cmp edx, 0x7fffffff
je 0x10043eae
mov eax, dword [esp + 0x20]
test byte [eax + 8], 2
mov eax, dword [esp + 0xdc]
jne 0x10043eae
add ecx, 1
adc edx, 0
cmp esi, edx
jg 0x10043e26
jl 0x10043e14
cmp edi, ecx
jae 0x10043e26
mov edi, ecx
mov esi, edx
mov dword [esp + 0x1a8], edi
mov dword [esp + 0x1ac], esi
mov dword [eax], edi
mov dword [eax + 4], esi
mov eax, dword [esp + 0x20]
test byte [eax + 8], 2
je 0x10043edb
mov dword [esp + 0x28], 0
lea eax, [esp + 0x1a8]
push eax
push 8
call fcn.1001ddc0
mov esi, dword [esp + 0x1b4]
lea eax, [esp + 0x24]
mov edi, dword [esp + 0x1b0]
and esi, 0x3fffffff
push eax
mov eax, dword [esp + 0x2c]
add edi, 1
push 0
adc esi, 0
mov dword [esp + 0x1b8], edi
push esi
mov ecx, dword [eax + 0x14]
xor edx, edx
push edi
mov dword [esp + 0x1c4], esi
call fcn.10031140
add esp, 0x18
mov dword [esp + 0x14], eax
test eax, eax
jne 0x10043ed7
cmp dword [esp + 0x1c], eax
jne 0x10043ed7
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
cmp eax, 0x64
jl 0x10043e41
mov edx, 0xd
mov dword [esp + 0x14], edx
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
cmp byte [edi + 0x41], 0
je 0x10046468
mov edx, 7
mov dword [esp + 0x14], edx
jmp 0x10046474
mov eax, dword [esp + 0x20]
mov byte [eax + 3], 0
mov dword [eax + 0x38], 0
mov eax, dword [esp + 0x38]
mov dword [eax], edi
mov dword [eax + 4], esi
jmp 0x10040f07
cmp byte [esp + 0x27], 0x5f
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 4]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x38]
mov edx, dword [eax + ecx*4]
mov ecx, dword [esp + 8]
mov dword [esp + 0x20], edx
mov eax, dword [ecx + 0xc]
jne 0x10043f35
mov edi, dword [esp + 0x18]
lea eax, [eax + eax*4]
mov edx, dword [esp + 0x18]
mov edi, dword [edi + eax*8]
mov eax, dword [edx + eax*8 + 4]
mov dword [esp + 0x1c], eax
jmp 0x10043f3e
cdq
mov edi, eax
mov dword [esp + 0x1c], edx
mov eax, edx
test byte [ecx + 3], 1
mov edx, dword [esp + 0x20]
je 0x10043f53
mov eax, dword [esp + 0xc]
inc dword [eax + 0x5c]
mov eax, dword [esp + 0x1c]
test byte [ecx + 3], 2
je 0x10043f6f
mov edx, dword [esp + 0x10]
mov dword [esp + 0x5c], edi
mov dword [esp + 0x58], eax
mov dword [edx + 0x20], edi
mov dword [edx + 0x24], eax
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
movzx eax, word [eax + esi*8 + 8]
test al, 1
je 0x10043f94
mov edx, dword [esp + 0x18]
mov dword [edx + esi*8 + 0x10], 0
mov dword [edx + esi*8 + 0xc], 0
mov edx, dword [esp + 0x20]
mov cl, byte [ecx + 3]
mov byte [esp + 0x27], cl
test cl, 0x10
je 0x10043fa5
mov edx, dword [edx + 0x20]
jmp 0x10043fa7
xor edx, edx
test eax, 0x4000
je 0x10043fb7
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + esi*8]
jmp 0x10043fb9
xor ecx, ecx
movzx eax, byte [esp + 0x27]
push edx
shr eax, 3
xor edx, edx
and eax, 1
push eax
mov eax, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x2c]
push dword [eax + esi*8 + 0xc]
push dword [eax + esi*8 + 0x10]
mov esi, dword [esp + 0x30]
mov ecx, dword [ecx + 0x14]
push esi
push edi
call fcn.10034730
mov ecx, dword [esp + 0x3c]
mov edx, eax
add esp, 0x1c
mov dword [esp + 0x14], edx
mov byte [ecx + 3], 0
mov dword [ecx + 0x38], 0
test edx, edx
jne 0x10040f07
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0xd4]
test edx, edx
je 0x1004622e
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x10040f07
movsx ecx, byte [ecx + 1]
push esi
push edi
mov edi, dword [esp + 0x18]
add ecx, ecx
push eax
mov eax, dword [edi + 0x10]
push dword [eax + ecx*8]
mov eax, dword [esp + 0x18]
mov ecx, 0x17
test byte [eax + 3], 4
mov eax, 0x12
cmovne eax, ecx
push eax
push dword [edi + 0xd0]
call edx
mov edx, dword [esp + 0x20]
add esp, 0x18
jmp 0x10040f0f
mov edx, dword [esp + 8]
mov eax, dword [esi + 0x38]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xd4], 0
je 0x1004408f
cmp dword [edx + 0x10], 0
je 0x1004408f
cmp byte [edi + 4], 0
je 0x1004408f
mov al, 1
jmp 0x10044091
xor al, al
cmp byte [edx + 3], 0
mov byte [esp + 0x27], al
je 0x100440bd
test al, al
je 0x100440bd
mov esi, dword [edi + 0x14]
mov ecx, esi
call fcn.10030880
mov eax, dword [esi + 0x10]
mov edx, dword [esp + 8]
mov dword [edi + 0x30], eax
mov eax, dword [esi + 0x14]
mov esi, dword [esp + 0xc]
mov dword [edi + 0x34], eax
movzx edx, byte [edx + 3]
mov ecx, dword [edi + 0x14]
call fcn.10034960
mov edx, eax
mov dword [edi + 0x38], 0
mov dword [esp + 0x14], edx
test edx, edx
jne 0x10044113
cmp byte [esp + 0x27], al
je 0x10044113
push dword [edi + 0x34]
movsx ecx, byte [edi + 1]
push dword [edi + 0x30]
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
shl ecx, 4
push dword [eax + 0x10]
mov eax, dword [edi + 0x10]
push dword [ecx + eax]
mov eax, dword [edi + 0xd4]
push 9
push dword [edi + 0xd0]
call eax
add esp, 0x18
jmp 0x10044117
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 8]
test byte [edx + 8], 1
je 0x10040f13
inc dword [esi + 0x5c]
jmp 0x10040f13
mov eax, dword [esi + 0x5c]
add dword [edi + 0x54], eax
mov edx, dword [esp + 8]
mov dword [edi + 0x50], eax
mov dword [esi + 0x5c], 0
jmp 0x10040f13
mov edx, dword [esp + 8]
mov eax, dword [esi + 0x38]
mov dword [esp + 0x4c], 0
mov ecx, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov edx, dword [esp + 0x18]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
lea eax, [esp + 0x4c]
push eax
mov eax, dword [esp + 0xc]
push dword [eax + 0x10]
call fcn.1004a490
mov edx, dword [esp + 0x10]
add esp, 8
cmp dword [esp + 0x4c], 0
mov dword [esp + 0x14], eax
jne 0x1004077d
jmp 0x10040f13
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [esi + 0x38]
mov ecx, dword [eax + ecx*4]
call fcn.1004a3f0
mov edx, dword [esp + 8]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0xc]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x38], 0
jmp 0x10040f13
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 4]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x28], eax
cmp byte [eax + 4], 0
mov esi, dword [eax + 0x14]
mov ecx, esi
jne 0x10044220
call fcn.10030880
mov eax, dword [esp + 0x10]
mov edi, dword [esi + 0x10]
mov eax, dword [eax + 0x58]
cdq
cmp dword [esi + 0x14], edx
jg 0x1004650a
jl 0x10044235
cmp edi, eax
jmp 0x1004422f
call fcn.10030880
mov eax, dword [esp + 0x10]
mov edi, dword [esi + 0x1c]
cmp edi, dword [eax + 0x58]
ja 0x1004650a
mov ecx, dword [esp + 0x1c]
mov edx, 0x20
cmp edi, edx
cmova edx, edi
call fcn.10037890
test eax, eax
jne 0x10045bde
mov ecx, dword [esp + 0x1c]
mov edx, 0xbe10
mov ax, word [ecx + 8]
and ax, dx
mov dword [ecx + 0xc], edi
or ax, 0x10
mov word [ecx + 8], ax
mov eax, dword [esp + 0x28]
cmp byte [eax + 4], 0
jne 0x1004427c
push 0
push dword [ecx + 0x10]
jmp 0x100442b6
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x28], eax
mov al, byte [esi + 0x42]
test al, al
jne 0x1004429b
mov dword [esp + 0x14], 4
mov byte [ecx + 0xa], 1
jmp 0x10040f07
cmp al, 3
jb 0x100442b0
mov ecx, esi
call fcn.1002d130
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x100442c7
push 0
push dword [esp + 0x2c]
push edi
xor edx, edx
mov ecx, esi
call fcn.10030a70
mov dword [esp + 0x20], eax
add esp, 0xc
mov ecx, dword [esp + 0x1c]
mov byte [ecx + 0xa], 1
jmp 0x10040f07
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea edi, [eax + ecx*8]
mov eax, 0x2460
test word [edi + 8], ax
je 0x100442fa
mov ecx, edi
call fcn.100405c0
mov edi, eax
jmp 0x10044303
mov eax, 4
mov word [edi + 8], ax
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 2], 0
je 0x10044324
mov eax, 1
mov word [edi + 8], ax
jmp 0x10040f07
cmp byte [esi + 3], 0
je 0x1004433c
mov ecx, dword [esi + 0x30]
mov dword [esp + 0x1b8], ecx
mov eax, dword [esi + 0x34]
jmp 0x100443f4
cmp byte [esi], 2
jne 0x1004438a
mov ecx, dword [esi + 0x14]
lea edx, [esp + 0x1b8]
push edx
push ecx
mov esi, dword [ecx]
mov eax, dword [esi]
mov eax, dword [eax + 0x30]
call eax
add esp, 8
mov dword [esp + 0x14], eax
mov edx, esi
mov esi, dword [esp + 0xc]
mov ecx, esi
call fcn.1003d8c0
mov ecx, dword [esp + 0x1b8]
mov edx, dword [esp + 8]
mov dword [edi], ecx
mov eax, dword [esp + 0x1bc]
mov dword [edi + 4], eax
mov edi, dword [esp + 0x10]
jmp 0x10040f13
mov eax, dword [esi + 0x14]
cmp byte [eax + 0x42], 1
je 0x100443aa
mov ecx, esi
call fcn.1003bf80
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x10043eb7
jmp 0x100443b2
mov dword [esp + 0x14], 0
cmp byte [esi + 2], 0
je 0x100443d5
mov edx, dword [esp + 8]
mov eax, 1
mov esi, dword [esp + 0xc]
add edx, 0x14
mov word [edi + 8], ax
mov edi, dword [esp + 0x10]
jmp 0x1004070c
mov esi, dword [esi + 0x14]
mov ecx, esi
call fcn.10030880
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x1b8], ecx
mov eax, dword [esi + 0x14]
mov dword [esp + 0x14], 0
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov dword [esp + 0x1bc], eax
mov dword [edi], ecx
mov eax, dword [esp + 0x1bc]
mov dword [edi + 4], eax
mov edi, dword [esp + 0x10]
jmp 0x10040f13
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx], 0
mov byte [ecx + 2], 1
mov dword [ecx + 0x38], 0
jne case.0x10040739.63
mov ecx, dword [ecx + 0x14]
call fcn.1002cf60
mov edx, dword [esp + 8]
jmp 0x10040f13
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov edi, dword [eax + ecx*4]
xor ecx, ecx
mov dword [esp + 0x1c], ecx
mov esi, dword [edi + 0x14]
cmp byte [esi + 0x42], 1
jne 0x10044472
test byte [esi + 0x40], 8
je 0x10044472
mov dword [esp + 0x14], ecx
jmp 0x100444b6
mov ecx, esi
call fcn.10030e20
mov dword [esp + 0x14], eax
test eax, eax
jne 0x100444b2
cmp byte [esi + 0x42], al
jne 0x1004448b
lea ecx, [eax + 1]
jmp 0x100444b6
mov ecx, esi
mov dword [esp + 0x1c], 0
call fcn.10031080
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x14], eax
test eax, eax
jne 0x100444ac
or byte [esi + 0x40], 8
jmp 0x100444b6
and byte [esi + 0x40], 0xf7
jmp 0x100444b6
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 8]
mov edx, dword [esp + 8]
mov byte [edi + 2], cl
mov byte [edi + 3], 0
mov dword [edi + 0x38], 0
mov eax, dword [eax + 0xc]
mov dword [edi + 0x20], eax
cmp dword [edx + 8], 0
jle 0x10040f0b
test ecx, ecx
jne 0x1004077d
jmp 0x10040f0b
inc dword [esi + 0x74]
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov esi, dword [eax + ecx*4]
mov eax, 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x40], eax
cmp byte [esi], al
jne 0x1004451f
lea edx, [esp + 0x40]
mov ecx, esi
call fcn.1004a330
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x40]
jmp 0x10044561
mov edi, dword [esi + 0x14]
mov ecx, edi
call fcn.10030e20
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1004454e
cmp byte [edi + 0x42], al
jne 0x1004453d
lea eax, [edx + 1]
jmp 0x10044552
xor eax, eax
mov ecx, edi
call fcn.10030fd0
mov dword [esp + 0x14], eax
xor eax, eax
jmp 0x10044552
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x10]
mov byte [esi + 3], 0
mov dword [esi + 0x38], 0
mov edx, dword [esp + 8]
mov byte [esi + 2], al
test eax, eax
jne 0x1004077d
jmp 0x10040f0f
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov edi, dword [eax + ecx*4]
mov dword [esp + 0x1b4], 0
mov esi, dword [edi + 0x14]
cmp byte [esi + 0x38], 0
je 0x100445df
cmp byte [esi + 0x39], 0
je 0x100445c3
mov ecx, dword [esi + 0x10]
call fcn.10047c40
mov dword [esp + 0x14], eax
xor ecx, ecx
mov eax, dword [esi + 0x10]
mov esi, dword [esp + 0xc]
cmp dword [eax + 0x18], ecx
sete cl
mov dword [esp + 0x1b4], ecx
jmp 0x10044661
mov ecx, dword [esi + 0x14]
lea edx, [esp + 0x1b4]
call fcn.10048ff0
mov esi, dword [esp + 0xc]
mov dword [esp + 0x14], eax
jmp 0x10044661
mov edx, dword [esi + 0x24]
mov eax, dword [edx + 4]
mov dword [esi + 0x24], eax
mov dword [edx + 4], 0
cmp dword [esi + 0x28], 0
jne 0x100445fe
mov ecx, dword [esp + 0x10]
call fcn.10048130
xor eax, eax
mov dword [esp + 0x14], 0
cmp dword [esi + 0x24], eax
mov esi, dword [esp + 0xc]
sete al
mov dword [esp + 0x1b4], eax
jmp 0x10044661
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
cmp dword [eax + ecx*4], 0
je case.0x10040739.63
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov edi, dword [eax + ecx*4]
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x1b4], eax
lea eax, [esp + 0x1b4]
push eax
push dword [edi + 0x14]
mov eax, dword [ecx + 0x10]
call eax
add esp, 8
mov dword [esp + 0x14], eax
mov dword [edi + 0x38], 0
cmp dword [esp + 0x1b4], 0
jne 0x10044687
mov eax, dword [esp + 8]
mov byte [edi + 2], 0
movzx eax, byte [eax + 3]
inc dword [esi + eax*4 + 0x6c]
jmp 0x10045ef8
mov byte [edi + 2], 1
mov edi, dword [esp + 0x10]
cmp dword [edi + 0xf0], 0
jne 0x1004665e
mov ecx, dword [edi + 0x124]
test ecx, ecx
je 0x10040c77
mov eax, dword [esp + 0x6c]
cmp eax, dword [esp + 0x84]
jb 0x10040c77
mov esi, dword [edi + 0x12c]
xor edx, edx
div esi
push dword [edi + 0x128]
sub esi, edx
add esi, dword [esp + 0x70]
mov dword [esp + 0x88], esi
call ecx
add esp, 4
test eax, eax
jne 0x100462f0
mov edx, dword [esp + 8]
jmp 0x10040f0f
mov edx, dword [esp + 8]
mov eax, dword [esi + 0x38]
test byte [edx + 3], 1
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
je 0x10044715
mov eax, dword [esp + 0xc]
inc dword [eax + 0x5c]
mov eax, 0x4000
test word [esi + 8], ax
je 0x10044739
mov ecx, esi
call fcn.10037920
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
mov edx, dword [esp + 8]
jne 0x10040f0b
cmp byte [edx], 0x6f
jne 0x10044750
mov edx, esi
mov ecx, edi
call fcn.100492d0
mov dword [esp + 0x14], eax
jmp 0x10040f07
test byte [edx + 3], 0x10
je 0x1004475b
mov eax, dword [edi + 0x20]
jmp 0x1004475d
xor eax, eax
mov ecx, dword [edi + 0x14]
push eax
push dword [edx + 0xc]
mov eax, dword [esi + 0xc]
push 0
push 0
cdq
push 0x101cf2a2
push edx
mov edx, dword [esi + 0x10]
push eax
call fcn.10034730
add esp, 0x1c
mov dword [esp + 0x14], eax
mov dword [edi + 0x38], 0
jmp 0x10040f07
mov edx, dword [esp + 8]
mov eax, dword [esi + 0x38]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x18]
mov eax, dword [esi + 0x1c]
mov edi, dword [esi + 0x14]
mov dword [esp + 0x110], eax
mov ax, word [edx + 0xc]
mov word [esp + 0x118], ax
mov eax, dword [edx + 8]
lea edx, [esp + 0x110]
mov byte [esp + 0x11a], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, edi
mov dword [esp + 0x114], eax
lea eax, [esp + 0xb0]
push eax
push 0
push 0
push 0
call fcn.10031140
mov edx, eax
add esp, 0x10
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1004480d
cmp dword [esp + 0xb0], eax
jne 0x1004480d
mov ecx, edi
call fcn.10034960
mov dword [esp + 0x14], eax
mov dword [esi + 0x38], 0
jmp 0x10040f07
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x1004483f
mov ecx, esi
call fcn.100405c0
mov esi, eax
jmp 0x10044848
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x38]
mov edi, dword [eax + ecx*4]
mov eax, 1
mov ecx, dword [edi + 0x14]
mov word [esi + 8], ax
mov eax, dword [edi + 0x14]
mov dword [esp + 0x28], ecx
cmp byte [eax + 0x42], 1
je 0x1004488d
mov ecx, edi
call fcn.1003bf80
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x10043eb7
mov ecx, dword [esp + 0x28]
jmp 0x10044895
mov dword [esp + 0x14], 0
cmp byte [edi + 2], 0
mov edi, dword [esp + 0x10]
jne 0x100448dd
lea eax, [esp + 0x60]
xorps xmm0, xmm0
mov edx, ecx
movlpd qword [esp + 0x60], xmm0
push eax
mov ecx, edi
call fcn.1003d570
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x10043ebb
mov eax, dword [esp + 0x60]
mov dword [esi], eax
mov eax, dword [esp + 0x64]
mov dword [esi + 4], eax
mov eax, 4
mov word [esi + 8], ax
mov edx, dword [esp + 8]
mov esi, dword [esp + 0xc]
add edx, 0x14
jmp 0x1004070c
mov eax, dword [esp + 8]
cmp byte [esp + 0x27], 0x75
mov dword [esp + 0x20], 0
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov edx, dword [eax + ecx*4]
mov ecx, dword [esp + 8]
mov eax, dword [edx + 0x1c]
mov dword [esp + 0xcc], eax
mov ax, word [ecx + 0x10]
mov word [esp + 0xd4], ax
sbb al, al
mov byte [esp + 0xd6], al
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, edi
mov dword [esp + 0xd0], eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0xd0]
push eax
call fcn.1003d6d0
mov dword [esp + 0x1c], eax
add esp, 8
mov eax, dword [esp + 8]
test byte [eax], 1
mov eax, dword [esp + 0x20]
je 0x1004496a
neg eax
jmp 0x1004496b
inc eax
mov edx, dword [esp + 8]
test eax, eax
jg 0x1004077d
jmp 0x10040f13
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea edi, [eax + ecx*8]
mov eax, 0x2460
test word [edi + 8], ax
je 0x100449a2
mov ecx, edi
call fcn.100405c0
mov edi, eax
jmp 0x100449ab
mov eax, 4
mov word [edi + 8], ax
mov edx, dword [esp + 0x10]
mov eax, 1
mov word [edi + 8], ax
mov eax, dword [edx + 0xa4]
inc eax
cmp dword [edx + 0x98], eax
jg 0x1004648f
mov eax, dword [esp + 8]
mov dword [esp + 0x34], 0
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 4]
mov dword [esp + 0x4c], ecx
shl ecx, 4
mov dword [esp + 0x28], eax
mov eax, dword [edx + 0x10]
mov dword [esp + 0x38], ecx
mov esi, dword [eax + ecx + 4]
cmp byte [esi + 9], 0
je 0x10044a09
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x10044a09
mov ecx, esi
call fcn.1002cae0
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x34]
push eax
mov ecx, esi
call fcn.100352a0
add esp, 4
mov dword [esp + 0x14], eax
cmp byte [esi + 9], 0
je 0x10044a33
add dword [esi + 0xc], 0xffffffff
jne 0x10044a33
mov ecx, esi
call fcn.1002caa0
cmp dword [esp + 0x14], 0
mov eax, 4
mov esi, dword [esp + 0x34]
mov word [edi + 8], ax
mov eax, esi
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
jne 0x10040f07
test esi, esi
je 0x10040f07
mov eax, dword [esp + 8]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x10]
add edi, dword [esp + 0x38]
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x10044a88
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x1c], esi
jne 0x10044a82
mov dword [ecx + 0x1c], edx
mov eax, dword [eax]
test eax, eax
jne 0x10044a77
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x10044aa3
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x2c], esi
jne 0x10044a9d
mov dword [ecx + 0x2c], edx
mov eax, dword [eax]
test eax, eax
jne 0x10044a92
mov al, byte [esp + 0x4c]
inc al
mov byte [esp + 0x53], al
jmp 0x10040f07
mov edx, dword [esp + 8]
lea eax, [esp + 0x1a4]
xor ecx, ecx
mov dword [esp + 0x1a4], 0
cmp dword [edx + 0xc], ecx
cmove eax, ecx
mov ecx, dword [edi + 0x10]
push eax
mov eax, dword [edx + 8]
mov edx, dword [edx + 4]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.100351e0
mov edx, dword [esp + 0xc]
add esp, 4
mov dword [esp + 0x14], eax
cmp dword [edx + 0xc], 0
je 0x10040f13
mov eax, dword [esp + 0x1a4]
add dword [esi + 0x5c], eax
mov ecx, dword [edx + 0xc]
test ecx, ecx
jle 0x10040f13
mov edi, dword [esp + 0x18]
lea ecx, [ecx + ecx*4]
cdq
add dword [edi + ecx*8], eax
mov eax, edi
mov edi, dword [esp + 0x10]
adc dword [eax + ecx*8 + 4], edx
mov edx, dword [esp + 8]
jmp 0x10040f13
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx], 1
jne 0x10044b52
mov edx, dword [ecx + 0x14]
mov ecx, edi
call fcn.10048490
mov edx, dword [esp + 8]
jmp 0x10040f13
mov ecx, dword [ecx + 0x14]
push 0
mov edx, dword [ecx + 0x34]
mov ecx, dword [ecx]
call fcn.100351e0
mov edx, dword [esp + 0xc]
add esp, 4
mov dword [esp + 0x14], eax
jmp 0x10040f13
mov edx, dword [esp + 8]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea edi, [eax + ecx*8]
mov eax, 0x2460
test word [edi + 8], ax
je 0x10044b9b
mov ecx, edi
call fcn.100405c0
mov edx, dword [esp + 8]
mov edi, eax
jmp 0x10044ba4
mov eax, 4
mov word [edi + 8], ax
mov ecx, dword [esp + 0x10]
mov eax, dword [edx + 4]
shl eax, 4
mov dword [esp + 0x30], 0
add eax, dword [ecx + 0x10]
xor ecx, ecx
cmp byte [edx], 0x7b
setne cl
mov esi, dword [eax + 4]
inc ecx
mov dword [esp + 0x28], ecx
cmp byte [esi + 9], 0
je 0x10044be3
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x10044be3
mov ecx, esi
call fcn.1002cae0
mov ecx, dword [esp + 0x28]
push ecx
lea edx, [esp + 0x34]
mov ecx, esi
call fcn.10034d40
add esp, 4
mov dword [esp + 0x14], eax
cmp byte [esi + 9], 0
je 0x10044c09
add dword [esi + 0xc], 0xffffffff
jne 0x10044c09
mov ecx, esi
call fcn.1002caa0
mov eax, dword [esp + 0x30]
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x10040f07
mov edx, dword [esp + 8]
lea eax, [esi + 0x2c]
mov dword [esp + 0x104], eax
mov eax, str.sqlite_master
mov dword [esp + 0x100], edi
mov ecx, dword [edx + 4]
cmp ecx, 1
push dword [edx + 0x10]
mov edx, str.sqlite_temp_master
mov dword [esp + 0x10c], ecx
cmove eax, edx
add ecx, ecx
push eax
mov eax, dword [edi + 0x10]
push dword [eax + ecx*8]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push edi
call fcn.1001da90
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x10044c71
mov dword [esp + 0x14], 7
jmp 0x10044cc2
push 0
lea eax, [esp + 0x104]
mov byte [edi + 0x91], 1
push eax
push fcn.1006c1c0
push esi
push edi
mov dword [esp + 0x120], 0
call fcn.10068930
add esp, 0x14
mov edx, esi
test eax, eax
mov ecx, edi
cmove eax, dword [esp + 0x10c]
mov dword [esp + 0x14], eax
call fcn.1001bca0
mov edx, dword [esp + 0x14]
mov byte [edi + 0x91], 0
test edx, edx
je 0x10044ccd
mov ecx, edi
call fcn.100574d0
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0xc]
cmp edx, 7
je 0x10045be6
mov edx, dword [esp + 8]
jmp 0x10040f13
mov eax, dword [esp + 8]
mov ecx, edi
mov edx, dword [eax + 4]
call fcn.100557a0
mov edx, dword [esp + 8]
mov dword [esp + 0x14], eax
jmp 0x10040f13
mov edx, dword [esp + 8]
mov eax, dword [edi + 0x10]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 0x10]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 0xc]
lea eax, [esp + 0xb4]
push eax
lea ecx, [esi + 8]
call fcn.10020170
add esp, 4
test eax, eax
je 0x10044d41
push dword [esp + 0xb4]
mov edi, dword [eax + 8]
lea ecx, [esi + 8]
mov edx, eax
call fcn.10020250
add esp, 4
jmp 0x10044d43
xor edi, edi
mov edx, edi
mov edi, dword [esp + 0x10]
mov ecx, edi
call fcn.10057730
or dword [edi + 0x18], 2
mov edx, dword [esp + 8]
jmp 0x10040f0f
mov eax, dword [esp + 8]
mov ecx, edi
push dword [eax + 0x10]
mov edx, dword [eax + 4]
call fcn.10057290
mov edx, dword [esp + 0xc]
add esp, 4
jmp 0x10040f13
mov eax, dword [esp + 8]
mov ecx, edi
push dword [eax + 0x10]
mov edx, dword [eax + 4]
call fcn.100787a0
mov edx, dword [esp + 0xc]
add esp, 4
jmp 0x10040f13
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
push 0
mov edi, dword [eax + 8]
mov dword [esp + 0x2c], edi
lea eax, [edi*4 + 4]
push eax
call fcn.1001bee0
mov edx, eax
add esp, 8
mov dword [esp + 0x38], edx
test edx, edx
je 0x10046699
mov eax, dword [esp + 8]
xor esi, esi
mov ecx, dword [eax + 0xc]
lea eax, [ecx + ecx*4]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x18]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*8]
mov dword [esp + 0x1c], eax
test edi, edi
jle 0x10044e0d
mov edi, eax
mov ecx, edi
call fcn.10037cc0
mov edx, dword [esp + 0x38]
add edi, 0x28
mov dword [edx + esi*4], eax
inc esi
cmp esi, dword [esp + 0x28]
jl 0x10044df1
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x70]
push eax
mov eax, dword [esp + 0x50]
mov dword [edx + esi*4], 0
mov esi, dword [esp + 0x14]
push dword [ecx + eax*8]
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x10]
push edi
movzx eax, byte [eax + 3]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.10036080
mov edx, dword [esp + 0x44]
add esp, 0xc
mov ecx, esi
mov edi, eax
call fcn.1001bca0
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x70]
cdq
sub dword [esi + ecx*8], eax
mov eax, esi
sbb dword [eax + ecx*8 + 4], edx
mov ecx, dword [esp + 0x1c]
call fcn.100380c0
mov esi, dword [esp + 0x70]
test esi, esi
je 0x10044e95
test edi, edi
je 0x10045bde
mov ecx, dword [esp + 0x1c]
mov edx, edi
push fcn.1001bbf0
push 1
push 0xffffffffffffffff
call fcn.10038320
add esp, 0xc
movzx edx, byte [esp + 0x48]
mov ecx, dword [esp + 0x1c]
call fcn.10037740
jmp 0x10040f07
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 0x20
lea esi, [edx + eax*8]
mov eax, dword [ecx + 8]
lea edi, [eax + eax*4]
jne 0x10044ed7
mov ecx, esi
call fcn.10038160
test byte [esi + 8], 0x20
je 0x10045bde
mov eax, dword [esp + 0x18]
mov ecx, dword [esi]
push dword [eax + edi*8 + 4]
push dword [eax + edi*8]
call fcn.10024cb0
add esp, 8
jmp 0x10040f07
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x20
lea edi, [ecx + eax*8]
je 0x10044f6c
mov esi, dword [edi]
movzx eax, word [esi + 0x1a]
test al, 2
jne 0x10044f27
test al, 1
jne 0x10044f22
mov ecx, dword [esi + 8]
call fcn.10024de0
mov dword [esi + 8], eax
or word [esi + 0x1a], 2
mov eax, dword [esi + 8]
test eax, eax
je 0x10044f6c
mov ecx, dword [eax + 4]
mov edi, dword [eax]
mov eax, dword [eax + 8]
mov dword [esp + 0x28], ecx
mov dword [esi + 8], eax
test eax, eax
jne 0x10044f4c
mov ecx, esi
call fcn.10024c20
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 8]
push ecx
mov ecx, dword [esp + 0x1c]
push edi
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.10038120
add esp, 8
jmp 0x1004468b
mov ecx, edi
call fcn.100380c0
jmp 0x10045ef8
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 0x20
lea esi, [edx + eax*8]
mov eax, dword [ecx + 0xc]
lea edi, [eax + eax*4]
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x28], eax
jne 0x10044fb6
mov ecx, esi
call fcn.10038160
test byte [esi + 8], 0x20
je 0x10045bde
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
test eax, eax
je 0x10044fdb
push dword [edx + edi*8 + 4]
mov ecx, dword [esi]
push dword [edx + edi*8]
mov edx, eax
call fcn.10025010
add esp, 8
test eax, eax
jne 0x10040779
mov eax, dword [esp + 0x28]
test eax, eax
js 0x10040f07
mov eax, dword [esp + 0x18]
mov ecx, dword [esi]
push dword [eax + edi*8 + 4]
push dword [eax + edi*8]
call fcn.10024cb0
add esp, 8
jmp 0x10040f07
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov edx, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
mov dword [esp + 0xdc], edx
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 8]
mov dword [esp + 0x1c], ecx
cmp byte [eax + 3], 0
je 0x10045045
mov eax, dword [esi + 0xb0]
mov ecx, dword [edx + 0x14]
test eax, eax
je 0x10045041
cmp dword [eax + 0x1c], ecx
je case.0x10040739.63
mov eax, dword [eax + 4]
test eax, eax
jne 0x10045031
mov ecx, dword [esp + 0x1c]
mov eax, dword [esi + 0xb8]
cmp eax, dword [edi + 0x80]
jge 0x100464a8
test byte [ecx + 8], 0x40
jne 0x100451fd
mov ecx, dword [edx + 0xc]
mov esi, dword [edx + 8]
add esi, ecx
lea eax, [esi + 2]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*2]
mov eax, dword [edx + 0x10]
lea eax, [eax + ecx*4]
mov ecx, edi
cdq
push edx
push eax
call fcn.1001beb0
mov edi, eax
add esp, 8
mov dword [esp + 0x28], edi
test edi, edi
je 0x10045bde
mov ecx, dword [esp + 0x1c]
call fcn.10037ca0
mov eax, dword [esp + 0x1c]
mov ecx, 0x40
mov word [eax + 8], cx
mov dword [eax], edi
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
sub ecx, dword [esp + 0x44]
mov dword [edi], eax
mov eax, dword [esp + 0xdc]
mov dword [edi + 0x3c], esi
mov eax, dword [eax + 0xc]
mov dword [edi + 0x40], eax
mov eax, 0x66666667
imul ecx
mov ecx, dword [esp + 0xc]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0xdc]
mov dword [edi + 0x2c], eax
mov eax, dword [ecx + 8]
mov dword [edi + 0x10], eax
mov eax, dword [ecx + 0x1c]
mov dword [edi + 0x34], eax
mov eax, dword [ecx + 0x38]
mov dword [edi + 0x18], eax
mov eax, dword [ecx + 0x24]
mov dword [edi + 0x28], eax
mov eax, dword [ecx + 4]
mov dword [edi + 8], eax
mov eax, dword [ecx + 0x20]
mov dword [edi + 0x30], eax
mov eax, dword [edx + 0x14]
mov dword [edi + 0x1c], eax
mov eax, dword [ecx + 0xc8]
mov dword [edi + 0x14], eax
mov eax, dword [ecx + 0xc4]
mov dword [edi + 0x38], eax
lea eax, [esi + 2]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
lea eax, [edi + 0x50]
cmp eax, ecx
je 0x10045159
mov esi, dword [esp + 0x10]
mov edi, 0x80
nop dword [eax]
mov word [eax + 8], di
mov dword [eax + 0x20], esi
add eax, 0x28
cmp eax, ecx
jne 0x10045140
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0xdc]
mov esi, dword [esp + 0xc]
inc dword [esi + 0xb8]
lea ecx, [edi + 0x28]
mov eax, dword [esi + 0xb0]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x5c]
mov dword [edi + 0x20], eax
mov eax, dword [esp + 0x58]
mov dword [edi + 0x24], eax
mov eax, dword [esi + 0x5c]
mov dword [edi + 0x44], eax
mov eax, dword [esi]
mov dword [esp + 0x18], ecx
mov eax, dword [eax + 0x50]
mov dword [edi + 0x48], eax
mov dword [esi + 8], ecx
mov dword [esi + 0x5c], 0
mov dword [esi + 0xb0], edi
mov eax, dword [edi + 0x3c]
mov dword [esi + 0x1c], eax
movzx eax, word [edi + 0x40]
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0x1c]
inc eax
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [esi + 0x38], ecx
mov edi, dword [edx]
mov dword [esi + 4], edi
mov eax, dword [edx + 4]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x24]
mov dword [esp + 0x44], edi
lea ecx, [ecx + eax*4]
mov dword [esi + 0xc8], ecx
mov eax, dword [edx + 0x10]
lea edx, [edi - 0x14]
push eax
push 0
push ecx
mov dword [esi + 0xc4], eax
mov dword [esp + 0x14], edx
call fcn.10154a20
mov edx, dword [esp + 0x14]
add esp, 0xc
mov edi, dword [esp + 0x10]
jmp 0x10040f13
mov edi, dword [ecx]
jmp 0x1004515d
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x1004522a
mov ecx, esi
call fcn.100405c0
mov esi, eax
jmp 0x10045233
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [esp + 0xc]
push 0x1000
mov edx, dword [eax + 0xb0]
mov eax, dword [edx + 0x2c]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
mov eax, dword [eax + ecx*4 + 4]
mov ecx, dword [esp + 0xc]
add eax, dword [ecx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
lea edx, [eax + ecx*8]
mov ecx, esi
call fcn.10038260
mov edx, dword [esp + 0xc]
add esp, 4
jmp 0x10040f0f
test dword [edi + 0x18], 0x1000000
mov eax, dword [esp + 8]
je 0x10045298
mov eax, dword [eax + 8]
cdq
add dword [edi + 0x200], eax
adc dword [edi + 0x204], edx
mov edx, dword [esp + 8]
jmp 0x10040f13
cmp dword [eax + 4], 0
mov eax, dword [eax + 8]
cdq
je 0x100452b7
add dword [edi + 0x1f8], eax
adc dword [edi + 0x1fc], edx
mov edx, dword [esp + 8]
jmp 0x10040f13
add dword [esi + 0x90], eax
adc dword [esi + 0x94], edx
mov edx, dword [esp + 8]
jmp 0x10040f13
mov eax, dword [esp + 8]
cmp dword [eax + 4], 0
je 0x100452e4
mov eax, dword [edi + 0x1f8]
or eax, dword [edi + 0x1fc]
jmp 0x100452f0
mov eax, dword [esi + 0x90]
or eax, dword [esi + 0x94]
mov edx, dword [esp + 8]
jne 0x10040f13
mov eax, dword [edi + 0x200]
or eax, dword [edi + 0x204]
je 0x1004077d
jmp 0x10040f13
mov edx, dword [esi + 0xb0]
test edx, edx
je 0x1004533d
mov eax, dword [edx + 4]
test eax, eax
je 0x1004532b
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x10045322
mov eax, dword [esp + 8]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
lea edi, [eax + ecx*8]
jmp 0x1004534e
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov ecx, edi
call fcn.10037e70
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 8]
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.10037e70
mov ecx, dword [esi + 4]
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x10040f07
jl 0x10045385
cmp dword [edi], eax
jae 0x10040f07
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x10040f07
mov eax, dword [esp + 8]
mov eax, dword [eax + 4]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x18]
mov edi, dword [eax + esi*8 + 4]
mov ecx, dword [eax + esi*8]
test edi, edi
jl 0x10040f07
jg 0x100453b6
test ecx, ecx
je 0x10040f07
mov eax, dword [esp + 8]
mov eax, dword [eax + 0xc]
cdq
sub ecx, eax
mov eax, dword [esp + 0x18]
sbb edi, edx
mov dword [eax + esi*8], ecx
mov dword [eax + esi*8 + 4], edi
jmp 0x10040779
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
cmp dword [ecx + eax*8 + 4], 0
jg case.0x10040739.63
jl 0x100453f7
cmp dword [ecx + eax*8], 0
ja case.0x10040739.63
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea ecx, [eax + ecx*8]
mov eax, 0x2460
test word [ecx + 8], ax
je 0x1004542f
call fcn.100405c0
mov ecx, eax
mov eax, dword [esp + 8]
mov eax, dword [eax + 0xc]
cdq
mov dword [ecx + 4], edx
mov edx, dword [esp + 8]
mov dword [ecx], eax
jmp 0x10040f13
mov eax, 4
mov word [ecx + 8], ax
mov eax, dword [esp + 8]
mov eax, dword [eax + 0xc]
cdq
mov dword [ecx + 4], edx
mov edx, dword [esp + 8]
mov dword [ecx], eax
jmp 0x10040f13
mov eax, dword [esp + 8]
mov eax, dword [eax + 4]
lea edi, [eax + eax*4]
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*8]
mov esi, dword [eax + edi*8 + 4]
mov eax, ecx
or eax, esi
je 0x10040f07
mov eax, dword [esp + 8]
mov eax, dword [eax + 0xc]
cdq
sub ecx, eax
mov eax, dword [esp + 0x18]
sbb esi, edx
mov dword [eax + edi*8], ecx
mov dword [eax + edi*8 + 4], esi
jmp 0x10040779
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x18]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
add dword [edx + ecx*8], 0xffffffff
mov eax, dword [edx + ecx*8]
adc dword [edx + ecx*8 + 4], 0xffffffff
or eax, dword [edx + ecx*8 + 4]
mov edx, dword [esp + 8]
je 0x1004077d
jmp 0x10040f13
mov eax, dword [esp + 8]
mov eax, dword [eax + 4]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x18]
mov edi, dword [eax + esi*8]
mov ecx, edi
mov edx, dword [eax + esi*8 + 4]
add ecx, 1
mov dword [esp + 0x28], edx
mov eax, edx
mov edx, dword [esp + 0x18]
adc eax, 0
or edi, dword [esp + 0x28]
mov dword [edx + esi*8], ecx
mov ecx, edx
mov edx, dword [esp + 8]
mov dword [ecx + esi*8 + 4], eax
je 0x1004077d
jmp 0x10040f0b
mov eax, dword [esp + 8]
mov ecx, edi
push 0
movzx eax, byte [eax + 3]
mov dword [esp + 0x2c], eax
lea eax, [eax*4 + 0x1c]
push eax
call fcn.1001bee0
mov esi, eax
add esp, 8
test esi, esi
je 0x10045be2
mov eax, dword [esp + 8]
mov dword [esi + 8], 0
mov ecx, dword [eax + 0x10]
mov dword [esi + 4], ecx
mov ecx, eax
sub ecx, dword [esp + 0x44]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x28]
mov byte [esi + 0x1a], al
mov eax, dword [esp + 8]
mov word [eax], 0xec91
mov dword [eax + 0x10], esi
jmp 0x1004556e
mov eax, dword [esp + 8]
mov esi, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x28], esi
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov dword [esp + 0x38], edi
cmp dword [esi + 8], edi
je 0x100455c3
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi + 8], edi
js 0x100455c3
mov edi, dword [esp + 8]
lea edx, [esi + 0x1c]
mov esi, dword [esp + 0x18]
lea edx, [edx + ecx*4]
mov eax, dword [edi + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [edx + 4], eax
jns 0x100455a5
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x38]
inc dword [edi + 0xc]
mov eax, 1
mov edi, dword [esp + 0x10]
mov word [esp + 0x1d0], ax
lea eax, [esp + 0x1c8]
mov dword [esp + 0x1e8], edi
mov dword [esp + 0x1e0], 0
mov ecx, dword [esi + 4]
mov dword [esi], eax
lea eax, [esi + 0x1c]
push eax
movzx eax, byte [esi + 0x1a]
push eax
mov word [esi + 0x18], 0
mov eax, dword [ecx + 0xc]
push esi
call eax
add esp, 0xc
cmp byte [esi + 0x19], 0
je 0x1004564e
cmp dword [esi + 0x14], 0
je 0x10045642
lea eax, [esp + 0x1c8]
push eax
call fcn.1003de40
add esp, 4
push eax
push 0x101d419c
push dword [esp + 0x14]
call fcn.10038c50
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x1c8]
call fcn.10037ca0
cmp byte [esi + 0x18], 0
je 0x10040c77
mov eax, dword [esp + 8]
mov eax, dword [eax - 0x10]
test eax, eax
je 0x10040c77
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
push 0
push 1
lea ecx, [ecx + eax*8]
call fcn.10038120
mov edx, dword [esp + 0x10]
add esp, 8
jmp 0x10040f0f
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov edx, dword [ecx + 0x10]
mov ecx, esi
call fcn.10037ac0
mov dword [esp + 0x14], eax
test eax, eax
je 0x100456c4
push esi
call fcn.1003de40
add esp, 4
push eax
push 0x101d419c
push dword [esp + 0x14]
call fcn.10038c50
add esp, 0xc
movzx edx, byte [esp + 0x48]
mov ecx, esi
call fcn.10037740
movzx eax, word [esi + 8]
test al, 0x12
je 0x10040c77
mov edx, dword [esi + 0xc]
test eax, 0x4000
je 0x100456e8
add edx, dword [esi]
mov eax, dword [esi + 0x20]
xor ecx, ecx
mov esi, dword [esp + 0xc]
cmp edx, dword [eax + 0x58]
setg cl
test ecx, ecx
jne 0x1004650e
mov edx, dword [esp + 8]
jmp 0x10040f13
lea eax, [esp + 0x1fc]
mov dword [esp + 0x1f4], 0
push eax
lea eax, [esp + 0x1fc]
mov dword [esp + 0x200], 0xffffffff
push eax
mov eax, dword [esp + 0x10]
mov ecx, edi
mov dword [esp + 0x200], 0xffffffff
push dword [eax + 8]
mov edx, dword [eax + 4]
call fcn.1008d7d0
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x14], ecx
cmp ecx, 5
jne 0x1004576b
mov dword [esp + 0x14], 0
mov dword [esp + 0x1f4], 1
mov eax, dword [esp + 8]
xor esi, esi
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
nop
mov eax, dword [esp + esi*4 + 0x1f4]
mov ecx, edi
cdq
push edx
push eax
call fcn.10038120
inc esi
add esp, 8
add edi, 0x28
cmp esi, 3
jl 0x10045780
jmp 0x10040f07
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea esi, [eax + ecx*8]
mov eax, 0x2460
mov dword [esp + 0x28], esi
test word [esi + 8], ax
je 0x100457ce
mov ecx, esi
call fcn.100405c0
mov dword [esp + 0x28], eax
jmp 0x100457d7
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [esp + 8]
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x10]
add ecx, ecx
cmp edx, 0xffffffff
mov eax, dword [eax + ecx*8 + 4]
mov dword [esp + 0x38], eax
mov eax, dword [eax + 4]
mov edi, dword [eax]
movzx ecx, byte [edi + 5]
cmove edx, ecx
mov dword [esp + 0x34], ecx
cmp byte [edi + 0x10], 3
jb 0x1004580b
xor eax, eax
jmp 0x1004582a
mov eax, dword [edi + 0x40]
cmp dword [eax], 0
je 0x10045825
cmp dword [edi + 0x4c], 0
jl 0x10045825
jg 0x10045821
cmp dword [edi + 0x48], 0
jbe 0x10045825
xor eax, eax
jmp 0x1004582a
mov eax, 1
test eax, eax
mov esi, ecx
mov eax, 0x101cf2a2
cmovne esi, edx
cmp byte [edi + 0xf], 0
jne 0x10045842
mov eax, dword [edi + 0xa8]
cmp esi, 5
jne 0x10045871
mov ecx, eax
call fcn.1001e7f0
test eax, eax
je 0x100458bf
cmp byte [edi + 4], 0
mov eax, dword [edi + 0x3c]
mov eax, dword [eax]
jne 0x10045868
cmp dword [eax], 2
jl 0x100458bf
cmp dword [eax + 0x34], 0
je 0x100458bf
mov ecx, dword [esp + 0x34]
mov esi, 5
cmp esi, ecx
je 0x100458f3
cmp ecx, 5
je 0x10045883
cmp esi, 5
jne 0x100458f3
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x3f], 0
je 0x100464cf
cmp dword [eax + 0x98], 1
jg 0x100464cf
cmp ecx, 5
jne 0x100458c7
mov ecx, edi
call fcn.1002a190
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x100458f3
mov edx, esi
mov ecx, edi
call fcn.10029f10
jmp 0x100458dd
mov edx, dword [esp + 0x34]
mov esi, edx
jmp 0x100458f7
cmp ecx, 4
jne 0x100458d6
lea edx, [ecx - 2]
mov ecx, edi
call fcn.10029f10
cmp dword [esp + 0x14], 0
jne 0x100458f3
mov ecx, dword [esp + 0x38]
xor edx, edx
cmp esi, 5
sete dl
inc edx
call fcn.100367b0
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x34]
cmp dword [esp + 0x14], 0
mov ecx, edi
cmove edx, esi
call fcn.10029f10
mov esi, dword [esp + 0x28]
mov ecx, 0xa02
mov word [esi + 8], cx
cmp eax, 6
jne 0x1004591c
xor ecx, ecx
jmp 0x10045923
mov ecx, dword [eax*4 + 0x101d0858]
mov dword [esi + 0x10], ecx
call fcn.1001e7f0
movzx edx, byte [esp + 0x48]
mov ecx, esi
mov dword [esi + 0xc], eax
mov byte [esi + 0xa], 1
call fcn.10037740
jmp 0x10040f07
lea ecx, [esi + 0x2c]
mov edx, edi
call fcn.1007b800
mov edx, dword [esp + 8]
mov dword [esp + 0x14], eax
jmp 0x10040f13
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
call fcn.1002ffb0
mov edx, eax
mov dword [esp + 0x14], edx
cmp edx, 0x65
mov edx, dword [esp + 8]
jne 0x10040f13
mov edx, dword [edx + 8]
mov ecx, dword [esp + 0x44]
dec edx
mov dword [esp + 0x14], 0
lea edx, [edx + edx*4]
lea edx, [ecx + edx*4]
jmp 0x10040f0b
mov edx, dword [esp + 8]
cmp dword [edx + 4], 0
jne 0x100459b3
mov ecx, edi
call fcn.1003d7f0
jmp 0x10040f13
or dword [esi + 0x58], 8
jmp 0x10040f13
mov eax, dword [esp + 8]
mov al, byte [eax + 0xc]
mov byte [esp + 0xb8], al
test al, al
jne 0x100459db
test dword [edi + 0x18], 0x4000
jne case.0x10040739.63
mov eax, dword [esp + 8]
mov ecx, dword [edi + 0x10]
mov edx, dword [esp + 8]
push dword [esp + 0xb8]
mov eax, dword [eax + 4]
add eax, eax
mov edx, dword [edx + 8]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.10036680
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
cmp dl, 6
jne case.0x10040739.63
mov eax, dword [esp + 8]
push dword [eax + 0x10]
push str.database_table_is_locked:__s
push esi
call fcn.10038c50
mov edx, dword [esp + 0x14]
add esp, 0xc
jmp 0x10040f13
mov eax, dword [esp + 8]
mov ecx, edi
mov esi, dword [eax + 0x10]
mov edx, esi
call fcn.1007cee0
mov dword [esp + 0x14], eax
test esi, esi
je 0x10040c77
mov edx, dword [esi + 8]
mov esi, dword [esp + 0xc]
mov ecx, esi
call fcn.1003d8c0
mov edx, dword [esp + 8]
jmp 0x10040f13
mov eax, dword [esp + 8]
xorps xmm0, xmm0
mov ecx, dword [esp + 0x18]
movq qword [esp + 0x170], xmm0
movaps xmmword [esp + 0x150], xmm0
mov eax, dword [eax + 8]
movaps xmmword [esp + 0x160], xmm0
mov dword [esp + 0x170], edi
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
lea ecx, [esp + 0x150]
call fcn.100382b0
mov dword [esp + 0x14], eax
lea eax, [esp + 0x150]
push eax
call fcn.1003de40
add esp, 4
test eax, eax
je 0x10045ad3
lea ecx, [esi + 0x2c]
push ecx
push eax
mov eax, dword [esp + 0x10]
mov ecx, edi
mov edx, dword [eax + 4]
call fcn.1007c960
add esp, 8
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x150]
call fcn.10037ca0
mov edx, dword [esp + 8]
jmp 0x10040f13
mov eax, dword [esp + 8]
mov ecx, edi
inc dword [edi + 0xa4]
push dword [eax + 0x10]
mov edx, dword [eax + 4]
call fcn.1007cca0
mov edx, dword [esp + 0xc]
add esp, 4
dec dword [edi + 0xa4]
mov dword [esp + 0x14], eax
jmp 0x10040f13
mov eax, dword [esp + 8]
mov dword [esp + 0xdc], 0
mov eax, dword [eax + 0x10]
mov edi, dword [eax + 8]
test edi, edi
je 0x1004652a
mov eax, dword [edi]
mov dword [esp + 0x38], eax
test eax, eax
je 0x1004652a
mov eax, dword [eax + 0x18]
lea ecx, [esp + 0xdc]
push ecx
push edi
call eax
add esp, 8
mov dword [esp + 0x14], eax
mov edx, edi
mov ecx, esi
call fcn.1003d8c0
cmp dword [esp + 0x14], 0
jne 0x100415b5
mov eax, dword [esp + 0xdc]
mov dword [eax], edi
mov eax, dword [esp + 8]
mov edx, dword [eax + 4]
mov eax, dword [esi + 0x1c]
sub eax, edx
mov dword [esp + 0x28], edx
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea esi, [eax + ecx*8]
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x38]
mov edx, dword [eax + edx*4]
test edx, edx
je 0x10045bb0
call fcn.1003a860
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x38]
mov ecx, dword [esp + 0x28]
mov dword [eax + ecx*4], 0
cmp dword [esi + 0x18], 0x58
jge 0x10045c06
push 0
mov edx, 0x58
mov ecx, esi
call fcn.10037760
add esp, 4
test eax, eax
je 0x10045c11
mov eax, dword [esp + 0x38]
push dword [esp + 0xdc]
mov eax, dword [eax + 0x1c]
call eax
add esp, 4
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
push str.out_of_memory
push esi
mov byte [edi + 0x41], 1
call fcn.10038c50
mov edx, 7
add esp, 8
mov dword [esp + 0x14], edx
jmp 0x10040f29
mov eax, dword [esi + 0x14]
and word [esi + 8], 0xd
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov esi, dword [esi + 0x10]
push 0x58
mov eax, dword [eax + 0x38]
push 0
push esi
mov dword [eax + ecx*4], esi
call fcn.10154a20
xor eax, eax
mov word [esi], 0xff02
mov word [esi + 0x10], ax
add esp, 0xc
lea eax, [esi + 0x50]
mov dword [esi + 0x4c], eax
mov eax, dword [esp + 0xdc]
mov dword [esi + 0x14], eax
inc dword [edi + 4]
jmp 0x10040f07
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x18]
add edi, 0x28
mov dword [esp + 0xdc], 0
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx + 4]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x38]
mov esi, dword [edi + edx*8]
lea edi, [edi + edx*8]
movd xmm0, edi
mov dword [esp + 0x28], edi
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [esp + 0x20], eax
pshufd xmm3, xmm0, 0
mov eax, dword [eax + 0x14]
mov dword [esp + 0x4c], eax
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
mov eax, dword [eax]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edx*8]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xc]
mov edx, dword [eax + 0xc]
test esi, esi
jle 0x10045d53
cmp esi, 8
jb 0x10045d3b
cmp dword [0x101ec4bc], 2
jl 0x10045d3b
movaps xmm2, xmmword [0x101d9630]
mov eax, esi
and eax, reloc.WS2_32.dll_getsockopt
jns 0x10045ce4
dec eax
or eax, 0xfffffff8
inc eax
movaps xmm1, xmmword [str.____]
mov edi, esi
sub edi, eax
nop
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx + ecx*4], xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx + ecx*4 + 0x10], xmm0
add ecx, 8
cmp ecx, edi
jl 0x10045cf0
mov edi, dword [esp + 0x28]
cmp ecx, esi
jge 0x10045d53
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [edx + ecx*4], eax
inc ecx
add eax, 0x28
cmp ecx, esi
jl 0x10045d48
mov eax, dword [esp + 8]
mov edi, dword [esp + 0x54]
push edx
push esi
push dword [eax + 0x10]
mov esi, dword [esp + 0x58]
push dword [esp + 0x44]
mov eax, dword [edi + 0x20]
push esi
call eax
mov edx, dword [esp + 0x30]
add esp, 0x14
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x14], eax
call fcn.1003d8c0
cmp dword [esp + 0x14], 0
jne 0x10045d94
mov eax, dword [edi + 0x28]
push esi
call eax
add esp, 4
jmp 0x10045d9b
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0x20]
mov byte [ecx + 2], 0
test eax, eax
jne 0x10040779
jmp 0x10040f07
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov edx, dword [eax + ecx*4]
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
cmp byte [edx + 2], 0
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
je 0x10045de8
mov ecx, edi
call fcn.100380c0
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x10]
jmp 0x10040f13
mov eax, dword [edx + 0x14]
xorps xmm0, xmm0
mov esi, dword [eax]
mov ecx, dword [esi]
movaps xmmword [esp + 0x180], xmm0
movaps xmmword [esp + 0x190], xmm0
mov dword [esp + 0x180], edi
mov ax, word [edi + 8]
and ax, word [esp + 0xbc]
or ax, 1
mov word [edi + 8], ax
mov eax, dword [esp + 8]
push dword [eax + 8]
lea eax, [esp + 0x184]
push eax
push dword [edx + 0x14]
mov eax, dword [ecx + 0x2c]
call eax
add esp, 0xc
mov dword [esp + 0x14], eax
mov edx, esi
mov esi, dword [esp + 0xc]
mov ecx, esi
call fcn.1003d8c0
mov eax, dword [esp + 0x194]
test eax, eax
mov ecx, dword [esp + 0x14]
movzx edx, byte [esp + 0x48]
cmovne ecx, eax
mov dword [esp + 0x14], ecx
mov ecx, edi
call fcn.10037740
movzx eax, word [edi + 8]
test al, 0x12
je 0x100415b5
mov edx, dword [edi + 0xc]
test eax, 0x4000
je 0x10045e80
add edx, dword [edi]
mov eax, dword [edi + 0x20]
xor ecx, ecx
cmp edx, dword [eax + 0x58]
setg cl
test ecx, ecx
jne 0x1004650e
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x10]
jmp 0x10040f13
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 2], 0
jne 0x100415b5
mov eax, dword [edi + 0x14]
push eax
mov esi, dword [eax]
mov ecx, dword [esi]
mov dword [esp + 0x2c], ecx
mov eax, dword [ecx + 0x24]
call eax
mov ecx, dword [esp + 0x10]
add esp, 4
mov edx, esi
mov dword [esp + 0x14], eax
call fcn.1003d8c0
cmp dword [esp + 0x14], 0
jne 0x10045ef8
mov eax, dword [esp + 0x28]
push dword [edi + 0x14]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x1004468b
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x44]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*4]
add ecx, 0xffffffec
mov dword [esp + 8], ecx
jmp 0x1004468f
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 0x10]
mov edi, dword [eax + 8]
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 2
lea esi, [ecx + eax*8]
je 0x10045f54
cmp byte [esi + 0xa], 1
je 0x10045f54
mov dl, 1
mov ecx, esi
call fcn.1001e150
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x10040f07
mov eax, dword [edi]
push dword [esi + 0x10]
push edi
mov eax, dword [eax + 0x4c]
call eax
mov esi, dword [esp + 0x14]
add esp, 8
mov edx, edi
mov dword [esp + 0x14], eax
mov ecx, esi
call fcn.1003d8c0
and dword [esi + 0x58], 0xfffffff7
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x10]
jmp 0x10040f13
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x10]
mov edx, dword [eax + 8]
mov dword [esp + 0x38], edx
test edx, edx
je 0x1004652a
mov eax, dword [edx]
mov dword [esp + 0x28], eax
test eax, eax
je 0x1004652a
cmp dword [eax + 0x34], 0
mov esi, dword [esp + 8]
mov esi, dword [esi + 8]
je 0x10040c77
mov al, byte [edi + 0x45]
mov ecx, dword [esp + 0x18]
mov byte [esp + 0x27], al
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0xc]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test esi, esi
jle 0x10045feb
nop
mov dword [edi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, esi
jl 0x10045fe0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
mov al, byte [eax + 3]
mov byte [ecx + 0x45], al
lea eax, [esp + 0x1c0]
push eax
mov eax, dword [esp + 0x2c]
push edi
push esi
push edx
mov eax, dword [eax + 0x34]
call eax
mov edi, dword [esp + 0x20]
add esp, 0x10
mov esi, dword [esp + 0xc]
mov ecx, esi
mov edx, dword [esp + 0x38]
mov dword [esp + 0x14], eax
mov al, byte [esp + 0x27]
mov byte [edi + 0x45], al
call fcn.1003d8c0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 8]
test edx, edx
jne 0x10046061
cmp dword [eax + 4], edx
je 0x10046061
mov ecx, dword [esp + 0x1c0]
mov esi, dword [esp + 0x1c4]
mov dword [esp + 0x5c], ecx
mov dword [edi + 0x20], ecx
mov ecx, esi
mov dword [esp + 0x58], esi
mov esi, dword [esp + 0xc]
mov dword [edi + 0x24], ecx
cmp dl, 0x13
jne 0x100460b2
mov eax, dword [eax + 0x10]
cmp byte [eax + 0x10], 0
je 0x100460b2
mov eax, dword [esp + 8]
mov al, byte [eax + 3]
cmp al, 4
jne 0x1004608e
mov edx, dword [esp + 8]
mov dword [esp + 0x14], 0
add edx, 0x14
jmp 0x1004070c
cmp al, 5
jne 0x100460a3
mov edx, dword [esp + 8]
mov eax, 2
mov byte [esi + 0x56], al
jmp 0x10040f13
mov edx, dword [esp + 8]
movzx eax, al
mov byte [esi + 0x56], al
jmp 0x10040f13
inc dword [esi + 0x5c]
mov edx, dword [esp + 8]
jmp 0x10040f13
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea edx, [eax + ecx*8]
mov eax, 0x2460
test word [edx + 8], ax
je 0x100460e4
mov ecx, edx
call fcn.100405c0
mov edx, eax
jmp 0x100460ed
mov eax, 4
mov word [edx + 8], ax
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x10]
shl ecx, 4
mov eax, dword [ecx + eax + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x2c]
mov dword [edx], eax
mov dword [edx + 4], 0
mov edx, dword [esp + 8]
jmp 0x10040f13
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea edx, [eax + ecx*8]
mov eax, 0x2460
mov dword [esp + 0x28], edx
test word [edx + 8], ax
je 0x10046142
mov ecx, edx
call fcn.100405c0
mov dword [esp + 0x28], eax
jmp 0x1004614b
mov eax, 4
mov word [edx + 8], ax
mov edx, dword [esp + 8]
mov eax, dword [edi + 0x10]
xor edi, edi
mov ecx, dword [edx + 4]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
mov ecx, dword [edx + 0xc]
test ecx, ecx
je 0x1004616f
mov eax, dword [esi + 4]
mov edi, dword [eax + 0x2c]
cmp edi, ecx
cmovb edi, ecx
cmp byte [esi + 9], 0
je 0x10046185
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x10046185
mov ecx, esi
call fcn.1002cae0
mov eax, dword [esi + 4]
mov eax, dword [eax]
test edi, edi
jle 0x10046194
mov dword [eax + 0x9c], edi
cmp byte [esi + 9], 0
mov edi, dword [eax + 0x9c]
je 0x100461ad
add dword [esi + 0xc], 0xffffffff
jne 0x100461ad
mov ecx, esi
call fcn.1002caa0
mov ecx, dword [esp + 0x28]
mov eax, edi
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x10040f07
cmp dword [edi + 0xb0], 0
je 0x1004620d
test dword [esi + 0x58], 0x200
jne 0x1004620d
mov edx, dword [esp + 8]
mov edx, dword [edx + 0x10]
test edx, edx
jne 0x100461e5
mov edx, dword [esi + 0xa8]
test edx, edx
je 0x1004620d
mov ecx, esi
call fcn.1003ff10
mov ecx, dword [edi + 0xb0]
mov esi, eax
push esi
push dword [edi + 0xb4]
call ecx
add esp, 8
mov edx, esi
mov ecx, edi
call fcn.1001bca0
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 8]
cmp dword [edx + 8], 0
je 0x10040f13
mov edx, dword [edx + 8]
mov ecx, dword [esp + 0x44]
dec edx
lea edx, [edx + edx*4]
lea edx, [ecx + edx*4]
jmp 0x10040f0b
mov edx, dword [esp + 8]
mov edi, eax
jmp 0x10040f0f
mov ecx, dword [edx + 4]
mov edi, dword [esp + 0xc]
mov dword [eax + 0x50], ecx
mov al, byte [edx + 8]
mov byte [edi + 0x56], al
mov eax, edi
mov edi, dword [esp + 0x10]
mov dword [eax + 0x4c], esi
test ecx, ecx
je 0x100462d0
mov al, byte [edx + 3]
test al, al
je 0x1004628b
movzx eax, al
mov eax, dword [eax*4 + 0x101d2d24]
test eax, eax
je 0x1004628d
mov ecx, dword [edx + 0x10]
test ecx, ecx
je 0x1004628d
push ecx
push eax
push str._s_constraint_failed:__s
push dword [esp + 0x18]
call fcn.10038c50
add esp, 0x10
jmp 0x100462ae
xor eax, eax
mov ecx, dword [edx + 0x10]
test ecx, ecx
je 0x1004629c
push ecx
push 0x101d419c
jmp 0x100462a2
push eax
push str._s_constraint_failed
push dword [esp + 0x14]
call fcn.10038c50
add esp, 0xc
mov eax, dword [esp + 0xc]
push dword [eax + 0x2c]
push dword [eax + 0xa8]
mov eax, dword [esp + 0x10]
push esi
push str.abort_at__d_in___s_:__s
push dword [eax + 4]
call fcn.1001dd80
add esp, 0x14
mov esi, dword [esp + 0xc]
mov ecx, esi
call fcn.1003b680
cmp eax, 5
jne 0x10046647
mov dword [esp + 0x14], eax
mov dword [esi + 0x50], eax
jmp 0x100466aa
mov edx, 9
mov dword [esp + 0x14], edx
jmp 0x10040f29
mov eax, dword [esi + 0x48]
xor edi, edi
mov ecx, dword [esp + 8]
add eax, 2
mov edx, dword [esp + 0x18]
or eax, 1
mov dword [esi + 0x48], eax
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [esp + 0xc]
mov dword [eax + 0x14], esi
cmp dword [ecx + 8], edi
jle 0x1004635e
nop dword [eax]
mov eax, 0x1000
test word [esi + 8], ax
je 0x1004634a
mov ecx, esi
call fcn.100378b0
test eax, eax
jne 0x10045bde
mov ecx, esi
call fcn.100379c0
mov ecx, dword [esp + 8]
inc edi
add esi, 0x28
cmp edi, dword [ecx + 8]
jl 0x10046330
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
cmp byte [edi + 0x41], 0
jne 0x10045be6
sub ecx, dword [esp + 0x44]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
inc eax
add eax, edx
mov dword [esi + 0x4c], eax
mov eax, 0x64
mov dword [esp + 0x14], eax
jmp 0x100466aa
push str.cannot_open_savepoint___SQL_statements_in_progress
push dword [esp + 0x10]
call fcn.10038c50
mov esi, dword [esp + 0x10]
mov edx, 5
add esp, 8
mov dword [esp + 0x14], edx
add esi, 0x14
jmp 0x10040f2d
push str.cannot_release_savepoint___SQL_statements_in_progress
jmp 0x1004639c
mov ecx, dword [esp + 8]
mov eax, 0x66666667
sub ecx, dword [esp + 0x44]
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x4c], eax
mov eax, 5
mov byte [edi + 0x3f], 0
mov dword [esp + 0x14], eax
mov dword [esi + 0x50], eax
jmp 0x100466aa
mov edx, 8
mov dword [esp + 0x14], edx
jmp 0x10043ebf
mov ecx, dword [esp + 8]
mov eax, 0x66666667
sub ecx, dword [esp + 0x44]
mov esi, dword [esp + 0xc]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x4c], eax
mov eax, dword [esp + 0x14]
mov dword [esi + 0x50], eax
jmp 0x100466aa
mov ecx, 0x12e30
call fcn.1008ebc0
mov edx, eax
mov dword [esp + 0x14], edx
jmp 0x10043ebb
add dword [esp + 8], 0x14
mov edx, 0x204
mov dword [esp + 0x14], edx
jmp 0x10040f29
mov edx, dword [esp + 0x14]
jmp 0x10043ebb
cmp edx, 0xc0a
je 0x10040f29
mov ecx, edx
call fcn.1008cd30
push eax
push 0x101d419c
push esi
call fcn.10038c50
add esp, 0xc
jmp 0x10040f25
mov byte [esi + 0x56], 2
mov edx, 6
mov esi, dword [esp + 8]
mov dword [esp + 0x14], edx
add esi, 0x14
jmp 0x10040f2d
push str.too_many_levels_of_trigger_recursion
push esi
mov dword [esp + 0x1c], 1
call fcn.10038c50
mov esi, dword [esp + 0x10]
add esp, 8
add esi, 0x14
mov edx, 1
jmp 0x10040f2d
mov ecx, str.out_of
mov dword [esp + 0x14], 1
cmp esi, 5
mov eax, str.into
cmovne eax, ecx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push dword [esp + 0x14]
call fcn.10038c50
mov esi, dword [esp + 0x14]
add esp, 0xc
add esi, 0x14
mov edx, 1
jmp 0x10040f2d
mov esi, dword [esp + 0xc]
push str.string_or_blob_too_big
push esi
call fcn.10038c50
mov edx, 0x12
add esp, 8
mov dword [esp + 0x14], edx
jmp 0x10040f29
mov esi, dword [esp + 8]
mov edx, 6
mov dword [esp + 0x14], edx
add esi, 0x14
jmp 0x10040f2d
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
mov dword [esp + 0x70], ecx
test ecx, ecx
je 0x1004656e
cmp byte [edi + 0x3f], 0
jne 0x1004656e
test edx, edx
jne 0x1004656e
cmp dword [edi + 0x9c], edx
jle 0x1004656e
push str.cannot_commit_transaction___SQL_statements_in_progress
push esi
jmp 0x100463a0
movzx eax, byte [edi + 0x3f]
cmp ecx, eax
jne 0x100465cc
test ecx, ecx
jne 0x1004659e
mov eax, str.cannot_start_a_transaction_within_a_transaction
push eax
push esi
call fcn.10038c50
mov esi, dword [esp + 0x10]
mov edx, 1
add esp, 8
mov dword [esp + 0x14], edx
add esi, 0x14
jmp 0x10040f2d
test edx, edx
mov ecx, str.cannot_commit___no_transaction_is_active
mov eax, str.cannot_rollback___no_transaction_is_active
cmove eax, ecx
push eax
push esi
call fcn.10038c50
mov esi, dword [esp + 0x10]
mov edx, 1
add esp, 8
mov dword [esp + 0x14], edx
add esi, 0x14
jmp 0x10040f2d
test edx, edx
je 0x100465e2
mov edx, 0x204
mov ecx, edi
call fcn.1008cbe0
mov byte [edi + 0x3f], 1
jmp 0x10046601
mov edx, 1
mov ecx, esi
call fcn.1003b610
mov dword [esp + 0x14], eax
test eax, eax
jne 0x100466aa
mov eax, dword [esp + 0x70]
mov byte [edi + 0x3f], al
mov ecx, esi
call fcn.1003b680
cmp eax, 5
jne 0x10046640
mov ecx, dword [esp + 8]
mov eax, 0x66666667
sub ecx, dword [esp + 0x44]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x4c], eax
mov al, 1
sub al, byte [esp + 0x70]
mov byte [edi + 0x3f], al
mov eax, 5
mov dword [esp + 0x14], eax
mov dword [esi + 0x50], eax
jmp 0x100466aa
mov ecx, edi
call fcn.1008c3c0
cmp dword [esi + 0x50], 0
mov eax, 0x65
mov ecx, 1
cmovne eax, ecx
mov dword [esp + 0x14], eax
jmp 0x100466aa
mov esi, dword [esp + 0xc]
mov eax, dword [str.interrupted]
mov ecx, str.unknown_error
test eax, eax
mov dword [esp + 0x14], 9
mov dword [esi + 0x50], 9
cmovne ecx, eax
push ecx
push 0x101d419c
push esi
call fcn.10038c50
add esp, 0xc
mov edx, 9
jmp 0x10040f29
mov edi, dword [esp + 0x10]
jmp 0x10045be6
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x5c]
mov dword [edi + 0x20], ecx
mov ecx, dword [esp + 0x58]
mov dword [edi + 0x24], ecx
mov ecx, dword [esp + 0x6c]
add dword [esi + 0x7c], ecx
cmp dword [esi + 0x64], 0
je 0x100466d0
mov ecx, esi
call fcn.10039f80
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x2bc]
pop edi
pop esi
xor ecx, esp
call fcn.100a66bf
mov esp, ebp
pop ebp
ret