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

Disassembly:
sub esp, 0x1e4
push ebx
mov ebx, ecx
xor edx, edx
push ebp
push esi
mov eax, edx
mov dword [esp + 0x6c], ebx
mov esi, dword [ebx]
mov ecx, dword [ebx + 0x68]
mov ebp, ecx
mov dword [esp + 0x10], eax
push edi
mov al, byte [esi + 0x4e]
mov edi, dword [ebx + 0x58]
mov byte [esp + 0x5c], al
xor eax, eax
inc eax
mov dword [esp + 0x58], ecx
cmp dword [ebx + 0x28], 7
mov dword [esp + 0x10], esi
mov byte [esp + 0x7b], dl
mov dword [esp + 0x84], edx
mov dword [esp + 0xac], edx
mov dword [esp + 0x18], edi
je 0x424c29
and dword [ebx + 0x38], edx
and dword [ebx + 0x3c], edx
and dword [ebx + 0x78], edx
and dword [esi + 0x188], edx
cmp dword [esi + 0x108], edx
jne 0x424eb6
imul ebp, dword [ebx + 0x24], 0x14
xorps xmm0, xmm0
movsd qword [esp + 0x160], xmm0
add ebp, ecx
inc edx
mov dword [esp + 0xac], edx
mov dword [esp + 0x38], ebp
mov cl, byte [ebp]
movzx edx, cl
mov byte [esp + 0x2f], cl
mov dword [esp + 0x1c], edx
cmp edx, 0xa8
ja case.0x4200ff.86
jmp dword [edx*4 + 0x424ed8]
imul ecx, dword [ebp + 4], 0x28
push 4
pop eax
push 0x14
pop esi
mov word [ecx + edi + 8], ax
mov eax, ebp
sub eax, dword [esp + 0x58]
cdq
idiv esi
cdq
mov dword [ecx + edi], eax
mov dword [ecx + edi + 4], edx
jmp 0x424a01
imul eax, dword [ebp + 4], 0x28
mov ecx, 0x80
imul ebp, dword [eax + edi], 0x14
mov word [eax + edi + 8], cx
add ebp, dword [esp + 0x58]
jmp 0x4203ed
imul ecx, dword [ebp + 4], 0x28
mov eax, dword [ebp + 0xc]
dec eax
cdq
push 4
mov dword [ecx + edi], eax
pop eax
mov word [ecx + edi + 8], ax
xor eax, eax
mov dword [ecx + edi + 4], edx
cmp dword [ebp + 8], eax
jne 0x424a01
jmp 0x4203ed
imul ecx, dword [ebp + 4], 0x28
mov edx, dword [esp + 0x58]
lea ebp, [edx - 0x14]
imul eax, dword [ecx + edi], 0x14
imul eax, dword [eax + edx + 8], 0x14
add ebp, eax
mov eax, 0x80
mov word [ecx + edi + 8], ax
jmp 0x4203ed
imul esi, dword [ebp + 4], 0x28
sub ebp, dword [esp + 0x58]
push 4
pop eax
push 0x14
add esi, edi
mov ecx, dword [esi]
mov word [esi + 8], ax
mov eax, ebp
pop ebp
cdq
idiv ebp
imul ebp, ecx, 0x14
add ebp, dword [esp + 0x58]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
mov esi, dword [esp + 0x10]
jmp 0x4203ed
imul eax, dword [ebp + 0xc], 0x28
test byte [eax + edi + 8], 1
je 0x4203ed
mov eax, ebp
sub eax, dword [esp + 0x58]
push 0x14
pop ecx
cdq
idiv ecx
mov ecx, dword [ebp + 4]
mov esi, eax
test ecx, ecx
jne 0x424a11
mov edx, dword [ebx + 0xc8]
test edx, edx
je 0x424a11
mov eax, dword [edx + 4]
mov ecx, edx
mov esi, dword [esp + 0x10]
dec dword [ebx + 0xd0]
mov dword [ebx + 0xc8], eax
mov eax, dword [ebx + 0x2c]
add dword [esi + 0x68], eax
mov dword [esi + 0x64], eax
call fcn.0041c776
mov edx, dword [ebx + 0x68]
push 4
pop ecx
mov dword [esp + 0x58], edx
cmp dword [ebp + 8], ecx
jne 0x420234
imul eax, eax, 0x14
mov eax, dword [eax + edx + 8]
dec eax
mov edi, dword [ebx + 0x58]
imul ebp, eax, 0x14
mov dword [esp + 0x18], edi
add ebp, edx
jmp 0x4203ed
mov edx, ebp
mov ecx, ebx
call fcn.00420033
mov ecx, eax
mov eax, dword [ebp + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x4203ed
mov edx, ebp
mov ecx, ebx
call fcn.00420033
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp 0x4203ed
mov edx, ebp
mov ecx, ebx
call fcn.00420033
push 8
pop ecx
mov word [eax + 8], cx
mov ecx, dword [ebp + 0x10]
movsd xmm0, qword [ecx]
movsd qword [eax], xmm0
jmp 0x4203ed
mov edx, ebp
mov ecx, ebx
call fcn.00420033
mov edx, dword [ebp + 0x10]
mov esi, eax
test edx, edx
jne 0x4202b1
xor eax, eax
mov ecx, eax
jmp 0x4202c9
mov ecx, edx
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4202b6
sub ecx, edi
mov edi, dword [esp + 0x18]
and ecx, 0x3fffffff
xor eax, eax
mov dword [ebp + 4], ecx
inc eax
cmp byte [esp + 0x5c], al
je 0x420347
xor ecx, ecx
push ecx
push eax
push 0xffffffffffffffff
mov ecx, esi
call fcn.0041acbb
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
jne 0x424099
push 2
pop eax
test byte [esi + 8], al
je 0x420313
mov al, byte [esp + 0x5c]
cmp byte [esi + 0xa], al
je 0x420313
mov dl, al
mov ecx, esi
call fcn.004067e4
test eax, eax
jne 0x424c25
xor eax, eax
mov dword [esi + 0x18], eax
mov eax, 0x800
or word [esi + 8], ax
cmp byte [ebp + 1], 0xf9
jne 0x420337
mov edx, dword [ebp + 0x10]
test edx, edx
je 0x420337
mov ecx, dword [esp + 0x10]
call fcn.0040494c
mov byte [ebp + 1], 0xf9
mov eax, dword [esi + 0x10]
mov dword [ebp + 0x10], eax
mov ecx, dword [esi + 0xc]
mov dword [ebp + 4], ecx
mov esi, dword [esp + 0x10]
cmp ecx, dword [esi + 0x6c]
jg 0x424099
mov byte [ebp], 0x48
mov edx, ebp
mov ecx, ebx
call fcn.00420033
mov ecx, 0xa02
mov word [eax + 8], cx
mov ecx, dword [ebp + 0x10]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp + 4]
mov dword [eax + 0xc], ecx
mov cl, byte [esp + 0x5c]
mov byte [eax + 0xa], cl
jmp 0x4203ed
mov edx, ebp
mov ecx, ebx
call fcn.00420033
mov edi, dword [ebp + 0xc]
xor ecx, ecx
mov edx, dword [ebp + 8]
inc ecx
cmp dword [ebp + 4], 0
mov esi, 0x101
cmovne ecx, esi
and dword [eax + 0xc], 0
lea esi, [eax + 8]
movzx ecx, cx
sub edi, edx
mov dword [esp + 0x20], ecx
xor eax, eax
mov word [esi], cx
test edi, edi
jle 0x424935
mov edx, 0x2400
lea esi, [esi + 0x28]
test word [esi], dx
je 0x4203da
lea ecx, [esi - 8]
call fcn.0041a669
mov ecx, dword [esp + 0x20]
xor eax, eax
mov edx, 0x2400
dec edi
mov word [esi], cx
mov dword [esi + 4], eax
test edi, edi
jg 0x4203bf
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
xor eax, eax
inc eax
mov edx, dword [esp + 0xac]
push 0x14
pop ecx
jmp 0x4200d7
imul ecx, dword [ebp + 4], 0x28
mov edx, 0xff41
mov ax, word [ecx + edi + 8]
and ax, dx
xor edx, edx
inc edx
or ax, dx
jmp 0x420189
mov edx, ebp
mov ecx, ebx
call fcn.00420033
mov edx, dword [ebp + 0x10]
mov esi, eax
xor eax, eax
mov ecx, esi
push eax
push eax
push dword [ebp + 4]
call fcn.0041acbb
mov al, byte [esp + 0x68]
add esp, 0xc
mov byte [esi + 0xa], al
jmp 0x4201bb
imul ecx, dword [ebp + 4], 0x28
mov esi, dword [ebx + 0x64]
add ecx, 0xffffffd8
add esi, ecx
mov ecx, esi
call fcn.0041ab99
test eax, eax
jne 0x424099
imul edx, dword [ebp + 8], 0x28
mov eax, 0x2400
add edx, edi
mov dword [esp + 0x20], edx
test word [edx + 8], ax
je 0x420481
mov ecx, edx
call fcn.0041a669
mov edx, dword [esp + 0x20]
push 5
pop eax
mov ecx, eax
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ax, word [edx + 8]
mov ecx, 0xebff
and ax, cx
mov ecx, 0x840
or ax, cx
mov word [edx + 8], ax
jmp 0x4203e5
imul edi, dword [ebp + 4], 0x28
imul esi, dword [ebp + 8], 0x28
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x38], eax
add edi, dword [esp + 0x18]
add esi, dword [esp + 0x18]
mov edx, edi
mov ecx, esi
call fcn.0041ac99
mov eax, 0x1000
test word [esi + 8], ax
je 0x4204e1
mov ecx, esi
call fcn.0041a4a2
test eax, eax
jne 0x424c25
add edi, 0x28
add esi, 0x28
sub dword [esp + 0x38], 1
jne 0x4204be
jmp 0x4203e5
imul edi, dword [ebp + 4], 0x28
imul esi, dword [ebp + 8], 0x28
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x38], eax
add edi, dword [esp + 0x18]
add esi, dword [esp + 0x18]
mov eax, 0x1000
mov edx, edi
push eax
mov ecx, esi
call fcn.0041abd8
mov eax, 0x1000
pop ecx
test word [esi + 8], ax
je 0x420534
mov ecx, esi
call fcn.0041a4a2
test eax, eax
jne 0x424c25
mov ecx, dword [esp + 0x38]
mov eax, ecx
dec ecx
mov dword [esp + 0x38], ecx
test eax, eax
je 0x4203e5
add esi, 0x28
add edi, 0x28
jmp 0x42050a
imul edx, dword [ebp + 4], 0x28
mov eax, 0x1000
imul ecx, dword [ebp + 8], 0x28
push eax
add edx, edi
add ecx, edi
call fcn.0041abd8
pop ecx
jmp 0x4203ed
imul ecx, dword [ebp + 8], 0x28
mov ebx, 0x2400
imul eax, dword [ebp + 4], 0x28
add ecx, edi
mov edx, dword [eax + edi]
test word [ecx + 8], bx
mov eax, dword [eax + edi + 4]
mov ebx, dword [esp + 0x70]
je 0x420596
push eax
push edx
call fcn.0041aad2
pop ecx
jmp 0x420566
mov dword [ecx], edx
mov dword [ecx + 4], eax
push 4
pop eax
mov word [ecx + 8], ax
jmp 0x4203ed
imul ecx, dword [ebp + 4], 0x28
imul esi, dword [ebp + 0xc], 0x28
add ecx, edi
imul edi, dword [ebp + 8], 0x28
add esi, dword [esp + 0x18]
mov dword [esp + 0x1c], ecx
movzx edx, word [ecx + 8]
add edi, dword [esp + 0x18]
mov dword [esp + 0x48], edx
mov al, byte [edi + 8]
or al, dl
test al, 1
je 0x4205f9
mov eax, 0x2400
test word [esi + 8], ax
je 0x4205e9
mov ecx, esi
call fcn.0041a669
jmp 0x4203e5
xor eax, eax
inc eax
mov word [esi + 8], ax
mov esi, dword [esp + 0x10]
jmp 0x423a7d
test dl, 0x12
jne 0x42060d
mov dl, byte [esp + 0x5c]
xor eax, eax
push eax
call fcn.0041a551
pop ecx
jmp 0x42061b
mov eax, 0x4000
test eax, edx
je 0x42063f
call fcn.0041a4e8
test eax, eax
jne 0x424c25
mov eax, dword [esp + 0x1c]
mov ecx, 0xfffd
mov ax, word [eax + 8]
and ax, cx
movzx eax, ax
mov dword [esp + 0x48], eax
mov eax, 0x4000
movzx edx, word [edi + 8]
mov dword [esp + 0x38], edx
test dl, 0x12
jne 0x420678
mov dl, byte [esp + 0x5c]
xor eax, eax
push eax
mov ecx, edi
call fcn.0041a551
pop ecx
test eax, eax
jne 0x424c25
mov ax, word [edi + 8]
mov ecx, 0xfffd
and ax, cx
movzx edx, ax
mov dword [esp + 0x38], edx
jmp 0x42069e
test eax, edx
je 0x42069e
mov ecx, edi
call fcn.0041a4e8
test eax, eax
jne 0x424c25
mov ax, word [edi + 8]
mov ecx, 0xfffd
and ax, cx
movzx eax, ax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x1c]
mov edx, dword [edi + 0xc]
mov eax, dword [eax + 0xc]
add edx, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], edx
cmp edx, dword [eax + 0x6c]
jg 0x424099
xor eax, eax
mov ecx, esi
cmp esi, edi
sete al
add edx, 3
push eax
call fcn.0041a345
pop ecx
test eax, eax
jne 0x424c25
mov ax, word [esi + 8]
mov ecx, 0x3e40
and ax, cx
push 2
pop ecx
or ax, cx
mov word [esi + 8], ax
cmp esi, edi
je 0x420709
push dword [edi + 0xc]
push dword [edi + 0x10]
push dword [esi + 0x10]
call fcn.00461aa0
mov eax, dword [esp + 0x44]
add esp, 0xc
mov word [edi + 8], ax
mov eax, dword [esp + 0x1c]
push dword [eax + 0xc]
push dword [eax + 0x10]
mov eax, dword [edi + 0xc]
add eax, dword [esi + 0x10]
push eax
call fcn.00461aa0
mov eax, dword [esp + 0x28]
xor edx, edx
mov ecx, dword [esp + 0x54]
add esp, 0xc
mov word [eax + 8], cx
mov eax, dword [esi + 0x10]
mov ecx, dword [esp + 0x20]
mov byte [ecx + eax], dl
mov eax, dword [esi + 0x10]
mov byte [ecx + eax + 1], dl
mov eax, dword [esi + 0x10]
mov byte [ecx + eax + 2], dl
mov eax, 0x200
or word [esi + 8], ax
mov al, byte [esp + 0x5c]
mov dword [esi + 0xc], ecx
mov byte [esi + 0xa], al
jmp 0x4203e5
imul eax, dword [ebp + 4], 0x28
add eax, edi
mov ecx, eax
mov dword [esp + 0x1c], eax
call fcn.00420004
imul esi, dword [ebp + 8], 0x28
movzx ebx, ax
add esi, edi
mov ecx, esi
mov dword [esp + 0x48], esi
call fcn.00420004
movzx ecx, ax
imul eax, dword [ebp + 0xc], 0x28
and cl, bl
push 4
pop edx
add eax, edi
mov dword [esp + 0x38], eax
mov ax, word [esi + 8]
mov esi, dword [esp + 0x1c]
or ax, word [esi + 8]
movzx eax, ax
test dl, cl
je 0x4209a5
mov eax, esi
mov edx, dword [eax]
mov esi, dword [eax + 4]
mov eax, dword [esp + 0x48]
mov edi, dword [eax]
mov ebx, dword [eax + 4]
movzx eax, byte [ebp]
mov dword [esp + 0x90], edi
mov dword [esp + 0x94], ebx
sub eax, 0x67
je 0x420903
sub eax, 1
je 0x420858
sub eax, 1
je 0x420848
sub eax, 1
mov eax, edx
je 0x42081e
or eax, esi
je 0x420a35
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
jne 0x420802
xor edx, edx
inc edx
xor eax, eax
mov esi, eax
push esi
push edx
push ebx
push edi
call fcn.00473c20
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], edx
jmp 0x42098a
or eax, esi
je 0x420a35
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
jne 0x42083d
xor eax, eax
cmp edi, eax
jne 0x42083d
cmp ebx, 0x80000000
je 0x420870
push esi
push edx
push ebx
push edi
call fcn.00473b70
jmp 0x42080b
push esi
push edx
lea ecx, [esp + 0x98]
call fcn.00407e44
jmp 0x420866
push esi
push edx
lea ecx, [esp + 0x98]
call fcn.00407dfa
pop ecx
pop ecx
test eax, eax
je 0x42098a
mov esi, dword [esp + 0x1c]
mov ecx, esi
call fcn.0041a7a4
mov ebx, dword [esp + 0x48]
mov ecx, ebx
movsd qword [esp + 0x20], xmm0
call fcn.0041a7a4
movzx eax, byte [ebp]
sub eax, 0x67
je 0x4209e0
sub eax, 1
je 0x4209d8
sub eax, 1
je 0x4209d0
sub eax, 1
je 0x4209b5
mov ecx, esi
call fcn.0041a73d
mov ecx, ebx
mov esi, eax
mov edi, edx
call fcn.0041a73d
mov ecx, esi
mov dword [esp + 0x90], eax
or ecx, edi
mov dword [esp + 0x94], edx
je 0x420a35
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x4208ee
xor esi, esi
inc esi
xor ecx, ecx
mov edi, ecx
push edi
push esi
push edx
push eax
call fcn.00473c20
mov ecx, eax
call fcn.00474fe0
jmp 0x4209e6
xor eax, eax
cmp esi, eax
jl 0x420938
jg 0x42090f
cmp edx, eax
jb 0x420938
cmp ebx, eax
jl 0x420978
jg 0x420919
cmp edi, eax
jbe 0x420978
or ecx, 0xffffffff
mov eax, 0x7fffffff
sub ecx, edi
sbb eax, ebx
cmp eax, esi
jg 0x420978
jl 0x420870
cmp ecx, edx
jae 0x420978
jmp 0x420870
cmp ebx, eax
jg 0x420978
jl 0x420942
cmp edi, eax
jae 0x420978
mov eax, edx
mov ecx, esi
add eax, 1
mov dword [esp + 0x60], eax
push 0
pop eax
adc ecx, eax
inc eax
sub eax, edi
mov dword [esp + 0x20], eax
mov eax, 0x80000000
sbb eax, ebx
cmp eax, ecx
jg 0x420870
jl 0x420978
mov eax, dword [esp + 0x20]
cmp eax, dword [esp + 0x60]
ja 0x420870
add edi, edx
mov dword [esp + 0x90], edi
adc ebx, esi
mov dword [esp + 0x94], ebx
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
push 4
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x420a15
xor edx, edx
inc edx
test dl, al
jne 0x420a38
jmp 0x420874
movsd xmm1, qword [esp + 0x20]
ucomisd xmm1, qword [esp + 0x160]
lahf
test ah, 0x44
jnp 0x420a35
divsd xmm0, xmm1
jmp 0x4209e6
mulsd xmm0, qword [esp + 0x20]
jmp 0x4209e6
subsd xmm0, qword [esp + 0x20]
jmp 0x4209e6
addsd xmm0, qword [esp + 0x20]
movsd qword [esp + 0x20], xmm0
mov ebx, 0x7ff00000
mov ecx, dword [esp + 0x24]
mov eax, ecx
and eax, ebx
cmp eax, ebx
jne 0x420a0b
mov eax, dword [esp + 0x20]
and ecx, 0xfffff
or eax, ecx
jne 0x420a35
mov edx, dword [esp + 0x38]
push 8
movsd qword [edx], xmm0
mov ax, word [edx + 8]
mov ecx, 0x3e40
and ax, cx
pop ecx
or ax, cx
movzx eax, ax
mov word [edx + 8], ax
mov ebx, dword [esp + 0x70]
jmp 0x4203e5
xor edx, edx
inc edx
mov eax, dword [esp + 0x38]
mov ecx, 0x2400
test word [eax + 8], cx
je 0x420a50
mov ecx, eax
call fcn.0041a669
jmp 0x420a2c
mov word [eax + 8], dx
jmp 0x420a2c
mov eax, dword [ebp + 4]
test eax, eax
je 0x4203ed
imul eax, eax, 0x28
mov ecx, 0x2400
add eax, edi
test word [eax + 8], cx
je 0x420a7c
xor ecx, ecx
push ecx
push ecx
mov ecx, eax
jmp 0x42058e
xor ecx, ecx
push 4
mov dword [eax], ecx
mov dword [eax + 4], ecx
pop ecx
mov word [eax + 8], cx
jmp 0x4203ed
imul ecx, dword [ebp + 8], 0x28
imul esi, dword [ebp + 4], 0x28
imul edx, dword [ebp + 0xc], 0x28
add ecx, edi
add esi, edi
add edx, edi
mov dword [esp + 0x48], edx
mov al, byte [ecx + 8]
or al, byte [esi + 8]
test al, 1
je 0x420ad6
mov eax, 0x2400
test word [edx + 8], ax
je 0x420ac6
mov ecx, edx
call fcn.0041a669
jmp 0x4201bb
xor eax, eax
inc eax
mov word [edx + 8], ax
mov esi, dword [esp + 0x10]
jmp case.0x4200ff.86
call fcn.0041a73d
mov ecx, esi
mov dword [esp + 0x1c], eax
mov edi, edx
call fcn.0041a73d
mov cl, byte [ebp]
mov esi, eax
cmp cl, 0x63
jne 0x420aff
mov eax, dword [esp + 0x1c]
and eax, esi
and edi, edx
jmp 0x420bd5
cmp cl, 0x64
jne 0x420b11
mov eax, dword [esp + 0x1c]
or eax, esi
or edi, edx
jmp 0x420bd5
mov eax, esi
or eax, edx
je 0x420bd1
xor eax, eax
cmp edx, eax
jg 0x420b65
jl 0x420b27
cmp esi, eax
jae 0x420b42
mov al, 0xcb
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x420b63
jg 0x420b39
cmp esi, 0xffffffc0
jbe 0x420b63
neg esi
push 0
pop eax
adc edx, eax
neg edx
cmp edx, eax
jl 0x420b4d
jg 0x420b65
cmp esi, 0x40
jae 0x420b65
mov eax, dword [esp + 0x1c]
cmp cl, 0x65
mov edx, edi
mov ecx, esi
jne 0x420b90
call fcn.00473b30
mov ecx, eax
jmp 0x420bcb
xor eax, eax
cmp edi, eax
jg 0x420b7d
jl 0x420b71
cmp dword [esp + 0x1c], eax
jae 0x420b7d
cmp cl, 0x65
je 0x420b7d
or eax, 0xffffffff
or edi, eax
jmp 0x420bd5
xorps xmm0, xmm0
movlpd qword [esp + 0x20], xmm0
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
jmp 0x420bd5
call fcn.00473b50
mov ecx, eax
mov dword [esp + 0x38], edx
xor eax, eax
mov dword [esp + 0x20], ecx
cmp edi, eax
jg 0x420bcb
jl 0x420bad
cmp dword [esp + 0x1c], eax
jae 0x420bcb
push 0x40
pop ecx
sub ecx, esi
or eax, 0xffffffff
or edx, 0xffffffff
call fcn.00473b30
mov ecx, dword [esp + 0x20]
or ecx, eax
or dword [esp + 0x38], edx
mov edx, dword [esp + 0x38]
mov eax, ecx
mov edi, edx
jmp 0x420bd5
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x48]
mov edx, 0x3e40
push 4
mov dword [ecx], eax
mov ax, word [ecx + 8]
and ax, dx
mov dword [ecx + 4], edi
pop edx
or ax, dx
mov word [ecx + 8], ax
jmp 0x4203e5
imul esi, dword [ebp + 4], 0x28
add esi, edi
mov ecx, esi
call fcn.0041a85b
mov eax, dword [ebp + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp 0x4201bb
imul esi, dword [ebp + 4], 0x28
push 4
pop edx
add esi, edi
movzx eax, word [esi + 8]
mov ecx, eax
test dl, al
jne 0x420c54
push dword [esp + 0x5c]
mov dl, 0x43
mov ecx, esi
call fcn.0041fef6
movzx eax, word [esi + 8]
pop ecx
push 4
pop edx
mov ecx, eax
test dl, al
jne 0x420c54
xor eax, eax
cmp dword [ebp + 8], eax
jne 0x424a01
push 0x14
jmp 0x424c3f
mov eax, 0x3e40
and ecx, eax
push 4
pop eax
or ecx, eax
mov word [esi + 8], cx
jmp 0x4201bb
imul ecx, dword [ebp + 4], 0x28
add ecx, edi
test byte [ecx + 8], 0x24
je case.0x4200ff.86
call fcn.0041a880
jmp 0x4203ed
imul esi, dword [ebp + 4], 0x28
mov eax, 0x4000
add esi, edi
test word [esi + 8], ax
je 0x420c9d
mov ecx, esi
call fcn.0041a4e8
jmp 0x420c9f
xor eax, eax
push dword [esp + 0x5c]
mov dl, byte [ebp + 8]
mov ecx, esi
mov dword [esp + 0x18], eax
call fcn.0041a9c0
pop ecx
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x424c40
jmp 0x4201bb
imul edi, dword [ebp + 4], 0x28
imul eax, dword [ebp + 0xc], 0x28
mov ecx, dword [esp + 0x18]
add edi, ecx
add ecx, eax
mov dword [esp + 0x1c], ecx
movzx eax, word [edi + 8]
movzx esi, word [ecx + 8]
mov ecx, esi
mov dword [esp + 0x30], eax
mov edx, ecx
mov dword [esp + 0x34], ecx
or edx, eax
test dl, 1
je 0x420d79
movzx eax, word [ebp + 2]
mov edx, 0x80
test dl, al
je 0x420d39
mov al, byte [esp + 0x34]
xor edx, edx
and al, byte [esp + 0x30]
inc edx
test dl, al
je 0x420d25
test ecx, 0x100
jne 0x420d25
mov esi, dword [esp + 0x1c]
xor eax, eax
jmp 0x420e9f
mov esi, dword [esp + 0x1c]
not ecx
and ecx, edx
lea ecx, [ecx*2 - 1]
jmp 0x420ea1
test al, 0x20
je 0x420d69
imul ecx, dword [ebp + 8], 0x28
xor edx, edx
mov edi, dword [esp + 0x18]
mov esi, 0x3e40
inc edx
mov dword [esp + 0x84], edx
mov ax, word [ecx + edi + 8]
and ax, si
or ax, dx
mov word [ecx + edi + 8], ax
jmp 0x4201bb
push 0x10
pop ecx
test cl, al
jne 0x424a01
jmp 0x4203e5
mov al, byte [ebp + 2]
and al, 0x47
cmp al, 0x43
jb 0x420e1e
push 2
pop eax
mov ecx, esi
test al, dl
je 0x420dd8
mov al, byte [esp + 0x30]
push 2
and al, 0x2e
pop ecx
cmp al, cl
jne 0x420db3
xor edx, edx
mov ecx, edi
call fcn.0041fe46
mov esi, dword [esp + 0x1c]
movzx eax, word [esi + 8]
mov dword [esp + 0x34], eax
jmp 0x420db7
mov esi, dword [esp + 0x1c]
mov al, byte [esp + 0x34]
movzx ecx, word [esp + 0x34]
and al, 0x2e
push 2
pop edx
cmp al, dl
jne 0x420ddc
xor edx, edx
mov ecx, esi
call fcn.0041fe46
movzx ecx, word [esi + 8]
jmp 0x420ddc
mov esi, dword [esp + 0x1c]
mov al, byte [edi + 8]
and al, cl
push 4
pop ecx
test cl, al
je 0x420e92
mov eax, dword [esi + 4]
mov ecx, dword [esi]
cmp eax, dword [edi + 4]
jl 0x420e0f
jg 0x420dfc
cmp ecx, dword [edi]
jbe 0x420e04
xor ecx, ecx
inc ecx
jmp 0x420ea1
cmp eax, dword [edi + 4]
jg 0x420e17
jl 0x420e0f
cmp ecx, dword [edi]
jae 0x420e17
or ecx, 0xffffffff
jmp 0x420ea1
xor eax, eax
jmp 0x420e9f
cmp al, 0x42
jne 0x420e8e
mov al, byte [esp + 0x30]
push 2
pop ecx
test cl, al
jne 0x420e58
test al, 0x2c
je 0x420e58
mov dl, byte [esp + 0x5c]
mov ecx, edi
push 1
call fcn.0041a551
mov ax, word [edi + 8]
xor ax, word [esp + 0x34]
pop ecx
mov ecx, 0x3e40
and ax, cx
xor word [esp + 0x30], ax
push 2
pop ecx
mov al, byte [esp + 0x34]
test cl, al
jne 0x420e8e
mov esi, dword [esp + 0x1c]
test al, 0x2c
je 0x420e92
mov dl, byte [esp + 0x5c]
mov ecx, esi
push 1
call fcn.0041a551
mov ax, word [esi + 8]
xor ax, word [esp + 0x38]
pop ecx
mov ecx, 0x3e40
and ax, cx
xor word [esp + 0x34], ax
jmp 0x420e92
mov esi, dword [esp + 0x1c]
push dword [ebp + 0x10]
mov edx, edi
mov ecx, esi
call fcn.0041db46
pop ecx
mov ecx, eax
movzx eax, byte [ebp]
test ecx, ecx
jns 0x420eb1
mov al, byte [eax + 0x4842fc]
jmp 0x420ec1
jne 0x420ebb
mov al, byte [eax + 0x4844ac]
jmp 0x420ec1
mov al, byte [eax + 0x47f8b0]
movzx edx, al
mov ax, word [esp + 0x30]
mov word [edi + 8], ax
mov ax, word [esp + 0x34]
mov word [esi + 8], ax
movzx eax, word [ebp + 2]
test al, 0x20
je 0x420f21
imul esi, dword [ebp + 8], 0x28
mov edi, dword [esp + 0x18]
mov dword [esp + 0x84], ecx
add esi, edi
test al, 8
je 0x420f04
xor eax, eax
cmp byte [ebp], 0x35
sete al
cmp eax, edx
je 0x4201bb
mov cx, word [esi + 8]
mov eax, 0x3e40
and cx, ax
push 4
pop eax
or cx, ax
mov eax, edx
mov word [esi + 8], cx
jmp 0x4201b5
test edx, edx
jmp 0x420d6e
cmp dword [esp + 0x84], 0
jne 0x424a01
jmp case.0x4200ff.86
test byte [ebp + 2], al
jne 0x420f44
xor eax, eax
jmp 0x420f4c
mov eax, dword [ebp - 4]
push 4
pop ecx
add eax, ecx
mov esi, dword [ebp + 4]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x80], esi
mov esi, dword [ebp + 8]
mov dword [esp + 0x6c], esi
xor esi, esi
mov dword [esp + 0x48], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x60], edx
test ecx, ecx
jle 0x4201bb
lea ecx, [edx + 0x14]
mov dword [esp + 0x38], ecx
test eax, eax
je 0x420f89
mov edi, dword [eax + esi*4]
jmp 0x420f8b
mov edi, esi
mov eax, dword [edx + 0x10]
push dword [ecx]
movzx eax, byte [eax + esi]
and eax, 1
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x70]
add eax, edi
imul edx, eax, 0x28
mov eax, dword [esp + 0x84]
add eax, edi
imul ecx, eax, 0x28
add edx, dword [esp + 0x1c]
add ecx, dword [esp + 0x1c]
call fcn.0041db46
pop ecx
mov ecx, eax
mov dword [esp + 0x84], ecx
test ecx, ecx
jne 0x420fec
mov ecx, dword [esp + 0x38]
inc esi
mov edx, dword [esp + 0x60]
push 4
pop eax
add ecx, eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x38], ecx
cmp esi, dword [esp + 0x20]
jl 0x420f80
jmp 0x4203e5
mov eax, dword [esp + 0x60]
push 2
pop edx
mov eax, dword [eax + 0x10]
test byte [esi + eax], dl
je 0x42103c
mov eax, dword [esp + 0x80]
xor edx, edx
mov ecx, dword [esp + 0x18]
add eax, edi
imul eax, eax, 0x28
inc edx
test byte [eax + ecx + 8], dl
jne 0x421023
mov eax, dword [esp + 0x6c]
add eax, edi
imul eax, eax, 0x28
test byte [eax + ecx + 8], dl
je 0x421035
mov ecx, dword [esp + 0x84]
neg ecx
mov dword [esp + 0x84], ecx
jmp 0x42103c
mov ecx, dword [esp + 0x84]
mov esi, dword [esp + 0x10]
xor eax, eax
mov edi, dword [esp + 0x18]
cmp dword [esp + 0x68], eax
je 0x4203ef
neg ecx
mov dword [esp + 0x84], ecx
jmp 0x4203ef
mov ecx, dword [esp + 0x84]
test ecx, ecx
jns 0x42106f
imul ebp, dword [ebp + 4], 0x14
jmp 0x42107b
jne 0x421077
imul ebp, dword [ebp + 8], 0x14
jmp 0x42107b
imul ebp, dword [ebp + 0xc], 0x14
add ebp, dword [esp + 0x58]
add ebp, 0xffffffec
jmp case.0x4200ff.86
imul ecx, dword [ebp + 4], 0x28
push 2
pop eax
mov edx, eax
add ecx, edi
call fcn.0041a7cb
imul ecx, dword [ebp + 8], 0x28
mov esi, eax
push 2
pop eax
mov edx, eax
add ecx, edi
call fcn.0041a7cb
imul ecx, esi, 3
cmp byte [ebp], 0x2c
jne 0x4210bb
mov dl, byte [ecx + eax + 0x4806e4]
jmp 0x4210c2
mov dl, byte [ecx + eax + 0x484470]
imul esi, dword [ebp + 0xc], 0x28
mov ecx, 0x3e40
push 2
add esi, edi
mov ax, word [esi + 8]
and ax, cx
movzx ecx, ax
pop eax
cmp dl, al
jne 0x4210e3
or ecx, 1
jmp 0x4210f1
movzx eax, dl
cdq
push 4
mov dword [esi], eax
pop eax
mov dword [esi + 4], edx
or ecx, eax
movzx eax, cx
mov word [esi + 8], ax
jmp 0x4201bb
imul ecx, dword [ebp + 4], 0x28
mov edx, dword [ebp + 0xc]
add ecx, edi
call fcn.0041a7cb
imul ecx, dword [ebp + 8], 0x28
mov ebx, 0x2400
xor eax, dword [ebp + 0x10]
cdq
add ecx, edi
test word [ecx + 8], bx
mov ebx, dword [esp + 0x70]
je 0x42112b
push edx
push eax
jmp 0x42058e
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x42059b
imul ecx, dword [ebp + 4], 0x28
xor edx, edx
imul esi, dword [ebp + 8], 0x28
inc edx
add ecx, edi
add esi, edi
test byte [ecx + 8], dl
jne 0x421181
xor edx, edx
call fcn.0041a7cb
neg eax
mov ecx, 0x2400
sbb eax, eax
inc eax
test word [esi + 8], cx
je 0x421172
xor ecx, ecx
push ecx
push eax
mov ecx, esi
call fcn.0041aad2
pop ecx
pop ecx
jmp 0x4201bb
mov dword [esi], eax
xor eax, eax
push 4
mov dword [esi + 4], eax
pop eax
jmp 0x4210f4
mov eax, 0x2400
test word [esi + 8], ax
je 0x421193
mov ecx, esi
jmp 0x420abc
mov word [esi + 8], dx
jmp 0x4201bb
imul esi, dword [ebp + 8], 0x28
mov eax, 0x2400
imul edi, dword [ebp + 4], 0x28
add esi, dword [esp + 0x18]
add edi, dword [esp + 0x18]
test word [esi + 8], ax
je 0x4211c3
mov ecx, esi
call fcn.0041a669
xor edx, edx
inc edx
jmp 0x4211ca
xor edx, edx
inc edx
mov word [esi + 8], dx
test byte [edi + 8], dl
jne 0x4203e5
push 4
pop eax
mov ecx, edi
mov word [esi + 8], ax
call fcn.0041a73d
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x4203e5
mov edi, dword [ebx + 0xc8]
test edi, edi
je 0x421231
mov eax, ebp
mov edi, dword [edi + 0x18]
sub eax, dword [ebx + 0x68]
push 0x14
cdq
pop ecx
idiv ecx
xor edx, edx
mov ecx, eax
inc edx
mov esi, ecx
and ecx, 7
shr esi, 3
shl edx, cl
movzx eax, byte [esi + edi]
test eax, edx
jne 0x424a01
bts eax, ecx
mov byte [esi + edi], al
mov ecx, dword [ebx + 0x68]
mov esi, dword [esp + 0x10]
jmp 0x421240
mov ecx, dword [ebx + 0x68]
mov eax, dword [ecx + 4]
cmp eax, dword [ebp + 4]
je 0x424a01
mov eax, dword [ecx + 4]
mov dword [ebp + 4], eax
jmp 0x4203e9
imul ecx, dword [ebp + 4], 0x28
mov edx, dword [ebp + 0xc]
add ecx, edi
call fcn.0041a7cb
test eax, eax
jmp 0x420163
xor edx, edx
xor eax, eax
cmp dword [ebp + 0xc], eax
sete dl
imul ecx, dword [ebp + 4], 0x28
add ecx, edi
call fcn.0041a7cb
test eax, eax
je 0x424a01
jmp 0x4203ed
imul eax, dword [ebp + 4], 0x28
test byte [eax + edi + 8], 1
jmp 0x420163
imul eax, dword [ebp + 4], 0x28
test byte [eax + edi + 8], 1
jmp 0x421277
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 2], 0
je 0x4203ed
imul eax, dword [ebp + 0xc], 0x28
mov ecx, 0x2400
add eax, edi
test word [eax + 8], cx
je 0x4212cb
mov ecx, eax
call fcn.0041a669
jmp 0x424a01
xor ecx, ecx
inc ecx
mov word [eax + 8], cx
jmp 0x424a01
mov ecx, dword [ebp + 4]
lea edx, [esp + 0x88]
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + ecx*4]
lea ecx, [esp + 0x54]
mov dword [esp + 0x54], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x88], eax
call fcn.0041d523
mov dword [esp + 0x14], eax
test eax, eax
jne 0x424c40
imul eax, dword [ebp + 0xc], 0x28
mov esi, dword [esp + 0x54]
mov ecx, dword [esi + 0x48]
add edi, eax
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], ecx
cmp eax, dword [ebx + 0x20]
je 0x421421
cmp byte [esi + 2], 0
je 0x421369
cmp byte [esi], 3
jne 0x421694
imul edx, dword [esi + 0x20], 0x28
add edx, dword [esp + 0x18]
mov eax, dword [edx + 0xc]
mov dword [esi + 0x54], eax
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx + 0x54]
mov dword [ecx + 0x50], eax
mov eax, dword [esp + 0x54]
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x4c], ecx
mov ecx, dword [esp + 0x54]
jmp 0x4213a6
mov ecx, edi
jmp 0x4205df
mov esi, dword [esi + 0x28]
mov ecx, esi
call fcn.00414417
mov eax, dword [esp + 0x54]
mov ecx, esi
mov edx, dword [esi + 0x2c]
mov dword [eax + 0x50], edx
mov edx, dword [esp + 0x54]
lea edx, [edx + 0x54]
call fcn.0041487c
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x10]
mov dword [ecx + 0x4c], eax
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx + 0x50]
cmp eax, dword [edx + 0x6c]
ja 0x424099
mov eax, dword [ebx + 0x20]
mov edx, 0x80
mov dword [ecx + 0x1c], eax
mov eax, dword [esp + 0x54]
mov ecx, dword [eax + 0x4c]
mov al, byte [ecx]
cmp al, dl
jae 0x4213cb
mov ecx, dword [esp + 0x1c]
movzx eax, al
mov dword [ecx], eax
mov al, 1
jmp 0x4213d4
mov edx, dword [esp + 0x1c]
call fcn.00407bb1
movzx ecx, al
mov eax, dword [esp + 0x54]
mov dword [eax + 0x30], ecx
xor ecx, ecx
mov eax, dword [esp + 0x54]
mov word [eax + 0x3a], cx
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x54]
mov eax, dword [ecx]
cmp dword [esi + 0x54], eax
jae 0x421495
xor edx, edx
mov dword [esi + 0x4c], edx
mov eax, dword [esp + 0x54]
mov dword [eax + 0x54], edx
mov eax, dword [ecx]
cmp eax, 0x18003
ja 0x4215f9
mov esi, dword [esp + 0x54]
cmp eax, dword [esi + 0x50]
ja 0x4215f9
movzx eax, word [esi + 0x3a]
mov edx, dword [esp + 0x88]
cmp eax, edx
jg 0x4216a8
mov eax, dword [ecx]
cmp dword [esi + 0x30], eax
jae 0x421668
mov ecx, dword [esi + 0x4c]
mov dword [esp + 0x44], ecx
test ecx, ecx
jne 0x42149e
push 0xa
xor eax, eax
lea edi, [esp + 0x17c]
pop ecx
rep stosd dword es:[edi], eax
mov ecx, dword [esi + 0x28]
lea eax, [esp + 0x178]
push eax
mov eax, dword [esp + 0x20]
xor edx, edx
push dword [eax]
call fcn.0041aecc
mov dword [esp + 0x1c], eax
pop ecx
pop ecx
test eax, eax
jne 0x424c40
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x188]
mov esi, dword [esp + 0x54]
mov dword [esp + 0x44], eax
mov eax, dword [ecx]
jmp 0x4214a2
mov edx, dword [esi + 0x4c]
mov dword [esp + 0x44], edx
jmp 0x4214a2
mov ecx, dword [esp + 0x1c]
movzx edx, word [esi + 0x3a]
mov ebx, dword [esi + 0x30]
mov ebp, edx
add ebx, dword [esp + 0x44]
mov dword [esp + 0x68], edx
mov ecx, dword [ecx + edx*4]
mov dword [esp + 0x34], ecx
xor ecx, ecx
add eax, dword [esp + 0x44]
mov edi, ecx
lea ecx, [edx*4 + 0x58]
mov dword [esp + 0x30], eax
mov dword [esp + 0x48], ecx
movzx eax, byte [ebx]
mov edx, 0x80
mov dword [esp + 0x74], eax
mov dword [esi + ecx], eax
mov eax, dword [esp + 0x74]
cmp eax, edx
jae 0x421500
movzx eax, al
inc ebx
movzx eax, byte [eax + 0x480de8]
cdq
add dword [esp + 0x34], eax
adc edi, edx
mov edx, dword [esp + 0x34]
jmp 0x42154d
lea edx, [esp + 0x74]
mov ecx, ebx
call fcn.00407bb1
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x74]
movzx eax, al
add ebx, eax
mov eax, dword [esp + 0x54]
mov dword [eax + edx], ecx
mov ecx, 0x80
mov eax, dword [esp + 0x74]
cmp eax, ecx
jb 0x421533
add eax, 0xfffffff4
shr eax, 1
jmp 0x42153a
movzx eax, byte [eax + 0x480de8]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x48]
add edx, eax
push 0
pop eax
mov dword [esp + 0x34], edx
adc edi, eax
mov esi, dword [esp + 0x30]
inc ebp
push 4
pop eax
add ecx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x48], ecx
mov dword [eax + ecx - 0x58], edx
cmp ebp, dword [esp + 0x88]
jg 0x421579
cmp ebx, esi
jae 0x421579
mov esi, dword [esp + 0x54]
jmp 0x4214d1
mov eax, dword [esp + 0x54]
cmp ebx, esi
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x70]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x68], ebp
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x60], edi
mov edi, dword [esp + 0x20]
jb 0x4215b0
cmp ecx, esi
ja 0x4215c3
cmp edx, dword [eax + 0x50]
jne 0x4215c3
mov esi, dword [esp + 0x60]
test esi, esi
jne 0x4215bf
jmp 0x4215b4
mov esi, dword [esp + 0x60]
test esi, esi
jb 0x421615
ja 0x4215bf
cmp edx, dword [eax + 0x50]
jbe 0x421615
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x1c]
xor edx, edx
cmp dword [ecx], edx
jne 0x4215d1
mov ecx, esi
jmp 0x421619
cmp dword [eax + 0x4c], edx
jne 0x4215f9
mov eax, 0x2400
test dword [esp + 0x180], eax
jne 0x4215ed
cmp dword [esp + 0x190], edx
je 0x4215f9
lea ecx, [esp + 0x178]
call fcn.0041a69e
mov edx, dword [esp + 0x58]
mov eax, dword [edx + 0xc]
test eax, eax
jle 0x424ab0
imul eax, eax, 0x14
lea ebp, [edx - 0x14]
add ebp, eax
jmp 0x4203e5
mov edx, dword [esp + 0x68]
sub ecx, dword [esp + 0x44]
mov word [eax + 0x3a], dx
mov eax, dword [esp + 0x54]
mov dword [eax + 0x30], ecx
xor eax, eax
mov esi, dword [esp + 0x54]
cmp dword [esi + 0x4c], eax
jne 0x42165b
mov eax, 0x2400
test dword [esp + 0x180], eax
jne 0x42164b
cmp dword [esp + 0x190], 0
je 0x42165b
lea ecx, [esp + 0x178]
call fcn.0041a69e
mov esi, dword [esp + 0x54]
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x74]
jmp 0x421670
xor eax, eax
mov ecx, eax
mov dword [esp + 0x74], ecx
movzx eax, word [esi + 0x3a]
cmp eax, edx
jg 0x4216b0
cmp byte [ebp + 1], 0xf5
jne 0x421694
mov edx, dword [ebp + 0x10]
mov eax, 0x800
push eax
mov ecx, edi
call fcn.0041abd8
pop ecx
jmp 0x4203e5
mov eax, 0x2400
test word [edi + 8], ax
jne 0x421362
jmp 0x4230ea
mov ecx, dword [esi + edx*4 + 0x58]
mov dword [esp + 0x74], ecx
mov eax, 0x2400
test word [edi + 8], ax
je 0x4216d1
mov ecx, edi
call fcn.0041a669
mov esi, dword [esp + 0x54]
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x74]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esi + 0x54]
cmp eax, dword [ebx + edx*4 + 4]
mov ebx, dword [esp + 0x70]
jb 0x421776
mov eax, dword [esi + 0x4c]
mov esi, dword [esp + 0x1c]
add eax, dword [esi + edx*4]
mov dword [esp + 0x20], eax
cmp ecx, 0xc
jae 0x421705
mov edx, ecx
mov ecx, eax
push edi
call fcn.0041d690
jmp 0x42168e
mov al, byte [esp + 0x5c]
lea esi, [ecx - 0xc]
shr esi, 1
mov dword [edi + 0xc], esi
mov byte [edi + 0xa], al
lea edx, [esi + 2]
cmp dword [edi + 0x18], edx
jge 0x42173b
xor eax, eax
mov ecx, edi
inc eax
mov word [edi + 8], ax
xor eax, eax
push eax
call fcn.0041a345
pop ecx
test eax, eax
jne 0x424c25
mov eax, dword [edi + 0x10]
jmp 0x421741
mov eax, dword [edi + 0x14]
mov dword [edi + 0x10], eax
push esi
push dword [esp + 0x24]
push eax
call fcn.00461aa0
mov eax, dword [edi + 0x10]
xor ecx, ecx
add esp, 0xc
mov byte [esi + eax], cl
mov eax, dword [edi + 0x10]
mov byte [eax + esi + 1], cl
mov eax, dword [esp + 0x74]
and eax, 1
mov ax, word [eax*2 + 0x47e724]
mov word [edi + 8], ax
jmp 0x4203e5
mov al, byte [esp + 0x5c]
mov byte [edi + 0xa], al
movzx eax, word [ebp + 2]
mov edx, dword [esp + 0x74]
test al, 0xc0
je 0x42179c
cmp edx, 0xc
jb 0x421793
test dl, 1
je 0x4217b7
mov ecx, 0x80
test cl, al
jne 0x4217b7
mov eax, 0x80
cmp edx, eax
jb 0x4217ac
lea eax, [edx - 0xc]
shr eax, 1
jmp 0x4217b3
movzx eax, byte [edx + 0x480de8]
test eax, eax
jne 0x4217c1
mov ecx, 0x495954
jmp 0x4216fd
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x54]
push edi
push eax
mov eax, dword [esp + 0x24]
mov ecx, dword [ecx + 0x28]
mov edx, dword [eax + edx*4]
call fcn.0041aecc
mov dword [esp + 0x1c], eax
pop ecx
pop ecx
test eax, eax
jne 0x424c40
mov edx, dword [esp + 0x74]
mov ecx, dword [edi + 0x10]
push edi
call fcn.0041d690
mov eax, 0xefff
and word [edi + 8], ax
pop ecx
jmp 0x4203e5
imul esi, dword [ebp + 4], 0x28
mov edi, dword [ebp + 0x10]
add esi, dword [esp + 0x18]
mov al, byte [edi]
push dword [esp + 0x5c]
mov dl, al
mov ecx, esi
call fcn.0041fef6
cmp byte [edi], 0x45
pop ecx
jne 0x421881
movzx ecx, word [esi + 8]
push 4
pop eax
mov dword [esp + 0x20], ecx
test al, cl
je 0x421881
mov edx, dword [esi]
xor eax, eax
add edx, eax
mov eax, dword [esi + 4]
adc eax, 0x8000
cmp eax, 0xffff
ja 0x421861
jb 0x421852
cmp edx, 0xffffffff
ja 0x421861
and ecx, 0xfffb
or ecx, 0x20
mov word [esi + 8], cx
jmp 0x421881
mov edx, dword [esi + 4]
mov ecx, dword [esi]
call fcn.00474fe0
mov eax, dword [esp + 0x20]
push 8
and eax, 0xfffb
movsd qword [esi], xmm0
pop ecx
or eax, ecx
mov word [esi + 8], ax
inc edi
mov al, byte [edi]
test al, al
je 0x4203e5
add esi, 0x28
jmp 0x421814
imul ecx, dword [ebp + 4], 0x28
xor eax, eax
mov edi, dword [ebp + 0x10]
xorps xmm0, xmm0
mov dword [esp + 0x34], eax
imul eax, dword [ebp + 8], 0x28
movlpd qword [esp + 0x48], xmm0
add ecx, dword [esp + 0x18]
movlpd qword [esp + 0x60], xmm0
mov dword [esp + 0x68], ecx
add eax, 0xffffffd8
add eax, ecx
mov dword [esp + 0x20], eax
mov al, byte [ebx + 0x93]
mov byte [esp + 0x2f], al
imul eax, dword [ebp + 0xc], 0x28
add eax, dword [esp + 0x18]
mov dword [esp + 0x80], eax
test edi, edi
je 0x42191c
mov al, byte [edi]
lea esi, [ecx + 8]
mov ebx, dword [esp + 0x5c]
push ebx
lea ecx, [esi - 8]
mov dl, al
call fcn.0041fef6
cmp byte [edi], 0x45
pop ecx
jne 0x42190e
movzx eax, word [esi]
push 4
pop ecx
test cl, al
je 0x42190e
and eax, 0xfffb
or eax, 0x20
mov word [esi], ax
inc edi
add esi, 0x28
mov al, byte [edi]
test al, al
jne 0x4218e8
mov ebx, dword [esp + 0x70]
mov edi, dword [esp + 0x48]
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x4c]
add eax, 0x1c
mov esi, dword [esp + 0x68]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x30], edx
mov dword [esp + 0x44], edi
mov dword [esp + 0x60], ecx
movzx ecx, word [eax - 0x14]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x6c], ecx
test cl, 1
je 0x42197d
mov esi, dword [esp + 0x1c]
mov eax, 0x4000
and ecx, eax
movzx eax, cx
mov ecx, dword [esp + 0x34]
neg eax
sbb eax, eax
and eax, 0xa
inc ecx
mov dword [esi], eax
mov dword [esp + 0x34], ecx
jmp 0x421b9e
test cl, 0x24
je 0x421adc
mov edi, dword [eax - 0x18]
mov esi, dword [eax - 0x1c]
xor eax, eax
cmp edi, eax
jg 0x4219a2
jl 0x421998
cmp esi, eax
jae 0x4219a2
mov edx, esi
mov eax, edi
not edx
not eax
jmp 0x4219a6
mov edx, esi
mov eax, edi
inc dword [esp + 0x34]
test eax, eax
ja 0x421a60
jb 0x4219b9
cmp edx, 0x7f
ja 0x4219f1
xor ecx, ecx
mov eax, esi
inc ecx
and eax, ecx
cmp eax, esi
jne 0x4219d6
xor eax, eax
cmp eax, edi
jne 0x4219d8
cmp byte [esp + 0x2f], 4
jb 0x4219d8
lea eax, [edx + 8]
jmp 0x4219e8
xor eax, eax
add dword [esp + 0x44], ecx
mov esi, dword [esp + 0x30]
adc esi, eax
mov eax, ecx
mov dword [esp + 0x30], esi
mov edx, dword [esp + 0x30]
jmp 0x421acd
test eax, eax
ja 0x421a60
jb 0x4219ff
cmp edx, 0x7fff
ja 0x421a20
push 2
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x34]
pop ecx
add edi, ecx
push 0
pop eax
adc edx, eax
mov dword [esp + 0x44], edi
mov dword [esp + 0x30], edx
mov eax, ecx
jmp 0x421ad1
test eax, eax
ja 0x421a60
jb 0x421a2e
cmp edx, 0x7fffff
ja 0x421a4e
mov edi, dword [esp + 0x44]
push 0
pop eax
add edi, 3
push 3
mov edx, dword [esp + 0x34]
adc edx, eax
mov dword [esp + 0x48], edi
mov dword [esp + 0x34], edx
pop eax
jmp 0x421ad1
test eax, eax
ja 0x421a60
jb 0x421a5c
cmp edx, 0x7fffffff
ja 0x421a60
push 4
jmp 0x421a01
cmp eax, 0x7fff
ja 0x421a7c
jb 0x421a6e
cmp edx, 0xffffffff
ja 0x421a7c
mov edi, dword [esp + 0x44]
push 0
pop eax
add edi, 6
push 5
jmp 0x421a3a
mov edx, dword [esp + 0x30]
push 8
pop eax
add dword [esp + 0x44], eax
push 0
pop eax
adc edx, eax
mov dword [esp + 0x30], edx
test cl, 0x20
je 0x421aca
mov edx, edi
mov ecx, esi
call fcn.00474fe0
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x44]
movsd qword [eax - 0x1c], xmm0
mov eax, dword [esp + 0x6c]
push 8
pop ecx
and eax, 0xffdf
or eax, ecx
push 7
mov word [esi - 0x14], ax
pop eax
jmp 0x421ad5
push 6
pop eax
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x1c]
mov dword [esi], eax
jmp 0x421b9a
test cl, 8
je 0x421b03
mov ecx, dword [esp + 0x34]
inc ecx
mov dword [eax], 7
add edi, 8
mov dword [esp + 0x34], ecx
mov dword [esp + 0x44], edi
adc edx, 0
mov dword [esp + 0x30], edx
jmp 0x421ba6
mov edi, dword [eax - 0x10]
mov eax, ecx
shr eax, 1
and eax, 1
lea eax, [eax + edi*2]
add eax, 0xc
bt ecx, 0xe
mov dword [esp + 0x6c], eax
jae 0x421b5b
mov esi, dword [esp + 0x1c]
mov ecx, dword [esi - 0x1c]
lea eax, [eax + ecx*2]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x44]
or eax, edx
je 0x421b48
lea ecx, [esi - 0x1c]
call fcn.0041a4e8
test eax, eax
jne 0x424c25
add edi, dword [esi - 0x1c]
jmp 0x421b53
mov eax, ecx
cdq
add dword [esp + 0x60], eax
adc dword [esp + 0x48], edx
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x6c]
add dword [esp + 0x44], edi
push 0
pop ecx
adc edx, ecx
xor esi, esi
mov ecx, eax
mov dword [esp + 0x30], edx
inc esi
shr ecx, 7
xor eax, eax
mov edx, eax
jmp 0x421b7e
shrd ecx, edx, 7
inc esi
shr edx, 7
mov eax, ecx
or eax, edx
jne 0x421b76
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x6c]
add dword [esp + 0x34], esi
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x44]
mov dword [ecx], eax
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x68]
add eax, 0xffffffe4
cmp eax, esi
je 0x421bb9
mov eax, dword [esp + 0x1c]
sub eax, 0x28
jmp 0x421947
cmp ecx, 0x7e
jle 0x421c1e
mov eax, ecx
xor edi, edi
cdq
inc edi
mov esi, eax
mov dword [esp + 0x6c], edi
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x421be9
shrd esi, edx, 7
inc edi
shr edx, 7
mov eax, esi
or eax, edx
jne 0x421bd7
mov dword [esp + 0x6c], edi
mov eax, dword [esp + 0x34]
add eax, edi
xor edi, edi
mov dword [esp + 0x34], eax
inc edi
cdq
mov esi, eax
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x421c14
shrd esi, edx, 7
inc edi
shr edx, 7
mov eax, esi
or eax, edx
jne 0x421c06
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x6c], edi
jge 0x421c23
inc ecx
mov dword [esp + 0x34], ecx
mov edi, dword [esp + 0x44]
mov eax, ecx
mov esi, dword [esp + 0x30]
cdq
add edi, eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x80]
mov ecx, edx
adc esi, ecx
mov dword [esp + 0x6c], ecx
mov ecx, edi
add ecx, dword [esp + 0x60]
mov eax, dword [eax + 0x18]
adc esi, dword [esp + 0x48]
cdq
cmp esi, edx
jg 0x421c6a
jl 0x421c5b
cmp ecx, eax
ja 0x421c6a
mov ecx, dword [esp + 0x80]
mov eax, dword [ecx + 0x14]
mov dword [ecx + 0x10], eax
jmp 0x421ca1
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x6c]
cdq
cmp esi, edx
jg 0x424099
jl 0x421c84
cmp ecx, eax
ja 0x424099
mov ecx, dword [esp + 0x80]
mov edx, edi
call fcn.0041a440
test eax, eax
jne 0x424c25
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x60]
push 0x10
pop eax
mov word [ecx + 8], ax
mov eax, edx
or eax, dword [esp + 0x48]
mov dword [ecx + 0xc], edi
je 0x421cc2
mov eax, 0x4010
mov dword [ecx], edx
mov word [ecx + 8], ax
mov esi, dword [ecx + 0x10]
mov ecx, 0x80
mov eax, dword [esp + 0x34]
lea edi, [esi + eax]
cmp eax, ecx
jae 0x421cdc
mov byte [esi], al
xor eax, eax
inc eax
jmp 0x421cf2
push dword [esp + 0x6c]
mov ecx, esi
push dword [esp + 0x20]
call fcn.004079f7
pop ecx
pop ecx
mov ecx, 0x80
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x20]
movzx eax, al
add esi, eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x20], eax
cmp eax, ecx
jae 0x421d11
mov byte [esi], al
xor eax, eax
inc eax
jmp 0x421d1e
xor ecx, ecx
push ecx
push eax
mov ecx, esi
call fcn.004079f7
pop ecx
pop ecx
push dword [esp + 0x20]
movzx eax, al
mov edx, ebx
mov ecx, edi
add esi, eax
call fcn.0041d57d
add ebx, 0x28
add edi, eax
pop ecx
mov ecx, 0x80
cmp ebx, ebp
jbe 0x421cff
mov ebp, dword [esp + 0x38]
jmp 0x420a2c
mov ecx, dword [ebp + 4]
lea edx, [esp + 0x118]
mov eax, dword [ebx + 0x60]
xorps xmm0, xmm0
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x28]
movlpd qword [esp + 0x118], xmm0
call fcn.00418bde
mov dword [esp + 0x14], eax
test eax, eax
jne 0x424c40
mov edx, ebp
mov ecx, ebx
call fcn.00420033
mov ecx, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x4203ed
mov eax, dword [ebp + 4]
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x68], eax
mov dword [esp + 0x20], edi
test eax, eax
jne 0x421e81
cmp dword [esi + 0xb8], eax
jg 0x424ad5
test edi, edi
jne 0x421dc3
mov esi, eax
jmp 0x421dd7
mov esi, edi
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x421dc8
sub esi, ecx
and esi, 0x3fffffff
mov edi, dword [esp + 0x10]
xor edx, edx
mov ecx, edi
mov eax, dword [edi + 0x1bc]
add eax, dword [edi + 0x1b8]
push eax
call fcn.0044d1dc
pop ecx
xor ecx, ecx
mov dword [esp + 0x14], eax
test eax, eax
jne 0x424c42
push ecx
lea eax, [esi + 0x21]
mov ecx, edi
push eax
call fcn.00404b2c
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x4203e5
lea ecx, [esi + 1]
push ecx
push dword [esp + 0x24]
lea edx, [edi + 0x20]
push edx
mov dword [edi], edx
call fcn.00461aa0
mov esi, dword [esp + 0x1c]
add esp, 0xc
cmp byte [esi + 0x4f], 0
je 0x421e43
xor eax, eax
mov byte [esi + 0x57], 1
mov byte [esi + 0x4f], al
jmp 0x421e49
inc dword [esi + 0x1b8]
mov eax, dword [esi + 0x1b0]
mov dword [edi + 0x18], eax
mov eax, dword [esi + 0x1c0]
mov ecx, dword [esi + 0x1c4]
mov dword [esi + 0x1b0], edi
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov eax, dword [esi + 0x1c8]
mov ecx, dword [esi + 0x1cc]
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], ecx
jmp 0x4203e9
mov esi, dword [esi + 0x1b0]
xor eax, eax
mov dword [esp + 0x1c], eax
jmp 0x421ea3
mov ecx, dword [esi]
mov edx, edi
call fcn.00406f6f
test eax, eax
je 0x421ebe
inc dword [esp + 0x1c]
mov esi, dword [esi + 0x18]
test esi, esi
jne 0x421e8f
push edi
push str.no_such_savepoint:__s
push ebx
call fcn.0041b419
add esp, 0xc
xor eax, eax
inc eax
jmp 0x424c40
mov ecx, dword [esp + 0x10]
xor edx, edx
mov edi, dword [esp + 0x68]
xor eax, eax
inc edx
cmp dword [ecx + 0xb8], eax
jle 0x421edb
cmp edi, edx
je 0x424ae9
lea eax, [esi + 0x18]
cmp dword [eax], 0
mov dword [esp + 0x80], eax
jne 0x421f36
cmp byte [ecx + 0x57], 0
je 0x421f36
mov dword [esp + 0x48], edx
cmp edi, edx
jne 0x421f3c
mov ecx, ebx
call fcn.0041cf49
test eax, eax
jne 0x424ce1
mov eax, dword [esp + 0x10]
mov ecx, ebx
mov byte [eax + 0x4f], 1
call fcn.0041cfa4
push 5
pop ecx
cmp eax, ecx
je 0x424af0
mov edx, dword [esp + 0x10]
xor eax, eax
mov byte [edx + 0x57], al
mov eax, dword [ebx + 0x28]
mov dword [esp + 0x14], eax
jmp 0x422046
xor eax, eax
mov dword [esp + 0x48], eax
mov edx, dword [ecx + 0x1b8]
sub edx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x14]
dec edx
mov dword [esp + 0x1c], edx
cmp edi, 2
jne 0x421fba
mov ecx, dword [ecx + 0x18]
xor edi, edi
and ecx, 1
mov dword [esp + 0x20], edi
mov dword [esp + 0x38], ecx
test eax, eax
jle 0x421fc0
xor ecx, 1
xor eax, eax
mov dword [esp + 0x60], ecx
mov eax, dword [esp + 0x10]
mov edx, 0x204
push ecx
mov ecx, dword [eax + 0x10]
mov ecx, dword [edi + ecx + 4]
call fcn.0041415f
mov dword [esp + 0x18], eax
pop ecx
test eax, eax
jne 0x424c40
mov ecx, dword [esp + 0x20]
push 0x10
pop eax
add edi, eax
inc ecx
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], ecx
mov eax, dword [eax + 0x14]
cmp ecx, eax
mov ecx, dword [esp + 0x60]
jl 0x421f70
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x1c]
jmp 0x421fc0
xor ecx, ecx
mov dword [esp + 0x38], ecx
xor edi, edi
mov dword [esp + 0x20], edi
test eax, eax
jle 0x42200d
xor eax, eax
mov eax, dword [esp + 0x10]
push edx
mov edx, dword [esp + 0x6c]
mov ecx, dword [eax + 0x10]
mov ecx, dword [edi + ecx + 4]
call fcn.0041429d
mov dword [esp + 0x18], eax
pop ecx
test eax, eax
jne 0x424c40
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
inc eax
push 0x10
pop ecx
add edi, ecx
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x10]
cmp eax, dword [ecx + 0x14]
jl 0x421fcc
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x10]
test ecx, ecx
je 0x422042
mov ecx, dword [edx + 4]
jmp 0x42202f
mov eax, dword [ecx + 0x98]
and eax, 0xfffffffd
or eax, 1
mov dword [ecx + 0x98], eax
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x42201a
mov ecx, edx
call fcn.004326b8
mov edx, dword [esp + 0x10]
or dword [edx + 0x18], 1
mov edi, dword [esp + 0x68]
mov ecx, dword [edx + 0x1b0]
cmp ecx, esi
je 0x42207e
mov ebx, dword [esp + 0x10]
mov eax, dword [ecx + 0x18]
mov edx, ecx
mov ecx, ebx
mov dword [ebx + 0x1b0], eax
call fcn.0040494c
mov ecx, dword [ebx + 0x1b0]
dec dword [ebx + 0x1b8]
cmp ecx, esi
jne 0x422054
mov ebx, dword [esp + 0x70]
mov edx, dword [esp + 0x10]
cmp edi, 1
jne 0x4220ae
mov eax, dword [esp + 0x80]
mov eax, dword [eax]
mov dword [edx + 0x1b0], eax
mov edx, esi
mov esi, dword [esp + 0x10]
mov ecx, esi
call fcn.0040494c
cmp dword [esp + 0x48], 0
jne 0x422101
dec dword [esi + 0x1b8]
jmp 0x4220e4
cmp dword [esp + 0x48], 0
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [edx + 0x1c0], eax
mov dword [edx + 0x1c4], ecx
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov esi, dword [esp + 0x10]
mov dword [esi + 0x1c8], eax
mov dword [esi + 0x1cc], ecx
je 0x4220e4
push 2
pop eax
cmp edi, eax
jne 0x422101
mov ecx, dword [esp + 0x1c]
mov edx, edi
push ecx
mov ecx, esi
call fcn.0044d1dc
mov dword [esp + 0x18], eax
pop ecx
test eax, eax
jne 0x424c40
jmp 0x422105
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x424c40
jmp 0x4203e9
mov edx, dword [ebp + 8]
xor eax, eax
mov dword [esp + 0x38], eax
test edx, edx
je 0x422131
mov eax, dword [esi + 0x20]
xor ecx, ecx
and eax, 0x100000
or eax, ecx
jne 0x424b15
mov ecx, dword [ebp + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
test esi, esi
je 0x4221f8
lea eax, [esp + 0x38]
mov ecx, esi
push eax
call fcn.00413793
mov dword [esp + 0x18], eax
pop ecx
test eax, eax
jne 0x424b1d
xor ecx, ecx
cmp dword [ebp + 8], ecx
je 0x422204
mov edx, 0x80
test byte [ebx + 0x98], dl
je 0x422204
mov edi, dword [esp + 0x10]
cmp byte [edi + 0x4f], cl
je 0x42218c
cmp dword [edi + 0xb4], 1
jle 0x42220a
mov eax, dword [ebx + 0x30]
test eax, eax
jne 0x4221a8
mov eax, dword [edi + 0x1b8]
inc dword [edi + 0x1bc]
add eax, dword [edi + 0x1bc]
mov dword [ebx + 0x30], eax
dec eax
xor edx, edx
push eax
mov ecx, edi
call fcn.0044d1dc
mov dword [esp + 0x18], eax
pop ecx
test eax, eax
jne 0x4221ca
mov edx, dword [ebx + 0x30]
mov ecx, esi
call fcn.00414281
mov dword [esp + 0x14], eax
mov esi, edi
mov eax, dword [esi + 0x1c0]
mov ecx, dword [esi + 0x1c4]
mov dword [ebx + 0x48], eax
mov dword [ebx + 0x4c], ecx
mov eax, dword [esi + 0x1c8]
mov ecx, dword [esi + 0x1cc]
mov dword [ebx + 0x50], eax
mov eax, dword [esp + 0x14]
mov dword [ebx + 0x54], ecx
xor ecx, ecx
jmp 0x42220c
mov eax, dword [esp + 0x14]
xor ecx, ecx
mov esi, dword [esp + 0x10]
jmp 0x422210
mov esi, dword [esp + 0x10]
jmp 0x422210
mov esi, edi
mov edi, dword [esp + 0x18]
cmp word [ebp + 2], cx
je 0x422241
mov eax, dword [esp + 0x38]
cmp eax, dword [ebp + 0xc]
jne 0x424b40
mov ecx, dword [ebp + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax + 4]
cmp eax, dword [ebp + 0x10]
jne 0x424b40
mov eax, dword [esp + 0x14]
xor ecx, ecx
test eax, eax
jne 0x424c42
jmp 0x4203ed
mov ecx, dword [esi + 0x10]
lea eax, [esp + 0x10c]
mov edx, dword [ebp + 0xc]
push eax
mov eax, dword [ebp + 4]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00418b76
pop ecx
mov edx, ebp
mov ecx, ebx
call fcn.00420033
mov ecx, eax
mov eax, dword [esp + 0x10c]
jmp 0x420253
mov eax, dword [esp + 0x10]
mov esi, dword [ebp + 4]
push dword [ebp + 0xc]
mov edx, dword [ebp + 8]
shl esi, 4
add esi, dword [eax + 0x10]
mov ecx, dword [esi + 4]
call fcn.00418ba0
xor edx, edx
mov dword [esp + 0x18], eax
inc edx
pop ecx
cmp dword [ebp + 8], edx
jne 0x4222bb
mov ecx, dword [esi + 0xc]
mov esi, dword [esp + 0x10]
mov eax, dword [ebp + 0xc]
mov dword [ecx], eax
or dword [esi + 0x18], edx
jmp 0x4222d0
push 2
pop eax
cmp dword [ebp + 8], eax
jne 0x4222cc
mov ecx, dword [esi + 0xc]
mov al, byte [ebp + 0xc]
mov byte [ecx + 0x4c], al
mov esi, dword [esp + 0x10]
cmp dword [ebp + 4], edx
jne 0x4222f9
mov ecx, dword [esi + 4]
jmp 0x4222ee
mov eax, dword [ecx + 0x98]
and eax, 0xfffffffd
or eax, edx
mov dword [ecx + 0x98], eax
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x4222da
and dword [ebx + 0x98], 0xfffffffc
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x424c40
jmp 0x4203ed
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x422323
mov eax, dword [esi + 0x34]
cmp eax, dword [ebp + 8]
je 0x42245e
mov cl, byte [esp + 0x2f]
mov eax, dword [ebx + 0x98]
and al, 3
cmp al, 1
je 0x424b93
mov esi, dword [ebp + 0xc]
xor eax, eax
mov edi, dword [esp + 0x10]
mov edx, dword [ebp + 8]
mov dword [esp + 0x60], eax
mov dword [esp + 0x38], eax
mov eax, esi
shl eax, 4
add eax, dword [edi + 0x10]
mov dword [esp + 0x20], edx
mov dword [esp + 0x48], esi
mov edi, dword [eax + 4]
mov dword [esp + 0x80], edi
cmp cl, 0x62
jne 0x42238e
mov eax, dword [eax + 0xc]
movzx edi, word [ebp + 2]
push 8
pop ecx
mov al, byte [eax + 0x4c]
and edi, ecx
push 4
pop ecx
or edi, ecx
cmp al, byte [ebx + 0x93]
jae 0x422392
mov byte [ebx + 0x93], al
jmp 0x422392
xor eax, eax
mov edi, eax
push 0x10
pop eax
test byte [ebp + 2], al
je 0x4223b2
imul esi, edx, 0x28
add esi, dword [esp + 0x18]
mov ecx, esi
call fcn.0041a85b
mov eax, dword [esi]
mov esi, dword [esp + 0x48]
mov dword [esp + 0x20], eax
mov al, byte [ebp + 1]
cmp al, 0xf7
jne 0x4223c6
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x38], eax
movzx eax, word [eax + 8]
jmp 0x4223d3
cmp al, 0xfd
jne 0x4223cf
mov eax, dword [ebp + 0x10]
jmp 0x4223d3
mov eax, dword [esp + 0x60]
mov edx, dword [ebp + 4]
xor ecx, ecx
push ecx
push esi
push eax
mov ecx, ebx
call fcn.0041fd80
mov esi, eax
add esp, 0xc
test esi, esi
je 0x424c25
push 4
xor ecx, ecx
pop eax
or dword [esi + 8], eax
inc ecx
mov eax, dword [esp + 0x20]
mov byte [esi + 2], cl
mov dword [esi + 0x34], eax
cmp eax, ecx
jge 0x42242c
push 0x48f0e4
push 0x108ea
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
pop edi
push edi
call fcn.004065b6
add esp, 0x14
mov dword [esp + 0x14], edi
jmp 0x422449
push dword [esi + 0x28]
mov ecx, dword [esp + 0x84]
mov edx, eax
push dword [esp + 0x3c]
push edi
call fcn.00414315
add esp, 0xc
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x18]
mov dword [esi + 0x2c], eax
cmp byte [ebp + 1], 0xf7
setne al
mov byte [esi + 4], al
mov cl, byte [ebp + 2]
mov eax, dword [esi + 0x28]
and cl, 3
mov byte [eax + 3], cl
jmp 0x420cb2
mov ecx, dword [ebp + 8]
mov eax, dword [ebx + 0x60]
mov edx, dword [ebp + 4]
mov esi, dword [eax + ecx*4]
xor eax, eax
push eax
push 0xffffffffffffffff
mov ecx, ebx
movsx eax, word [esi + 0x38]
push eax
call fcn.0041fd80
mov ecx, eax
add esp, 0xc
test ecx, ecx
je 0x424c25
xor eax, eax
inc eax
or dword [ecx + 8], eax
mov byte [ecx + 2], al
mov edi, dword [esi + 0x2c]
mov dword [ecx + 0x2c], edi
mov al, byte [esi + 4]
mov byte [ecx + 4], al
mov edx, dword [esi + 0x34]
mov dword [ecx + 0x34], edx
mov eax, dword [esi + 8]
xor eax, dword [ecx + 8]
and eax, 4
xor dword [ecx + 8], eax
mov eax, dword [ecx + 0x28]
cmp edx, 1
jge 0x4224eb
push 0x48f0e4
push 0x108ea
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004065b6
add esp, 0x14
push 0xb
pop eax
jmp 0x4224fc
mov ecx, dword [esi + 0xc]
push eax
push edi
push 4
pop eax
push eax
call fcn.00414315
add esp, 0xc
mov dword [esp + 0x14], eax
jmp 0x4203e5
mov eax, dword [ebx + 0x60]
mov edx, dword [ebp + 4]
mov esi, dword [eax + edx*4]
xor eax, eax
test esi, esi
je 0x42253b
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x1c], eax
test ecx, ecx
je 0x42265e
mov edx, dword [esi + 0x34]
push eax
call fcn.00418984
pop ecx
mov dword [esp + 0x14], eax
jmp 0x422662
push eax
push 0xffffffffffffffff
push dword [ebp + 8]
mov ecx, ebx
call fcn.0041fd80
mov esi, eax
add esp, 0xc
test esi, esi
je 0x424c25
or dword [esi + 8], 1
lea edi, [esi + 0xc]
movzx ecx, word [ebp + 2]
xor edx, edx
push 0x41e
push 5
pop eax
or ecx, eax
mov eax, dword [esp + 0x14]
push ecx
push edi
push eax
mov ecx, dword [eax]
call fcn.00412fa5
add esp, 0x10
mov dword [esp + 0x14], eax
test eax, eax
jne 0x422640
mov ecx, dword [edi]
xor edx, edx
push eax
inc edx
call fcn.00413793
mov dword [esp + 0x18], eax
pop ecx
test eax, eax
jne 0x422640
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x20], eax
mov dword [esi + 0x2c], eax
test eax, eax
je 0x42261c
movzx eax, word [ebp + 2]
mov ecx, dword [edi]
push 2
pop edx
or eax, edx
lea edx, [esi + 0x34]
push eax
call fcn.004185f8
mov dword [esp + 0x18], eax
pop ecx
test eax, eax
jne 0x422615
mov edx, dword [esi + 0x34]
cmp edx, 1
jge 0x4225fc
push 0x48f0e4
push 0x108ea
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004065b6
add esp, 0x14
mov dword [esp + 0x14], 0xb
jmp 0x422615
push dword [esi + 0x28]
mov ecx, dword [edi]
push dword [esp + 0x24]
push 4
pop eax
push eax
call fcn.00414315
add esp, 0xc
mov dword [esp + 0x14], eax
xor eax, eax
mov byte [esi + 4], al
jmp 0x422640
push dword [esi + 0x28]
xor ecx, ecx
xor eax, eax
push ecx
push 4
inc eax
pop ecx
push ecx
mov ecx, dword [edi]
mov edx, eax
mov dword [esi + 0x34], eax
call fcn.00414315
add esp, 0xc
mov dword [esp + 0x14], eax
mov byte [esi + 4], 1
mov edi, dword [esp + 0x18]
xor ecx, ecx
push 8
pop eax
cmp word [ebp + 2], ax
push 4
pop eax
cmovne ecx, eax
mov eax, dword [esi + 8]
and eax, 0xfffffffb
or ecx, eax
mov dword [esi + 8], ecx
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x424c40
inc eax
mov byte [esi + 2], al
jmp 0x420acd
mov edx, dword [ebp + 4]
mov ecx, ebx
push eax
push 0xffffffffffffffff
push dword [ebp + 8]
call fcn.0041fd80
add esp, 0xc
test eax, eax
je 0x424c29
mov ecx, dword [ebp + 0x10]
mov dword [eax + 0x2c], ecx
mov ecx, esi
mov edx, dword [ebp + 0xc]
push eax
call fcn.00425eb6
pop ecx
mov dword [esp + 0x14], eax
jmp 0x4222fd
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
mov edx, dword [eax + ecx*4]
mov edi, dword [edx + 0x10]
mov ecx, edi
mov esi, dword [edx + 0x14]
add ecx, 1
mov eax, esi
mov dword [edx + 0x10], ecx
adc eax, 0
or edi, esi
mov dword [edx + 0x14], eax
je 0x424a01
jmp 0x4203e5
mov edx, dword [ebp + 4]
mov ecx, ebx
push 3
push 0xffffffffffffffff
push dword [ebp + 0xc]
call fcn.0041fd80
add esp, 0xc
test eax, eax
je 0x424c29
xor edx, edx
inc edx
mov byte [eax + 2], dl
mov ecx, dword [ebp + 8]
mov dword [eax + 0x20], ecx
mov byte [eax + 4], dl
mov dword [eax + 0x28], 0x495964
jmp 0x4203ed
mov eax, dword [ebp + 4]
mov ecx, ebx
mov edx, dword [ebx + 0x60]
mov edx, dword [edx + eax*4]
call fcn.0041c6ca
mov ecx, dword [ebp + 4]
xor edx, edx
mov eax, dword [ebx + 0x60]
mov dword [eax + ecx*4], edx
jmp 0x4203ed
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
mov edi, dword [eax + ecx*4]
xor ecx, ecx
mov dword [esp + 0x48], ecx
mov word [edi + 2], cx
mov dword [edi + 0x1c], ecx
cmp byte [edi + 4], cl
je 0x422831
imul esi, dword [ebp + 0xc], 0x28
push 2
pop ecx
add esi, dword [esp + 0x18]
movzx eax, word [esi + 8]
mov dword [esp + 0x60], eax
and al, 0x2e
cmp al, cl
jne 0x42276d
xor edx, edx
mov ecx, esi
call fcn.0041fe46
mov ecx, esi
call fcn.0041a73d
movzx ecx, word [esi + 8]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x20], eax
mov word [esi + 8], dx
test cl, 0x24
jne 0x4227f8
test cl, 8
jne 0x4227c3
test cl, 1
jne 0x424a01
cmp dword [esp + 0x1c], 0x18
jae 0x424a01
mov ecx, dword [edi + 0x28]
lea edx, [esp + 0x7c]
call fcn.00414afd
mov dword [esp + 0x14], eax
test eax, eax
jne 0x424c40
jmp 0x42294a
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x20]
call fcn.00474fe0
movsd xmm1, qword [esi]
comisd xmm0, xmm1
jbe 0x4227e5
mov eax, dword [esp + 0x1c]
test al, 1
je 0x4227f8
dec eax
jmp 0x4227f4
comisd xmm1, xmm0
jbe 0x4227f8
mov eax, dword [esp + 0x1c]
test al, 1
jne 0x4227f8
inc eax
mov dword [esp + 0x1c], eax
mov esi, dword [esp + 0x20]
lea eax, [esp + 0x7c]
mov ecx, dword [edi + 0x28]
xor edx, edx
push eax
xor eax, eax
push eax
push dword [esp + 0x40]
push esi
call fcn.00414b4f
mov ecx, dword [esp + 0x48]
add esp, 0x10
mov dword [esp + 0x14], eax
mov dword [edi + 0x40], esi
mov dword [edi + 0x44], ecx
test eax, eax
jne 0x424c40
jmp 0x4228c8
mov eax, dword [edi + 0x28]
push 0
mov al, byte [eax + 3]
and al, 2
mov byte [esp + 0x33], al
pop eax
setne al
mov dword [esp + 0x48], eax
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x120], eax
mov ax, word [ebp + 0x10]
mov word [esp + 0x128], ax
mov eax, edx
and al, 1
mov byte [esp + 0x12e], cl
neg al
lea edx, [esp + 0x120]
sbb al, al
and al, 0xfe
inc al
mov byte [esp + 0x12a], al
imul eax, dword [ebp + 0xc], 0x28
add eax, dword [esp + 0x18]
mov dword [esp + 0x124], eax
lea eax, [esp + 0x7c]
push eax
push ecx
push ecx
push ecx
mov ecx, dword [edi + 0x28]
call fcn.00414b4f
add esp, 0x10
mov dword [esp + 0x14], eax
test eax, eax
jne 0x424c40
cmp byte [esp + 0x2f], al
je 0x4228c8
cmp byte [esp + 0x12e], 0
mov eax, dword [esp + 0x48]
mov dword [esp + 0x48], eax
je 0x42294a
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x7c]
cmp eax, 0x18
jl 0x4228fc
test ecx, ecx
js 0x4228e8
jne 0x4228e0
cmp eax, 0x19
je 0x4228e8
xor eax, eax
mov dword [esp + 0x7c], eax
jmp 0x422955
xor eax, eax
push eax
mov dword [esp + 0x80], eax
push dword [edi + 0x28]
call fcn.00415059
jmp 0x422929
test ecx, ecx
jg 0x422917
jne 0x422907
cmp eax, 0x16
je 0x422917
mov eax, dword [edi + 0x28]
xor ecx, ecx
cmp byte [eax], cl
setne cl
mov dword [esp + 0x7c], ecx
jmp 0x42294a
xor eax, eax
push eax
mov dword [esp + 0x80], eax
push dword [edi + 0x28]
call fcn.00415173
mov dword [esp + 0x1c], eax
pop ecx
pop ecx
test eax, eax
je 0x42294a
cmp eax, 0x65
jne 0x424c40
xor eax, eax
mov dword [esp + 0x7c], 1
mov dword [esp + 0x14], eax
cmp dword [esp + 0x7c], 0
jne 0x424a01
cmp dword [esp + 0x48], 0
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
je 0x4203ed
push 0x14
pop eax
add ebp, eax
jmp 0x4203ed
mov eax, dword [ebx + 0x60]
mov ecx, dword [ebp + 4]
push 8
pop edx
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebp + 8]
shl eax, 3
xor eax, dword [ecx + 8]
and eax, edx
xor dword [ecx + 8], eax
jmp 0x4203ed
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + ecx*4]
test byte [eax + 8], 8
jne 0x4203ed
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
imul esi, dword [ebp + 0xc], 0x28
mov edi, dword [eax + ecx*4]
xor ecx, ecx
mov dword [esp + 0x20], edi
add esi, dword [esp + 0x18]
cmp dword [ebp + 0x10], ecx
jle 0x4229ee
mov eax, dword [edi + 0x2c]
lea edi, [esp + 0x168]
mov dword [esp + 0x168], eax
mov ax, word [ebp + 0x10]
mov dword [esp + 0x16c], esi
mov esi, dword [esp + 0x20]
mov word [esp + 0x170], ax
mov dword [esp + 0x38], ecx
jmp 0x422a35
mov eax, 0x4000
test word [esi + 8], ax
je 0x422a08
mov ecx, esi
call fcn.0041a4e8
test eax, eax
jne 0x424c25
mov ecx, dword [edi + 0x2c]
call fcn.0041d820
mov edi, eax
mov dword [esp + 0x38], edi
test edi, edi
je 0x424c25
mov edx, dword [esi + 0xc]
push edi
push dword [esi + 0x10]
mov esi, dword [esp + 0x28]
mov ecx, dword [esi + 0x2c]
call fcn.0041d876
pop ecx
pop ecx
xor ecx, ecx
mov byte [edi + 0xa], cl
cmp byte [ebp], 0x1b
mov dword [esp + 0x20], ecx
jne 0x422a69
movzx edx, word [edi + 8]
test edx, edx
je 0x422a67
mov eax, dword [edi + 4]
add eax, 8
test byte [eax], 1
jne 0x422a5f
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x422a50
jmp 0x422a67
mov dword [esp + 0x20], 1
xor ecx, ecx
lea eax, [esp + 0xc4]
mov edx, edi
push eax
push ecx
push ecx
push ecx
mov ecx, dword [esi + 0x28]
call fcn.00414b4f
mov edx, dword [esp + 0x48]
add esp, 0x10
mov dword [esp + 0x14], eax
test edx, edx
je 0x422a9a
mov ecx, dword [esp + 0x10]
call fcn.0040494c
mov eax, dword [esp + 0x14]
xor ecx, ecx
test eax, eax
jne 0x424c42
mov eax, dword [esp + 0xc4]
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0xc4]
test eax, eax
sete cl
test eax, eax
setne al
mov byte [esi + 2], al
xor eax, eax
mov byte [esi + 3], al
mov dword [esi + 0x1c], eax
cmp byte [ebp], 0x1d
jne 0x422ad7
test ecx, ecx
jmp 0x420d6e
cmp dword [esp + 0x20], eax
jne 0x424a01
test ecx, ecx
jmp 0x4226ca
imul esi, dword [ebp + 0xc], 0x28
add esi, edi
test byte [esi + 8], 0x24
jne case.0x4200ff.31
push 0xa
pop ecx
push dword [esp + 0x5c]
lea edi, [esp + 0x1a4]
mov dl, 0x43
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x1a4]
call fcn.0041fef6
pop ecx
push 4
pop eax
test byte [esp + 0x1a8], al
je 0x424a01
mov edi, dword [esp + 0x1a0]
mov edx, dword [esp + 0x1a4]
jmp 0x422b42
imul eax, dword [ebp + 0xc], 0x28
mov ecx, dword [esp + 0x18]
mov edi, dword [eax + edi]
mov edx, dword [eax + ecx + 4]
mov dword [esp + 0x20], edx
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
mov esi, dword [eax + ecx*4]
xor eax, eax
mov ecx, dword [esi + 0x28]
mov dword [esp + 0xa8], eax
lea eax, [esp + 0xa8]
push eax
xor eax, eax
push eax
push edx
push edi
xor edx, edx
call fcn.00414b4f
mov dword [esp + 0x24], eax
add esp, 0x10
mov eax, dword [esp + 0x20]
mov dword [esi + 0x44], eax
xor eax, eax
mov dword [esi + 0x40], edi
mov word [esi + 2], ax
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0xa8]
mov dword [esi + 0x20], eax
cmp dword [esp + 0xa8], 0
je 0x422bb7
xor eax, eax
cmp dword [ebp + 8], eax
jne 0x424a01
push 0x48f0e4
push 0x159cf
jmp 0x424aba
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x424c40
jmp 0x4203e5
mov edx, ebp
mov ecx, ebx
call fcn.00420033
mov edx, dword [ebp + 4]
mov ecx, dword [ebx + 0x60]
push 0
mov ecx, dword [ecx + edx*4]
mov edx, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x14]
mov dword [eax + 4], ecx
mov dword [eax], edx
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + ecx*4]
pop ecx
add dword [eax + 0x10], 1
adc dword [eax + 0x14], ecx
jmp 0x4203ed
xorps xmm0, xmm0
xor eax, eax
mov edx, ebp
movlpd qword [esp + 0x60], xmm0
mov ecx, ebx
mov dword [esp + 0x48], eax
call fcn.00420033
mov edx, dword [ebp + 4]
mov ecx, dword [ebx + 0x60]
push 2
mov dword [esp + 0x3c], eax
pop eax
mov edi, dword [ecx + edx*4]
mov dword [esp + 0x20], edi
test byte [edi + 8], al
jne 0x422c99
mov ecx, dword [edi + 0x28]
lea edx, [esp + 0x48]
call fcn.00414afd
mov dword [esp + 0x14], eax
test eax, eax
jne 0x424c40
cmp dword [esp + 0x48], eax
je 0x422c5a
mov dword [esp + 0x60], 1
mov dword [esp + 0x64], eax
jmp 0x422c99
mov esi, dword [edi + 0x28]
mov ecx, esi
call fcn.00414417
mov ecx, dword [esi + 0x24]
mov eax, dword [esi + 0x20]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
cmp ecx, 0x7fffffff
jl 0x422c89
jg 0x422c81
cmp eax, 0xffffffff
jb 0x422c89
push 2
pop eax
or dword [edi + 8], eax
jmp 0x422c99
add eax, 1
push 0
pop edx
adc ecx, edx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x422d24
mov eax, dword [ebx + 0xc8]
test eax, eax
jne 0x422d08
imul esi, edx, 0x28
add esi, dword [esp + 0x18]
mov ecx, esi
call fcn.0041a85b
mov ecx, dword [esi]
mov edx, dword [esi + 4]
cmp ecx, 0xffffffff
jne 0x422cd2
cmp edx, 0x7fffffff
je 0x422d88
push 2
pop eax
test byte [edi + 8], al
jne 0x422d88
mov edi, dword [esp + 0x64]
add ecx, 1
push 0
pop eax
adc edx, eax
cmp edi, edx
jg 0x422d17
jl 0x422cf8
mov eax, dword [esp + 0x60]
cmp eax, ecx
jae 0x422d1b
mov eax, ecx
mov edi, edx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edi
jmp 0x422d1b
mov eax, ecx
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x422d06
imul esi, edx, 0x28
add esi, dword [eax + 0x10]
jmp 0x422cb5
mov eax, dword [esp + 0x60]
mov dword [esi + 4], edi
mov edi, dword [esp + 0x20]
mov dword [esi], eax
push 2
pop eax
test byte [edi + 8], al
je 0x422d8f
xor eax, eax
mov esi, eax
lea eax, [esp + 0x60]
push eax
push 8
pop eax
push eax
call fcn.00406636
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
and eax, 0x3fffffff
push 0
add ecx, 1
pop edx
adc eax, edx
mov dword [esp + 0x68], ecx
lea edx, [esp + 0x50]
mov dword [esp + 0x6c], eax
push edx
xor edx, edx
push edx
push eax
push ecx
mov ecx, dword [edi + 0x28]
call fcn.00414b4f
add esp, 0x18
mov dword [esp + 0x14], eax
test eax, eax
jne 0x424c40
cmp dword [esp + 0x48], eax
jne 0x422d8f
inc esi
cmp esi, 0x64
jl 0x422d30
push 0xd
jmp 0x424c3f
mov edx, dword [esp + 0x38]
xor eax, eax
mov byte [edi + 3], al
mov dword [edi + 0x1c], eax
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x4203e5
imul esi, dword [ebp + 8], 0x28
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
mov edx, dword [esp + 0x18]
add esi, edi
mov edi, dword [eax + ecx*4]
imul eax, dword [ebp + 0xc], 0x28
cmp byte [ebp + 1], 0xfa
mov ecx, dword [eax + edx]
mov eax, dword [eax + edx + 4]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x60], eax
mov dword [esp + 0xd8], ecx
mov dword [esp + 0xdc], eax
jne 0x422e0a
mov eax, dword [esp + 0x10]
xor ecx, ecx
cmp dword [eax + 0xe8], ecx
je 0x422e0a
movsx ecx, byte [edi + 1]
mov eax, dword [eax + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8]
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x20], ecx
jmp 0x422e10
xor eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x38], eax
movzx eax, word [ebp + 2]
mov edx, eax
test al, 1
je 0x422e25
inc dword [ebx + 0x2c]
movzx edx, word [ebp + 2]
movzx ecx, dx
test dl, 0x20
je 0x422e43
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x48]
mov dword [ecx + 0x28], eax
mov eax, dword [esp + 0x60]
mov dword [ecx + 0x2c], eax
movzx ecx, word [ebp + 2]
mov eax, dword [esi + 0x10]
mov dword [esp + 0xe0], eax
mov eax, dword [esi + 0xc]
push 0x10
mov dword [esp + 0xf0], eax
pop eax
test al, cl
je 0x422e63
mov edx, dword [edi + 0x20]
jmp 0x422e67
xor eax, eax
mov edx, eax
mov eax, 0x4000
test word [esi + 8], ax
push 0
pop eax
je 0x422e82
mov eax, dword [esi]
mov dword [esp + 0xf0], eax
xor eax, eax
jmp 0x422e89
mov dword [esp + 0xf0], eax
push edx
and ecx, 0xa
mov dword [esp + 0xd4], eax
push ecx
mov ecx, dword [edi + 0x28]
lea edx, [esp + 0xd8]
call fcn.00417f2a
pop ecx
pop ecx
xor ecx, ecx
mov dword [esp + 0x14], eax
mov byte [edi + 3], cl
mov dword [edi + 0x1c], ecx
test eax, eax
jne 0x424c42
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x10]
test eax, eax
je 0x4203e9
push dword [esp + 0xdc]
push dword [esp + 0xdc]
push dword [eax]
push dword [esp + 0x44]
push 4
pop eax
test byte [ebp + 2], al
push 0x12
pop eax
push 0x17
pop ecx
cmovne eax, ecx
push eax
push dword [esi + 0xe4]
call dword [esi + 0xe8]
add esp, 0x18
jmp 0x4203e9
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 4]
mov dword [esp + 0x48], eax
mov eax, dword [ebx + 0x60]
mov edi, dword [eax + ecx*4]
xor eax, eax
cmp byte [ebp + 1], 0xfa
jne 0x422f63
cmp dword [esi + 0xe8], eax
je 0x422f63
movsx ecx, byte [edi + 1]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov esi, dword [ebp + 0x10]
push 2
mov dword [esp + 0x3c], esi
mov eax, dword [eax + ecx*8]
mov dword [esp + 0x24], eax
pop eax
test byte [ebp + 2], al
je 0x422f69
cmp byte [edi + 4], 0
je 0x422f69
mov esi, dword [edi + 0x28]
mov ecx, esi
call fcn.00414417
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x24]
mov esi, dword [esp + 0x38]
mov dword [edi + 0x40], eax
mov dword [edi + 0x44], ecx
jmp 0x422f69
mov dword [esp + 0x20], eax
mov esi, eax
mov dl, byte [ebp + 2]
mov ecx, dword [edi + 0x28]
call fcn.004182e0
xor ecx, ecx
mov dword [esp + 0x14], eax
mov dword [edi + 0x1c], ecx
mov dword [edi + 0x20], ecx
test eax, eax
jne 0x424c42
inc eax
test byte [esp + 0x48], al
je 0x4205f0
mov eax, dword [esp + 0x10]
inc dword [ebx + 0x2c]
mov eax, dword [eax + 0xe8]
test eax, eax
je 0x4203e5
test byte [esi + 0x24], 0x20
jne 0x4203e5
push dword [edi + 0x44]
push dword [edi + 0x40]
push dword [esi]
mov esi, dword [esp + 0x1c]
push dword [esp + 0x2c]
push 9
push dword [esi + 0xe4]
call eax
jmp 0x422efa
mov eax, dword [ebx + 0x2c]
add dword [esi + 0x68], eax
mov dword [esi + 0x64], eax
xor eax, eax
mov dword [ebx + 0x2c], eax
jmp 0x4203ed
mov eax, dword [ebx + 0x60]
mov ecx, dword [ebp + 4]
imul edx, dword [ebp + 0xc], 0x28
mov ecx, dword [eax + ecx*4]
xor eax, eax
mov dword [esp + 0xbc], eax
lea eax, [esp + 0xbc]
push eax
push dword [ebp + 0x10]
add edx, edi
call fcn.0042714d
mov dword [esp + 0x1c], eax
pop ecx
pop ecx
test eax, eax
jne 0x424c40
cmp dword [esp + 0xbc], eax
jmp 0x420163
imul edx, dword [ebp + 8], 0x28
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
add edx, edi
mov ecx, dword [eax + ecx*4]
call fcn.004270f7
mov dword [esp + 0x14], eax
test eax, eax
jne 0x424c40
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [eax + 0x1c], ecx
jmp 0x4203ed
mov edx, ebp
mov ecx, ebx
call fcn.00420033
mov edx, dword [ebp + 4]
mov esi, eax
mov ecx, dword [ebx + 0x60]
mov ecx, dword [ecx + edx*4]
mov edi, dword [ecx + 0x28]
mov ecx, edi
call fcn.00414417
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x2c]
cmp eax, dword [ecx + 0x6c]
ja 0x424099
push esi
push eax
xor edx, edx
mov ecx, edi
call fcn.0041aecc
mov dword [esp + 0x1c], eax
pop ecx
pop ecx
test eax, eax
jne 0x424c40
cmp dword [ebp + 0xc], eax
jne 0x4203e5
mov eax, 0x1000
test word [esi + 8], ax
je 0x4203e5
mov ecx, esi
call fcn.0041a4a2
mov esi, dword [esp + 0x10]
test eax, eax
jne 0x424c29
jmp 0x4203e9
mov edx, ebp
mov ecx, ebx
call fcn.00420033
mov edx, dword [ebp + 4]
mov edi, eax
mov ecx, dword [ebx + 0x60]
mov esi, dword [ecx + edx*4]
cmp byte [esi + 2], 0
je 0x4230f6
xor eax, eax
inc eax
mov word [edi + 8], ax
jmp 0x4205f0
cmp byte [esi + 3], 0
je 0x423107
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
jmp 0x423189
push 2
pop eax
cmp byte [esi], al
jne 0x42314c
mov ecx, dword [esi + 0x28]
lea edx, [esp + 0xb0]
push edx
push ecx
mov esi, dword [ecx]
mov eax, dword [esi]
call dword [eax + 0x30]
pop ecx
pop ecx
mov edx, esi
mov dword [esp + 0x14], eax
mov ecx, ebx
call fcn.0041e6e5
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x424c40
mov ecx, dword [esp + 0xb4]
mov eax, dword [esp + 0xb0]
jmp 0x423197
mov eax, dword [esi + 0x28]
cmp byte [eax], 0
je 0x423169
mov ecx, esi
call fcn.0041d4e9
mov dword [esp + 0x14], eax
test eax, eax
jne 0x424c40
jmp 0x42316f
xor eax, eax
mov dword [esp + 0x14], eax
cmp byte [esi + 2], 0
jne 0x4230ea
mov esi, dword [esi + 0x28]
mov ecx, esi
call fcn.00414417
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x24]
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb0], eax
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x4203e5
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
mov esi, dword [eax + ecx*4]
xor eax, eax
xor ecx, ecx
inc eax
mov byte [esi + 2], al
mov dword [esi + 0x1c], ecx
cmp byte [esi], cl
jne 0x420acd
mov esi, dword [esi + 0x28]
push dword [esi + 0x10]
call fcn.00404904
xor eax, eax
mov dword [esi + 0x10], eax
inc eax
pop ecx
mov byte [esi], al
jmp 0x420acd
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
mov esi, dword [eax + ecx*4]
xor eax, eax
cmp byte [esp + 0x2f], 0x82
mov ecx, dword [esi + 0x28]
mov dword [esp + 0x8c], eax
jne 0x4231fe
or dword [esi + 0x20], 0xffffffff
cmp byte [ecx], al
je 0x4201bb
lea edx, [esp + 0x8c]
call fcn.00414afd
mov dword [esp + 0x14], eax
mov al, byte [esp + 0x8c]
mov byte [esi + 2], al
xor eax, eax
mov byte [esi + 3], al
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x424c40
cmp dword [ebp + 8], eax
jle 0x4201bb
cmp dword [esp + 0x8c], eax
jne 0x424a01
jmp 0x4201bb
mov ecx, dword [ebp + 4]
lea edx, [esp + 0x98]
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x28]
mov ecx, esi
call fcn.00414ad3
mov dword [esp + 0x14], eax
test eax, eax
jne 0x424c40
cmp dword [esp + 0x98], eax
jne 0x424a01
mov ecx, esi
call fcn.00414f3c
xor ecx, ecx
cmp edx, ecx
jl 0x4232b0
jg 0x42328d
cmp eax, ecx
jb 0x4232b0
push edx
push eax
call fcn.00407fa6
pop ecx
pop ecx
mov ecx, dword [esp + 0x98]
cwde
cmp eax, dword [ebp + 0xc]
push 1
pop eax
cmovl ecx, eax
mov dword [esp + 0x98], ecx
jmp 0x4232ba
mov ecx, dword [esp + 0x98]
xor eax, eax
inc eax
test ecx, ecx
jne 0x424a01
jmp 0x420acd
inc dword [ebx + 0xac]
mov eax, dword [ebx + 0x60]
lea edx, [esp + 0x9c]
mov ecx, dword [ebp + 4]
mov esi, dword [eax + ecx*4]
xor eax, eax
inc eax
mov dword [esp + 0x9c], eax
cmp byte [esi], al
jne 0x4232f6
mov ecx, esi
call fcn.0042701d
xor ecx, ecx
jmp 0x423306
mov ecx, dword [esi + 0x28]
call fcn.00414ad3
xor ecx, ecx
mov byte [esi + 3], cl
mov dword [esi + 0x1c], ecx
mov dword [esp + 0x14], eax
test eax, eax
jne 0x424c42
mov al, byte [esp + 0x9c]
mov byte [esi + 2], al
cmp dword [esp + 0x9c], 0
jmp 0x42323c
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
mov esi, dword [eax + ecx*4]
mov edx, esi
mov ecx, dword [esp + 0x10]
call fcn.00427069
jmp 0x423353
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
push dword [ebp + 0xc]
mov esi, dword [eax + ecx*4]
push dword [esi + 0x28]
call dword [ebp + 0x10]
pop ecx
pop ecx
mov dword [esp + 0x14], eax
xor ecx, ecx
mov dword [esi + 0x1c], ecx
test eax, eax
jne 0x423373
mov byte [esi + 2], al
movzx eax, word [ebp + 2]
inc dword [ebx + eax*4 + 0xa4]
jmp 0x4245ff
cmp eax, 0x65
jne 0x424c42
xor eax, eax
mov dword [esp + 0x14], eax
inc eax
mov byte [esi + 2], al
jmp 0x423a6b
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
imul esi, dword [ebp + 8], 0x28
mov edi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x18]
add esi, ecx
test byte [ebp + 2], 1
je 0x4233a7
inc dword [ebx + 0x2c]
mov eax, 0x4000
test word [esi + 8], ax
je 0x4233c5
mov ecx, esi
call fcn.0041a4e8
test eax, eax
jne 0x424c40
mov ecx, dword [esp + 0x18]
cmp byte [ebp], 0x83
jne 0x4233d8
mov edx, esi
mov ecx, edi
call fcn.004267c6
xor ecx, ecx
jmp 0x42343a
mov eax, dword [esi + 0xc]
cdq
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], edx
mov eax, dword [esi + 0x10]
mov dword [esp + 0xd0], eax
imul eax, dword [ebp + 0xc], 0x28
push 0x10
add eax, ecx
mov dword [esp + 0xe8], eax
mov ax, word [ebp + 0x10]
mov word [esp + 0xec], ax
movzx eax, word [ebp + 2]
pop ecx
test cl, al
je 0x42341d
mov ecx, dword [edi + 0x20]
jmp 0x42341f
xor ecx, ecx
push ecx
mov ecx, dword [edi + 0x28]
lea edx, [esp + 0xd4]
and eax, 0xa
push eax
call fcn.00417f2a
pop ecx
pop ecx
xor ecx, ecx
mov dword [edi + 0x1c], ecx
mov dword [esp + 0x14], eax
test eax, eax
jne 0x424c42
jmp 0x4203e5
mov ecx, dword [ebp + 4]
lea edx, [esp + 0x140]
mov eax, dword [ebx + 0x60]
mov esi, dword [eax + ecx*4]
xor ecx, ecx
mov eax, dword [esi + 0x2c]
mov edi, dword [esi + 0x28]
mov dword [esp + 0x140], eax
mov ax, word [ebp + 0xc]
mov word [esp + 0x148], ax
imul eax, dword [ebp + 8], 0x28
mov byte [esp + 0x14a], cl
add eax, dword [esp + 0x18]
mov dword [esp + 0x144], eax
lea eax, [esp + 0x110]
push eax
push ecx
push ecx
push ecx
mov ecx, edi
call fcn.00414b4f
add esp, 0x10
mov dword [esp + 0x14], eax
test eax, eax
jne 0x424c40
cmp dword [esp + 0x110], eax
jne 0x4234ce
push 4
pop eax
mov dl, al
mov ecx, edi
call fcn.004182e0
mov dword [esp + 0x14], eax
test eax, eax
jne 0x424c40
xor eax, eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], eax
jmp 0x4203e5
mov eax, dword [ebx + 0x60]
mov ecx, dword [ebp + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 0x28]
cmp byte [eax], 0
je 0x423501
mov ecx, esi
call fcn.0041d4e9
mov dword [esp + 0x14], eax
test eax, eax
jne 0x424c40
jmp 0x423507
xor eax, eax
mov dword [esp + 0x14], eax
cmp byte [esi + 2], 0
jne 0x423599
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0xc8]
xorps xmm0, xmm0
movlpd qword [esp + 0xc8], xmm0
mov edx, dword [esi + 0x28]
push eax
call fcn.0041e536
mov dword [esp + 0x18], eax
pop ecx
test eax, eax
jne 0x424c40
cmp byte [ebp], 0x86
jne 0x423578
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebx + 0x60]
mov edx, dword [eax + ecx*4]
xor eax, eax
mov byte [edx + 2], al
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xcc]
mov dword [edx + 0x40], eax
mov dword [edx + 0x44], ecx
mov byte [edx + 3], 1
mov eax, dword [ebp + 0x10]
mov dword [edx + 0x18], eax
mov dword [edx + 0x24], esi
jmp 0x4201bb
mov edx, ebp
mov ecx, ebx
call fcn.00420033
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xcc]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x4201bb
imul eax, dword [ebp + 8], 0x28
mov ecx, 0x2400
add eax, edi
test word [eax + 8], cx
je 0x4235b1
mov ecx, eax
jmp 0x420abc
xor ecx, ecx
inc ecx
mov word [eax + 8], cx
jmp 0x4201bb
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
cmp byte [esp + 0x2f], 0x27
mov edx, dword [eax + ecx*4]
mov ecx, esi
mov eax, dword [edx + 0x2c]
mov dword [esp + 0x150], eax
mov ax, word [ebp + 0x10]
mov word [esp + 0x158], ax
sbb al, al
mov byte [esp + 0x15a], al
imul eax, dword [ebp + 0xc], 0x28
add eax, edi
mov dword [esp + 0x154], eax
xor eax, eax
mov dword [esp + 0xa0], eax
lea eax, [esp + 0xa0]
push eax
lea eax, [esp + 0x154]
push eax
call fcn.0041e62b
test byte [ebp], 1
pop ecx
pop ecx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x14], eax
je 0x42362e
neg ecx
jmp 0x423633
mov eax, dword [esp + 0x14]
inc ecx
mov dword [esp + 0xa0], ecx
test eax, eax
jne 0x424c40
test ecx, ecx
jg 0x424a01
jmp 0x4203ed
mov edx, ebp
mov ecx, ebx
call fcn.00420033
mov edx, dword [esp + 0x10]
mov esi, eax
xor eax, eax
inc eax
mov word [esi + 8], ax
mov ecx, dword [edx + 0xc0]
inc ecx
cmp dword [edx + 0xb4], ecx
jg 0x424b9d
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov dword [esp + 0xa4], ecx
mov ecx, eax
mov dword [esp + 0x20], eax
add ecx, ecx
mov eax, dword [edx + 0x10]
lea edx, [esp + 0xa4]
push edx
mov edx, dword [ebp + 4]
mov ecx, dword [eax + ecx*8 + 4]
call fcn.004189c1
pop ecx
mov dword [esp + 0x14], eax
push 4
pop eax
mov word [esi + 8], ax
mov eax, dword [esp + 0xa4]
cdq
mov dword [esi], eax
mov eax, dword [esp + 0x14]
mov dword [esi + 4], edx
test eax, eax
jne 0x424c40
mov esi, dword [esp + 0x10]
cmp dword [esp + 0xa4], eax
je 0x4203ed
push dword [ebp + 4]
mov edx, dword [esp + 0x24]
mov ecx, esi
push dword [esp + 0xa8]
call fcn.004345ec
mov al, byte [esp + 0x28]
pop ecx
inc al
pop ecx
mov byte [esp + 0x7b], al
jmp 0x4203ed
xor edx, edx
lea eax, [esp + 0x20]
xor ecx, ecx
mov dword [esp + 0x20], edx
cmp dword [ebp + 0xc], edx
mov edx, dword [ebp + 4]
cmove eax, ecx
mov ecx, dword [esi + 0x10]
push eax
mov eax, dword [ebp + 8]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00418984
pop ecx
xor ecx, ecx
mov dword [esp + 0x14], eax
cmp dword [ebp + 0xc], ecx
je 0x422241
mov edx, dword [esp + 0x20]
add dword [ebx + 0x2c], edx
mov ecx, dword [ebp + 0xc]
test ecx, ecx
jle 0x42223f
imul ecx, ecx, 0x28
mov eax, edx
cdq
add dword [ecx + edi], eax
adc dword [ecx + edi + 4], edx
jmp 0x42223b
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx], 1
jne 0x423777
mov edx, dword [ecx + 0x28]
mov ecx, esi
call fcn.00426094
jmp 0x4203ed
mov ecx, dword [ecx + 0x28]
xor eax, eax
push eax
mov edx, dword [ecx + 0x40]
mov ecx, dword [ecx + 8]
call fcn.00418984
jmp 0x42269f
mov edx, ebp
mov ecx, ebx
call fcn.00420033
mov edx, dword [ebp + 4]
mov esi, eax
push dword [ebp + 0xc]
xor eax, eax
add edx, edx
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + edx*8 + 4]
lea edx, [esp + 0xc4]
call fcn.004185f8
mov dword [esp + 0x18], eax
pop ecx
test eax, eax
jne 0x424c40
mov eax, dword [esp + 0xc0]
jmp 0x4201b5
inc byte [esi + 0x5a]
xor eax, eax
push eax
push eax
push eax
push dword [ebp + 0x10]
push esi
call fcn.0043e3f8
add esp, 0x14
mov dword [esp + 0x14], eax
dec byte [esi + 0x5a]
jmp 0x4222fd
cmp dword [ebp + 0x10], 0
mov esi, dword [ebp + 4]
mov edi, dword [esp + 0x10]
jne 0x423842
mov eax, dword [edi + 0x10]
mov ecx, esi
add ecx, ecx
push dword [eax + ecx*8 + 0xc]
call fcn.00437328
and dword [edi + 0x18], 0xffffffef
lea eax, [ebx + 0x7c]
pop ecx
mov edx, esi
mov esi, edi
push 1
push eax
mov ecx, esi
call fcn.00441970
or dword [esi + 0x18], 1
and dword [ebx + 0x98], 0xfffffffc
pop ecx
pop ecx
mov dword [esp + 0x14], eax
jmp 0x423917
push dword [ebp + 0x10]
lea eax, [ebx + 0x7c]
mov dword [esp + 0xdc], esi
mov dword [esp + 0xd8], eax
add esi, esi
xor eax, eax
mov dword [esp + 0xd4], edi
mov dword [esp + 0xe4], eax
mov eax, dword [edi + 0x10]
push str.sqlite_master
push dword [eax + esi*8]
push str.SELECTFROM__w_._s_WHERE__s_ORDER_BY_rowid
push edi
call fcn.004064c5
mov esi, eax
add esp, 0x14
test esi, esi
je 0x424bae
xor eax, eax
mov byte [edi + 0xa5], 1
push eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe8], eax
lea eax, [esp + 0xd4]
push eax
push fcn.004417e7
push esi
push edi
call fcn.0043e3f8
add esp, 0x14
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4238fe
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4238fe
cmp dword [esp + 0xe4], eax
jne 0x4238fe
push 0x48f0e4
push 0x15f51
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
pop edi
push edi
call fcn.004065b6
add esp, 0x14
mov dword [esp + 0x14], edi
mov edx, esi
mov esi, dword [esp + 0x10]
mov ecx, esi
call fcn.0040494c
xor eax, eax
mov byte [esi + 0xa5], al
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x424bb7
jmp 0x4203e9
mov edx, dword [ebp + 4]
mov ecx, esi
call fcn.004313c9
jmp 0x4226a0
push dword [ebp + 0x10]
mov edx, dword [ebp + 4]
mov ecx, esi
call fcn.00432890
jmp 0x420566
push dword [ebp + 0x10]
mov edx, dword [ebp + 4]
mov ecx, esi
call fcn.00432565
jmp 0x420566
push dword [ebp + 0x10]
mov edx, dword [ebp + 4]
mov ecx, esi
call fcn.00449dfe
jmp 0x420566
imul esi, dword [ebp + 0xc], 0x28
lea eax, [esp + 0x114]
mov ecx, dword [esp + 0x10]
mov edx, dword [ebp + 0x10]
push eax
add edx, 4
mov ecx, dword [ecx + 0x10]
add esi, edi
imul edi, dword [ebp + 4], 0x28
mov eax, dword [esi]
add edi, dword [esp + 0x1c]
inc eax
push eax
movzx eax, word [ebp + 2]
push dword [ebp + 8]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00419597
add esp, 0xc
mov dword [esp + 0x20], eax
mov ecx, edi
call fcn.0041aa88
mov eax, dword [esp + 0x114]
test eax, eax
je 0x4239e3
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x424c25
dec eax
cdq
sub dword [esi], eax
push fcn.00404904
sbb dword [esi + 4], edx
mov edx, ecx
push 1
push 0xffffffffffffffff
mov ecx, edi
call fcn.0041acbb
add esp, 0xc
movzx edx, byte [esp + 0x5c]
mov ecx, edi
call fcn.0041a330
jmp 0x4203e5
imul esi, dword [ebp + 4], 0x28
push 0x10
pop eax
add esi, edi
imul edi, dword [ebp + 8], 0x28
add edi, dword [esp + 0x18]
test byte [esi + 8], al
jne 0x423a19
mov ecx, esi
call fcn.0041ab25
test eax, eax
jne 0x424c25
push dword [edi + 4]
mov ecx, dword [esi + 0x10]
push dword [edi]
call fcn.0040b68c
pop ecx
jmp 0x42168e
imul esi, dword [ebp + 4], 0x28
push 0x10
pop eax
add esi, edi
test byte [esi + 8], al
je 0x423a86
mov ecx, dword [esi + 0x10]
lea edx, [esp + 0x130]
call fcn.0040b87f
test eax, eax
je 0x423a86
imul ecx, dword [ebp + 0xc], 0x28
push dword [esp + 0x134]
push dword [esp + 0x134]
add ecx, edi
call fcn.0041aaf0
pop ecx
pop ecx
xor eax, eax
inc eax
mov esi, dword [esp + 0x10]
xor ecx, ecx
cmp dword [esi + 0x108], ecx
jne 0x424eb6
mov edi, dword [esp + 0x18]
jmp case.0x4200ff.86
mov ecx, esi
call fcn.0041aa88
jmp 0x4245ff
imul esi, dword [ebp + 4], 0x28
mov eax, dword [ebp + 0x10]
push 0x10
pop ecx
mov dword [esp + 0x20], eax
add esi, edi
imul edi, dword [ebp + 0xc], 0x28
add edi, dword [esp + 0x18]
test byte [esi + 8], cl
jne 0x423ac2
mov ecx, esi
call fcn.0041ab25
test eax, eax
jne 0x424c25
mov eax, dword [esp + 0x20]
test eax, eax
je 0x423a19
push dword [edi + 4]
mov ecx, dword [esi + 0x10]
mov edx, eax
push dword [edi]
call fcn.0040b8d7
pop ecx
pop ecx
test eax, eax
jne 0x424a01
cmp dword [esp + 0x20], eax
jl 0x4203e5
jmp 0x423a19
imul edi, dword [ebp + 0xc], 0x28
xor eax, eax
mov esi, dword [ebp + 0x10]
mov dword [esp + 0x20], esi
add edi, dword [esp + 0x18]
cmp word [ebp + 2], ax
je 0x423b24
mov ecx, dword [esi + 0x14]
mov eax, dword [ebx + 0xc8]
jmp 0x423b20
cmp dword [eax + 0x1c], ecx
je 0x4203e5
mov eax, dword [eax + 4]
test eax, eax
jne 0x423b14
mov ecx, dword [esp + 0x10]
mov eax, dword [ebx + 0xd0]
cmp eax, dword [ecx + 0x94]
jge 0x424bcb
push 0x10
pop edx
test byte [edi + 8], dl
jne 0x423c30
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 8]
add eax, edx
test edx, edx
lea ecx, [eax + 1]
cmovne ecx, eax
mov dword [esp + 0x48], ecx
lea eax, [ecx + 2]
imul ecx, eax, 0xa
mov eax, dword [esi + 4]
add eax, 7
add ecx, edx
mov eax, eax
test eax, eax
jns 0x423b71
add eax, 7
sar eax, 3
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x38], eax
cdq
push edx
push eax
call fcn.00404ad3
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x424c25
mov ecx, edi
call fcn.0041a6cc
mov ecx, dword [esp + 0x48]
mov eax, 0x410
sub ebp, dword [esp + 0x58]
mov word [edi + 8], ax
mov eax, dword [esp + 0x38]
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], esi
mov dword [edi + 0x24], 0x41c017
mov edi, dword [esp + 0x20]
mov dword [esi + 0x3c], ecx
mov dword [esi], ebx
push 0x14
mov eax, dword [edi + 0xc]
mov dword [esi + 0x40], eax
mov eax, ebp
cdq
pop ebp
idiv ebp
mov dword [esi + 0x30], eax
mov eax, dword [ebx + 0x58]
mov dword [esi + 0x10], eax
mov eax, dword [ebx + 0x18]
mov dword [esi + 0x38], eax
mov eax, dword [ebx + 0x60]
mov dword [esi + 0x14], eax
mov eax, dword [ebx + 0x1c]
mov dword [esi + 0x2c], eax
mov eax, dword [ebx + 0x68]
mov dword [esi + 8], eax
mov eax, dword [ebx + 0x6c]
mov dword [esi + 0x34], eax
mov eax, dword [edi + 0x14]
mov dword [esi + 0x1c], eax
lea eax, [ecx + 2]
imul ecx, eax, 0x28
lea eax, [esi + 0x50]
add ecx, esi
cmp eax, ecx
je 0x423c24
mov edx, dword [esp + 0x10]
add ebp, 0x6c
mov word [eax + 8], bp
mov dword [eax + 0x20], edx
add eax, 0x28
cmp eax, ecx
jne 0x423c16
mov eax, dword [ebx + 0xd0]
mov ecx, dword [esp + 0x10]
jmp 0x423c37
mov esi, dword [edi + 0x10]
mov edi, dword [esp + 0x20]
inc eax
lea edx, [esi + 0x50]
mov dword [ebx + 0xd0], eax
mov eax, dword [ebx + 0xc8]
mov dword [esi + 4], eax
mov eax, dword [ecx + 0x28]
mov ecx, dword [ecx + 0x2c]
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], ecx
mov eax, dword [ebx + 0x2c]
mov dword [esi + 0x44], eax
mov eax, dword [ebx]
push 7
pop ebp
mov dword [esp + 0x18], edx
mov eax, dword [eax + 0x64]
mov dword [esi + 0x48], eax
mov eax, dword [ebx + 0xdc]
mov dword [esi + 0x28], eax
xor eax, eax
mov dword [ebx + 0xdc], eax
mov dword [ebx + 0x2c], eax
mov dword [ebx + 0x58], edx
mov dword [ebx + 0xc8], esi
mov ecx, dword [esi + 0x3c]
mov dword [ebx + 0x18], ecx
movzx eax, word [esi + 0x40]
imul ecx, ecx, 0x28
mov dword [ebx + 0x1c], eax
add ecx, edx
mov dword [ebx + 0x60], ecx
mov eax, dword [edi + 0xc]
lea ecx, [ecx + eax*4]
mov dword [esi + 0x18], ecx
mov eax, dword [edi + 4]
add eax, ebp
cdq
and edx, ebp
add eax, edx
sar eax, 3
push eax
xor eax, eax
push eax
push ecx
call fcn.00460f00
mov edx, dword [edi]
add esp, 0xc
mov dword [ebx + 0x68], edx
mov eax, dword [edi + 4]
mov dword [esp + 0x58], edx
mov dword [ebx + 0x6c], eax
lea ebp, [edx - 0x14]
jmp 0x423a68
mov edx, ebp
mov ecx, ebx
call fcn.00420033
mov esi, dword [ebx + 0xc8]
mov ecx, 0x1000
push ecx
imul edx, dword [esi + 0x30], 0x14
mov ecx, dword [esi + 8]
mov ecx, dword [edx + ecx + 4]
add ecx, dword [ebp + 4]
imul edx, ecx, 0x28
mov ecx, eax
add edx, dword [esi + 0x10]
call fcn.0041abd8
jmp 0x42116c
mov eax, dword [esi + 0x20]
xor edx, edx
and eax, 0x80000
or eax, edx
mov eax, dword [ebp + 8]
je 0x423d2f
cdq
add dword [esi + 0x1c8], eax
adc dword [esi + 0x1cc], edx
jmp 0x4203ed
cmp dword [ebp + 4], edx
cdq
je 0x423d46
add dword [esi + 0x1c0], eax
adc dword [esi + 0x1c4], edx
jmp 0x4203ed
add dword [ebx + 0x40], eax
adc dword [ebx + 0x44], edx
jmp 0x4203ed
xor eax, eax
cmp dword [ebp + 4], eax
je 0x423d7b
mov eax, dword [esi + 0x1c0]
or eax, dword [esi + 0x1c4]
jne 0x4203ed
mov eax, dword [esi + 0x1c8]
or eax, dword [esi + 0x1cc]
jmp 0x421277
mov eax, dword [ebx + 0x40]
or eax, dword [ebx + 0x44]
jmp 0x423d64
mov eax, dword [ebx + 0xc8]
test eax, eax
jne 0x423dce
imul edi, dword [ebp + 4], 0x28
add edi, dword [esp + 0x18]
mov ecx, edi
call fcn.0041a85b
imul esi, dword [ebp + 8], 0x28
add esi, dword [esp + 0x18]
mov ecx, esi
call fcn.0041a85b
mov ecx, dword [esi + 4]
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x4203e5
jl 0x423197
cmp dword [edi], eax
jae 0x4203e5
jmp 0x423197
mov eax, ecx
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x423dcc
imul edi, dword [ebp + 4], 0x28
add edi, dword [eax + 0x10]
jmp 0x423d95
imul ecx, dword [ebp + 4], 0x28
xor edx, edx
add ecx, edi
mov edi, dword [ecx + 4]
mov esi, dword [ecx]
cmp edi, edx
jl 0x4205f0
jg 0x423dfd
cmp esi, edx
jbe 0x4205f0
mov eax, dword [ebp + 0xc]
cdq
sub esi, eax
mov dword [ecx], esi
sbb edi, edx
mov dword [ecx + 4], edi
jmp 0x424a01
imul esi, dword [ebp + 4], 0x28
mov edx, ebp
mov ecx, ebx
add esi, edi
imul edi, dword [ebp + 0xc], 0x28
add edi, dword [esp + 0x18]
call fcn.00420033
mov ecx, dword [esi + 4]
mov edx, dword [esi]
xor esi, esi
mov dword [esp + 0x20], eax
mov dword [esp + 0xf8], edx
mov dword [esp + 0xfc], ecx
cmp ecx, esi
jl 0x423e9c
jg 0x423e4b
xor ecx, ecx
cmp edx, ecx
jbe 0x423e9c
mov ecx, dword [edi + 4]
xor edx, edx
mov eax, dword [edi]
cmp ecx, edx
jl 0x423e5c
jg 0x423e6d
cmp eax, edx
ja 0x423e6d
xorps xmm0, xmm0
movlpd qword [esp + 0x38], xmm0
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
push ecx
push eax
lea ecx, [esp + 0x100]
call fcn.00407d6e
pop ecx
pop ecx
test eax, eax
jne 0x423e98
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0xfc]
mov edx, dword [esp + 0x20]
jmp 0x422da3
mov eax, dword [esp + 0x20]
or dword [eax], 0xffffffff
or dword [eax + 4], 0xffffffff
jmp 0x4203e5
imul ecx, dword [ebp + 4], 0x28
add ecx, edi
mov edx, dword [ecx]
mov eax, edx
mov esi, dword [ecx + 4]
or eax, esi
je 0x4201bb
xor eax, eax
cmp esi, eax
jl 0x424a01
jg 0x423ed1
cmp edx, eax
jbe 0x424a01
sub edx, 1
mov dword [ecx], edx
sbb esi, eax
mov dword [ecx + 4], esi
jmp 0x424a01
imul edx, dword [ebp + 4], 0x28
add edx, edi
mov ecx, dword [edx + 4]
mov eax, dword [edx]
cmp ecx, 0x80000000
jl 0x423f04
jg 0x423ef9
test eax, eax
je 0x423f04
sub eax, 1
mov dword [edx], eax
sbb ecx, 0
mov dword [edx + 4], ecx
or eax, ecx
jmp 0x421277
movzx eax, word [ebp + 2]
xor ecx, ecx
mov dword [esp + 0x20], eax
push ecx
mov ecx, esi
lea eax, [eax*4 + 0x44]
push eax
call fcn.00404b2c
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x424c25
mov edx, dword [esp + 0x10]
xor eax, eax
mov dword [esi + 8], eax
mov eax, dword [esp + 0x20]
add eax, 7
push 1
lea ecx, [esi + eax*4]
mov dword [esi], ecx
call fcn.0041aa77
mov eax, dword [ebp + 0x10]
mov dword [esi + 4], eax
mov eax, ebp
sub eax, dword [esp + 0x5c]
pop ecx
cdq
push 0x14
pop ecx
idiv ecx
mov dword [esi + 0xc], ebx
mov dword [esi + 0x10], eax
xor eax, eax
mov byte [esi + 0x18], al
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x20]
mov byte [esi + 0x19], al
mov word [ebp], 0xf09b
mov dword [ebp + 0x10], esi
imul edx, dword [ebp + 0xc], 0x28
mov esi, dword [ebp + 0x10]
add edx, edi
cmp dword [esi + 8], edx
je 0x423fbe
movzx ecx, byte [esi + 0x19]
sub ecx, 1
mov dword [esi + 8], edx
js 0x423fbe
lea edi, [ecx + 7]
push 4
lea edi, [esi + edi*4]
pop ebx
mov eax, dword [ebp + 8]
add eax, ecx
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
mov dword [edi], eax
sub edi, ebx
sub ecx, 1
jns 0x423fa1
mov ebx, dword [esp + 0x70]
mov edi, dword [esp + 0x18]
inc dword [edx + 0xc]
lea eax, [esi + 0x1c]
cmp dword [ebp + 4], 0
movzx edx, byte [esi + 0x19]
mov ecx, dword [esi + 4]
push eax
push edx
push esi
je 0x423fd9
call dword [ecx + 0x1c]
jmp 0x423fdc
call dword [ecx + 0x10]
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x4201bb
jle 0x42400a
push dword [esi]
call fcn.0041e989
pop ecx
push eax
push 0x48a51c
push ebx
call fcn.0041b419
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x14], eax
cmp byte [esi + 0x18], 0
je 0x42402d
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x424028
xor ecx, ecx
push ecx
imul ecx, eax, 0x28
push 1
add ecx, edi
call fcn.0041aaf0
pop ecx
pop ecx
xor eax, eax
mov byte [esi + 0x18], al
mov ecx, dword [esi]
call fcn.0041a6cc
mov eax, dword [esi]
xor ecx, ecx
inc ecx
mov word [eax + 8], cx
xor eax, eax
mov dword [esi + 0x14], eax
jmp 0x420cb2
imul esi, dword [ebp + 4], 0x28
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
add esi, edi
mov ecx, esi
test eax, eax
je 0x42406d
push edx
imul edx, eax, 0x28
add edx, edi
call fcn.0041a62a
imul esi, dword [ebp + 0xc], 0x28
pop ecx
add esi, edi
jmp 0x424072
call fcn.0041a5c2
mov dword [esp + 0x14], eax
test eax, eax
jne 0x424be6
movzx edx, byte [esp + 0x5c]
mov ecx, esi
call fcn.0041a330
mov ecx, esi
call fcn.0041ab99
test eax, eax
je 0x4201bb
push str.string_or_blob_too_big
push ebx
call fcn.0041b419
pop ecx
pop ecx
push 0x12
jmp 0x424c3f
mov edx, dword [ebp + 4]
xor eax, eax
or dword [esp + 0x108], 0xffffffff
mov ecx, esi
or dword [esp + 0x104], 0xffffffff
mov dword [esp + 0x100], eax
lea eax, [esp + 0x108]
push eax
lea eax, [esp + 0x108]
push eax
push dword [ebp + 8]
call fcn.0045cb09
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
je 0x42410a
push 5
pop ecx
cmp eax, ecx
jne 0x424c40
xor eax, eax
mov dword [esp + 0x100], 1
mov dword [esp + 0x14], eax
imul esi, dword [ebp + 0xc], 0x28
add esi, edi
xor eax, eax
mov edi, eax
mov eax, dword [esp + edi*4 + 0x100]
mov ecx, esi
cdq
push edx
push eax
call fcn.0041aaf0
inc edi
add esi, 0x28
pop ecx
pop ecx
cmp edi, 3
jl 0x424114
jmp 0x4203e5
mov edx, ebp
mov ecx, ebx
call fcn.00420033
mov edx, dword [ebp + 4]
mov esi, dword [ebp + 0xc]
add edx, edx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx + edx*8 + 4]
mov ecx, eax
mov dword [esp + 0x20], eax
call fcn.00418cbe
mov ecx, eax
mov dword [esp + 0x1c], eax
call fcn.0040f44b
mov ecx, dword [esp + 0x1c]
mov edi, eax
cmp esi, 0xffffffff
cmove esi, edi
call fcn.0040f450
mov ecx, dword [esp + 0x1c]
test eax, eax
cmove esi, edi
xor edx, edx
inc edx
call fcn.0040f215
push 5
pop edx
cmp esi, edx
jne 0x4241fc
mov ecx, eax
call fcn.00406d79
test eax, eax
je 0x4241ac
mov ecx, dword [esp + 0x1c]
call fcn.0040f4c1
test eax, eax
jne 0x4241f9
mov esi, edi
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4241b8
mov esi, edi
mov ecx, dword [esp + 0x1c]
mov edx, esi
call fcn.0040f37e
mov esi, dword [esp + 0x38]
mov ecx, 0xa02
mov word [esi + 8], cx
mov ecx, eax
call fcn.0043ee54
mov ecx, eax
mov dword [esi + 0x10], eax
call fcn.00406d79
movzx edx, byte [esp + 0x5c]
mov ecx, esi
mov dword [esi + 0xc], eax
mov byte [esi + 0xa], 1
call fcn.0041a330
jmp 0x422bb7
push 5
pop edx
cmp esi, edi
je 0x4241ae
cmp edi, edx
je 0x424208
cmp esi, edx
jne 0x4241ae
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x4f], 0
je 0x424bfe
cmp dword [eax + 0xb4], 1
jg 0x424bfe
cmp edi, edx
jne 0x42424b
mov ecx, dword [esp + 0x1c]
mov edx, eax
call fcn.0040f59a
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4241b6
mov ecx, dword [esp + 0x1c]
mov edx, esi
call fcn.0040f37e
jmp 0x42426b
push 4
pop eax
cmp edi, eax
jne 0x424260
mov ecx, dword [esp + 0x1c]
push 2
pop eax
mov edx, eax
call fcn.0040f37e
cmp dword [esp + 0x14], 0
jne 0x4241b6
mov ecx, dword [esp + 0x20]
xor edx, edx
push 5
pop eax
cmp esi, eax
sete dl
inc edx
call fcn.00419912
mov dword [esp + 0x14], eax
jmp 0x4241b2
mov eax, dword [ebp + 8]
test eax, eax
je 0x424296
imul eax, eax, 0x28
add eax, edi
jmp 0x424298
xor eax, eax
push eax
push dword [ebp + 4]
lea ecx, [ebx + 0x7c]
mov edx, esi
call fcn.0044c08f
pop ecx
jmp 0x42269f
mov ecx, dword [ebp + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
call fcn.00413e96
mov dword [esp + 0x14], eax
test eax, eax
je 0x4203ed
cmp eax, 0x65
jne 0x424c40
xor eax, eax
mov dword [esp + 0x14], eax
jmp 0x424a01
xor eax, eax
cmp dword [ebp + 4], eax
jne 0x4242f3
mov edx, dword [ebp + 8]
mov ecx, esi
call fcn.0041e6c1
jmp 0x4203ed
mov eax, dword [ebp + 8]
inc eax
xor eax, dword [ebx + 0x98]
and eax, 3
xor dword [ebx + 0x98], eax
jmp 0x4203ed
mov esi, dword [ebp + 0x10]
mov edx, esi
mov ecx, dword [esp + 0x10]
call fcn.0044d12d
mov dword [esp + 0x14], eax
test esi, esi
je 0x420cb6
mov edx, dword [esi + 8]
mov ecx, ebx
call fcn.0041e6e5
jmp 0x420cb2
imul edx, dword [ebp + 8], 0x28
lea edi, [esp + 0x1c8]
push 0xa
pop ecx
xor eax, eax
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x18]
lea ecx, [esp + 0x1c8]
add edx, edi
mov dword [esp + 0x1e8], esi
call fcn.0041ac29
mov dword [esp + 0x14], eax
lea eax, [esp + 0x1c8]
push eax
call fcn.0041e989
pop ecx
test eax, eax
je 0x42438a
mov edx, dword [ebp + 4]
lea ecx, [ebx + 0x7c]
push ecx
push eax
mov ecx, esi
call fcn.0044ce18
pop ecx
pop ecx
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x1c8]
call fcn.0041a6cc
jmp 0x4222f9
inc dword [esi + 0xc0]
mov ecx, esi
push dword [ebp + 0x10]
mov edx, dword [ebp + 4]
call fcn.0044d048
dec dword [esi + 0xc0]
pop ecx
mov dword [esp + 0x14], eax
jmp 0x4222fd
xor eax, eax
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x424cf9
mov edi, dword [esi]
test edi, edi
je 0x424cf9
lea eax, [esp + 0x38]
push eax
push esi
call dword [edi + 0x18]
pop ecx
pop ecx
mov edx, esi
mov dword [esp + 0x14], eax
mov ecx, ebx
call fcn.0041e6e5
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x424c40
mov eax, dword [esp + 0x38]
mov ecx, ebx
push 2
mov dword [eax], esi
mov edx, dword [ebp + 4]
pop eax
push eax
xor eax, eax
push 0xffffffffffffffff
push eax
call fcn.0041fd80
add esp, 0xc
test eax, eax
je 0x424c1d
mov ecx, dword [esp + 0x38]
mov dword [eax + 0x28], ecx
inc dword [esi + 4]
jmp 0x4203e5
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
imul edx, dword [ebp + 0xc], 0x28
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x60], eax
add edx, edi
mov edi, dword [ebx + 0x5c]
mov esi, dword [eax + 0x28]
mov ecx, dword [edx + 0x28]
mov eax, dword [esi]
mov dword [esp + 0x48], eax
mov eax, dword [eax]
mov dword [esp + 0x38], eax
mov eax, dword [edx]
mov dword [esp + 0x20], eax
xor eax, eax
test ecx, ecx
jle 0x424475
add edx, 0x50
mov dword [edi + eax*4], edx
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x42446a
push edi
mov edi, dword [esp + 0x3c]
push ecx
push dword [ebp + 0x10]
push dword [esp + 0x2c]
push esi
call dword [edi + 0x20]
mov edx, dword [esp + 0x5c]
add esp, 0x14
mov ecx, ebx
mov dword [esp + 0x14], eax
call fcn.0041e6e5
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x424c40
push esi
call dword [edi + 0x28]
pop ecx
mov ecx, dword [esp + 0x60]
xor edx, edx
mov byte [ecx + 2], dl
test eax, eax
je 0x4203e5
jmp 0x424a01
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
imul esi, dword [ebp + 0xc], 0x28
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x20], ecx
add esi, edi
cmp byte [ecx + 2], 0
je 0x4244e4
mov ecx, esi
call fcn.0041aa88
jmp 0x4201bb
mov eax, dword [ecx + 0x28]
lea edi, [esp + 0xd0]
push 8
mov eax, dword [eax]
mov dword [esp + 0x4c], eax
mov eax, dword [eax]
mov dword [esp + 0x3c], eax
pop eax
mov ecx, eax
xor eax, eax
rep stosd dword es:[edi], eax
xor ecx, ecx
mov dword [esp + 0xd0], esi
inc ecx
test byte [ebp + 2], cl
je 0x424524
mov ecx, esi
call fcn.0041aa88
xor eax, eax
mov dword [esi], eax
mov eax, 0x4001
jmp 0x424536
mov ax, word [esi + 8]
mov edx, 0x3e40
and ax, dx
or ax, cx
movzx eax, ax
mov word [esi + 8], ax
lea eax, [esp + 0xd0]
push dword [ebp + 8]
push eax
mov eax, dword [esp + 0x28]
push dword [eax + 0x28]
mov eax, dword [esp + 0x44]
call dword [eax + 0x2c]
mov edx, dword [esp + 0x54]
add esp, 0xc
mov ecx, ebx
mov dword [esp + 0x14], eax
call fcn.0041e6e5
cmp dword [esp + 0xe4], 0
jle 0x424590
push esi
call fcn.0041e989
pop ecx
push eax
push 0x48a51c
push ebx
call fcn.0041b419
mov eax, dword [esp + 0xf0]
add esp, 0xc
mov dword [esp + 0x14], eax
movzx edx, byte [esp + 0x5c]
mov ecx, esi
call fcn.0041a330
mov ecx, esi
call fcn.0041ab99
test eax, eax
jne 0x424099
jmp 0x422bb7
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 2], 0
jne 0x4203e9
mov eax, dword [edi + 0x28]
push eax
mov esi, dword [eax]
mov ecx, dword [esi]
mov dword [esp + 0x24], ecx
call dword [ecx + 0x24]
pop ecx
mov edx, esi
mov dword [esp + 0x14], eax
mov ecx, ebx
call fcn.0041e6e5
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x424c40
mov eax, dword [esp + 0x20]
push dword [edi + 0x28]
call dword [eax + 0x28]
pop ecx
test eax, eax
jne 0x423a68
mov esi, dword [esp + 0x10]
imul eax, dword [ebp + 8], 0x14
mov ebp, dword [esp + 0x58]
add ebp, 0xffffffec
add ebp, eax
xor eax, eax
inc eax
jmp 0x423a6f
mov eax, dword [esi + 0x20]
mov ecx, 0x4000000
or dword [esi + 0x20], ecx
and eax, ecx
mov dword [esp + 0x20], eax
xor edx, edx
mov eax, dword [esi + 0x24]
inc edx
mov dword [esi + 0x24], eax
imul esi, dword [ebp + 4], 0x28
mov eax, dword [ebp + 0x10]
add esi, dword [esp + 0x18]
mov edi, dword [eax + 8]
mov ecx, esi
call fcn.0041a330
test eax, eax
jne 0x424c40
push dword [esi + 0x10]
mov eax, dword [edi]
push edi
call dword [eax + 0x4c]
cmp dword [esp + 0x28], 0
mov esi, dword [esp + 0x18]
pop ecx
pop ecx
mov dword [esp + 0x14], eax
jne 0x424676
mov eax, dword [esi + 0x24]
and dword [esi + 0x20], 0xfbffffff
mov dword [esi + 0x24], eax
mov edx, edi
mov ecx, ebx
call fcn.0041e6e5
and dword [ebx + 0x98], 0xfffffffc
jmp 0x422101
cmp byte [esi + 0x51], 0
jne 0x424c29
mov eax, dword [ebp + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x424cf9
mov edi, dword [esi]
test edi, edi
je 0x424cf9
mov edx, dword [ebp + 8]
xor eax, eax
cmp dword [edi + 0x34], eax
je 0x4203e5
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov al, byte [eax + 0x56]
mov byte [esp + 0x2f], al
mov eax, dword [ebx + 0x5c]
mov dword [esp + 0x20], eax
imul eax, dword [ebp + 0xc], 0x28
add eax, dword [esp + 0x18]
test edx, edx
jle 0x4246ee
mov ebx, dword [esp + 0x20]
mov dword [ebx + ecx*4], eax
add eax, 0x28
inc ecx
cmp ecx, edx
jl 0x4246df
mov ebx, dword [esp + 0x70]
mov ecx, dword [esp + 0x10]
mov al, byte [ebp + 2]
mov byte [ecx + 0x56], al
lea eax, [esp + 0x138]
push eax
push dword [esp + 0x24]
push edx
push esi
call dword [edi + 0x34]
mov ecx, dword [esp + 0x20]
add esp, 0x10
mov dword [esp + 0x14], eax
mov edx, esi
mov al, byte [esp + 0x2f]
mov byte [ecx + 0x56], al
mov ecx, ebx
call fcn.0041e6e5
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x424751
mov esi, dword [esp + 0x10]
xor ecx, ecx
cmp dword [ebp + 4], ecx
je 0x42477f
mov eax, dword [esp + 0x138]
mov ecx, dword [esp + 0x13c]
mov dword [esi + 0x28], eax
mov eax, dword [esp + 0x14]
mov dword [esi + 0x2c], ecx
jmp 0x42477d
cmp al, 0x13
jne 0x424779
mov eax, dword [ebp + 0x10]
cmp byte [eax + 0x10], 0
je 0x424775
movzx ecx, word [ebp + 2]
push 4
pop eax
cmp cx, ax
jne 0x424d00
xor eax, eax
jmp 0x4224fc
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
xor ecx, ecx
inc dword [ebx + 0x2c]
test eax, eax
jne 0x424c42
jmp 0x4203e9
mov edx, ebp
mov ecx, ebx
call fcn.00420033
mov edx, dword [ebp + 4]
mov esi, eax
mov eax, dword [esp + 0x10]
add edx, edx
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + edx*8 + 4]
call fcn.00412e0a
mov dword [esi], eax
xor eax, eax
mov dword [esi + 4], eax
jmp 0x4201bb
mov edx, ebp
mov ecx, ebx
call fcn.00420033
mov edx, dword [ebp + 4]
mov edi, eax
mov ecx, dword [esi + 0x10]
add edx, edx
mov esi, dword [ecx + edx*8 + 4]
xor ecx, ecx
mov eax, ecx
cmp dword [ebp + 0xc], ecx
je 0x4247e9
mov ecx, esi
call fcn.00412e0a
cmp eax, dword [ebp + 0xc]
cmovb eax, dword [ebp + 0xc]
mov edx, eax
mov ecx, esi
call fcn.004133a0
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x4203e5
movzx eax, word [ebp + 2]
xor ecx, ecx
mov dword [esp + 0x20], eax
push ecx
mov ecx, esi
lea eax, [eax*4 + 0x1c]
push eax
call fcn.00404b2c
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x424c25
xor eax, eax
mov dword [esi], eax
mov eax, ebp
mov ecx, dword [ebp + 0x10]
sub eax, dword [esp + 0x58]
mov dword [esi + 4], ecx
push 0x14
cdq
pop ecx
idiv ecx
push 2
mov dword [esi + 0x10], eax
xor eax, eax
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x24]
mov byte [esi + 0x19], al
mov dword [esi + 0xc], ebx
pop eax
add byte [ebp], al
mov byte [ebp + 1], 0xf0
mov dword [ebp + 0x10], esi
imul edi, dword [ebp + 0xc], 0x28
mov esi, dword [ebp + 0x10]
add edi, dword [esp + 0x18]
cmp dword [esi], edi
je 0x424894
movzx ecx, byte [esi + 0x19]
sub ecx, 1
mov dword [esi], edi
js 0x424894
lea edx, [ecx + 7]
push 4
lea edx, [esi + edx*4]
pop ebx
mov eax, dword [ebp + 8]
add eax, ecx
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
mov dword [edx], eax
sub edx, ebx
sub ecx, 1
jns 0x42487b
mov ebx, dword [esp + 0x70]
mov ax, word [edi + 8]
mov ecx, 0x3e40
and ax, cx
xor ecx, ecx
inc ecx
or ax, cx
mov word [edi + 8], ax
lea eax, [esi + 0x1c]
mov ecx, dword [esi + 4]
push eax
movzx eax, byte [esi + 0x19]
push eax
push esi
call dword [ecx + 0x10]
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x42490b
jle 0x4248e3
push edi
call fcn.0041e989
pop ecx
push eax
push 0x48a51c
push ebx
call fcn.0041b419
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x14], eax
push dword [ebp + 4]
mov ecx, dword [esp + 0x14]
lea edx, [ebx + 0xdc]
push dword [esi + 0x10]
call fcn.0041d351
xor eax, eax
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x1c]
pop ecx
pop ecx
test eax, eax
jne 0x424c40
test byte [edi + 8], 0x12
je 0x4203e5
movzx edx, byte [esp + 0x5c]
mov ecx, edi
call fcn.0041a330
mov ecx, edi
call fcn.0041ab99
test eax, eax
jne 0x424099
jmp 0x4203e5
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
jmp 0x4203ef
xor edx, edx
inc edx
test byte [esi + 0x58], dl
je 0x4249b9
push 0x10
pop eax
test byte [ebx + 0x98], al
jne 0x4249b9
mov eax, dword [ebp + 0x10]
test eax, eax
jne 0x424966
mov eax, dword [ebx + 0xc0]
test eax, eax
je 0x4249b9
push eax
cmp dword [esi + 0xbc], edx
jle 0x4249a5
push str.____s
push esi
call fcn.004064c5
add esp, 0xc
mov esi, eax
mov eax, dword [esp + 0x10]
push esi
push ebx
push dword [eax + 0xd0]
push 1
call dword [eax + 0xcc]
add esp, 0x10
mov edx, esi
mov esi, dword [esp + 0x10]
mov ecx, esi
call fcn.0040497d
jmp 0x4249b6
push ebx
push dword [esi + 0xd0]
push edx
call dword [esi + 0xcc]
add esp, 0x10
xor edx, edx
inc edx
mov eax, dword [ebp + 4]
cmp eax, dword [0x493a5c]
jl 0x4249f7
cmp byte [ebp], 0xa8
je 0x4203ed
mov ecx, edx
cmp dword [ebx + 0x6c], edx
jle 0x4249f5
push 0x14
pop esi
mov eax, esi
xor ebp, ebp
mov edx, dword [ebx + 0x68]
cmp byte [eax + edx], 0x11
jne 0x4249e9
mov dword [eax + edx + 4], ebp
inc ecx
add eax, esi
cmp ecx, dword [ebx + 0x6c]
jl 0x4249dc
mov ebp, dword [esp + 0x38]
xor eax, eax
inc eax
mov dword [ebp + 4], eax
inc dword [ebx + 0xbc]
imul eax, dword [ebp + 8], 0x14
mov ebp, dword [esp + 0x58]
add ebp, 0xffffffec
jmp 0x42160e
mov dword [ebx + 0x28], ecx
mov al, byte [ebp + 8]
mov byte [ebx + 0x92], al
mov dword [ebx + 0x24], esi
test ecx, ecx
je 0x424a8f
movzx eax, word [ebp + 2]
test ax, ax
je 0x424a64
push dword [eax*4 + 0x480cf8]
push str._s_constraint_failed
push ebx
call fcn.0041b419
add esp, 0xc
cmp dword [ebp + 0x10], 0
je 0x424a75
push dword [ebp + 0x10]
push dword [ebx + 0x7c]
push str._z:__s
push dword [esp + 0x1c]
call fcn.004064c5
add esp, 0x10
mov dword [ebx + 0x7c], eax
jmp 0x424a75
push dword [ebp + 0x10]
push 0x48a51c
push ebx
call fcn.0041b419
add esp, 0xc
push dword [ebx + 0x7c]
push dword [ebx + 0xc0]
push esi
push str.abort_at__d_in___s_:__s
push dword [ebp + 4]
call fcn.004065b6
add esp, 0x14
mov ecx, ebx
call fcn.0041cfa4
push 5
pop ecx
cmp eax, ecx
je 0x424b0d
push 0x65
pop eax
xor ecx, ecx
cmp dword [ebx + 0x28], ecx
push 1
pop ecx
cmovne eax, ecx
jmp 0x424ce1
push 0x48f0e4
push 0x152d5
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004065b6
add esp, 0x14
push 0xb
jmp 0x424c3f
push str.cannot_open_savepoint___SQL_statements_in_progress
push ebx
call fcn.0041b419
pop ecx
pop ecx
push 5
jmp 0x424c3f
push str.cannot_release_savepoint___SQL_statements_in_progress
jmp 0x424ada
sub ebp, dword [esp + 0x58]
push 0x14
pop ecx
mov eax, ebp
cdq
idiv ecx
xor ecx, ecx
mov dword [ebx + 0x24], eax
mov eax, dword [esp + 0x10]
push 5
mov byte [eax + 0x4f], cl
pop ecx
mov eax, ecx
mov dword [ebx + 0x28], ecx
jmp 0x424ce1
push 8
pop eax
jmp 0x424c42
cmp al, 5
jne 0x424c40
sub ebp, dword [esp + 0x58]
mov eax, ebp
push 0x14
cdq
pop ecx
idiv ecx
mov dword [ebx + 0x24], eax
mov eax, dword [esp + 0x14]
mov dword [ebx + 0x28], eax
jmp 0x424ce1
mov edx, dword [ebx + 0x7c]
test edx, edx
je 0x424b4e
mov ecx, esi
call fcn.0040494c
mov edx, str.database_schema_has_changed
mov ecx, esi
call fcn.00404c8a
mov dword [ebx + 0x7c], eax
mov edx, dword [ebp + 4]
mov ecx, edx
mov eax, dword [esi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax]
cmp eax, dword [esp + 0x38]
je 0x424b7a
mov ecx, esi
call fcn.00432662
mov eax, dword [ebx + 0x98]
and eax, 0xfffffffd
or eax, 1
mov dword [ebx + 0x98], eax
push 0x11
jmp 0x424c3f
mov eax, 0x204
jmp 0x424c40
push 6
pop eax
push 2
pop ecx
mov byte [ebx + 0x92], cl
jmp 0x424c40
push 7
pop eax
mov dword [esp + 0x14], eax
mov esi, edi
mov ecx, esi
call fcn.004326b8
mov eax, dword [esp + 0x14]
push 7
pop ecx
cmp eax, ecx
je 0x424c29
jmp 0x424c40
push str.too_many_levels_of_trigger_recursion
push ebx
mov dword [esp + 0x1c], 1
call fcn.0041b419
pop ecx
pop ecx
mov eax, dword [esp + 0x14]
jmp 0x424c40
push esi
call fcn.0041e989
pop ecx
push eax
push 0x48a51c
push ebx
call fcn.0041b419
add esp, 0xc
jmp 0x424be0
cmp esi, edx
mov dword [esp + 0x14], 1
mov eax, str.into
mov ecx, str.out_of
cmovne eax, ecx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
jmp 0x424bf3
push dword [esp + 0x38]
call dword [edi + 0x1c]
pop ecx
mov esi, dword [esp + 0x10]
mov ecx, esi
call fcn.00404d87
push str.out_of_memory
push ebx
call fcn.0041b419
pop ecx
pop ecx
push 7
pop eax
xor ecx, ecx
mov esi, dword [esp + 0x10]
mov edi, 0xc0a
push 7
pop edx
cmp byte [esi + 0x51], 0
cmovne eax, edx
mov dword [esp + 0x14], eax
cmp dword [ebx + 0x7c], ecx
jne 0x424c7c
cmp eax, edi
je 0x424c7c
mov ecx, eax
call fcn.0045c459
push eax
push 0x48a51c
push ebx
call fcn.0041b419
mov eax, dword [esp + 0x20]
add esp, 0xc
mov edx, eax
mov dword [ebx + 0x28], eax
mov ecx, esi
call fcn.00406df0
push dword [ebx + 0x7c]
sub ebp, dword [esp + 0x5c]
push dword [ebx + 0xc0]
mov eax, ebp
push 0x14
pop ecx
cdq
idiv ecx
push eax
push str.statement_aborts_at__d:___s___s
push dword [esp + 0x24]
call fcn.004065b6
add esp, 0x14
mov ecx, ebx
call fcn.0041cfa4
cmp dword [esp + 0x14], edi
jne 0x424cc3
mov ecx, esi
call fcn.00404d87
mov cl, byte [esp + 0x7b]
xor eax, eax
inc eax
mov dword [esp + 0x14], eax
test cl, cl
je 0x424ce1
movzx edx, cl
mov ecx, esi
dec edx
call fcn.00432662
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xac]
add dword [ebx + 0xb4], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1e4
ret
push 6
jmp 0x424c3f
push 5
pop edx
movzx eax, cl
cmp cx, dx
push 2
pop ecx
cmove eax, ecx
mov byte [ebx + 0x92], al
jmp 0x424be0
xor edx, edx
mov ecx, ebx
call fcn.0041cf49
test eax, eax
jne 0x424c40
mov eax, dword [ebx]
xor ecx, ecx
cmp dword [eax + 0x1bc], ecx
je 0x424d48
cmp dword [ebx + 0x30], ecx
je 0x424d48
xor edx, edx
mov ecx, ebx
inc edx
call fcn.0041ce63
xor ecx, ecx
mov eax, dword [ebx + 0x20]
push 2
pop edx
add eax, edx
or eax, 1
mov dword [ebx + 0x20], eax
imul esi, dword [ebp + 4], 0x28
add esi, edi
mov edi, ecx
mov dword [ebx + 0x78], esi
cmp dword [ebp + 8], ecx
jle 0x424da6
mov eax, 0x1000
test word [esi + 8], ax
je 0x424d80
mov ecx, esi
call fcn.0041a4a2
test eax, eax
jne 0x424c25
mov ax, word [esi + 8]
mov ecx, 0x202
and ax, cx
push 2
pop ecx
cmp ax, cx
jne 0x424d9b
mov ecx, esi
call fcn.0041a45c
inc edi
add esi, 0x28
cmp edi, dword [ebp + 8]
jl 0x424d66
xor ecx, ecx
mov esi, dword [esp + 0x10]
cmp byte [esi + 0x51], 0
jne 0x424c29
push 4
pop eax
test byte [esi + 0x58], al
je 0x424dce
push ecx
push ebx
push dword [esi + 0xd0]
push eax
call dword [esi + 0xcc]
add esp, 0x10
sub ebp, dword [esp + 0x58]
push 0x14
mov eax, ebp
cdq
pop ecx
idiv ecx
push 0x64
inc eax
mov dword [ebx + 0x24], eax
pop eax
jmp 0x424ce1
mov ecx, dword [esp + 0x10]
mov edx, dword [ebp + 4]
mov esi, dword [ebp + 8]
mov dword [esp + 0x8c], edx
movzx eax, byte [ecx + 0x4f]
cmp edx, eax
je 0x424e8f
test esi, esi
je 0x424e15
mov edx, 0x204
call fcn.0045c37d
mov al, 1
jmp 0x424e4d
test edx, edx
je 0x424e2d
xor eax, eax
cmp dword [ecx + 0xb8], eax
jle 0x424e2d
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x424ada
xor edx, edx
mov ecx, ebx
inc edx
call fcn.0041cf49
test eax, eax
jne 0x424ce1
mov al, byte [esp + 0x8c]
mov byte [esp + 0x8c], al
mov esi, dword [esp + 0x10]
mov ecx, ebx
mov byte [esi + 0x4f], al
call fcn.0041cfa4
push 5
pop ecx
cmp eax, ecx
jne 0x424e83
sub ebp, dword [esp + 0x58]
mov eax, ebp
cdq
push 0x14
pop ebp
idiv ebp
mov dword [ebx + 0x24], eax
xor eax, eax
inc eax
sub al, byte [esp + 0x8c]
mov byte [esi + 0x4f], al
jmp 0x424b0b
mov ecx, esi
call fcn.0045bfdd
jmp 0x424a9d
test esi, esi
mov eax, str.cannot_commit___no_transaction_is_active
mov ecx, str.cannot_rollback___no_transaction_is_active
cmove ecx, eax
test edx, edx
mov eax, str.cannot_start_a_transaction_within_a_transaction
cmovne eax, ecx
push eax
push ebx
call fcn.0041b419
pop ecx
pop ecx
jmp 0x421eb6
cmp byte [esi + 0x51], 0
push 9
pop eax
push 7
pop ecx
cmovne eax, ecx
mov ecx, eax
mov dword [esp + 0x14], eax
mov dword [ebx + 0x28], eax
call fcn.0045c459
jmp 0x424bed