Function at 0x43e948
Capabilities:
Encrypt data using speck
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x244
mov eax, dword [0x4b8744]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
xor ecx, ecx
mov dword [ebp - 0x20], ecx
mov byte [ebp - 0x65], cl
mov dword [ebp - 0x90], ecx
mov esi, dword [edi]
mov eax, dword [edi + 0x58]
mov ebx, eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x14], ecx
mov ecx, edi
mov al, byte [esi + 0x42]
mov byte [ebp - 0x64], al
mov eax, dword [edi + 0x5c]
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x24], eax
call fcn.0043a7a9
xor eax, eax
push 7
inc eax
pop ecx
mov dword [ebp - 0xe8], eax
cmp dword [edi + 0x28], ecx
je 0x43ff85
xor ecx, ecx
mov dword [edi + 0x38], ecx
mov dword [edi + 0x3c], ecx
mov dword [edi + 0x68], ecx
mov dword [esi + 0x184], ecx
cmp dword [esi + 0xf8], ecx
jne 0x442f69
cmp dword [esi + 0x130], ecx
je 0x43e9eb
mov ecx, dword [esi + 0x138]
xor edx, edx
mov eax, dword [edi + 0xb0]
div ecx
xor eax, eax
sub ecx, edx
inc eax
mov dword [ebp - 0x8c], ecx
jmp 0x43e9f2
or dword [ebp - 0x8c], 0xffffffff
imul ebx, dword [edi + 0x24], 0x14
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0xe4], 4
mov dword [ebp - 0xac], 0x3e00
add ebx, dword [ebp - 0x60]
mov cl, byte [ebx]
inc edx
mov dword [ebp - 0x14], edx
movzx edx, cl
mov dword [ebp - 0x4c], ebx
mov byte [ebp - 0x31], cl
mov dword [ebp - 0x54], edx
cmp edx, 0xa4
ja case.0x43ea2a.74
jmp dword [edx*4 + 0x442f88]
imul ecx, dword [ebx + 4], 0x28
push 4
pop eax
push 0x14
pop esi
add ecx, dword [ebp - 0x24]
mov word [ecx + 8], ax
mov eax, ebx
sub eax, dword [ebp - 0x60]
cdq
idiv esi
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x442bc4
imul eax, dword [ebx + 4], 0x28
mov ecx, 0x80
add eax, dword [ebp - 0x24]
imul ebx, dword [eax], 0x14
mov word [eax + 8], cx
add ebx, dword [ebp - 0x60]
xor eax, eax
inc eax
mov edx, dword [ebp - 0x14]
push 0x14
pop ecx
add ebx, ecx
jmp 0x43ea10
imul ecx, dword [ebx + 4], 0x28
mov eax, dword [ebx + 0xc]
push 4
add ecx, dword [ebp - 0x24]
dec eax
cdq
mov dword [ecx], eax
pop eax
mov word [ecx + 8], ax
xor eax, eax
mov dword [ecx + 4], edx
cmp dword [ebx + 8], eax
jne 0x442bc4
jmp 0x43ea6b
imul ecx, dword [ebx + 4], 0x28
mov edx, dword [ebp - 0x60]
add ecx, dword [ebp - 0x24]
lea ebx, [edx - 0x14]
imul eax, dword [ecx], 0x14
imul eax, dword [eax + edx + 8], 0x14
add ebx, eax
mov eax, 0x80
mov word [ecx + 8], ax
jmp 0x43ea6b
imul esi, dword [ebx + 4], 0x28
sub ebx, dword [ebp - 0x60]
push 4
pop eax
push 0x14
add esi, dword [ebp - 0x24]
mov word [esi + 8], ax
mov eax, ebx
cdq
pop ebx
idiv ebx
mov ecx, dword [esi]
imul ebx, ecx, 0x14
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
add ebx, dword [ebp - 0x60]
mov esi, dword [ebp - 0x3c]
jmp 0x43ea6b
imul eax, dword [ebx + 0xc], 0x28
mov ecx, dword [ebp - 0x24]
test byte [eax + ecx + 8], 1
je 0x43ea6b
mov eax, ebx
sub eax, dword [ebp - 0x60]
push 0x14
cdq
pop ecx
idiv ecx
mov edx, eax
xor eax, eax
mov dword [ebp - 0x1c], edx
cmp dword [ebx + 4], eax
jne 0x442bd5
mov eax, dword [edi + 0xc4]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x442bd5
mov eax, dword [eax + 4]
mov ecx, esi
dec dword [edi + 0xcc]
mov edx, dword [edi + 0x2c]
mov dword [edi + 0xc4], eax
call fcn.0043cd82
mov ecx, dword [ebp - 0x18]
call fcn.0043af3c
push 4
pop ecx
cmp dword [ebx + 8], ecx
jne 0x43eb5d
imul ecx, eax, 0x14
mov eax, dword [edi + 0x58]
mov eax, dword [ecx + eax + 8]
dec eax
mov edx, dword [edi + 0x58]
mov ecx, dword [edi + 0x5c]
imul ebx, eax, 0x14
mov dword [ebp - 0x60], edx
mov dword [ebp - 0x24], ecx
add ebx, edx
jmp 0x43ea6b
mov edx, ebx
mov ecx, edi
call fcn.0043e920
mov ecx, eax
mov eax, dword [ebx + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x43ea6b
mov edx, ebx
mov ecx, edi
call fcn.0043e920
mov edx, dword [ebx + 0x10]
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
jmp 0x43ea6b
mov edx, ebx
mov ecx, edi
call fcn.0043e920
push 8
pop ecx
mov word [eax + 8], cx
mov ecx, dword [ebx + 0x10]
movsd xmm0, qword [ecx]
movsd qword [eax], xmm0
jmp 0x43ea6b
mov edx, ebx
mov ecx, edi
call fcn.0043e920
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x38], eax
mov byte [ebx], 0x3a
call fcn.00425028
mov dword [ebx + 4], eax
xor eax, eax
inc eax
cmp byte [ebp - 0x64], al
je 0x43ec46
mov edx, dword [ebx + 0x10]
xor ecx, ecx
push ecx
mov ecx, dword [ebp - 0x38]
push eax
push 0xffffffffffffffff
call fcn.0043947d
movzx edx, byte [ebp - 0x64]
add esp, 0xc
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x20], eax
call fcn.00438b5f
test eax, eax
jne 0x43ff85
mov ecx, dword [ebp - 0x38]
mov dword [ecx + 0x18], eax
mov eax, 0x800
or word [ecx + 8], ax
cmp byte [ebx + 1], 0xf9
jne 0x43ec36
mov edx, dword [ebx + 0x10]
mov ecx, esi
call fcn.00423004
mov ecx, dword [ebp - 0x38]
mov byte [ebx + 1], 0xf9
mov eax, dword [ecx + 0x10]
mov dword [ebx + 0x10], eax
mov eax, dword [ecx + 0xc]
mov dword [ebx + 4], eax
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x60]
jg 0x44221d
mov edx, ebx
mov ecx, edi
call fcn.0043e920
mov ecx, 0xa02
mov dword [ebp - 0x18], eax
mov word [eax + 8], cx
mov ecx, dword [ebx + 0x10]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebx + 4]
mov dword [eax + 0xc], ecx
mov cl, byte [ebp - 0x64]
mov byte [eax + 0xa], cl
mov eax, dword [ebx + 0xc]
test eax, eax
jle 0x43ea6b
mov esi, dword [ebp - 0x24]
imul ecx, eax, 0x28
movzx eax, word [ebx + 2]
cdq
cmp dword [ecx + esi], eax
mov esi, dword [ebp - 0x3c]
jne 0x43ea6b
mov eax, dword [ebp - 0x24]
cmp dword [ecx + eax + 4], edx
mov edx, dword [ebp - 0x14]
jne 0x43ecb3
mov eax, dword [ebp - 0x18]
mov ecx, 0xa10
mov word [eax + 8], cx
xor eax, eax
inc eax
jmp 0x43ea71
mov edx, ebx
mov ecx, edi
call fcn.0043e920
mov edx, dword [ebx + 0xc]
xor ecx, ecx
sub edx, dword [ebx + 8]
inc ecx
cmp dword [ebx + 4], 0
mov dword [ebp - 0x18], 0x101
cmovne ecx, dword [ebp - 0x18]
movzx ecx, cx
mov word [eax + 8], cx
add eax, 0xc
mov dword [ebp - 0x30], ecx
xor ecx, ecx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x18], eax
mov dword [eax], ecx
test edx, edx
jle 0x43ea6b
mov ebx, dword [ebp - 0x30]
mov esi, eax
mov edi, edx
lea esi, [esi + 0x28]
lea ecx, [esi - 0xc]
call fcn.004391fc
xor eax, eax
mov word [esi - 4], bx
dec edi
mov dword [esi], eax
test edi, edi
jg 0x43ed02
mov ebx, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x58]
jmp 0x43eae6
imul ecx, dword [ebx + 4], 0x28
mov edx, 0xff61
add ecx, dword [ebp - 0x24]
mov ax, word [ecx + 8]
and ax, dx
xor edx, edx
inc edx
or ax, dx
jmp 0x43eab9
mov edx, ebx
mov ecx, edi
call fcn.0043e920
mov edx, dword [ebx + 0x10]
mov esi, eax
xor eax, eax
mov ecx, esi
push eax
push eax
push dword [ebx + 4]
call fcn.0043947d
mov al, byte [ebp - 0x64]
add esp, 0xc
mov byte [esi + 0xa], al
jmp 0x43eae6
imul ecx, dword [ebx + 4], 0x28
mov eax, dword [edi + 0x74]
add ecx, 0xffffffd8
add eax, ecx
mov ecx, eax
mov dword [ebp - 0x18], eax
call fcn.0043935c
test eax, eax
jne 0x44221d
mov edx, dword [ebp - 0x18]
mov eax, 0x800
imul ecx, dword [ebx + 8], 0x28
push eax
add ecx, dword [ebp - 0x24]
call fcn.004393a0
pop ecx
jmp 0x43ea6b
mov eax, dword [ebx + 0xc]
imul ecx, dword [ebx + 4], 0x28
mov dword [ebp - 0x30], eax
imul eax, dword [ebx + 8], 0x28
add ecx, dword [ebp - 0x24]
mov dword [ebp - 0x1c], ecx
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
mov edx, ecx
mov ecx, eax
call fcn.00439456
mov eax, dword [ebp - 0x28]
mov ecx, 0x1000
test word [eax + 8], cx
je 0x43ede9
mov ecx, eax
call fcn.00438c62
test eax, eax
jne 0x43ff85
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x1c]
add eax, 0x28
add ecx, 0x28
mov dword [ebp - 0x28], eax
dec dword [ebp - 0x30]
mov dword [ebp - 0x1c], ecx
jne 0x43edc0
jmp 0x43ea6b
mov eax, dword [ebx + 0xc]
imul ecx, dword [ebx + 8], 0x28
mov dword [ebp - 0x1c], eax
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0x24]
add ecx, dword [ebp - 0x24]
push 0x1000
mov edx, eax
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x30], eax
call fcn.004393a0
pop ecx
mov ecx, dword [ebp - 0x28]
mov eax, 0x1000
test word [ecx + 8], ax
je 0x43ee47
call fcn.00438c62
test eax, eax
jne 0x43ff85
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x1c]
mov eax, edx
dec edx
mov dword [ebp - 0x1c], edx
test eax, eax
je 0x43ea6b
mov eax, dword [ebp - 0x30]
add ecx, 0x28
add eax, 0x28
jmp 0x43ee16
imul edx, dword [ebx + 4], 0x28
mov eax, 0x1000
add edx, dword [ebp - 0x24]
jmp 0x43ed93
imul eax, dword [ebx + 4], 0x28
mov edx, dword [ebp - 0x24]
imul ecx, dword [ebx + 8], 0x28
add ecx, edx
push dword [eax + edx + 4]
push dword [eax + edx]
call fcn.0043926f
pop ecx
jmp 0x43eda0
imul eax, dword [ebx + 4], 0x28
imul edx, dword [ebx + 8], 0x28
imul ecx, dword [ebx + 0xc], 0x28
mov edi, dword [ebp - 0x58]
add eax, dword [ebp - 0x24]
add edx, dword [ebp - 0x24]
add ecx, dword [ebp - 0x24]
mov dword [ebp - 0x38], eax
movzx eax, word [eax + 8]
mov dword [ebp - 0x1c], eax
mov al, byte [edx + 8]
or al, byte [ebp - 0x1c]
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x54], ecx
test al, 1
je 0x43eecf
call fcn.004391fc
jmp 0x43ea6b
mov eax, 0x4000
test dword [ebp - 0x1c], eax
je 0x43eee8
mov ecx, dword [ebp - 0x38]
call fcn.00438cd3
mov edx, dword [ebp - 0x2c]
xor ecx, ecx
jmp 0x43eeec
xor ecx, ecx
mov eax, ecx
test eax, eax
jne 0x43ff85
mov eax, 0x4000
test word [edx + 8], ax
je 0x43ef0a
mov ecx, edx
call fcn.00438cd3
xor ecx, ecx
jmp 0x43ef0c
mov eax, ecx
test eax, eax
jne 0x43ff85
mov eax, dword [ebp - 0x38]
test byte [eax + 8], 0x12
jne 0x43ef31
mov dl, byte [ebp - 0x64]
push ecx
mov ecx, eax
call fcn.00438d72
pop ecx
test eax, eax
jne 0x43ff85
mov eax, dword [ebp - 0x2c]
test byte [eax + 8], 0x12
jne 0x43ef50
mov dl, byte [ebp - 0x64]
xor ecx, ecx
push ecx
mov ecx, eax
call fcn.00438d72
pop ecx
test eax, eax
jne 0x43ff85
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [eax + 0xc]
add eax, dword [ecx + 0xc]
cdq
mov dword [ebp - 0x28], eax
mov ecx, edx
mov eax, dword [esi + 0x60]
cdq
cmp ecx, edx
jg 0x44221d
mov edx, dword [ebp - 0x28]
jl 0x43ef7b
cmp edx, eax
ja 0x44221d
mov ecx, dword [ebp - 0x54]
xor eax, eax
cmp ecx, dword [ebp - 0x2c]
sete al
add edx, 2
push eax
call fcn.00438b74
pop ecx
test eax, eax
jne 0x43ff85
mov ecx, dword [ebp - 0x54]
mov edx, 0x3e00
push 2
mov ax, word [ecx + 8]
and ax, dx
pop edx
or ax, dx
mov word [ecx + 8], ax
mov eax, dword [ebp - 0x2c]
cmp ecx, eax
je 0x43efcc
push dword [eax + 0xc]
push dword [eax + 0x10]
push dword [ecx + 0x10]
call fcn.0047b870
mov ecx, dword [ebp - 0x54]
add esp, 0xc
mov eax, dword [ebp - 0x38]
push dword [eax + 0xc]
push dword [eax + 0x10]
mov eax, dword [ecx + 0x10]
mov ecx, dword [ebp - 0x2c]
add eax, dword [ecx + 0xc]
push eax
call fcn.0047b870
mov ecx, dword [ebp - 0x54]
add esp, 0xc
mov edx, dword [ebp - 0x28]
mov eax, dword [ecx + 0x10]
mov byte [edx + eax], 0
mov eax, dword [ecx + 0x10]
mov byte [eax + edx + 1], 0
mov eax, 0x200
or word [ecx + 8], ax
mov al, byte [ebp - 0x64]
mov dword [ecx + 0xc], edx
mov byte [ecx + 0xa], al
jmp 0x43ea6b
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0x24]
mov ecx, eax
mov dword [ebp - 0x2c], eax
call fcn.0043e8f0
movzx eax, ax
mov dword [ebp - 0x30], eax
imul eax, dword [ebx + 8], 0x28
add eax, dword [ebp - 0x24]
mov ecx, eax
mov dword [ebp - 0x54], eax
call fcn.0043e8f0
mov ecx, dword [ebp - 0x2c]
movzx eax, ax
mov dword [ebp - 0x1c], eax
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x54]
mov ax, word [eax + 8]
or ax, word [ecx + 8]
movzx edx, ax
mov al, byte [ebp - 0x1c]
and al, byte [ebp - 0x30]
test al, 4
je 0x43f153
mov eax, ecx
mov byte [ebp - 0x31], 1
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x54]
mov edi, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0xa4], eax
movzx eax, byte [ebx]
mov dword [ebp - 0x28], edi
mov dword [ebp - 0xa8], edi
mov edi, dword [ebp - 0x58]
sub eax, 0x58
je 0x43f118
dec eax
je 0x43f109
dec eax
je 0x43f0fa
dec eax
mov eax, ecx
je 0x43f0cc
or eax, edx
je 0x43f269
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x43f0bd
xor ecx, ecx
inc ecx
xor eax, eax
mov edx, eax
push edx
push ecx
push dword [ebp - 0x38]
push dword [ebp - 0x28]
call fcn.0048e020
jmp 0x43f137
or eax, edx
je 0x43f269
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
mov eax, dword [ebp - 0x28]
jne 0x43f0ed
test eax, eax
jne 0x43f0ed
cmp dword [ebp - 0x38], 0x80000000
je 0x43f163
push edx
push ecx
push dword [ebp - 0x38]
push eax
call fcn.0048df70
jmp 0x43f137
push edx
push ecx
lea ecx, [ebp - 0xa8]
call fcn.00426006
jmp 0x43f125
push edx
push ecx
lea ecx, [ebp - 0xa8]
call fcn.00425fb8
jmp 0x43f125
push edx
push ecx
lea ecx, [ebp - 0xa8]
call fcn.00425f2c
pop ecx
pop ecx
test eax, eax
jne 0x43f163
mov edx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0xa8]
mov ecx, dword [ebp - 0x4c]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov ax, word [ecx + 8]
mov edx, 0x3e00
push 4
and ax, dx
pop edx
jmp 0x43ed3b
test dl, 1
jne 0x43f269
xor eax, eax
mov byte [ebp - 0x31], al
jmp 0x43f166
mov ecx, dword [ebp - 0x2c]
call fcn.00439017
mov ecx, dword [ebp - 0x54]
movsd qword [ebp - 0x78], xmm0
call fcn.00439017
movzx eax, byte [ebx]
movapd xmm1, xmm0
movsd qword [ebp - 0xa0], xmm1
sub eax, 0x58
je 0x43f218
dec eax
je 0x43f211
dec eax
je 0x43f20a
movsd xmm0, qword [ebp - 0x78]
dec eax
je 0x43f1f6
call fcn.0049881f
movsd xmm0, qword [ebp - 0xa0]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x48], edx
call fcn.0049881f
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x18]
mov ecx, eax
mov dword [ebp - 0x5c], edx
mov edx, dword [ebp - 0x48]
or ecx, edx
je 0x43f269
mov ecx, eax
and ecx, edx
cmp ecx, 0xffffffff
jne 0x43f1dc
xor eax, eax
inc eax
xor ecx, ecx
mov edx, ecx
push edx
push eax
push dword [ebp - 0x5c]
push dword [ebp - 0x28]
call fcn.0048e020
mov ecx, eax
call fcn.004989bf
movapd xmm1, xmm0
jmp 0x43f21d
ucomisd xmm0, qword [0x4af1c8]
lahf
test ah, 0x44
jnp 0x43f269
divsd xmm1, xmm0
jmp 0x43f21d
mulsd xmm1, qword [ebp - 0x78]
jmp 0x43f21d
subsd xmm1, qword [ebp - 0x78]
jmp 0x43f21d
addsd xmm1, qword [ebp - 0x78]
movapd xmm0, xmm1
call fcn.00424ff8
test eax, eax
jne 0x43f269
mov ecx, dword [ebp - 0x4c]
mov edx, 0x3e00
push 8
mov ax, word [ecx + 8]
and ax, dx
movsd qword [ecx], xmm1
pop edx
or ax, dx
mov word [ecx + 8], ax
mov eax, dword [ebp - 0x1c]
or al, byte [ebp - 0x30]
test dl, al
jne 0x43ea6b
cmp byte [ebp - 0x31], 0
jne 0x43ea6b
call fcn.0043903e
jmp 0x43ea6b
mov ecx, dword [ebp - 0x4c]
jmp 0x43eec5
mov eax, dword [ebx + 4]
test eax, eax
je 0x43ea6b
xor ecx, ecx
push ecx
push ecx
imul ecx, eax, 0x28
add ecx, dword [ebp - 0x24]
jmp 0x43ee88
imul edx, dword [ebx + 8], 0x28
imul ecx, dword [ebx + 4], 0x28
imul eax, dword [ebx + 0xc], 0x28
mov edi, dword [ebp - 0x58]
add edx, dword [ebp - 0x24]
add ecx, dword [ebp - 0x24]
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x1c], eax
mov al, byte [edx + 8]
or al, byte [ecx + 8]
mov dword [ebp - 0x18], ecx
test al, 1
je 0x43f2bb
mov ecx, dword [ebp - 0x1c]
jmp 0x43eec5
mov ecx, edx
call fcn.00438fb0
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
call fcn.00438fb0
mov ecx, eax
mov al, byte [ebx]
mov dword [ebp - 0x2c], ecx
mov byte [ebp - 0x31], al
cmp al, 0x54
jne 0x43f2e9
and dword [ebp - 0x80], ecx
and dword [ebp - 0x7c], edx
jmp 0x43f401
cmp al, 0x55
jne 0x43f2f8
or dword [ebp - 0x80], ecx
or dword [ebp - 0x7c], edx
jmp 0x43f401
mov eax, ecx
or eax, edx
je 0x43f401
xor eax, eax
cmp edx, eax
jg 0x43f338
jl 0x43f30e
cmp ecx, eax
jae 0x43f338
mov al, 0xad
sub al, byte [ebp - 0x31]
mov byte [ebp - 0x31], al
cmp edx, 0xffffffff
jl 0x43f32e
jg 0x43f322
cmp ecx, 0xffffffc0
jbe 0x43f32e
neg ecx
mov dword [ebp - 0x2c], ecx
adc edx, 0
neg edx
jmp 0x43f33b
push 0x40
pop ecx
mov dword [ebp - 0x2c], ecx
xor edx, edx
jmp 0x43f33b
mov al, byte [ebp - 0x31]
test edx, edx
jl 0x43f36d
jg 0x43f348
push 0x40
pop edx
cmp ecx, edx
jb 0x43f36d
xor ecx, ecx
cmp dword [ebp - 0x7c], ecx
jg 0x43f35f
jl 0x43f356
cmp dword [ebp - 0x80], ecx
jae 0x43f35f
cmp al, 0x56
je 0x43f35f
or eax, 0xffffffff
jmp 0x43f361
mov eax, ecx
cdq
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
jmp 0x43f401
push 8
pop eax
push eax
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x98]
push eax
call fcn.0047b870
mov eax, dword [ebp - 0x98]
add esp, 0xc
cmp byte [ebp - 0x31], 0x56
mov edx, dword [ebp - 0x94]
mov ecx, dword [ebp - 0x2c]
jne 0x43f3ac
call fcn.00498580
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], edx
jmp 0x43f3ea
call fcn.00495750
mov dword [ebp - 0x98], eax
xor eax, eax
mov dword [ebp - 0x94], edx
cmp dword [ebp - 0x7c], eax
jg 0x43f3ea
jl 0x43f3cb
cmp dword [ebp - 0x80], eax
jae 0x43f3ea
push 0x40
pop eax
mov ecx, eax
or edx, 0xffffffff
sub ecx, dword [ebp - 0x2c]
or eax, 0xffffffff
call fcn.00498580
or dword [ebp - 0x98], eax
or dword [ebp - 0x94], edx
push 8
pop eax
push eax
lea eax, [ebp - 0x98]
push eax
lea eax, [ebp - 0x80]
push eax
call fcn.0047b870
add esp, 0xc
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x80]
mov dword [ecx], eax
mov eax, dword [ebp - 0x7c]
mov dword [ecx + 4], eax
jmp 0x43f13f
imul esi, dword [ebx + 4], 0x28
add esi, dword [ebp - 0x24]
mov ecx, esi
call fcn.0043909a
mov eax, dword [ebx + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp 0x43eae6
imul ecx, dword [ebx + 4], 0x28
push 4
pop edx
add ecx, dword [ebp - 0x24]
mov dword [ebp - 0x18], ecx
movzx eax, word [ecx + 8]
test dl, al
jne 0x43f470
push dword [ebp - 0x64]
mov dl, 0x43
call fcn.0043e82b
pop ecx
mov ecx, dword [ebp - 0x18]
push 4
pop edx
movzx eax, word [ecx + 8]
test dl, al
jne 0x43f470
xor eax, eax
cmp dword [ebx + 8], eax
jne 0x442bc4
push 0x14
jmp 0x43ff9c
and eax, 0x3e00
or eax, edx
jmp 0x43eab9
imul ecx, dword [ebx + 4], 0x28
push 4
pop edx
add ecx, dword [ebp - 0x24]
test byte [ecx + 8], dl
je case.0x43ea2a.74
call fcn.004390bf
jmp 0x43ea6b
imul eax, dword [ebx + 4], 0x28
mov ecx, 0x4000
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x18], eax
test word [eax + 8], cx
je 0x43f4bd
mov ecx, eax
call fcn.00438cd3
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x18]
jmp 0x43f4c2
xor ecx, ecx
mov dword [ebp - 0x20], ecx
push dword [ebp - 0x64]
mov dl, byte [ebx + 8]
mov ecx, eax
call fcn.0043914d
pop ecx
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x43ff9d
jmp 0x43ea6b
imul ecx, dword [ebx + 0xc], 0x28
imul eax, dword [ebx + 4], 0x28
add ecx, dword [ebp - 0x24]
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x44], eax
movzx edx, word [ecx + 8]
movzx eax, word [eax + 8]
mov ecx, edx
or ecx, eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x40], edx
test cl, 1
je 0x43f565
movzx eax, word [ebx + 2]
mov ecx, 0x80
test cl, al
je 0x43f53a
xor ecx, ecx
mov al, dl
and al, byte [ebp - 0x4c]
inc ecx
test cl, al
je 0x43f533
test edx, 0x100
jne 0x43f533
xor eax, eax
jmp 0x43f671
mov edx, ecx
jmp 0x43f673
test al, 0x20
je 0x43f55e
imul ecx, dword [ebx + 8], 0x28
xor edx, edx
add ecx, dword [ebp - 0x24]
inc edx
mov dword [ebp - 0x90], edx
mov ax, word [ecx + 8]
and ax, word [ebp - 0xac]
jmp 0x43ed3b
test al, 0x10
jmp 0x43ea95
mov al, byte [ebx + 2]
and al, 0x47
cmp al, 0x43
jl 0x43f5f8
push 2
pop edx
test dl, cl
je 0x43f5ae
mov al, byte [ebp - 0x4c]
and al, 0xe
cmp al, dl
jne 0x43f59b
mov ecx, dword [ebp - 0x44]
xor edx, edx
call fcn.0043e7af
mov ecx, dword [ebp - 0x50]
push 2
pop edx
movzx eax, word [ecx + 8]
mov dword [ebp - 0x40], eax
jmp 0x43f59e
mov ecx, dword [ebp - 0x50]
mov al, byte [ebp - 0x40]
and al, 0xe
cmp al, dl
jne 0x43f5ae
xor edx, edx
call fcn.0043e7af
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x50]
push 4
pop ecx
mov al, byte [eax + 8]
and al, byte [edx + 8]
test cl, al
je 0x43f662
mov ecx, dword [edx + 4]
mov eax, dword [edx]
mov edx, dword [ebp - 0x44]
cmp ecx, dword [edx + 4]
jl 0x43f5f3
jg 0x43f5d8
cmp eax, dword [edx]
jbe 0x43f5e0
xor edx, edx
inc edx
jmp 0x43f673
cmp ecx, dword [edx + 4]
jg 0x43f52c
jl 0x43f5f3
cmp eax, dword [edx]
jae 0x43f52c
or edx, 0xffffffff
jmp 0x43f673
cmp al, 0x42
jne 0x43f662
mov al, byte [ebp - 0x4c]
push 2
pop ecx
test cl, al
jne 0x43f632
test al, 0xc
je 0x43f632
mov dl, byte [ebp - 0x64]
mov ecx, dword [ebp - 0x44]
push 1
call fcn.00438d72
mov eax, dword [ebp - 0x44]
pop ecx
mov ecx, 0x3e00
push 2
mov ax, word [eax + 8]
xor ax, word [ebp - 0x4c]
and ax, cx
xor word [ebp - 0x4c], ax
pop ecx
mov al, byte [ebp - 0x40]
test cl, al
jne 0x43f662
test al, 0xc
je 0x43f662
mov dl, byte [ebp - 0x64]
mov ecx, dword [ebp - 0x50]
push 1
call fcn.00438d72
mov eax, dword [ebp - 0x50]
pop ecx
mov ecx, 0x3e00
mov ax, word [eax + 8]
xor ax, word [ebp - 0x40]
and ax, cx
xor word [ebp - 0x40], ax
push dword [ebx + 0x10]
mov edx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x50]
call fcn.0043c32f
pop ecx
mov edx, eax
movzx eax, byte [ebx]
sub eax, 0x4d
je 0x43f6ac
xor ecx, ecx
dec eax
je 0x43f6a5
dec eax
je 0x43f69e
dec eax
je 0x43f697
dec eax
je 0x43f690
test edx, edx
setns cl
jmp 0x43f6ae
test edx, edx
sets cl
jmp 0x43f6ae
test edx, edx
setle cl
jmp 0x43f6ae
test edx, edx
setg cl
jmp 0x43f6ae
test edx, edx
sete cl
jmp 0x43f6ae
mov ecx, edx
mov edi, dword [ebp - 0x44]
mov ax, word [ebp - 0x4c]
mov word [edi + 8], ax
mov edi, dword [ebp - 0x50]
mov ax, word [ebp - 0x40]
mov word [edi + 8], ax
movzx eax, word [ebx + 2]
mov edi, dword [ebp - 0x58]
test al, 0x20
je 0x43f726
imul eax, dword [ebx + 8], 0x28
mov esi, dword [ebp - 0x3c]
mov dword [ebp - 0x90], edx
xor edx, edx
add eax, dword [ebp - 0x24]
test ecx, ecx
movzx ecx, word [ebx + 2]
setne dl
mov dword [ebp - 0x1c], eax
test cl, 8
je 0x43f705
xor eax, eax
cmp byte [ebx], 0x4e
sete al
cmp eax, edx
je 0x43ea6b
mov eax, dword [ebp - 0x1c]
mov cx, word [eax + 8]
and cx, word [ebp - 0xac]
or cx, word [ebp - 0xe4]
mov word [eax + 8], cx
mov eax, edx
cdq
mov ecx, dword [ebp - 0x1c]
jmp 0x43eb82
test ecx, ecx
jmp 0x43ea95
cmp dword [ebp - 0x90], 0
jne 0x442bc4
jmp case.0x43ea2a.74
test byte [ebx + 2], al
jne 0x43f748
xor eax, eax
jmp 0x43f750
mov eax, dword [ebx - 4]
push 4
pop ecx
add eax, ecx
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x38], ecx
mov ecx, dword [ebx + 8]
mov dword [ebp - 0x18], ecx
xor ecx, ecx
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x48], ecx
test edx, edx
jle 0x43ea6b
mov edx, dword [ebp - 0x1c]
add edx, 0x14
mov dword [ebp - 0x28], edx
test eax, eax
je 0x43f78d
mov edx, dword [eax + ecx*4]
mov dword [ebp - 0x30], edx
jmp 0x43f792
mov edx, ecx
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x10]
movzx eax, byte [ecx + eax]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x28]
push dword [eax]
mov eax, dword [ebp - 0x18]
add eax, edx
imul edx, eax, 0x28
mov eax, dword [ebp - 0x30]
add eax, dword [ebp - 0x38]
imul ecx, eax, 0x28
add edx, dword [ebp - 0x24]
add ecx, dword [ebp - 0x24]
call fcn.0043c32f
mov edx, eax
mov dword [ebp - 0x90], edx
pop ecx
test edx, edx
jne 0x43f7e7
mov ecx, dword [ebp - 0x48]
push 4
pop eax
add dword [ebp - 0x28], eax
inc ecx
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x48], ecx
cmp ecx, dword [ebp - 0x54]
jl 0x43f781
jmp 0x43ea6b
xor eax, eax
cmp dword [ebp - 0x2c], eax
je 0x43ea6d
neg edx
mov dword [ebp - 0x90], edx
jmp 0x43ea6d
mov edx, dword [ebp - 0x90]
test edx, edx
jns 0x43f81a
imul eax, dword [ebx + 4], 0x14
mov ebx, dword [ebp - 0x60]
add ebx, 0xffffffec
add ebx, eax
jmp 0x43ea6b
mov edx, dword [ebp - 0x14]
jne 0x43f825
imul eax, dword [ebx + 8], 0x14
jmp 0x43f829
imul eax, dword [ebx + 0xc], 0x14
mov ebx, dword [ebp - 0x60]
add ebx, 0xffffffec
add ebx, eax
jmp 0x43ecb3
imul ecx, dword [ebx + 4], 0x28
mov edx, dword [ebp - 0x24]
add ecx, edx
test byte [ecx + 8], al
je 0x43f84c
push 2
pop ecx
mov dword [ebp - 0x38], ecx
jmp 0x43f866
call fcn.00438fb0
or eax, edx
mov edx, dword [ebp - 0x24]
je 0x43f860
xor eax, eax
inc eax
mov dword [ebp - 0x38], eax
jmp 0x43f866
xor eax, eax
mov dword [ebp - 0x38], eax
inc eax
imul ecx, dword [ebx + 8], 0x28
add ecx, edx
test byte [ecx + 8], al
je 0x43f876
push 2
pop eax
jmp 0x43f888
call fcn.00438fb0
or eax, edx
je 0x43f886
xor edx, edx
inc edx
mov ecx, edx
jmp 0x43f88d
xor eax, eax
xor edx, edx
mov ecx, eax
inc edx
imul eax, dword [ebp - 0x38], 3
cmp byte [ebx], 0x47
jne 0x43f8a0
movzx eax, byte [eax + ecx + 0x4a64bc]
jmp 0x43f8a8
movzx eax, byte [eax + ecx + 0x4a7de4]
imul ecx, dword [ebx + 0xc], 0x28
mov esi, dword [ebp - 0x3c]
add ecx, dword [ebp - 0x24]
cmp eax, 2
je 0x43f54e
cdq
jmp 0x43f13a
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x18], eax
imul eax, dword [ebx + 8], 0x28
add eax, dword [ebp - 0x24]
mov ecx, eax
mov dword [ebp - 0x1c], eax
call fcn.004391fc
mov ecx, dword [ebp - 0x18]
xor eax, eax
inc eax
test byte [ecx + 8], al
jne case.0x43ea2a.74
mov eax, dword [ebp - 0x1c]
push 4
pop edx
mov word [eax + 8], dx
call fcn.00438fb0
or eax, edx
jne 0x43f904
inc eax
jmp 0x43f71d
xor eax, eax
jmp 0x43f71d
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x18], eax
imul eax, dword [ebx + 8], 0x28
add eax, dword [ebp - 0x24]
mov ecx, eax
mov dword [ebp - 0x1c], eax
call fcn.004391fc
mov ecx, dword [ebp - 0x18]
xor eax, eax
inc eax
test byte [ecx + 8], al
jne case.0x43ea2a.74
mov eax, dword [ebp - 0x1c]
push 4
pop edx
mov word [eax + 8], dx
call fcn.00438fb0
not eax
not edx
jmp 0x43f71e
mov eax, dword [edi + 0xc4]
test eax, eax
je 0x43f99a
mov eax, ebx
sub eax, dword [edi + 0x58]
cdq
push 0x14
pop ecx
idiv ecx
mov edx, dword [edi + 0xc4]
mov ecx, eax
shr eax, 3
mov dword [ebp - 0x18], eax
and ecx, 7
mov edx, dword [edx + 0x18]
mov dword [ebp - 0x1c], edx
mov ah, byte [eax + edx]
xor edx, edx
inc edx
shl edx, cl
test ah, dl
jne 0x442bc4
mov edx, dword [ebp - 0x1c]
mov al, 1
shl al, cl
mov ecx, dword [ebp - 0x18]
or al, ah
mov byte [ecx + edx], al
jmp 0x43f9a9
mov eax, dword [edi + 0x58]
mov eax, dword [eax + 4]
cmp eax, dword [ebx + 4]
je 0x442bc4
mov eax, dword [edi + 0x58]
mov eax, dword [eax + 4]
mov dword [ebx + 4], eax
jmp 0x43ea6b
imul ecx, dword [ebx + 4], 0x28
add ecx, dword [ebp - 0x24]
test byte [ecx + 8], al
je 0x43f9c8
mov ecx, dword [ebx + 0xc]
jmp 0x43f9f8
call fcn.00439017
ucomisd xmm0, qword [0x4af1c8]
lahf
test ah, 0x44
jnp 0x43f9e2
xor eax, eax
inc eax
mov ecx, eax
jmp 0x43f9e7
xor eax, eax
mov ecx, eax
inc eax
cmp byte [ebx], 0x16
jne 0x43f9f8
xor eax, eax
test ecx, ecx
sete al
mov ecx, eax
xor eax, eax
inc eax
test ecx, ecx
jmp 0x43f734
imul eax, dword [ebx + 4], 0x28
mov ecx, dword [ebp - 0x24]
test byte [eax + ecx + 8], 1
jmp 0x43ea95
imul eax, dword [ebx + 4], 0x28
mov ecx, dword [ebp - 0x24]
test byte [eax + ecx + 8], 1
je 0x442bc4
jmp 0x43ea6b
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x70]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 2], 0
je 0x43ea6b
imul ecx, dword [ebx + 0xc], 0x28
add ecx, dword [ebp - 0x24]
call fcn.004391fc
jmp 0x442bc4
mov ecx, dword [ebx + 4]
lea edx, [ebp - 0x2c]
mov eax, dword [edi + 0x70]
mov eax, dword [eax + ecx*4]
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x54], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0x2c], eax
call fcn.0043bc2f
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x43ff9d
mov esi, dword [ebp - 0x54]
imul ecx, dword [ebx + 0xc], 0x28
mov edx, dword [ebp - 0x24]
mov eax, dword [esi + 0x48]
mov dword [ebp - 0x40], eax
mov eax, dword [esi + 0x1c]
add ecx, edx
mov dword [ebp - 0x50], ecx
cmp eax, dword [edi + 0x20]
je 0x43fb87
cmp byte [esi + 2], 0
je 0x43fac9
cmp byte [esi], 3
jne 0x43fabf
imul eax, dword [esi + 0x28], 0x28
mov ecx, dword [eax + edx + 0xc]
mov dword [esi + 0x54], ecx
mov dword [esi + 0x50], ecx
mov eax, dword [eax + edx + 0x10]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0xd0], ecx
mov dword [esi + 0x4c], eax
jmp 0x43fb10
call fcn.004391fc
jmp 0x43eae6
mov esi, dword [esi + 0x28]
mov ecx, esi
call fcn.00432fa5
mov ecx, dword [ebp - 0x54]
lea edx, [ebp - 0xd0]
mov dword [ecx + 0x50], eax
mov ecx, esi
call fcn.00433410
mov esi, dword [ebp - 0x54]
mov ecx, dword [ebp - 0xd0]
mov dword [ebp - 0x1c], ecx
mov dword [esi + 0x4c], eax
mov edx, dword [esi + 0x50]
cmp edx, ecx
ja 0x43fb01
mov dword [esi + 0x54], edx
jmp 0x43fb10
mov eax, dword [ebp - 0x3c]
cmp edx, dword [eax + 0x60]
ja 0x44221d
mov dword [esi + 0x54], ecx
mov eax, dword [edi + 0x20]
mov edx, 0x80
mov dword [esi + 0x1c], eax
mov ecx, dword [esi + 0x4c]
mov al, byte [ecx]
cmp al, dl
jae 0x43fb32
movzx ecx, al
xor eax, eax
mov dword [ebp - 0xcc], ecx
inc eax
jmp 0x43fb46
lea edx, [ebp - 0xcc]
call fcn.00425d65
mov ecx, dword [ebp - 0xcc]
movzx eax, al
mov edx, dword [ebp - 0x40]
movzx eax, al
mov dword [esi + 0x30], eax
xor eax, eax
mov word [esi + 0x3a], ax
mov dword [edx], ecx
cmp dword [ebp - 0x1c], ecx
jae 0x43fb7e
mov dword [esi + 0x4c], eax
mov dword [esi + 0x54], eax
cmp ecx, 0x18003
ja 0x43fb6f
cmp ecx, dword [esi + 0x50]
jbe 0x43fb8a
mov ecx, 0x13e1c
call fcn.0047332e
jmp 0x43ff9d
test ecx, ecx
je 0x43fb8a
mov eax, dword [esi + 0x4c]
jmp 0x43fbec
mov edx, dword [ebp - 0x40]
movzx eax, word [esi + 0x3a]
mov ecx, dword [ebp - 0x2c]
cmp eax, ecx
jg 0x43fd35
mov eax, dword [esi + 0x30]
cmp eax, dword [edx]
jae 0x43fd04
mov eax, dword [esi + 0x4c]
mov dword [ebp - 0x28], eax
test eax, eax
jne 0x43fbef
push 0x28
push eax
lea eax, [ebp - 0x218]
push eax
call fcn.0047b750
mov ecx, dword [esi + 0x28]
lea eax, [ebp - 0x218]
add esp, 0xc
xor edx, edx
push eax
mov eax, dword [ebp - 0x40]
push dword [eax]
call fcn.0043964f
mov dword [ebp - 0x20], eax
pop ecx
pop ecx
test eax, eax
jne 0x43ff9d
mov eax, dword [ebp - 0x208]
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x28], eax
movzx ecx, word [esi + 0x3a]
mov edi, dword [esi + 0x30]
add edi, eax
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x40]
mov edx, dword [edx + ecx*4]
mov dword [ebp - 0x38], edx
xor edx, edx
mov ebx, edx
mov eax, dword [eax]
add eax, dword [ebp - 0x28]
mov dword [ebp - 0x5c], eax
lea eax, [esi + 0x58]
mov esi, dword [ebp - 0x38]
lea eax, [eax + ecx*4]
mov dword [ebp - 0x18], eax
movzx edx, byte [edi]
mov eax, 0x80
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x48], edx
cmp edx, eax
jae 0x43fc43
mov cl, dl
inc edi
call fcn.0043bd9f
mov ecx, dword [ebp - 0x44]
movzx eax, al
cdq
add esi, eax
adc ebx, edx
jmp 0x43fc64
lea edx, [ebp - 0x48]
mov ecx, edi
call fcn.00425d65
mov ecx, dword [ebp - 0x48]
movzx eax, al
add edi, eax
mov dword [ebp - 0x44], ecx
call fcn.0043bd89
add esi, eax
push 0
pop eax
adc ebx, eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x1c], eax
mov dword [edx], ecx
add edx, 4
cmp eax, dword [ebp - 0x2c]
mov dword [ebp - 0x18], edx
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x38], esi
mov dword [edx + eax*4], esi
mov eax, dword [ebp - 0x5c]
jg 0x43fc8e
cmp edi, eax
jb 0x43fc1c
mov ebx, dword [ebp - 0x4c]
cmp edi, eax
mov esi, dword [ebp - 0x54]
mov dword [ebp - 0x48], edi
mov edi, dword [ebp - 0x58]
mov eax, dword [ebp - 0x48]
jb 0x43fcd0
cmp eax, dword [ebp - 0x5c]
ja 0x43fcb4
mov edx, dword [ebp - 0x38]
cmp edx, dword [esi + 0x50]
jne 0x43fcb4
cmp dword [ebp - 0x30], 0
je 0x43fcd3
xor eax, eax
cmp dword [esi + 0x4c], eax
jne 0x43fcc6
lea ecx, [ebp - 0x218]
call fcn.00438f18
mov ecx, 0x13e57
jmp 0x43fb74
mov edx, dword [ebp - 0x38]
cmp dword [ebp - 0x30], 0
ja 0x43fcb4
jb 0x43fce0
cmp edx, dword [esi + 0x50]
ja 0x43fcb4
sub eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x1c]
mov word [esi + 0x3a], dx
mov dword [esi + 0x30], eax
xor eax, eax
cmp dword [esi + 0x4c], eax
jne 0x43fd0b
lea ecx, [ebp - 0x218]
call fcn.00438f18
mov ecx, dword [ebp - 0x44]
jmp 0x43fd0b
xor eax, eax
mov ecx, eax
mov dword [ebp - 0x44], ecx
movzx eax, word [esi + 0x3a]
cmp eax, dword [ebp - 0x2c]
jg 0x43fd3c
cmp byte [ebx + 1], 0xf5
mov ecx, dword [ebp - 0x50]
jne 0x43fabf
mov edx, dword [ebx + 0x10]
mov eax, 0x800
push eax
call fcn.004393a0
pop ecx
jmp 0x43eae6
mov ecx, dword [esi + ecx*4 + 0x58]
mov dword [ebp - 0x44], ecx
mov edx, dword [ebp - 0x50]
mov eax, 0x2460
test word [edx + 8], ax
je 0x43fd54
mov ecx, edx
call fcn.004391fc
mov ecx, dword [ebp - 0x44]
mov edi, dword [ebp - 0x40]
mov edx, dword [ebp - 0x2c]
mov eax, dword [esi + 0x54]
cmp eax, dword [edi + edx*4 + 4]
mov edi, dword [ebp - 0x58]
mov edx, dword [ebp - 0x50]
jb 0x43fe0e
mov eax, dword [esi + 0x4c]
mov edi, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x40]
add eax, dword [esi + edi*4]
mov edi, dword [ebp - 0x58]
mov dword [ebp - 0x1c], eax
cmp ecx, 0xc
jae 0x43fd90
push edx
mov edx, ecx
mov ecx, eax
call fcn.0043bebc
jmp 0x43fd2f
lea eax, [ecx - 0xc]
mov cl, byte [ebp - 0x64]
shr eax, 1
mov dword [ebp - 0x18], eax
mov dword [edx + 0xc], eax
add eax, 2
mov byte [edx + 0xa], cl
cmp dword [edx + 0x18], eax
jge 0x43fdcb
xor ecx, ecx
inc ecx
mov word [edx + 8], cx
xor ecx, ecx
push ecx
mov ecx, dword [ebp - 0x50]
mov edx, eax
call fcn.00438b74
pop ecx
test eax, eax
jne 0x43ff85
mov edx, dword [ebp - 0x50]
jmp 0x43fdd1
mov eax, dword [edx + 0x14]
mov dword [edx + 0x10], eax
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push dword [edx + 0x10]
call fcn.0047b870
mov esi, dword [ebp - 0x50]
xor edx, edx
mov ecx, dword [ebp - 0x18]
add esp, 0xc
mov eax, dword [esi + 0x10]
mov byte [ecx + eax], dl
mov eax, dword [esi + 0x10]
mov byte [eax + ecx + 1], dl
mov edx, dword [ebp - 0x44]
and edx, 1
mov ax, word [edx*2 + 0x4a970c]
mov word [esi + 8], ax
jmp 0x43eae6
mov al, byte [ebp - 0x64]
mov byte [edx + 0xa], al
movzx eax, word [ebx + 2]
test al, 0xc0
je 0x43fe2a
cmp ecx, 0xc
jb 0x43fe26
test cl, 1
je 0x43fe33
test al, al
js 0x43fe33
call fcn.0043bd89
test eax, eax
jne 0x43fe40
push edx
mov edx, ecx
mov ecx, 0x4be4ac
jmp 0x43fd89
mov ecx, dword [ebp - 0x2c]
push edx
push eax
mov eax, dword [ebp - 0x40]
mov edx, dword [eax + ecx*4]
mov ecx, dword [esi + 0x28]
call fcn.0043964f
mov dword [ebp - 0x20], eax
pop ecx
pop ecx
test eax, eax
jne 0x43ff9d
mov esi, dword [ebp - 0x50]
mov edx, dword [ebp - 0x44]
push esi
mov ecx, dword [esi + 0x10]
call fcn.0043bebc
mov eax, 0xefff
and word [esi + 8], ax
pop ecx
jmp 0x43eae6
imul edi, dword [ebx + 4], 0x28
mov esi, dword [ebx + 0x10]
add edi, dword [ebp - 0x24]
mov al, byte [esi]
push dword [ebp - 0x64]
mov dl, al
mov ecx, edi
call fcn.0043e82b
inc esi
add edi, 0x28
pop ecx
mov al, byte [esi]
test al, al
jne 0x43fe8a
jmp 0x43ed1d
imul edx, dword [ebx + 4], 0x28
xor eax, eax
mov ecx, dword [ebx + 0x10]
xorps xmm0, xmm0
mov esi, dword [ebp - 0x3c]
mov dword [ebp - 0x40], eax
imul eax, dword [ebx + 8], 0x28
add edx, dword [ebp - 0x24]
movlpd qword [ebp - 0xa0], xmm0
movlpd qword [ebp - 0xb8], xmm0
mov dword [ebp - 0x18], ecx
add eax, 0xffffffd8
mov dword [ebp - 0x48], edx
add eax, edx
mov dword [ebp - 0x5c], eax
movzx eax, byte [edi + 0x8f]
mov dword [ebp - 0x54], eax
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x30], eax
test ecx, ecx
je 0x43ff18
mov al, byte [ecx]
mov esi, edx
mov edi, ecx
push dword [ebp - 0x64]
mov dl, al
mov ecx, esi
call fcn.0043e82b
add esi, 0x28
inc edi
pop ecx
mov al, byte [edi]
test al, al
jne 0x43fefb
mov edi, dword [ebp - 0x58]
mov esi, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0x28], eax
mov edx, dword [ebp - 0x54]
lea eax, [ebp - 0xbc]
push eax
mov dword [ebp - 0x1c], ecx
call fcn.0043bc80
mov edx, dword [ebp - 0x1c]
pop ecx
mov ecx, 0x4000
mov dword [ebp - 0x18], eax
mov dword [edx + 0x1c], eax
test word [edx + 8], cx
je 0x44006f
mov ecx, dword [ebp - 0x2c]
or ecx, dword [ebp - 0x44]
je 0x44005b
mov ecx, edx
call fcn.00438cd3
test eax, eax
je 0x44006c
mov ecx, dword [ebp - 0x3c]
call fcn.00423432
push str.out_of_memory
push edi
call fcn.00439b74
pop ecx
pop ecx
push 7
pop eax
mov ecx, dword [ebp - 0x3c]
mov esi, 0xc0a
push 7
cmp byte [ecx + 0x45], 0
pop ecx
cmovne eax, ecx
xor ecx, ecx
mov dword [ebp - 0x20], eax
cmp dword [edi + 0x6c], ecx
jne 0x43ffd6
cmp eax, esi
je 0x43ffd6
mov ecx, eax
call fcn.00471e3e
push eax
push 0x4a41e8
push edi
call fcn.00439b74
mov eax, dword [ebp - 0x20]
add esp, 0xc
mov ecx, dword [ebp - 0x3c]
mov edx, eax
mov dword [edi + 0x28], eax
call fcn.00425092
push dword [edi + 0x6c]
sub ebx, dword [ebp - 0x60]
push dword [edi + 0xbc]
mov eax, ebx
mov ebx, dword [ebp - 0x20]
push 0x14
pop ecx
cdq
idiv ecx
push eax
push str.statement_aborts_at__d:___s___s
push ebx
call fcn.00424723
add esp, 0x14
mov ecx, edi
call fcn.0043b69d
mov eax, dword [ebp - 0x3c]
cmp ebx, esi
jne 0x44001e
mov ecx, eax
call fcn.00423432
mov cl, byte [ebp - 0x65]
mov dword [ebp - 0x20], 1
test cl, cl
je 0x440037
movzx edx, cl
mov ecx, eax
dec edx
call fcn.0044ead8
mov eax, dword [ebp - 0x14]
mov ecx, edi
add dword [edi + 0xb0], eax
call fcn.0043a84d
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x20]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.0047b6bc
mov esp, ebp
pop ebp
ret
mov ecx, dword [edx]
mov eax, ecx
cdq
add dword [ebp - 0x28], eax
adc dword [ebp - 0x38], edx
sub dword [ebp - 0xbc], ecx
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x2c]
add ecx, dword [ebp - 0xbc]
push 0
mov dword [ebp - 0x2c], ecx
pop ecx
adc dword [ebp - 0x44], ecx
cmp eax, 0x7f
ja 0x440089
inc ecx
jmp 0x440094
push ecx
push eax
call fcn.00425dcf
pop ecx
pop ecx
mov ecx, eax
mov eax, dword [ebp - 0x40]
add eax, ecx
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x40], eax
cmp ecx, dword [ebp - 0x48]
je 0x4400ac
sub ecx, 0x28
jmp 0x43ff3f
cmp eax, 0x7e
jle 0x4400d8
cdq
push edx
push eax
call fcn.00425dcf
mov esi, eax
mov eax, dword [ebp - 0x40]
add eax, esi
mov dword [ebp - 0x40], eax
cdq
push edx
push eax
call fcn.00425dcf
add esp, 0x10
cmp esi, eax
mov eax, dword [ebp - 0x40]
mov esi, dword [ebp - 0x3c]
jge 0x4400dc
inc eax
mov dword [ebp - 0x40], eax
cdq
mov ecx, edx
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x2c]
add edx, eax
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x44]
adc eax, ecx
mov dword [ebp - 0x2c], edx
mov ecx, edx
add ecx, dword [ebp - 0x28]
adc eax, dword [ebp - 0x38]
mov dword [ebp - 0x44], eax
mov eax, dword [esi + 0x60]
cdq
cmp dword [ebp - 0x44], edx
jg 0x44221d
jl 0x440114
cmp ecx, eax
ja 0x44221d
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x30]
call fcn.00438c46
test eax, eax
jne 0x43ff85
mov eax, dword [ebp - 0x30]
mov edx, 0x80
mov ecx, dword [ebp - 0x40]
mov edi, dword [eax + 0x10]
cmp ecx, edx
jae 0x440140
xor eax, eax
mov byte [edi], cl
inc eax
jmp 0x440154
push dword [ebp - 0x18]
mov ecx, edi
push dword [ebp - 0x1c]
call fcn.00425bb9
pop ecx
pop ecx
mov edx, 0x80
mov ebx, dword [ebp - 0x48]
movzx esi, al
mov eax, dword [ebx + 0x1c]
mov dword [ebp - 0x18], eax
cmp eax, edx
jae 0x44016c
mov byte [esi + edi], al
xor eax, eax
inc eax
jmp 0x44017a
xor ecx, ecx
push ecx
push eax
lea ecx, [esi + edi]
call fcn.00425bb9
pop ecx
pop ecx
mov ecx, dword [ebp - 0x40]
mov edx, ebx
push dword [ebp - 0x18]
movzx eax, al
add esi, eax
lea ecx, [ecx + edi]
call fcn.0043bda9
add dword [ebp - 0x40], eax
add ebx, 0x28
mov edx, 0x80
pop ecx
cmp ebx, dword [ebp - 0x5c]
jbe 0x44015a
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x58]
mov esi, dword [ebp - 0x3c]
mov dword [ecx + 0xc], eax
push 0x10
pop eax
mov word [ecx + 8], ax
mov eax, edx
or eax, dword [ebp - 0x38]
je 0x43ea6b
mov dword [ecx], edx
mov eax, 0x4010
jmp 0x43eab9
mov ecx, dword [ebx + 4]
lea edx, [ebp - 0xa0]
mov eax, dword [edi + 0x70]
xorps xmm0, xmm0
movlpd qword [ebp - 0xa0], xmm0
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x28]
call fcn.0043727c
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x43ff9d
mov edx, ebx
mov ecx, edi
call fcn.0043e920
mov ecx, dword [ebp - 0xa0]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x9c]
jmp 0x43eb9f
mov ecx, dword [ebx + 4]
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x1c], eax
test ecx, ecx
jne 0x4402ee
cmp dword [esi + 0xa4], ecx
jg 0x442c7c
mov ecx, eax
call fcn.00425028
mov ecx, dword [esi + 0x1b4]
xor edx, edx
add ecx, dword [esi + 0x1b0]
push ecx
mov ecx, esi
mov dword [ebp - 0x18], eax
call fcn.00466085
mov dword [ebp - 0x20], eax
pop ecx
test eax, eax
jne 0x43ff9d
mov eax, dword [ebp - 0x18]
xor ecx, ecx
push ecx
add eax, 0x21
mov ecx, esi
push eax
call fcn.00423227
mov dword [ebp - 0x30], eax
pop ecx
pop ecx
test eax, eax
je 0x43ea6b
mov ecx, dword [ebp - 0x18]
lea edx, [eax + 0x20]
inc ecx
mov dword [eax], edx
push ecx
push dword [ebp - 0x1c]
push edx
call fcn.0047b870
add esp, 0xc
cmp byte [esi + 0x43], 0
je 0x4402ad
xor eax, eax
mov byte [esi + 0x4b], 1
mov byte [esi + 0x43], al
jmp 0x4402b3
inc dword [esi + 0x1b0]
mov ecx, dword [ebp - 0x30]
mov eax, dword [esi + 0x1a8]
mov dword [ecx + 0x18], eax
mov eax, dword [esi + 0x1b8]
mov dword [esi + 0x1a8], ecx
mov dword [ecx + 8], eax
mov eax, dword [esi + 0x1bc]
mov dword [ecx + 0xc], eax
mov eax, dword [esi + 0x1c0]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x1c4]
mov dword [ecx + 0x14], eax
jmp 0x43ea6b
xor eax, eax
mov dword [ebp - 0x2c], eax
mov eax, dword [esi + 0x1a8]
mov dword [ebp - 0x44], eax
test eax, eax
je 0x442cae
mov esi, dword [ebp - 0x1c]
mov edi, eax
mov ebx, dword [ebp - 0x2c]
mov ecx, dword [edi]
mov edx, esi
call fcn.004251fe
test eax, eax
je 0x440321
mov edi, dword [edi + 0x18]
inc ebx
test edi, edi
jne 0x44030c
mov esi, dword [ebp - 0x3c]
test edi, edi
mov dword [ebp - 0x2c], ebx
mov ebx, dword [ebp - 0x4c]
mov dword [ebp - 0x44], edi
mov edi, dword [ebp - 0x58]
je 0x442cae
mov edx, dword [ebp - 0x50]
xor ecx, ecx
xor eax, eax
inc ecx
cmp dword [esi + 0xa4], eax
jle 0x440350
cmp edx, ecx
je 0x442c86
mov eax, dword [ebp - 0x44]
cmp dword [eax + 0x18], 0
jne 0x4403a0
cmp byte [esi + 0x4b], 0
je 0x4403a0
mov dword [ebp - 0x1c], ecx
cmp edx, ecx
jne 0x4403a5
mov edx, ecx
mov ecx, edi
call fcn.0043b642
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x440037
mov ecx, edi
mov byte [esi + 0x43], 1
call fcn.0043b69d
push 5
pop ecx
cmp eax, ecx
je 0x442c90
xor eax, eax
mov byte [esi + 0x4b], al
mov eax, dword [edi + 0x28]
mov dword [ebp - 0x20], eax
jmp 0x44047c
xor eax, eax
mov dword [ebp - 0x1c], eax
mov ecx, dword [esi + 0x1b0]
sub ecx, dword [ebp - 0x2c]
push 2
dec ecx
pop eax
mov dword [ebp - 0x2c], ecx
cmp edx, eax
jne 0x4404e2
mov eax, dword [esi + 0x18]
and dword [ebp - 0x18], 0
shr eax, 0x17
and eax, 1
cmp dword [esi + 0x14], 0
mov dword [ebp - 0x48], eax
jle 0x440420
xor ecx, ecx
test eax, eax
sete cl
xor eax, eax
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x30], eax
push ecx
mov ecx, dword [esi + 0x10]
mov edx, 0x204
mov ecx, dword [eax + ecx + 4]
call fcn.00432bb9
mov dword [ebp - 0x20], eax
pop ecx
test eax, eax
jne 0x43ff9d
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x30]
inc ecx
push 0x10
pop edx
add eax, edx
mov dword [ebp - 0x18], ecx
cmp ecx, dword [esi + 0x14]
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x30], eax
jl 0x4403e2
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x2c]
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [esi + 0x14], eax
jle 0x440463
mov dword [ebp - 0x30], eax
push ecx
mov ecx, dword [esi + 0x10]
mov ecx, dword [eax + ecx + 4]
call fcn.00432d60
mov dword [ebp - 0x20], eax
pop ecx
test eax, eax
jne 0x43ff9d
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x30]
inc ecx
push 0x10
pop edx
add eax, edx
mov dword [ebp - 0x18], ecx
cmp ecx, dword [esi + 0x14]
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x30], eax
jl 0x44042d
cmp dword [ebp - 0x48], 0
je 0x44047c
mov ecx, esi
call fcn.0043cd91
call fcn.0044eb05
or dword [esi + 0x18], 0x800000
mov ecx, dword [ebp - 0x44]
cmp dword [esi + 0x1a8], ecx
je 0x4404b3
mov edi, ecx
mov edx, dword [esi + 0x1a8]
mov ecx, esi
mov eax, dword [edx + 0x18]
mov dword [esi + 0x1a8], eax
call fcn.00423004
dec dword [esi + 0x1b0]
cmp dword [esi + 0x1a8], edi
jne 0x440489
mov edi, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x50]
cmp edx, 1
jne 0x4404ec
mov eax, dword [ecx + 0x18]
mov edx, ecx
mov ecx, esi
mov dword [esi + 0x1a8], eax
call fcn.00423004
cmp dword [ebp - 0x1c], 0
jne 0x43f4d0
dec dword [esi + 0x1b0]
mov edx, dword [ebp - 0x50]
jmp 0x440521
xor eax, eax
mov dword [ebp - 0x48], eax
jmp 0x440422
cmp dword [ebp - 0x1c], 0
mov eax, dword [ecx + 8]
mov dword [esi + 0x1b8], eax
mov eax, dword [ecx + 0xc]
mov dword [esi + 0x1bc], eax
mov eax, dword [ecx + 0x10]
mov dword [esi + 0x1c0], eax
mov eax, dword [ecx + 0x14]
mov dword [esi + 0x1c4], eax
je 0x440521
push 2
pop eax
cmp edx, eax
jne 0x43f4d0
mov ecx, dword [ebp - 0x2c]
push ecx
mov ecx, esi
call fcn.00466085
mov dword [ebp - 0x20], eax
pop ecx
test eax, eax
jne 0x43ff9d
jmp 0x43f4d3
mov edx, dword [ebx + 8]
test edx, edx
je 0x440551
test dword [esi + 0x18], 0x80000
jne 0x442cc4
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 4]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x440624
mov ecx, eax
call fcn.004321d8
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x442ccb
cmp dword [ebx + 8], eax
je 0x4405fa
test byte [edi + 0x94], 0x40
je 0x4405fa
cmp byte [esi + 0x43], al
je 0x440596
cmp dword [esi + 0xa0], 1
jle 0x4405fa
cmp dword [edi + 0x30], eax
jne 0x4405b0
mov eax, dword [esi + 0x1b0]
inc dword [esi + 0x1b4]
add eax, dword [esi + 0x1b4]
mov dword [edi + 0x30], eax
mov eax, dword [edi + 0x30]
xor edx, edx
dec eax
mov ecx, esi
push eax
call fcn.00466085
pop ecx
mov ecx, eax
mov dword [ebp - 0x20], ecx
test ecx, ecx
jne 0x4405d6
mov edx, dword [edi + 0x30]
mov ecx, dword [ebp - 0x18]
call fcn.00432d39
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0x1b8]
mov dword [edi + 0x48], eax
mov eax, dword [esi + 0x1bc]
mov dword [edi + 0x4c], eax
mov eax, dword [esi + 0x1c0]
mov dword [edi + 0x50], eax
mov eax, dword [esi + 0x1c4]
mov dword [edi + 0x54], eax
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x88]
xor edx, edx
push eax
inc edx
call fcn.004371db
mov eax, dword [esi + 0x10]
pop ecx
mov ecx, dword [ebx + 4]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0x88]
jmp 0x44062e
xor ecx, ecx
mov eax, ecx
mov dword [ebp - 0x88], eax
xor edx, edx
cmp word [ebx + 2], dx
je 0x43f4d0
cmp eax, dword [ebx + 0xc]
jne 0x440648
cmp ecx, dword [ebx + 0x10]
je 0x43f4d0
mov edx, dword [edi + 0x6c]
mov ecx, esi
call fcn.00423004
mov edx, str.database_schema_has_changed
mov ecx, esi
call fcn.00423389
mov dword [edi + 0x6c], eax
mov edx, dword [ebx + 4]
mov ecx, edx
mov eax, dword [esi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov ecx, dword [ebp - 0x88]
cmp dword [eax], ecx
je 0x440680
mov ecx, esi
call fcn.0044ead8
or dword [edi + 0x94], 1
push 0x11
pop eax
mov dword [ebp - 0x20], eax
jmp 0x43f4d3
mov ecx, dword [esi + 0x10]
lea eax, [ebp - 0xf4]
mov edx, dword [ebx + 0xc]
push eax
mov eax, dword [ebx + 4]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.004371db
pop ecx
mov edx, ebx
mov ecx, edi
call fcn.0043e920
mov ecx, eax
mov eax, dword [ebp - 0xf4]
jmp 0x43eb81
mov eax, dword [ebx + 4]
push dword [ebx + 0xc]
mov edx, dword [ebx + 8]
shl eax, 4
add eax, dword [esi + 0x10]
mov dword [ebp - 0x18], eax
mov ecx, dword [eax + 4]
call fcn.0043721f
xor edx, edx
mov dword [ebp - 0x20], eax
inc edx
pop ecx
cmp dword [ebx + 8], edx
jne 0x4406fe
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebx + 0xc]
mov ecx, dword [ecx + 0xc]
mov dword [ecx], eax
or dword [esi + 0x18], 0x800000
jmp 0x440712
push 2
pop eax
cmp dword [ebx + 8], eax
jne 0x440712
mov ecx, dword [ebp - 0x18]
mov al, byte [ebx + 0xc]
mov ecx, dword [ecx + 0xc]
mov byte [ecx + 0x4c], al
cmp dword [ebx + 4], edx
jne 0x43f4d0
mov ecx, esi
call fcn.0043cd91
and dword [edi + 0x94], 0xfffffffe
jmp 0x43f4d0
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x70]
mov ecx, dword [eax + ecx*4]
test ecx, ecx
je 0x440747
mov eax, dword [ecx + 0x34]
cmp eax, dword [ebx + 8]
je 0x440840
mov cl, byte [ebp - 0x31]
test byte [edi + 0x94], 1
jne 0x442cec
mov edx, dword [ebx + 8]
xor eax, eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x30], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x5c], eax
shl eax, 4
add eax, dword [esi + 0x10]
mov dword [ebp - 0x1c], edx
mov edx, dword [eax + 4]
mov dword [ebp - 0x28], edx
mov edx, dword [ebp - 0x1c]
cmp cl, 0x69
jne 0x4407a2
mov eax, dword [eax + 0xc]
movzx ecx, word [ebx + 2]
and ecx, 8
or ecx, 4
mov al, byte [eax + 0x4c]
mov dword [ebp - 0x18], ecx
cmp al, byte [edi + 0x8f]
jae 0x4407a7
mov byte [edi + 0x8f], al
jmp 0x4407a7
xor eax, eax
mov dword [ebp - 0x18], eax
test byte [ebx + 2], 0x10
je 0x4407c2
imul esi, edx, 0x28
add esi, dword [ebp - 0x24]
mov ecx, esi
call fcn.0043909a
mov eax, dword [esi]
mov esi, dword [ebp - 0x3c]
mov dword [ebp - 0x1c], eax
mov al, byte [ebx + 1]
cmp al, 0xf7
jne 0x4407db
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x30], eax
movzx ecx, word [eax + 8]
movzx eax, word [eax + 6]
add ecx, eax
jmp 0x4407e7
cmp al, 0xfd
jne 0x4407e4
mov ecx, dword [ebx + 0x10]
jmp 0x4407e7
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebx + 4]
xor eax, eax
push eax
push dword [ebp - 0x5c]
push ecx
mov ecx, edi
call fcn.0043e6f5
add esp, 0xc
mov dword [ebp - 0x48], eax
test eax, eax
je 0x43ff85
mov edx, dword [ebp - 0x1c]
push 4
pop ecx
push dword [eax + 0x28]
or dword [eax + 8], ecx
push dword [ebp - 0x30]
mov ecx, dword [ebp - 0x28]
push dword [ebp - 0x18]
mov byte [eax + 2], 1
mov dword [eax + 0x34], edx
call fcn.00432e7f
mov ecx, dword [ebp - 0x48]
add esp, 0xc
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x30]
mov dword [ecx + 0x2c], eax
cmp byte [ebx + 1], 0xf7
setne al
mov byte [ecx + 4], al
movzx edx, word [ebx + 2]
mov ecx, dword [ecx + 0x28]
and edx, 3
call fcn.00430491
jmp 0x43f4d0
mov ecx, dword [ebx + 8]
mov eax, dword [edi + 0x70]
mov edx, dword [ebx + 4]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
push ecx
mov dword [ebp - 0x18], eax
mov ecx, edi
push 0xffffffffffffffff
movsx eax, word [eax + 0x38]
push eax
call fcn.0043e6f5
mov edx, eax
add esp, 0xc
test edx, edx
je 0x43ff85
push dword [edx + 0x28]
xor eax, eax
inc eax
or dword [edx + 8], eax
mov byte [edx + 2], al
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x2c]
mov dword [edx + 0x2c], ecx
mov al, byte [eax + 4]
push ecx
mov ecx, dword [ebp - 0x18]
mov byte [edx + 4], al
xor edx, edx
push 4
pop eax
mov ecx, dword [ecx + 0xc]
inc edx
push eax
call fcn.00432e7f
add esp, 0xc
mov dword [ebp - 0x20], eax
jmp 0x43ea6b
mov edx, dword [ebx + 4]
xor eax, eax
push eax
push 0xffffffffffffffff
push dword [ebx + 8]
mov ecx, edi
call fcn.0043e6f5
add esp, 0xc
mov dword [ebp - 0x38], eax
test eax, eax
je 0x43ff85
xor ecx, ecx
inc ecx
or dword [eax + 8], ecx
push 0x41e
mov byte [eax + 2], cl
lea ecx, [eax + 0xc]
movzx eax, word [ebx + 2]
push 5
pop edx
or eax, edx
mov dword [ebp - 0x28], ecx
push eax
push ecx
mov ecx, dword [esi]
xor edx, edx
push esi
call fcn.00431645
add esp, 0x10
test eax, eax
jne 0x43ff9d
mov ecx, dword [ebp - 0x28]
xor edx, edx
inc edx
mov ecx, dword [ecx]
call fcn.004321d8
test eax, eax
jne 0x43ff9d
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x18], ecx
mov dword [eax + 0x2c], ecx
test ecx, ecx
je 0x440982
movzx eax, word [ebx + 2]
lea edx, [ebp - 0xdc]
push 2
pop ecx
or eax, ecx
push eax
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
call fcn.00436e56
mov dword [ebp - 0x20], eax
pop ecx
test eax, eax
jne 0x440978
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0xdc]
push dword [eax + 0x28]
push dword [ebp - 0x18]
push 4
pop eax
push eax
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
call fcn.00432e7f
add esp, 0xc
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x38]
xor edx, edx
mov byte [ecx + 4], dl
jmp 0x4409a6
push dword [eax + 0x28]
xor eax, eax
xor edx, edx
push eax
push 4
pop eax
push eax
mov eax, dword [ebp - 0x28]
inc edx
mov ecx, dword [eax]
call fcn.00432e7f
mov ecx, dword [ebp - 0x38]
add esp, 0xc
mov dword [ebp - 0x20], eax
mov byte [ecx + 4], 1
test eax, eax
jne 0x43ff9d
push 8
pop edx
cmp word [ebx + 2], dx
push 4
setne al
shl eax, 2
xor eax, dword [ecx + 8]
pop edx
and eax, edx
xor dword [ecx + 8], eax
jmp 0x43ea6b
mov edx, dword [ebx + 4]
mov ecx, edi
push eax
push 0xffffffffffffffff
push dword [ebx + 8]
call fcn.0043e6f5
add esp, 0xc
test eax, eax
je 0x43ff85
mov ecx, dword [ebx + 0x10]
mov dword [eax + 0x2c], ecx
mov ecx, esi
mov edx, dword [ebx + 0xc]
push eax
call fcn.0044406c
pop ecx
jmp 0x44068a
mov eax, dword [edi + 0x70]
mov ecx, dword [ebx + 4]
mov edx, dword [eax + ecx*4]
mov edi, dword [edx + 0x10]
mov ecx, edi
mov esi, dword [edx + 0x14]
add ecx, 1
mov eax, esi
mov dword [edx + 0x10], ecx
adc eax, 0
or edi, esi
mov edi, dword [ebp - 0x58]
mov dword [edx + 0x14], eax
je 0x442bc4
jmp 0x43eae6
mov edx, dword [ebx + 4]
mov ecx, edi
push 3
push 0xffffffffffffffff
push dword [ebx + 0xc]
call fcn.0043e6f5
add esp, 0xc
test eax, eax
je 0x43ff85
xor edx, edx
inc edx
mov byte [eax + 2], dl
mov ecx, dword [ebx + 8]
mov dword [eax + 0x28], ecx
mov byte [eax + 4], dl
jmp 0x43ea6b
mov eax, dword [ebx + 4]
mov ecx, edi
mov edx, dword [edi + 0x70]
mov edx, dword [edx + eax*4]
call fcn.0043aebd
mov ecx, dword [ebx + 4]
xor edx, edx
mov eax, dword [edi + 0x70]
mov dword [eax + ecx*4], edx
jmp 0x43ea6b
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x70]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x28], ecx
mov byte [eax + 2], cl
cmp byte [eax + 4], cl
je 0x440b47
imul ecx, dword [ebx + 0xc], 0x28
push 2
pop edx
add ecx, dword [ebp - 0x24]
mov dword [ebp - 0x1c], ecx
mov al, byte [ecx + 8]
and al, 0xe
cmp al, dl
jne 0x440ab9
xor edx, edx
call fcn.0043e7af
mov ecx, dword [ebp - 0x1c]
call fcn.00438fb0
mov ecx, dword [ebp - 0x1c]
push 4
mov dword [ebp - 0x30], eax
pop eax
movzx ecx, word [ecx + 8]
mov dword [ebp - 0x48], edx
test al, cl
jne 0x440b0b
test cl, 8
je 0x442bc4
mov ecx, dword [ebp - 0x30]
call fcn.004989bf
mov eax, dword [ebp - 0x1c]
movsd xmm1, qword [eax]
comisd xmm0, xmm1
jbe 0x440afa
mov eax, dword [ebp - 0x54]
test al, 1
je 0x440b0b
dec eax
jmp 0x440b08
comisd xmm1, xmm0
jbe 0x440b0b
mov eax, dword [ebp - 0x54]
test al, 1
jne 0x440b0b
inc eax
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 0x38]
lea eax, [ebp - 0x6c]
push eax
xor eax, eax
xor edx, edx
push eax
push dword [ebp - 0x48]
mov ecx, dword [ecx + 0x28]
push dword [ebp - 0x30]
call fcn.0043369f
mov ecx, dword [ebp - 0x38]
add esp, 0x10
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x20], eax
mov dword [ecx + 0x40], edx
mov edx, dword [ebp - 0x48]
mov dword [ecx + 0x44], edx
test eax, eax
jne 0x43ff9d
jmp 0x440bd6
mov ecx, dword [eax + 0x28]
call fcn.0043808c
mov ecx, dword [ebp - 0x28]
test eax, eax
push 1
pop eax
cmovne ecx, eax
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 0x38]
mov eax, dword [ecx + 0x2c]
mov dword [ebp - 0x108], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0x100], ax
mov eax, edx
and al, 1
neg al
sbb al, al
xor edx, edx
and al, 0xfe
mov byte [ebp - 0xfa], dl
inc al
mov byte [ebp - 0xfe], al
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x104], eax
lea eax, [ebp - 0x6c]
mov ecx, dword [ecx + 0x28]
push eax
push edx
push edx
push edx
lea edx, [ebp - 0x108]
call fcn.0043369f
add esp, 0x10
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x43ff9d
cmp dword [ebp - 0x28], eax
je 0x440bd3
cmp byte [ebp - 0xfa], al
jne 0x440bd3
mov eax, dword [ebp - 0x6c]
jmp 0x440c6a
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x6c]
xor eax, eax
mov byte [ecx + 3], al
mov dword [ecx + 0x1c], eax
mov eax, dword [ebp - 0x54]
cmp eax, 0x1a
jl 0x440c2c
test edx, edx
js 0x440bfb
jne 0x440bf4
cmp eax, 0x1b
je 0x440bfb
xor eax, eax
mov dword [ebp - 0x6c], eax
jmp 0x440c72
xor eax, eax
push eax
push dword [ecx + 0x28]
mov dword [ebp - 0x6c], eax
call fcn.00433b77
mov dword [ebp - 0x20], eax
pop ecx
pop ecx
test eax, eax
je 0x440c72
cmp eax, 0x65
jne 0x43ff9d
xor eax, eax
mov dword [ebp - 0x6c], 1
mov dword [ebp - 0x20], eax
jmp 0x442bc4
test edx, edx
jg 0x440c41
jne 0x440c37
cmp eax, 0x18
je 0x440c41
mov ecx, dword [ecx + 0x28]
call fcn.00430456
jmp 0x440c67
xor eax, eax
push eax
push dword [ecx + 0x28]
mov dword [ebp - 0x6c], eax
call fcn.00433c96
mov dword [ebp - 0x20], eax
pop ecx
pop ecx
test eax, eax
je 0x440c72
cmp eax, 0x65
jne 0x43ff9d
xor eax, eax
mov dword [ebp - 0x20], eax
inc eax
mov dword [ebp - 0x6c], eax
test eax, eax
jne 0x442bc4
cmp dword [ebp - 0x28], 0
mov edx, dword [ebp - 0x14]
je 0x43ecb3
push 0x14
pop eax
jmp 0x43f82f
mov ecx, dword [ebx + 4]
xor edx, edx
mov eax, dword [edi + 0x70]
mov eax, dword [eax + ecx*4]
imul ecx, dword [ebx + 0xc], 0x28
mov dword [ebp - 0x28], eax
add ecx, dword [ebp - 0x24]
mov dword [ebp - 0x1c], ecx
cmp dword [ebx + 0x10], edx
jle 0x440ccb
mov eax, dword [eax + 0x2c]
lea edx, [ebp - 0x180]
mov dword [ebp - 0x180], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0x178], ax
xor eax, eax
mov dword [ebp - 0x17c], ecx
mov dword [ebp - 0x18], eax
jmp 0x440d21
mov edx, 0x4000
test word [ecx + 8], dx
push 0
pop edx
je 0x440ce5
call fcn.00438cd3
mov ecx, eax
mov eax, dword [ebp - 0x28]
jmp 0x440ce7
mov ecx, edx
test ecx, ecx
jne 0x43ff85
mov ecx, dword [eax + 0x2c]
call fcn.0043c018
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x18], eax
test eax, eax
je 0x43ff85
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x28]
push eax
push dword [edx + 0x10]
mov edx, dword [edx + 0xc]
mov ecx, dword [ecx + 0x2c]
call fcn.0043c050
mov edx, dword [ebp - 0x30]
xor eax, eax
pop ecx
pop ecx
mov byte [edx + 0xa], al
cmp byte [ebx], 0x1c
mov dword [ebp - 0x1c], eax
jne 0x440d56
mov ecx, eax
movzx eax, word [edx + 8]
mov dword [ebp - 0x30], eax
test eax, eax
jle 0x440d56
mov eax, dword [edx + 4]
add eax, 8
test byte [eax], 1
jne 0x440d4f
inc ecx
add eax, 0x28
cmp ecx, dword [ebp - 0x30]
jl 0x440d3f
jmp 0x440d56
mov dword [ebp - 0x1c], 1
lea eax, [ebp - 0xe0]
push eax
xor eax, eax
push eax
push eax
push eax
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + 0x28]
call fcn.0043369f
mov ecx, dword [ebp - 0x18]
add esp, 0x10
mov dword [ebp - 0x20], eax
test ecx, ecx
je 0x440d86
mov edx, ecx
mov ecx, esi
call fcn.00422fcd
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x43ff9d
mov edx, dword [ebp - 0x28]
xor ecx, ecx
mov eax, dword [ebp - 0xe0]
test eax, eax
sete cl
mov dword [edx + 0x20], eax
mov al, 1
sub al, cl
mov byte [edx + 2], al
xor eax, eax
mov byte [edx + 3], al
mov dword [edx + 0x1c], eax
cmp byte [ebx], 0x1e
je 0x43f726
cmp dword [ebp - 0x1c], eax
jne 0x442bc4
test ecx, ecx
jmp 0x43fa1c
imul esi, dword [ebx + 0xc], 0x28
push 4
pop eax
add esi, dword [ebp - 0x24]
test byte [esi + 8], al
jne case.0x43ea2a.32
push dword [ebp - 0x64]
mov dl, 0x43
mov ecx, esi
call fcn.0043e82b
pop ecx
push 4
pop eax
test byte [esi + 8], al
je 0x442bc4
mov eax, dword [edi + 0x70]
xor edx, edx
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x18], edx
mov ebx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x24]
imul eax, dword [eax + 0xc], 0x28
mov esi, dword [eax + ecx]
mov edi, dword [eax + ecx + 4]
lea eax, [ebp - 0x18]
mov ecx, dword [ebx + 0x28]
push eax
push edx
push edi
push esi
call fcn.0043369f
xor ecx, ecx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x18]
add esp, 0x10
mov dword [ebx + 0x40], esi
mov dword [ebx + 0x44], edi
mov word [ebx + 2], cx
mov dword [ebx + 0x1c], ecx
mov dword [ebx + 0x20], eax
mov ebx, dword [ebp - 0x4c]
test eax, eax
je 0x440e59
cmp dword [ebx + 8], ecx
jne 0x442bc1
mov ecx, 0x144b0
call fcn.0047332e
mov dword [ebp - 0x20], eax
jmp 0x440e5c
mov eax, dword [ebp - 0x20]
mov edi, dword [ebp - 0x58]
test eax, eax
jne 0x43ff9d
jmp 0x43eae6
mov edx, ebx
mov ecx, edi
call fcn.0043e920
mov ecx, dword [edi + 0x70]
mov edx, dword [ebx + 4]
push 0
mov edx, dword [ecx + edx*4]
mov ecx, dword [edx + 0x10]
mov dword [eax], ecx
mov ecx, dword [edx + 0x14]
mov dword [eax + 4], ecx
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x70]
mov eax, dword [eax + ecx*4]
pop ecx
add dword [eax + 0x10], 1
adc dword [eax + 0x14], ecx
jmp 0x43ea6b
xorps xmm0, xmm0
xor eax, eax
mov edx, ebx
movlpd qword [ebp - 0x78], xmm0
mov ecx, edi
mov dword [ebp - 0x28], eax
call fcn.0043e920
mov ecx, dword [edi + 0x70]
mov edx, dword [ebx + 4]
mov dword [ebp - 0x30], eax
push 2
mov eax, dword [ecx + edx*4]
pop ecx
mov dword [ebp - 0x44], eax
test byte [eax + 8], cl
jne 0x440f30
mov ecx, dword [eax + 0x28]
lea edx, [ebp - 0x28]
call fcn.00433656
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x43ff9d
cmp dword [ebp - 0x28], eax
je 0x440ef4
xor ecx, ecx
inc ecx
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x74], eax
jmp 0x440f36
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax + 0x28]
call fcn.00432f95
mov ecx, eax
mov eax, edx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x74], eax
cmp eax, 0x7fffffff
jl 0x440f26
jg 0x440f1d
cmp ecx, 0xffffffff
jb 0x440f26
mov edx, dword [ebp - 0x44]
or dword [edx + 8], 2
jmp 0x440f3c
push 0
add ecx, 1
pop edx
adc eax, edx
jmp 0x440eec
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x78]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebx + 0xc]
test edx, edx
je 0x440fd0
mov ecx, dword [edi + 0xc4]
test ecx, ecx
jne 0x440fb9
imul eax, edx, 0x28
add eax, dword [ebp - 0x24]
mov ecx, eax
mov dword [ebp - 0x18], eax
call fcn.0043909a
mov edx, dword [ebp - 0x18]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
cmp eax, 0xffffffff
jne 0x440f7a
cmp ecx, 0x7fffffff
je 0x44103d
mov esi, dword [ebp - 0x44]
test byte [esi + 8], 2
mov esi, dword [ebp - 0x3c]
jne 0x44103d
add eax, 1
mov dword [ebp - 0x18], eax
push 0
pop eax
adc ecx, eax
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x1c], ecx
cmp eax, ecx
jg 0x440fc8
jl 0x440fa9
mov ecx, dword [ebp - 0x2c]
cmp ecx, dword [ebp - 0x18]
jae 0x440fcb
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x74], eax
jmp 0x440fcb
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x440fb7
imul eax, edx, 0x28
add eax, dword [ecx + 0x10]
jmp 0x440f57
mov ecx, dword [ebp - 0x2c]
mov dword [edx], ecx
mov dword [edx + 4], eax
mov edx, dword [ebp - 0x44]
test byte [edx + 8], 2
je 0x44104d
xor eax, eax
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x78]
push eax
push 8
pop eax
push eax
call fcn.00424756
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x78]
and eax, 0x3fffffff
add ecx, 1
push 0
pop edx
adc eax, edx
mov dword [ebp - 0x2c], ecx
lea edx, [ebp - 0x28]
mov dword [ebp - 0x4c], eax
push edx
xor edx, edx
mov dword [ebp - 0x74], eax
push edx
push eax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x78], ecx
push ecx
mov ecx, dword [eax + 0x28]
call fcn.0043369f
add esp, 0x18
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x43ff9d
cmp dword [ebp - 0x28], eax
jne 0x441044
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 0x64
jl 0x440fde
push 0xd
jmp 0x43ff9c
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x44]
and dword [edx + 0x1c], 0
mov byte [edx + 3], 0
mov edx, dword [ebp - 0x30]
mov dword [edx], ecx
mov dword [edx + 4], eax
jmp 0x43ea6b
mov edx, dword [ebp - 0x24]
xor eax, eax
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x1c], eax
imul eax, dword [ebx + 8], 0x28
add eax, edx
cmp byte [ebp - 0x31], 0x74
mov dword [ebp - 0x5c], eax
mov eax, dword [edi + 0x70]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0x28], ecx
jne 0x44109e
imul eax, dword [ebx + 0xc], 0x28
mov ecx, dword [eax + edx]
mov edx, dword [eax + edx + 4]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x148], ecx
mov ecx, dword [ebp - 0x28]
jmp 0x4410ab
mov eax, dword [ebx + 0xc]
cdq
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x148], eax
xor eax, eax
mov dword [ebp - 0x144], edx
cmp byte [ebx + 1], 0xfa
jne 0x4410ea
cmp dword [esi + 0xdc], eax
je 0x4410ea
movsx ecx, byte [ecx + 1]
mov eax, dword [esi + 0x10]
add ecx, ecx
push 4
mov ecx, dword [eax + ecx*8]
pop eax
test byte [ebx + 2], al
push 0x12
pop eax
mov dword [ebp - 0x48], ecx
mov ecx, dword [ebx + 0x10]
push 0x17
mov dword [ebp - 0x30], ecx
pop ecx
cmovne eax, ecx
mov dword [ebp - 0x1c], eax
jmp 0x4410f0
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x48], eax
xor ecx, ecx
inc ecx
test byte [ebx + 2], cl
je 0x4410fb
inc dword [edi + 0x2c]
test byte [ebx + 2], 0x20
je 0x44110a
mov eax, dword [ebp - 0x18]
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], edx
mov edx, dword [ebp - 0x5c]
movzx eax, word [edx + 8]
test cl, al
je 0x441125
xor eax, eax
mov dword [ebp - 0x140], eax
mov dword [ebp - 0x134], eax
jmp 0x441139
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x140], eax
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x134], eax
xor eax, eax
movzx ecx, word [ebx + 2]
test cl, 0x10
je 0x441148
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x18], eax
movzx eax, word [edx + 8]
test eax, 0x4000
je 0x441162
mov eax, dword [edx]
mov dword [ebp - 0x130], eax
xor eax, eax
jmp 0x44116a
xor eax, eax
mov dword [ebp - 0x130], eax
push dword [ebp - 0x18]
mov dword [ebp - 0x150], eax
lea edx, [ebp - 0x150]
mov eax, dword [ebp - 0x28]
and ecx, 0xa
push ecx
mov ecx, dword [eax + 0x28]
call fcn.00436715
pop ecx
pop ecx
mov ecx, dword [ebp - 0x28]
xor edx, edx
mov dword [ebp - 0x20], eax
mov byte [ecx + 3], dl
mov dword [ecx + 0x1c], edx
test eax, eax
jne 0x43ff9d
mov eax, dword [esi + 0xdc]
test eax, eax
je 0x43ea6b
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x43ea6b
push dword [ebp - 0x144]
mov edx, dword [ebp - 0x30]
push dword [ebp - 0x148]
push dword [edx]
push dword [ebp - 0x48]
push ecx
push dword [esi + 0xd8]
call eax
add esp, 0x18
jmp 0x43ea6b
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x30], eax
mov eax, dword [edi + 0x70]
mov edx, dword [eax + ecx*4]
xor eax, eax
cmp byte [ebx + 1], 0xfa
mov dword [ebp - 0x38], edx
jne 0x441236
cmp dword [esi + 0xdc], eax
je 0x441236
movsx ecx, byte [edx + 1]
mov eax, dword [esi + 0x10]
add ecx, ecx
push 2
mov eax, dword [eax + ecx*8]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x18], eax
pop eax
test byte [ebx + 2], al
je 0x44123c
cmp byte [edx + 4], 0
je 0x44123c
mov ecx, dword [edx + 0x28]
call fcn.00432f95
mov ecx, dword [ebp - 0x38]
mov dword [ecx + 0x40], eax
mov dword [ecx + 0x44], edx
jmp 0x44123f
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x38]
mov dl, byte [ebx + 2]
mov ecx, dword [ecx + 0x28]
call fcn.00436a11
mov ecx, dword [ebp - 0x38]
xor edx, edx
mov dword [ebp - 0x20], eax
mov dword [ecx + 0x1c], edx
mov dword [ecx + 0x20], edx
test eax, eax
jne 0x43ff9d
inc eax
test byte [ebp - 0x30], al
je case.0x43ea2a.74
inc dword [edi + 0x2c]
mov edx, dword [esi + 0xdc]
test edx, edx
je case.0x43ea2a.74
mov eax, dword [ebp - 0x18]
test byte [eax + 0x24], 0x20
jne 0x43ea6b
push dword [ecx + 0x44]
push dword [ecx + 0x40]
push dword [eax]
push dword [ebp - 0x1c]
push 9
push dword [esi + 0xd8]
call edx
jmp 0x4411d6
mov edx, dword [edi + 0x2c]
mov ecx, esi
call fcn.0043cd82
xor ecx, ecx
mov dword [edi + 0x2c], ecx
jmp case.0x43ea2a.74
imul edx, dword [ebx + 0xc], 0x28
lea esi, [ebp - 0x5c]
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x70]
and dword [ebp - 0x5c], 0
push esi
push dword [ebx + 0x10]
add edx, dword [ebp - 0x24]
mov ecx, dword [eax + ecx*4]
call fcn.004457c1
mov esi, dword [ebp - 0x3c]
mov dword [ebp - 0x20], eax
pop ecx
pop ecx
test eax, eax
jne 0x43ff9d
cmp dword [ebp - 0x5c], 0
jmp 0x43ea95
imul edx, dword [ebx + 8], 0x28
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x70]
add edx, dword [ebp - 0x24]
mov ecx, dword [eax + ecx*4]
call fcn.00445769
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x43ff9d
mov ecx, dword [ebx + 0xc]
mov eax, dword [edi + 0x70]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [eax + 0x1c], ecx
jmp 0x43ea6b
mov edx, ebx
mov ecx, edi
call fcn.0043e920
mov edx, dword [ebx + 4]
mov ecx, dword [edi + 0x70]
mov dword [ebp - 0x18], eax
mov ecx, dword [ecx + edx*4]
mov eax, dword [ecx + 0x28]
mov ecx, eax
mov dword [ebp - 0x1c], eax
call fcn.00432fa5
cmp eax, dword [esi + 0x60]
ja 0x44221d
push dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
xor edx, edx
push eax
call fcn.0043964f
mov dword [ebp - 0x20], eax
pop ecx
pop ecx
test eax, eax
jne 0x43ff9d
cmp dword [ebx + 0xc], eax
jne 0x43ea6b
mov eax, dword [ebp - 0x18]
mov ecx, 0x1000
test word [eax + 8], cx
je 0x43ea6b
mov ecx, eax
call fcn.00438c62
test eax, eax
jne 0x43ff85
jmp 0x43ea6b
mov edx, ebx
mov ecx, edi
call fcn.0043e920
mov edx, dword [ebx + 4]
mov ecx, dword [edi + 0x70]
mov dword [ebp - 0x1c], eax
mov eax, dword [ecx + edx*4]
mov dword [ebp - 0x18], eax
cmp byte [eax + 2], 0
je 0x4413c4
mov edx, dword [ebp - 0x1c]
xor eax, eax
inc eax
mov word [edx + 8], ax
jmp case.0x43ea2a.74
cmp byte [eax + 3], 0
je 0x4413de
mov ecx, dword [eax + 0x40]
mov dword [ebp - 0xc8], ecx
mov eax, dword [eax + 0x44]
mov dword [ebp - 0xc4], eax
jmp 0x44144b
push 2
pop ecx
cmp byte [eax], cl
jne 0x44141b
mov ecx, dword [eax + 0x28]
lea edx, [ebp - 0xc8]
push edx
push ecx
mov esi, dword [ecx]
mov eax, dword [esi]
call dword [eax + 0x30]
pop ecx
pop ecx
mov edx, esi
mov dword [ebp - 0x20], eax
mov ecx, edi
call fcn.0043ce3a
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x43ff9d
mov ecx, dword [ebp - 0xc8]
mov esi, dword [ebp - 0x3c]
jmp 0x44144b
mov ecx, eax
call fcn.0043bc13
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x43ff9d
mov ecx, dword [ebp - 0x18]
cmp byte [ecx + 2], al
jne 0x4413b5
mov ecx, dword [ecx + 0x28]
call fcn.00432f95
mov ecx, eax
mov dword [ebp - 0xc4], edx
mov dword [ebp - 0xc8], ecx
mov edx, dword [ebp - 0x1c]
mov dword [edx], ecx
mov eax, dword [ebp - 0xc4]
jmp 0x44105a
mov eax, dword [edi + 0x70]
xor edx, edx
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
xor eax, eax
inc eax
mov byte [ecx + 2], al
mov dword [ecx + 0x1c], edx
cmp byte [ecx], dl
jne case.0x43ea2a.74
mov ecx, dword [ecx + 0x28]
call fcn.00430367
jmp 0x43ea6b
mov eax, dword [edi + 0x70]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
xor eax, eax
mov dword [ebp - 0x44], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x1c], ecx
mov edx, dword [ecx + 0x28]
mov dword [ecx + 0x20], eax
xor eax, eax
mov dword [ebp - 0x18], edx
cmp dword [ebx + 0xc], eax
je 0x4414b7
mov ecx, edx
call fcn.00432f8b
test eax, eax
jne 0x43ea6b
mov ecx, dword [ebp - 0x18]
lea edx, [ebp - 0x44]
call fcn.00433656
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x20], eax
and dword [ecx + 0x1c], 0
mov byte [ecx + 2], dl
mov byte [ecx + 3], 0
test eax, eax
jne 0x43ff9d
cmp dword [ebx + 8], eax
jle 0x43ea6b
test edx, edx
jmp 0x43ea95
mov ecx, dword [ebx + 4]
lea edx, [ebp - 0x84]
mov eax, dword [edi + 0x70]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x28]
mov ecx, eax
mov dword [ebp - 0x18], eax
call fcn.0043362b
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x43ff9d
cmp dword [ebp - 0x84], eax
jne 0x442bc4
mov ecx, dword [ebp - 0x18]
call fcn.00433a4a
xor ecx, ecx
cmp edx, ecx
jl 0x43ea6b
jg 0x44153d
cmp eax, ecx
jb 0x43ea6b
push edx
push eax
call fcn.00426177
cwde
pop ecx
pop ecx
cmp eax, dword [ebx + 0xc]
jge 0x43ea6b
mov dword [ebp - 0x84], 1
jmp 0x442bc4
inc dword [edi + 0xa8]
mov ecx, dword [ebx + 4]
lea edx, [ebp - 0x1c]
mov eax, dword [edi + 0x70]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
inc ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], ecx
cmp byte [eax], cl
jne 0x44158a
mov ecx, eax
call fcn.00445676
mov ecx, dword [ebp - 0x18]
jmp 0x44159d
mov ecx, dword [eax + 0x28]
call fcn.0043362b
mov ecx, dword [ebp - 0x18]
xor edx, edx
mov byte [ecx + 3], dl
mov dword [ecx + 0x1c], edx
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x43ff9d
mov eax, dword [ebp - 0x1c]
mov byte [ecx + 2], al
test eax, eax
jmp 0x43ea95
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x70]
mov eax, dword [eax + ecx*4]
mov edx, eax
mov ecx, esi
mov dword [ebp - 0x18], eax
call fcn.004456c6
jmp 0x4415f4
mov ecx, dword [ebx + 4]
xor edx, edx
mov eax, dword [edi + 0x70]
cmp dword [eax + ecx*4], edx
je 0x43ea6b
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x70]
push dword [ebx + 0xc]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x18], eax
push dword [eax + 0x28]
call dword [ebx + 0x10]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x18]
xor edx, edx
mov dword [ebp - 0x20], eax
mov dword [ecx + 0x1c], edx
test eax, eax
jne 0x441616
mov byte [ecx + 2], al
movzx eax, word [ebx + 2]
inc dword [edi + eax*4 + 0xa0]
jmp case.0x43ea2a.13
cmp eax, 0x65
jne 0x43ff9d
xor eax, eax
mov dword [ebp - 0x20], eax
inc eax
mov byte [ecx + 2], al
jmp 0x442783
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x70]
mov eax, dword [eax + ecx*4]
imul ecx, dword [ebx + 8], 0x28
mov dword [ebp - 0x28], eax
add ecx, dword [ebp - 0x24]
test byte [ebx + 2], 1
mov dword [ebp - 0x18], ecx
je 0x44164c
inc dword [edi + 0x2c]
mov eax, 0x4000
test word [ecx + 8], ax
je 0x441661
call fcn.00438cd3
mov ecx, dword [ebp - 0x18]
jmp 0x441663
xor eax, eax
test eax, eax
jne 0x43ff9d
cmp byte [ebx], 0x7d
jne 0x44167f
mov edx, ecx
mov ecx, dword [ebp - 0x28]
call fcn.00444bbd
jmp 0x44068a
mov eax, dword [ecx + 0xc]
cdq
mov dword [ebp - 0x1c0], eax
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x1c8], eax
imul eax, dword [ebx + 0xc], 0x28
mov dword [ebp - 0x1bc], edx
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x1b4], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0x1b0], ax
movzx eax, word [ebx + 2]
test al, 0x10
je 0x4416c0
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ecx + 0x20]
jmp 0x4416c2
xor ecx, ecx
push ecx
and eax, 0xa
lea edx, [ebp - 0x1c8]
push eax
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + 0x28]
call fcn.00436715
pop ecx
pop ecx
mov ecx, dword [ebp - 0x28]
xor edx, edx
mov dword [ecx + 0x1c], edx
jmp 0x44068a
mov ecx, dword [ebx + 4]
xor edx, edx
mov eax, dword [edi + 0x70]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x1c], eax
mov ecx, dword [eax + 0x28]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0x160], eax
mov ax, word [ebx + 0xc]
mov word [ebp - 0x158], ax
imul eax, dword [ebx + 8], 0x28
mov byte [ebp - 0x156], dl
mov dword [ebp - 0x18], ecx
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x15c], eax
lea eax, [ebp - 0xf0]
push eax
push edx
push edx
push edx
lea edx, [ebp - 0x160]
call fcn.0043369f
add esp, 0x10
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x43ff9d
cmp dword [ebp - 0xf0], eax
jne 0x441765
mov ecx, dword [ebp - 0x18]
push 4
pop eax
mov dl, al
call fcn.00436a11
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x43ff9d
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
mov dword [eax + 0x1c], ecx
mov dword [eax + 0x20], ecx
jmp 0x43ea6b
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x70]
mov eax, dword [eax + ecx*4]
mov ecx, eax
mov dword [ebp - 0x18], eax
call fcn.0043bc13
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x43ff9d
mov eax, dword [ebp - 0x18]
cmp byte [eax + 2], 0
jne 0x44181b
mov edx, dword [eax + 0x28]
lea ecx, [ebp - 0xb8]
xorps xmm0, xmm0
push ecx
mov ecx, esi
movlpd qword [ebp - 0xb8], xmm0
call fcn.0043cc18
mov dword [ebp - 0x20], eax
pop ecx
test eax, eax
jne 0x43ff9d
mov eax, 0x80
cmp byte [ebx], al
jne 0x4417ff
mov eax, dword [edi + 0x70]
mov ecx, dword [ebx + 0xc]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebp - 0xb8]
mov dword [ecx + 0x40], eax
mov eax, dword [ebp - 0xb4]
mov dword [ecx + 0x44], eax
mov word [ecx + 2], 0x100
mov eax, dword [ebx + 0x10]
mov dword [ecx + 0x18], eax
mov eax, dword [ebp - 0x18]
mov dword [ecx + 0x24], eax
jmp 0x43ea6b
mov edx, ebx
mov ecx, edi
call fcn.0043e920
mov ecx, dword [ebp - 0xb8]
mov dword [eax], ecx
mov ecx, dword [ebp - 0xb4]
jmp 0x43eb9f
imul ecx, dword [ebx + 8], 0x28
add ecx, dword [ebp - 0x24]
jmp 0x43eec5
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x70]
cmp byte [ebp - 0x31], 0x28
mov edx, dword [eax + ecx*4]
mov ecx, esi
mov eax, dword [edx + 0x2c]
mov dword [ebp - 0x170], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0x168], ax
sbb al, al
mov byte [ebp - 0x166], al
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x16c], eax
xor eax, eax
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x170]
push eax
call fcn.0043ccf7
test byte [ebx], 1
pop ecx
pop ecx
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x20], eax
jne 0x441885
neg ecx
jmp 0x441886
inc ecx
test eax, eax
jne 0x43ff9d
test ecx, ecx
jg 0x442bc4
jmp 0x43ea6b
mov edx, ebx
mov ecx, edi
call fcn.0043e920
xor ecx, ecx
mov dword [ebp - 0x1c], eax
inc ecx
mov word [eax + 8], cx
mov ecx, dword [esi + 0xac]
inc ecx
cmp dword [esi + 0xa0], ecx
jg 0x442cf6
mov eax, dword [ebx + 0xc]
xor ecx, ecx
mov edx, dword [ebx + 4]
mov dword [ebp - 0x38], ecx
lea ecx, [ebp - 0x38]
push ecx
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x18], eax
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.004371af
pop ecx
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
push 4
pop eax
mov word [ecx + 8], ax
mov eax, dword [ebp - 0x38]
cdq
mov dword [ecx], eax
mov eax, dword [ebp - 0x20]
mov dword [ecx + 4], edx
test eax, eax
jne 0x43ff9d
cmp dword [ebp - 0x38], eax
je 0x43ea6b
push dword [ebx + 4]
mov edx, dword [ebp - 0x18]
mov ecx, esi
push dword [ebp - 0x38]
call fcn.00450580
mov al, byte [ebp - 0x18]
pop ecx
inc al
pop ecx
mov byte [ebp - 0x65], al
jmp 0x43ea6b
xor edx, edx
lea eax, [ebp - 0x50]
xor ecx, ecx
mov dword [ebp - 0x50], edx
cmp dword [ebx + 0xc], edx
mov edx, dword [ebx + 4]
cmove eax, ecx
mov ecx, dword [esi + 0x10]
push eax
mov eax, dword [ebx + 8]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00436fe8
pop ecx
xor ecx, ecx
mov dword [ebp - 0x20], eax
cmp dword [ebx + 0xc], ecx
je 0x43f4d3
mov edx, dword [ebp - 0x50]
add dword [edi + 0x2c], edx
mov ecx, dword [ebx + 0xc]
test ecx, ecx
jle 0x43f4d3
mov esi, dword [ebp - 0x24]
mov eax, edx
imul ecx, ecx, 0x28
cdq
add dword [ecx + esi], eax
mov eax, esi
mov esi, dword [ebp - 0x3c]
adc dword [ecx + eax + 4], edx
jmp 0x43f4d0
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x70]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx], 1
jne 0x4419a7
mov edx, dword [ecx + 0x28]
mov ecx, esi
call fcn.00444397
jmp 0x43ea6b
mov ecx, dword [ecx + 0x28]
call fcn.00437041
jmp 0x44068a
mov edx, ebx
mov ecx, edi
call fcn.0043e920
mov esi, dword [ebx + 4]
lea edx, [ebp - 0x40]
mov dword [ebp - 0x18], eax
xor ecx, ecx
xor eax, eax
shl esi, 4
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x3c]
add esi, dword [eax + 0x10]
cmp byte [ebx], 0x87
setne cl
inc ecx
push ecx
mov ecx, dword [esi + 4]
call fcn.00436e56
mov dword [ebp - 0x20], eax
pop ecx
test eax, eax
jne 0x43ff9d
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x40]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x43eae6
inc byte [esi + 0x4e]
xor eax, eax
push eax
push eax
push eax
push dword [ebx + 0x10]
push esi
call fcn.00459208
add esp, 0x14
mov dword [ebp - 0x20], eax
dec byte [esi + 0x4e]
jmp 0x43f4d3
mov ecx, dword [ebx + 4]
lea eax, [edi + 0x6c]
push dword [ebx + 0x10]
mov dword [ebp - 0x118], ecx
add ecx, ecx
mov dword [ebp - 0x11c], eax
mov eax, dword [esi + 0x10]
push str.sqlite_master
mov dword [ebp - 0x120], esi
push dword [eax + ecx*8]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push esi
call fcn.004245bd
add esp, 0x14
mov dword [ebp - 0x18], eax
test eax, eax
je 0x442d07
xor ecx, ecx
mov byte [esi + 0x99], 1
push ecx
mov dword [ebp - 0x114], ecx
lea ecx, [ebp - 0x120]
push ecx
push fcn.0045c2d9
push eax
push esi
call fcn.00459208
mov edx, dword [ebp - 0x18]
add esp, 0x14
test eax, eax
mov ecx, esi
cmove eax, dword [ebp - 0x114]
mov dword [ebp - 0x20], eax
call fcn.00422fcd
xor eax, eax
mov byte [esi + 0x99], al
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x442d0d
jmp 0x43ea6b
mov edx, dword [ebx + 4]
mov ecx, esi
call fcn.0044d82e
jmp 0x44068a
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, esi
call fcn.0044ec85
jmp 0x43eda0
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, esi
call fcn.0044e9be
jmp 0x43eda0
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, esi
call fcn.004637c1
jmp 0x43eda0
imul eax, dword [ebx + 0xc], 0x28
imul ecx, dword [ebx + 4], 0x28
mov edx, dword [ebx + 0x10]
add eax, dword [ebp - 0x24]
add ecx, dword [ebp - 0x24]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x1c], ecx
lea ecx, [ebp - 0xec]
mov eax, dword [eax]
push ecx
mov ecx, dword [esi + 0x10]
inc eax
push eax
movzx eax, word [ebx + 2]
push dword [ebx + 8]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00437ba9
mov ecx, dword [ebp - 0x1c]
add esp, 0xc
mov dword [ebp - 0x18], eax
call fcn.004391fc
mov eax, dword [ebp - 0xec]
test eax, eax
je 0x441b76
cmp dword [ebp - 0x18], 0
je 0x43ff85
mov ecx, dword [ebp - 0x30]
dec eax
cdq
push fcn.00422f62
push 1
sub dword [ecx], eax
push 0xffffffffffffffff
sbb dword [ecx + 4], edx
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
call fcn.0043947d
add esp, 0xc
movzx edx, byte [ebp - 0x64]
mov ecx, dword [ebp - 0x1c]
call fcn.00438b5f
jmp 0x43ea6b
imul eax, dword [ebx + 4], 0x28
imul ecx, dword [ebx + 8], 0x28
add eax, dword [ebp - 0x24]
add ecx, dword [ebp - 0x24]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], ecx
test byte [eax + 8], 0x20
jne 0x441bb8
mov ecx, eax
call fcn.00439309
mov eax, dword [ebp - 0x18]
test byte [eax + 8], 0x20
je 0x43ff85
mov ecx, dword [ebp - 0x1c]
push dword [ecx + 4]
push dword [ecx]
mov ecx, dword [eax]
call fcn.00429db4
jmp 0x43ee8d
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x18], eax
test byte [eax + 8], 0x20
je 0x441c0c
mov ecx, dword [eax]
lea edx, [ebp - 0x128]
call fcn.00429fd6
test eax, eax
je 0x441c09
imul ecx, dword [ebx + 0xc], 0x28
push dword [ebp - 0x124]
push dword [ebp - 0x128]
add ecx, dword [ebp - 0x24]
call fcn.0043926f
pop ecx
pop ecx
jmp 0x442780
mov eax, dword [ebp - 0x18]
mov ecx, eax
call fcn.004391fc
jmp case.0x43ea2a.13
imul eax, dword [ebx + 4], 0x28
imul ecx, dword [ebx + 0xc], 0x28
mov edx, dword [ebx + 0x10]
mov dword [ebp - 0x18], edx
add eax, dword [ebp - 0x24]
add ecx, dword [ebp - 0x24]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x1c], ecx
test byte [eax + 8], 0x20
jne 0x441c52
mov ecx, eax
call fcn.00439309
mov eax, dword [ebp - 0x30]
test byte [eax + 8], 0x20
je 0x43ff85
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
test edx, edx
je 0x441c71
push dword [ecx + 4]
push dword [ecx]
mov ecx, dword [eax]
call fcn.0042a024
pop ecx
pop ecx
test eax, eax
jne 0x442bc4
mov edx, dword [ebp - 0x18]
test edx, edx
js 0x43ea6b
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x30]
push dword [eax + 4]
mov ecx, dword [ecx]
push dword [eax]
jmp 0x441bbf
imul ecx, dword [ebx + 0xc], 0x28
xor eax, eax
mov edx, dword [ebx + 0x10]
mov dword [ebp - 0x2c], edx
add ecx, dword [ebp - 0x24]
mov dword [ebp - 0x18], ecx
cmp word [ebx + 2], ax
je 0x441cc5
mov eax, dword [edi + 0xc4]
test eax, eax
je 0x441cc5
mov esi, dword [edx + 0x14]
cmp dword [eax + 0x1c], esi
je 0x441cba
mov eax, dword [eax + 4]
test eax, eax
jne 0x441cae
mov esi, dword [ebp - 0x3c]
test eax, eax
jne 0x43ea6b
mov eax, dword [edi + 0xcc]
cmp eax, dword [esi + 0x88]
jge 0x442d25
test byte [ecx + 8], 0x40
jne 0x441dbc
mov eax, dword [ebp - 0x2c]
mov edx, dword [edx + 0xc]
mov eax, dword [eax + 8]
add eax, edx
mov dword [ebp - 0x1c], eax
test edx, edx
jne 0x441cf7
inc eax
mov dword [ebp - 0x1c], eax
add eax, 2
imul ecx, eax, 0xa
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x2c]
add ecx, edx
mov eax, dword [eax + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
lea eax, [eax + ecx*4]
mov ecx, esi
cdq
push edx
push eax
call fcn.004231bb
mov dword [ebp - 0x28], eax
pop ecx
pop ecx
test eax, eax
je 0x43ff85
mov ecx, dword [ebp - 0x18]
call fcn.00438f18
mov eax, dword [ebp - 0x18]
sub ebx, dword [ebp - 0x60]
push 0x40
pop ecx
mov word [eax + 8], cx
mov ecx, dword [ebp - 0x28]
mov dword [eax], ecx
mov eax, dword [ebp - 0x1c]
push 0x14
mov dword [ecx + 0x3c], eax
mov eax, dword [ebp - 0x2c]
mov dword [ecx], edi
mov eax, dword [eax + 0xc]
mov dword [ecx + 0x40], eax
mov eax, ebx
cdq
pop ebx
idiv ebx
mov edx, dword [ebp - 0x2c]
imul ebx, dword [ebp - 0x30], 0x28
mov dword [ecx + 0x30], eax
mov eax, dword [edi + 0x5c]
mov dword [ecx + 0x10], eax
mov eax, dword [edi + 0x18]
mov dword [ecx + 0x38], eax
add ebx, ecx
mov eax, dword [edi + 0x70]
mov dword [ecx + 0x14], eax
mov eax, dword [edi + 0x1c]
mov dword [ecx + 0x2c], eax
mov eax, dword [edi + 0x58]
mov dword [ecx + 8], eax
mov eax, dword [edi + 0x88]
mov dword [ecx + 0x34], eax
mov eax, dword [edx + 0x14]
mov dword [ecx + 0x1c], eax
lea eax, [ecx + 0x50]
cmp eax, ebx
je 0x441dc1
mov ecx, 0x80
mov word [eax + 8], cx
mov dword [eax + 0x20], esi
add eax, 0x28
cmp eax, ebx
jne 0x441da6
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x2c]
jmp 0x441dc1
mov ecx, dword [ecx]
mov dword [ebp - 0x28], ecx
inc dword [edi + 0xcc]
lea ebx, [ecx + 0x50]
mov eax, dword [edi + 0xc4]
mov dword [ecx + 4], eax
mov eax, dword [esi + 0x20]
mov dword [ecx + 0x20], eax
mov eax, dword [esi + 0x24]
mov dword [ecx + 0x24], eax
mov eax, dword [edi + 0x2c]
mov dword [ecx + 0x44], eax
mov eax, dword [edi]
push 7
mov dword [ebp - 0x24], ebx
mov eax, dword [eax + 0x58]
mov dword [ecx + 0x48], eax
mov eax, dword [edi + 0xd8]
mov dword [ecx + 0x28], eax
xor eax, eax
mov dword [edi + 0xd8], eax
mov dword [edi + 0x2c], eax
mov dword [edi + 0xc4], ecx
mov dword [edi + 0x5c], ebx
mov eax, dword [ecx + 0x3c]
mov dword [edi + 0x18], eax
movzx eax, word [ecx + 0x40]
imul ecx, dword [edi + 0x18], 0x28
mov dword [edi + 0x1c], eax
add ecx, ebx
mov dword [edi + 0x70], ecx
mov eax, dword [edx + 0xc]
pop ebx
lea ecx, [ecx + eax*4]
mov eax, dword [ebp - 0x28]
mov dword [eax + 0x18], ecx
mov eax, dword [edx + 4]
add eax, ebx
cdq
and edx, ebx
add eax, edx
sar eax, 3
push eax
xor eax, eax
push eax
push ecx
call fcn.0047b750
mov eax, dword [ebp - 0x2c]
add esp, 0xc
mov edx, dword [eax]
mov dword [edi + 0x58], edx
mov eax, dword [eax + 4]
mov dword [ebp - 0x60], edx
mov dword [edi + 0x88], eax
lea ebx, [edx - 0x14]
jmp 0x43ea6b
mov edx, ebx
mov ecx, edi
call fcn.0043e920
mov esi, dword [edi + 0xc4]
mov ecx, 0x1000
push ecx
imul edx, dword [esi + 0x30], 0x14
mov ecx, dword [esi + 8]
mov ecx, dword [edx + ecx + 4]
add ecx, dword [ebx + 4]
imul edx, ecx, 0x28
mov ecx, eax
add edx, dword [esi + 0x10]
jmp 0x43fd2a
test dword [esi + 0x18], 0x40000
je 0x441eb6
mov eax, dword [ebx + 8]
cdq
add dword [esi + 0x1c0], eax
adc dword [esi + 0x1c4], edx
jmp 0x43ea6b
xor eax, eax
cmp dword [ebx + 4], eax
mov eax, dword [ebx + 8]
cdq
je 0x441ed2
add dword [esi + 0x1b8], eax
adc dword [esi + 0x1bc], edx
jmp 0x43ea6b
add dword [edi + 0x40], eax
adc dword [edi + 0x44], edx
jmp 0x43ea6b
xor eax, eax
cmp dword [ebx + 4], eax
je 0x441f07
mov eax, dword [esi + 0x1b8]
or eax, dword [esi + 0x1bc]
jne 0x43ea6b
mov eax, dword [esi + 0x1c0]
or eax, dword [esi + 0x1c4]
jmp 0x43fa1c
mov eax, dword [edi + 0x40]
or eax, dword [edi + 0x44]
jmp 0x441ef0
mov ecx, dword [edi + 0xc4]
test ecx, ecx
jne 0x441f5f
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0x24]
mov ecx, eax
mov dword [ebp - 0x18], eax
call fcn.0043909a
imul esi, dword [ebx + 8], 0x28
add esi, dword [ebp - 0x24]
mov ecx, esi
call fcn.0043909a
mov eax, dword [ebp - 0x18]
mov edx, dword [esi + 4]
mov ecx, dword [esi]
cmp dword [eax + 4], edx
jg 0x43eae6
jl 0x441f53
cmp dword [eax], ecx
jae 0x43eae6
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x43eae6
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x441f5d
imul eax, dword [ebx + 4], 0x28
add eax, dword [ecx + 0x10]
jmp 0x441f20
imul ecx, dword [ebx + 4], 0x28
add ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 4]
mov eax, dword [ecx]
test edx, edx
jl 0x43ea6b
jg 0x441f8f
xor edx, edx
cmp eax, edx
jbe 0x43ea6b
mov eax, dword [ebx + 0xc]
cdq
sub dword [ecx], eax
mov eax, dword [ecx + 4]
sbb eax, edx
mov dword [ecx + 4], eax
jmp 0x442bc4
imul eax, dword [ebx + 0xc], 0x28
mov edx, ebx
imul esi, dword [ebx + 4], 0x28
mov ecx, edi
add eax, dword [ebp - 0x24]
add esi, dword [ebp - 0x24]
mov dword [ebp - 0x1c], eax
call fcn.0043e920
mov ecx, dword [esi + 4]
mov edx, dword [esi]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0xd8], edx
mov dword [ebp - 0xd4], ecx
test ecx, ecx
jl 0x442036
jg 0x441fdc
xor ecx, ecx
cmp edx, ecx
jbe 0x442036
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
cmp eax, edx
jl 0x441ff0
jg 0x442007
cmp ecx, edx
ja 0x442007
xorps xmm0, xmm0
movlpd qword [ebp - 0xa0], xmm0
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0xa0]
push eax
push ecx
lea ecx, [ebp - 0xd8]
call fcn.00425f2c
pop ecx
pop ecx
test eax, eax
jne 0x442033
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xd8]
mov dword [ecx], eax
mov eax, dword [ebp - 0xd4]
mov dword [ecx + 4], eax
jmp 0x43eae6
mov eax, dword [ebp - 0x18]
or dword [eax], 0xffffffff
or dword [eax + 4], 0xffffffff
jmp 0x43eae6
imul ecx, dword [ebx + 4], 0x28
add ecx, dword [ebp - 0x24]
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
mov dword [ebp - 0x18], eax
mov eax, edx
or eax, dword [ebp - 0x18]
je 0x43ea6b
mov eax, dword [ebp - 0x18]
test eax, eax
jl 0x442bc4
jg 0x442071
test edx, edx
je 0x442bc4
sub edx, 1
mov dword [ecx], edx
sbb eax, 0
jmp 0x441f9a
imul ecx, dword [ebx + 4], 0x28
add ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 4]
mov eax, dword [ecx]
cmp edx, 0x80000000
jl 0x4420a3
jg 0x442098
test eax, eax
je 0x4420a3
sub eax, 1
mov dword [ecx], eax
sbb edx, 0
mov dword [ecx + 4], edx
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jmp 0x43fa1c
movzx eax, word [ebx + 2]
xor ecx, ecx
mov dword [ebp - 0x1c], eax
push ecx
mov ecx, esi
lea eax, [eax*4 + 0x1c]
push eax
call fcn.00423227
mov dword [ebp - 0x18], eax
pop ecx
pop ecx
test eax, eax
je 0x43ff85
xor ecx, ecx
mov dword [eax + 8], ecx
mov ecx, dword [ebx + 0x10]
mov dword [eax + 4], ecx
mov eax, ebx
sub eax, dword [ebp - 0x60]
push 0x14
cdq
pop ecx
idiv ecx
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0x1c]
mov dword [ecx + 0xc], edi
mov byte [ecx + 0x1a], al
mov word [ebx], 0xf095
mov dword [ebx + 0x10], ecx
imul edx, dword [ebx + 0xc], 0x28
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x28], eax
add edx, dword [ebp - 0x24]
mov dword [ebp - 0x18], edx
cmp dword [eax + 8], edx
je 0x442140
movzx ecx, byte [eax + 0x1a]
dec ecx
mov dword [eax + 8], edx
js 0x442140
lea edi, [ecx + 7]
push 4
lea edi, [eax + edi*4]
pop edx
mov eax, dword [ebx + 8]
add eax, ecx
imul eax, eax, 0x28
add eax, dword [ebp - 0x24]
mov dword [edi], eax
sub edi, edx
dec ecx
jns 0x442128
mov edi, dword [ebp - 0x58]
mov edx, dword [ebp - 0x18]
inc dword [edx + 0xc]
lea ecx, [ebp - 0x240]
push 1
mov edx, esi
call fcn.004391e8
mov edx, dword [ebp - 0x28]
mov eax, ecx
add esp, 4
mov ecx, dword [edx + 4]
mov dword [edx], eax
xor eax, eax
mov word [edx + 0x18], ax
lea eax, [edx + 0x1c]
push eax
movzx eax, byte [edx + 0x1a]
push eax
push edx
call dword [ecx + 0xc]
mov eax, dword [ebp - 0x28]
add esp, 0xc
cmp byte [eax + 0x19], 0
je 0x4421c3
xor ecx, ecx
cmp dword [eax + 0x14], ecx
je 0x4421aa
lea eax, [ebp - 0x240]
push eax
call fcn.0043d17b
pop ecx
push eax
push 0x4a41e8
push edi
call fcn.00439b74
mov eax, dword [ebp - 0x28]
add esp, 0xc
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x20], eax
lea ecx, [ebp - 0x240]
call fcn.00438f18
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x43ff9d
mov eax, dword [ebp - 0x28]
cmp byte [eax + 0x18], 0
je 0x43ea6b
mov eax, dword [ebx - 0x10]
test eax, eax
je 0x43ea6b
xor ecx, ecx
push ecx
push 1
jmp 0x43f280
imul eax, dword [ebx + 4], 0x28
mov edx, dword [ebx + 0x10]
add eax, dword [ebp - 0x24]
mov ecx, eax
mov dword [ebp - 0x1c], eax
call fcn.00438e08
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x442d41
movzx edx, byte [ebp - 0x64]
mov ecx, dword [ebp - 0x1c]
call fcn.00438b5f
mov ecx, dword [ebp - 0x1c]
call fcn.0043935c
test eax, eax
je 0x43ea6b
push str.string_or_blob_too_big
push edi
call fcn.00439b74
pop ecx
pop ecx
push 0x12
jmp 0x43ff9c
mov edx, dword [ebx + 4]
xor eax, eax
or dword [ebp - 8], 0xffffffff
mov ecx, esi
or dword [ebp - 0xc], 0xffffffff
mov dword [ebp - 0x10], eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0xc]
push eax
push dword [ebx + 8]
call fcn.004725aa
add esp, 0xc
mov dword [ebp - 0x20], eax
test eax, eax
je 0x442274
push 5
pop ecx
cmp eax, ecx
jne 0x43ff9d
xor eax, eax
mov dword [ebp - 0x10], 1
mov dword [ebp - 0x20], eax
imul edi, dword [ebx + 0xc], 0x28
add edi, dword [ebp - 0x24]
xor eax, eax
mov esi, eax
mov eax, dword [ebp + esi*4 - 0x10]
mov ecx, edi
cdq
push edx
push eax
call fcn.0043926f
inc esi
add edi, 0x28
pop ecx
pop ecx
cmp esi, 3
jl 0x44227f
jmp 0x43ed1d
mov edx, ebx
mov ecx, edi
call fcn.0043e920
mov edx, dword [ebx + 4]
mov ecx, dword [esi + 0x10]
add edx, edx
mov dword [ebp - 0x18], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x40], eax
mov eax, dword [ecx + edx*8 + 4]
mov ecx, eax
mov dword [ebp - 0x1c], eax
call fcn.0043736d
mov edx, eax
mov ecx, edx
mov dword [ebp - 0x2c], edx
call fcn.0042dad4
mov ecx, eax
mov eax, dword [ebp - 0x40]
cmp eax, 0xffffffff
mov dword [ebp - 0x38], ecx
cmove eax, ecx
mov ecx, edx
mov dword [ebp - 0x40], eax
call fcn.0042dad9
test eax, eax
mov eax, dword [ebp - 0x40]
cmove eax, dword [ebp - 0x38]
xor edx, edx
inc edx
mov dword [ebp - 0x40], eax
call fcn.0042d88a
mov ecx, dword [ebp - 0x40]
push 5
pop edx
cmp ecx, edx
jne 0x442331
mov ecx, eax
call fcn.00425028
test eax, eax
je 0x44231e
mov ecx, dword [ebp - 0x2c]
call fcn.0042dba7
test eax, eax
jne 0x44232b
mov eax, dword [ebp - 0x38]
mov ecx, eax
push 5
mov dword [ebp - 0x40], ecx
pop edx
jmp 0x442334
mov ecx, dword [ebp - 0x40]
push 5
pop edx
mov eax, dword [ebp - 0x38]
cmp ecx, eax
je 0x4423af
cmp eax, edx
je 0x442340
cmp ecx, edx
jne 0x4423af
cmp byte [esi + 0x43], 0
je 0x442d5b
cmp dword [esi + 0xa0], 1
jg 0x442d5b
cmp eax, edx
jne 0x442379
mov ecx, dword [ebp - 0x2c]
mov edx, esi
call fcn.0042dc80
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x4423b6
mov edx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x2c]
call fcn.0042da13
jmp 0x442393
push 4
pop ecx
cmp eax, ecx
jne 0x44238d
mov ecx, dword [ebp - 0x2c]
push 2
pop eax
mov edx, eax
call fcn.0042da13
cmp dword [ebp - 0x20], 0
jne 0x4423b6
mov ecx, dword [ebp - 0x1c]
xor edx, edx
push 5
pop eax
cmp dword [ebp - 0x40], eax
sete dl
inc edx
call fcn.00438014
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x20], eax
jmp 0x4423b2
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x4423b9
mov ecx, dword [ebp - 0x38]
mov edx, ecx
mov ecx, dword [ebp - 0x2c]
call fcn.0042da13
mov edx, dword [ebp - 0x18]
mov ecx, 0xa02
mov word [edx + 8], cx
mov ecx, eax
call fcn.00459d1a
mov ecx, eax
mov dword [edx + 0x10], eax
call fcn.00425028
mov ecx, dword [ebp - 0x18]
movzx edx, byte [ebp - 0x64]
mov dword [ecx + 0xc], eax
mov byte [ecx + 0xa], 1
call fcn.00438b5f
jmp 0x43f4d0
push dword [ebx + 4]
lea ecx, [edi + 0x6c]
mov edx, esi
call fcn.0046501b
jmp 0x4409f7
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
call fcn.0043289e
mov dword [ebp - 0x20], eax
test eax, eax
je 0x43ea6b
cmp eax, 0x65
jne 0x43ff9d
xor eax, eax
mov dword [ebp - 0x20], eax
jmp 0x442bc4
xor ecx, ecx
cmp dword [ebx + 4], ecx
jne 0x44244c
mov ecx, esi
call fcn.0043cd91
jmp 0x43ea6b
or dword [edi + 0x94], eax
jmp case.0x43ea2a.74
mov al, byte [ebx + 0xc]
mov byte [ebp - 0xf8], al
test al, al
jne 0x442471
test dword [esi + 0x18], 0x400
jne 0x43ea6b
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x10]
add eax, eax
push dword [ebp - 0xf8]
mov edx, dword [ebx + 8]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00437f5a
mov dword [ebp - 0x20], eax
pop ecx
test eax, eax
je 0x43ea6b
cmp al, 6
jne 0x43ff9d
push dword [ebx + 0x10]
push str.database_table_is_locked:__s
jmp 0x442d50
mov eax, dword [ebx + 0x10]
mov ecx, esi
mov edx, eax
mov dword [ebp - 0x18], eax
call fcn.00465fd3
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x20], eax
test edx, edx
je 0x43f4d3
mov edx, dword [edx + 8]
mov ecx, edi
call fcn.0043ce3a
jmp 0x43f4d0
xor eax, eax
push 0x28
push eax
lea eax, [ebp - 0x1f0]
push eax
call fcn.0047b750
imul edx, dword [ebx + 8], 0x28
lea ecx, [ebp - 0x1f0]
add esp, 0xc
mov dword [ebp - 0x1d0], esi
add edx, dword [ebp - 0x24]
call fcn.004393f3
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x1f0]
push eax
call fcn.0043d17b
pop ecx
test eax, eax
je 0x44252c
mov edx, dword [ebx + 4]
lea ecx, [edi + 0x6c]
push ecx
push eax
mov ecx, esi
call fcn.00465c31
pop ecx
pop ecx
mov dword [ebp - 0x20], eax
lea ecx, [ebp - 0x1f0]
call fcn.00438f18
jmp 0x43f4d0
inc dword [esi + 0xac]
mov ecx, esi
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
call fcn.00465e73
dec dword [esi + 0xac]
pop ecx
mov dword [ebp - 0x20], eax
jmp 0x43f4d3
xor eax, eax
mov dword [ebp - 0x4c], eax
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + 8]
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x442d89
mov ecx, dword [eax]
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x442d89
lea edx, [ebp - 0x4c]
push edx
push eax
call dword [ecx + 0x18]
mov edx, dword [ebp - 0x1c]
pop ecx
pop ecx
mov ecx, edi
mov dword [ebp - 0x20], eax
call fcn.0043ce3a
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x43ff9d
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x1c]
push 2
mov dword [eax], ecx
mov ecx, edi
mov edx, dword [ebx + 4]
pop eax
push eax
xor eax, eax
push 0xffffffffffffffff
push eax
call fcn.0043e6f5
add esp, 0xc
test eax, eax
je 0x442d7a
mov ecx, dword [ebp - 0x4c]
mov dword [eax + 0x28], ecx
mov eax, dword [ebp - 0x1c]
inc dword [eax + 4]
jmp 0x43ea6b
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x70]
imul edx, dword [ebx + 0xc], 0x28
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x28], eax
add edx, dword [ebp - 0x24]
mov eax, dword [eax + 0x28]
mov dword [ebp - 0x1c], eax
mov ecx, dword [edx + 0x28]
mov eax, dword [eax]
mov dword [ebp - 0x5c], eax
mov eax, dword [eax]
mov dword [ebp - 0x30], eax
mov eax, dword [edx]
mov dword [ebp - 0x48], eax
mov eax, dword [edi + 0x60]
mov dword [ebp - 0x18], eax
xor eax, eax
test ecx, ecx
jle 0x442625
mov esi, dword [ebp - 0x18]
add edx, 0x50
mov dword [esi + eax*4], edx
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x442617
mov esi, dword [ebp - 0x3c]
push dword [ebp - 0x18]
mov eax, dword [ebp - 0x30]
push ecx
push dword [ebx + 0x10]
push dword [ebp - 0x48]
push dword [ebp - 0x1c]
call dword [eax + 0x20]
mov edx, dword [ebp - 0x5c]
add esp, 0x14
mov ecx, edi
mov dword [ebp - 0x20], eax
call fcn.0043ce3a
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x43ff9d
mov eax, dword [ebp - 0x30]
push dword [ebp - 0x1c]
call dword [eax + 0x28]
pop ecx
mov ecx, dword [ebp - 0x28]
xor edx, edx
mov byte [ecx + 2], dl
jmp 0x4415ae
mov eax, dword [edi + 0x70]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
imul eax, dword [ebx + 0xc], 0x28
mov dword [ebp - 0x1c], ecx
add eax, dword [ebp - 0x24]
cmp byte [ecx + 2], 0
mov dword [ebp - 0x18], eax
je 0x44268d
mov ecx, eax
jmp 0x43eec5
mov eax, dword [ecx + 0x28]
push 0x20
mov edi, dword [eax]
xor eax, eax
push eax
lea eax, [ebp - 0x1a0]
push eax
mov esi, dword [edi]
call fcn.0047b750
mov ecx, dword [ebp - 0x18]
mov edx, 0x3e00
mov dword [ebp - 0x1a0], ecx
add esp, 0xc
mov ax, word [ecx + 8]
and ax, dx
xor edx, edx
inc edx
or ax, dx
mov word [ecx + 8], ax
lea eax, [ebp - 0x1a0]
push dword [ebx + 8]
push eax
mov eax, dword [ebp - 0x1c]
push dword [eax + 0x28]
call dword [esi + 0x2c]
add esp, 0xc
mov dword [ebp - 0x20], eax
mov edx, edi
mov edi, dword [ebp - 0x58]
mov ecx, edi
call fcn.0043ce3a
cmp dword [ebp - 0x18c], 0
mov eax, dword [ebp - 0x20]
cmovne eax, dword [ebp - 0x18c]
movzx edx, byte [ebp - 0x64]
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x20], eax
call fcn.00438b5f
mov ecx, dword [ebp - 0x18]
call fcn.0043935c
test eax, eax
jne 0x44221d
mov eax, dword [ebp - 0x20]
jmp 0x440e5f
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x70]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x18], eax
cmp byte [eax + 2], 0
jne 0x43ea6b
mov eax, dword [eax + 0x28]
push eax
mov esi, dword [eax]
mov ecx, dword [esi]
mov dword [ebp - 0x1c], ecx
call dword [ecx + 0x24]
pop ecx
mov edx, esi
mov dword [ebp - 0x20], eax
mov ecx, edi
call fcn.0043ce3a
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x43ff9d
mov eax, dword [ebp - 0x18]
push dword [eax + 0x28]
mov eax, dword [ebp - 0x1c]
call dword [eax + 0x28]
mov esi, dword [ebp - 0x3c]
pop ecx
test eax, eax
jne 0x442780
imul eax, dword [ebx + 8], 0x14
mov ebx, dword [ebp - 0x60]
add ebx, 0xffffffec
add ebx, eax
xor eax, eax
inc eax
xor ecx, ecx
cmp dword [esi + 0xf8], ecx
jne 0x442f69
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 0x8c]
jb 0x43ea71
mov ecx, dword [esi + 0x130]
test ecx, ecx
je 0x43ea71
mov eax, dword [esi + 0x138]
mov dword [ebp - 0x8c], eax
mov eax, edx
xor edx, edx
div dword [ebp - 0x8c]
mov eax, dword [ebp - 0x8c]
push dword [esi + 0x134]
sub eax, edx
add eax, dword [ebp - 0x14]
mov dword [ebp - 0x8c], eax
call ecx
pop ecx
test eax, eax
je 0x43ea6b
push 9
jmp 0x43ff9c
mov eax, dword [ebx + 0x10]
xor edx, edx
inc edx
mov eax, dword [eax + 8]
mov dword [ebp - 0x18], eax
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0x24]
mov ecx, eax
mov dword [ebp - 0x1c], eax
call fcn.00438b5f
test eax, eax
jne 0x43ff9d
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [edx]
push dword [ecx + 0x10]
push edx
call dword [eax + 0x4c]
mov edx, dword [ebp - 0x18]
pop ecx
pop ecx
mov ecx, edi
mov dword [ebp - 0x20], eax
call fcn.0043ce3a
jmp 0x440722
mov eax, dword [ebx + 0x10]
mov edx, dword [eax + 8]
mov dword [ebp - 0x30], edx
test edx, edx
je 0x442d89
mov ecx, dword [edx]
mov dword [ebp - 0x48], ecx
test ecx, ecx
je 0x442d89
mov eax, dword [ebx + 8]
mov dword [ebp - 0x1c], eax
xor eax, eax
cmp dword [ecx + 0x34], eax
je 0x43ea6b
mov al, byte [esi + 0x4a]
xor ecx, ecx
mov byte [ebp - 0x31], al
mov eax, dword [edi + 0x60]
mov dword [ebp - 0x18], eax
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x24]
cmp dword [ebp - 0x1c], ecx
jle 0x442890
mov edx, dword [ebp - 0x18]
mov dword [edx + ecx*4], eax
add eax, 0x28
inc ecx
cmp ecx, dword [ebp - 0x1c]
jl 0x442881
mov edx, dword [ebp - 0x30]
mov al, byte [ebx + 2]
mov byte [esi + 0x4a], al
lea eax, [ebp - 0x110]
push eax
push dword [ebp - 0x18]
mov eax, dword [ebp - 0x48]
push dword [ebp - 0x1c]
push edx
call dword [eax + 0x34]
mov edx, dword [ebp - 0x30]
add esp, 0x10
mov dword [ebp - 0x20], eax
mov ecx, edi
mov al, byte [ebp - 0x31]
mov byte [esi + 0x4a], al
call fcn.0043ce3a
mov eax, dword [ebp - 0x20]
xor ecx, ecx
test eax, eax
jne 0x4428e3
cmp dword [ebx + 4], ecx
je 0x4428e3
mov eax, dword [ebp - 0x110]
mov dword [esi + 0x20], eax
mov eax, dword [ebp - 0x10c]
mov dword [esi + 0x24], eax
mov eax, dword [ebp - 0x20]
cmp al, 0x13
jne 0x442919
mov eax, dword [ebx + 0x10]
cmp byte [eax + 0x10], 0
je 0x442919
movzx eax, word [ebx + 2]
push 4
pop edx
cmp ax, dx
jne 0x442903
mov eax, ecx
jmp 0x4408b2
push 5
pop ecx
cmp ax, cx
jne 0x44290e
push 2
pop eax
mov byte [edi + 0x8e], al
jmp 0x43f4d0
inc dword [edi + 0x2c]
jmp 0x43f4d0
mov edx, ebx
mov ecx, edi
call fcn.0043e920
mov edx, dword [ebx + 4]
mov esi, eax
mov eax, dword [ebp - 0x3c]
add edx, edx
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + edx*8 + 4]
call fcn.004314f7
mov dword [esi], eax
xor eax, eax
mov dword [esi + 4], eax
jmp 0x43eae6
mov edx, ebx
mov ecx, edi
call fcn.0043e920
mov edx, dword [ebx + 4]
mov ecx, dword [esi + 0x10]
add edx, edx
mov dword [ebp - 0x1c], eax
xor eax, eax
mov ecx, dword [ecx + edx*8 + 4]
mov edx, dword [ebx + 0xc]
mov dword [ebp - 0x18], ecx
test edx, edx
je 0x44297d
call fcn.004314f7
mov ecx, dword [ebp - 0x18]
cmp eax, edx
cmovb eax, edx
mov edx, eax
call fcn.00431dec
jmp 0x43f71d
movzx eax, word [ebx + 2]
xor ecx, ecx
mov dword [ebp - 0x1c], eax
push ecx
mov ecx, esi
lea eax, [eax*4 + 0x1c]
push eax
call fcn.00423227
mov dword [ebp - 0x18], eax
pop ecx
pop ecx
test eax, eax
je 0x43ff85
xor ecx, ecx
mov dword [eax], ecx
mov ecx, dword [ebx + 0x10]
mov dword [eax + 4], ecx
mov eax, ebx
sub eax, dword [ebp - 0x60]
push 0x14
pop ecx
cdq
idiv ecx
mov ecx, dword [ebp - 0x18]
push 2
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0x1c]
mov byte [ecx + 0x1a], al
mov dword [ecx + 0xc], edi
pop eax
add byte [ebx], al
mov byte [ebx + 1], 0xf0
mov dword [ebx + 0x10], ecx
imul ecx, dword [ebx + 0xc], 0x28
mov edx, dword [ebx + 0x10]
mov dword [ebp - 0x1c], edx
add ecx, dword [ebp - 0x24]
mov dword [ebp - 0x28], ecx
cmp dword [edx], ecx
je 0x442a25
movzx eax, byte [edx + 0x1a]
dec eax
mov dword [edx], ecx
mov dword [ebp - 0x18], eax
js 0x442a25
lea edi, [eax + 7]
mov esi, eax
push 4
lea edi, [edx + edi*4]
pop ecx
mov eax, dword [ebx + 8]
add eax, esi
imul eax, eax, 0x28
add eax, dword [ebp - 0x24]
mov dword [edi], eax
sub edi, ecx
dec esi
jns 0x442a0a
mov edi, dword [ebp - 0x58]
mov esi, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x28]
mov ax, word [ecx + 8]
and ax, word [ebp - 0xac]
or ax, word [ebp - 0xe8]
mov word [ecx + 8], ax
xor eax, eax
mov ecx, dword [edx + 4]
mov byte [edx + 0x19], al
lea eax, [edx + 0x1c]
push eax
movzx eax, byte [edx + 0x1a]
push eax
push edx
call dword [ecx + 0xc]
mov eax, dword [ebp - 0x1c]
add esp, 0xc
cmp byte [eax + 0x19], 0
je 0x442aa7
xor ecx, ecx
cmp dword [eax + 0x14], ecx
je 0x442a87
push dword [ebp - 0x28]
call fcn.0043d17b
pop ecx
push eax
push 0x4a41e8
push edi
call fcn.00439b74
mov eax, dword [ebp - 0x1c]
add esp, 0xc
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x1c]
push dword [ebx + 4]
lea edx, [edi + 0xd8]
mov ecx, esi
push dword [eax + 0x10]
call fcn.0043ba55
mov eax, dword [ebp - 0x20]
pop ecx
pop ecx
test eax, eax
jne 0x43ff9d
mov eax, dword [ebp - 0x28]
test byte [eax + 8], 0x12
je 0x43ea6b
movzx edx, byte [ebp - 0x64]
mov ecx, eax
call fcn.00438b5f
mov ecx, dword [ebp - 0x28]
jmp 0x442210
mov cl, byte [esi + 0x4c]
test cl, 0x81
je 0x442b7b
push 2
pop eax
test byte [edi + 0x94], al
jne 0x442b7b
mov eax, dword [ebx + 0x10]
test eax, eax
jne 0x442af7
mov eax, dword [edi + 0xbc]
test eax, eax
je 0x442b7b
mov edx, 0x80
test dl, cl
je 0x442b2c
mov ecx, dword [ebp - 0x58]
mov edx, eax
mov edi, dword [esi + 0xb8]
call fcn.0043e434
mov esi, eax
mov eax, dword [ebp - 0x3c]
push esi
push dword [eax + 0xbc]
call edi
push esi
call fcn.00422f62
mov edi, dword [ebp - 0x58]
add esp, 0xc
jmp 0x442b7b
xor ecx, ecx
inc ecx
push eax
cmp dword [esi + 0xa8], ecx
jle 0x442b6a
push str.____s
push esi
call fcn.004245bd
add esp, 0xc
mov esi, eax
mov eax, dword [ebp - 0x3c]
push esi
push edi
push dword [eax + 0xbc]
push 1
call dword [eax + 0xb8]
mov ecx, dword [ebp - 0x3c]
add esp, 0x10
mov edx, esi
call fcn.00423004
jmp 0x442b7b
push edi
push dword [esi + 0xbc]
push ecx
call dword [esi + 0xb8]
add esp, 0x10
mov eax, dword [ebx + 4]
cmp eax, dword [0x4bb748]
jl 0x442bb6
xor eax, eax
inc eax
mov ecx, eax
cmp dword [edi + 0x88], eax
jle 0x442bb1
push 0x14
pop esi
mov eax, esi
mov edx, dword [edi + 0x58]
cmp byte [eax + edx], 0x14
jne 0x442ba6
and dword [eax + edx + 4], 0
inc ecx
add eax, esi
cmp ecx, dword [edi + 0x88]
jl 0x442b98
xor eax, eax
mov dword [ebx + 4], eax
inc dword [ebx + 4]
inc dword [edi + 0xb8]
jmp 0x442bc4
mov edi, dword [ebp - 0x58]
imul eax, dword [ebx + 8], 0x14
mov ebx, dword [ebp - 0x60]
add ebx, 0xffffffec
add ebx, eax
jmp 0x43eae6
mov ecx, dword [ebx + 4]
mov dword [edi + 0x28], ecx
mov al, byte [ebx + 8]
mov byte [edi + 0x8e], al
mov dword [edi + 0x24], edx
test ecx, ecx
je 0x442c55
movzx eax, word [ebx + 2]
test ax, ax
je 0x442c28
push dword [eax*4 + 0x4a8f14]
push str._s_constraint_failed
push edi
call fcn.00439b74
add esp, 0xc
cmp dword [ebx + 0x10], 0
je 0x442c39
push dword [ebx + 0x10]
push dword [edi + 0x6c]
push str._z:__s
push esi
call fcn.004245bd
add esp, 0x10
mov dword [edi + 0x6c], eax
jmp 0x442c39
push dword [ebx + 0x10]
push 0x4a41e8
push edi
call fcn.00439b74
add esp, 0xc
push dword [edi + 0x6c]
push dword [edi + 0xbc]
push dword [ebp - 0x1c]
push str.abort_at__d_in___s_:__s
push dword [ebx + 4]
call fcn.00424723
add esp, 0x14
mov ecx, edi
call fcn.0043b69d
push 5
pop ecx
mov dword [ebp - 0x20], eax
cmp eax, ecx
je 0x442ca6
push 0x65
pop eax
xor ecx, ecx
cmp dword [edi + 0x28], ecx
push 1
pop ecx
cmovne eax, ecx
mov dword [ebp - 0x20], eax
jmp 0x440037
push str.cannot_open_savepoint___SQL_statements_in_progress
jmp 0x442ec5
push str.cannot_release_savepoint___SQL_statements_in_progress
jmp 0x442ec5
sub ebx, dword [ebp - 0x60]
mov eax, ebx
push 0x14
cdq
pop ebx
idiv ebx
mov dword [edi + 0x24], eax
xor eax, eax
mov byte [esi + 0x43], al
mov dword [ebp - 0x20], ecx
mov dword [edi + 0x28], ecx
jmp 0x440037
push dword [ebp - 0x1c]
push str.no_such_savepoint:__s
push edi
call fcn.00439b74
add esp, 0xc
jmp 0x442f61
push 8
jmp 0x43ff9c
cmp al, 5
jne 0x43ff9d
sub ebx, dword [ebp - 0x60]
mov eax, ebx
push 0x14
cdq
pop ecx
idiv ecx
mov dword [edi + 0x24], eax
mov eax, dword [ebp - 0x20]
mov dword [edi + 0x28], eax
jmp 0x440037
mov eax, 0x204
jmp 0x43ff9d
push 6
pop eax
push 2
pop ecx
mov byte [edi + 0x8e], cl
jmp 0x43ff9d
push 7
pop eax
mov dword [ebp - 0x20], eax
mov ecx, esi
call fcn.0044eb05
mov eax, dword [ebp - 0x20]
cmp eax, 7
je 0x43ff85
jmp 0x43ff9d
push str.too_many_levels_of_trigger_recursion
push edi
mov dword [ebp - 0x20], 1
call fcn.00439b74
pop ecx
pop ecx
mov eax, dword [ebp - 0x20]
jmp 0x43ff9d
push dword [ebp - 0x1c]
call fcn.0043d17b
pop ecx
push eax
push 0x4a41e8
push edi
call fcn.00439b74
add esp, 0xc
jmp 0x442d39
cmp ecx, 5
mov dword [ebp - 0x20], 1
mov eax, str.into
mov edx, str.out_of
cmovne eax, edx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
jmp 0x442d50
mov eax, dword [ebp - 0x18]
push dword [ebp - 0x4c]
call dword [eax + 0x1c]
pop ecx
jmp 0x43ff85
push 6
jmp 0x43ff9c
mov eax, dword [esi + 0x130]
test eax, eax
je 0x442db6
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 0x8c]
jb 0x442db6
push dword [esi + 0x134]
call eax
pop ecx
test eax, eax
jne 0x4427e6
xor edx, edx
mov ecx, edi
call fcn.0043b642
test eax, eax
jne 0x43ff9d
xor edx, edx
mov ecx, edi
inc edx
call fcn.0043b62a
mov eax, dword [edi + 0x20]
push 2
pop ecx
add eax, ecx
xor ecx, ecx
or eax, 1
mov dword [ebp - 0x84], ecx
mov dword [edi + 0x20], eax
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0x24]
mov dword [edi + 0x68], eax
mov dword [ebp - 0x88], eax
cmp dword [ebx + 8], ecx
jle 0x442e46
mov ecx, 0x1000
test word [eax + 8], cx
je 0x442e1c
mov ecx, eax
call fcn.00438c62
test eax, eax
jne 0x43ff85
mov eax, dword [ebp - 0x88]
mov ecx, eax
call fcn.00438d54
mov ecx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x88]
inc ecx
add eax, 0x28
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x88], eax
cmp ecx, dword [ebx + 8]
jl 0x442dfc
xor ecx, ecx
cmp byte [esi + 0x45], 0
jne 0x43ff85
push 4
pop eax
test byte [esi + 0x4c], al
je 0x442e6a
push ecx
push edi
push dword [esi + 0xbc]
push eax
call dword [esi + 0xb8]
add esp, 0x10
sub ebx, dword [ebp - 0x60]
mov eax, ebx
mov dword [ebp - 0x20], 0x64
push 0x14
cdq
pop ecx
idiv ecx
inc eax
mov dword [edi + 0x24], eax
jmp 0x440037
mov ecx, dword [ebx + 4]
movzx eax, byte [esi + 0x43]
mov dword [ebp - 0x84], ecx
cmp ecx, eax
je 0x442f36
cmp dword [ebx + 8], 0
je 0x442eb2
mov edx, 0x204
mov ecx, esi
call fcn.00471d3b
mov byte [esi + 0x43], 1
jmp 0x442ef2
test ecx, ecx
je 0x442ed4
xor eax, eax
cmp dword [esi + 0xa4], eax
jle 0x442ed4
push str.cannot_commit_transaction___SQL_statements_in_progress
push edi
call fcn.00439b74
pop ecx
pop ecx
push 5
jmp 0x43ff9c
xor edx, edx
mov ecx, edi
inc edx
call fcn.0043b642
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x440037
mov eax, dword [ebp - 0x84]
mov byte [esi + 0x43], al
mov ecx, edi
call fcn.0043b69d
push 5
pop ecx
cmp eax, ecx
jne 0x442f1c
sub ebx, dword [ebp - 0x60]
mov eax, ebx
cdq
push 0x14
pop ebx
idiv ebx
mov dword [edi + 0x24], eax
xor eax, eax
inc eax
sub al, byte [ebp - 0x84]
jmp 0x442ca0
mov ecx, esi
call fcn.0047199f
xor eax, eax
xor ecx, ecx
inc eax
cmp dword [edi + 0x28], ecx
push 0x65
pop ecx
cmove eax, ecx
jmp 0x442c74
xor edx, edx
mov eax, str.cannot_commit___no_transaction_is_active
test ecx, ecx
mov ecx, str.cannot_rollback___no_transaction_is_active
sete dl
cmp dword [ebx + 8], 0
cmove ecx, eax
test edx, edx
mov eax, str.cannot_start_a_transaction_within_a_transaction
cmove eax, ecx
push eax
push edi
call fcn.00439b74
pop ecx
pop ecx
xor eax, eax
inc eax
jmp 0x43ff9d
cmp byte [esi + 0x45], 0
push 9
pop eax
push 7
pop ecx
cmovne eax, ecx
mov ecx, eax
mov dword [ebp - 0x20], eax
mov dword [edi + 0x28], eax
call fcn.00471e3e
jmp 0x442d4a