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

Disassembly:
sub esp, 0x1ec
mov eax, dword [0x490004]
xor eax, esp
mov dword [esp + 0x1e4], eax
push ebx
mov ebx, ecx
xor edx, edx
push ebp
push esi
mov eax, edx
mov dword [esp + 0x40], ebx
mov esi, dword [ebx]
mov ecx, dword [ebx + 0x68]
mov ebp, ecx
mov dword [esp + 0x14], eax
push edi
mov al, byte [esi + 0x4e]
mov edi, dword [ebx + 0x58]
mov byte [esp + 0x38], al
xor eax, eax
inc eax
mov dword [esp + 0x34], ecx
cmp dword [ebx + 0x28], 7
mov dword [esp + 0x14], esi
mov byte [esp + 0x4b], dl
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], edx
mov dword [esp + 0x1c], edi
je 0x425e80
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 0x42611b
imul ebp, dword [ebx + 0x24], 0x14
xorps xmm0, xmm0
movsd qword [esp + 0x58], xmm0
add ebp, ecx
inc edx
mov dword [esp + 0x54], edx
mov dword [esp + 0x130], ebp
mov cl, byte [ebp]
movzx edx, cl
mov byte [esp + 0x27], cl
mov dword [esp + 0x20], edx
cmp edx, 0xa8
ja case.0x4210a9.86
jmp dword [edx*4 + 0x42613d]
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 + 0x34]
cdq
idiv esi
cdq
mov dword [ecx + edi], eax
mov dword [ecx + edi + 4], edx
jmp 0x425c52
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 + 0x34]
jmp 0x42139d
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 0x425c52
jmp 0x42139d
imul ecx, dword [ebp + 4], 0x28
mov edx, dword [esp + 0x34]
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 0x42139d
imul esi, dword [ebp + 4], 0x28
sub ebp, dword [esp + 0x34]
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 + 0x34]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
mov esi, dword [esp + 0x14]
jmp 0x42139d
imul eax, dword [ebp + 0xc], 0x28
test byte [eax + edi + 8], 1
je 0x42139d
mov eax, ebp
sub eax, dword [esp + 0x34]
push 0x14
pop ecx
cdq
idiv ecx
mov ecx, dword [ebp + 4]
mov esi, eax
test ecx, ecx
jne 0x425c62
mov edx, dword [ebx + 0xc8]
test edx, edx
je 0x425c62
mov eax, dword [edx + 4]
mov ecx, edx
mov esi, dword [esp + 0x14]
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.0041d59a
mov edx, dword [ebx + 0x68]
push 4
pop ecx
mov dword [esp + 0x34], edx
cmp dword [ebp + 8], ecx
jne 0x4211de
imul eax, eax, 0x14
mov eax, dword [eax + edx + 8]
dec eax
mov edi, dword [ebx + 0x58]
imul ebp, eax, 0x14
mov dword [esp + 0x1c], edi
add ebp, edx
jmp 0x42139d
mov edx, ebp
mov ecx, ebx
call fcn.00420fd8
mov ecx, eax
mov eax, dword [ebp + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x42139d
mov edx, ebp
mov ecx, ebx
call fcn.00420fd8
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp 0x42139d
mov edx, ebp
mov ecx, ebx
call fcn.00420fd8
push 8
pop ecx
mov word [eax + 8], cx
mov ecx, dword [ebp + 0x10]
movsd xmm0, qword [ecx]
movsd qword [eax], xmm0
jmp 0x42139d
mov edx, ebp
mov ecx, ebx
call fcn.00420fd8
mov edx, dword [ebp + 0x10]
mov esi, eax
test edx, edx
jne 0x42125b
xor eax, eax
mov ecx, eax
jmp 0x421273
mov ecx, edx
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x421260
sub ecx, edi
mov edi, dword [esp + 0x1c]
and ecx, 0x3fffffff
xor eax, eax
mov dword [ebp + 4], ecx
inc eax
cmp byte [esp + 0x38], al
je 0x4212f1
xor ecx, ecx
push ecx
push eax
push 0xffffffffffffffff
mov ecx, esi
call fcn.0041ba9c
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
jne 0x425294
push 2
pop eax
test byte [esi + 8], al
je 0x4212bd
mov al, byte [esp + 0x38]
cmp byte [esi + 0xa], al
je 0x4212bd
mov dl, al
mov ecx, esi
call fcn.00406791
test eax, eax
jne 0x425e7c
xor eax, eax
mov dword [esi + 0x18], eax
mov eax, 0x800
or word [esi + 8], ax
cmp byte [ebp + 1], 0xf9
jne 0x4212e1
mov edx, dword [ebp + 0x10]
test edx, edx
je 0x4212e1
mov ecx, dword [esp + 0x14]
call fcn.004047d8
mov byte [ebp + 1], 0xf9
mov eax, dword [esi + 0x10]
mov dword [ebp + 0x10], eax
mov ecx, dword [esi + 0xc]
mov dword [ebp + 4], ecx
mov esi, dword [esp + 0x14]
cmp ecx, dword [esi + 0x6c]
jg 0x425294
mov byte [ebp], 0x48
mov edx, ebp
mov ecx, ebx
call fcn.00420fd8
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 + 0x38]
mov byte [eax + 0xa], cl
jmp 0x42139d
mov edx, ebp
mov ecx, ebx
call fcn.00420fd8
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 + 0x128], ecx
xor eax, eax
mov word [esi], cx
test edi, edi
jle 0x425b84
mov edx, 0x2400
lea esi, [esi + 0x28]
test word [esi], dx
je 0x42138a
lea ecx, [esi - 8]
call fcn.0041b433
mov ecx, dword [esp + 0x128]
xor eax, eax
mov edx, 0x2400
dec edi
mov word [esi], cx
mov dword [esi + 4], eax
test edi, edi
jg 0x42136c
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
xor eax, eax
inc eax
mov edx, dword [esp + 0x54]
push 0x14
pop ecx
jmp 0x421081
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 0x421133
mov edx, ebp
mov ecx, ebx
call fcn.00420fd8
mov edx, dword [ebp + 0x10]
mov esi, eax
xor eax, eax
mov ecx, esi
push eax
push eax
push dword [ebp + 4]
call fcn.0041ba9c
mov al, byte [esp + 0x44]
add esp, 0xc
mov byte [esi + 0xa], al
jmp 0x421165
imul ecx, dword [ebp + 4], 0x28
mov esi, dword [ebx + 0x64]
add ecx, 0xffffffd8
add esi, ecx
mov ecx, esi
call fcn.0041b97a
test eax, eax
jne 0x425294
imul edx, dword [ebp + 8], 0x28
mov eax, 0x2400
add edx, edi
mov dword [esp + 0x128], edx
test word [edx + 8], ax
je 0x421434
mov ecx, edx
call fcn.0041b433
mov edx, dword [esp + 0x128]
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 0x421395
imul edi, dword [ebp + 4], 0x28
imul esi, dword [ebp + 8], 0x28
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x130], eax
add edi, dword [esp + 0x1c]
add esi, dword [esp + 0x1c]
mov edx, edi
mov ecx, esi
call fcn.0041ba7a
mov eax, 0x1000
test word [esi + 8], ax
je 0x421497
mov ecx, esi
call fcn.0041b242
test eax, eax
jne 0x425e7c
add edi, 0x28
add esi, 0x28
sub dword [esp + 0x130], 1
jne 0x421474
jmp 0x421395
imul edi, dword [ebp + 4], 0x28
imul esi, dword [ebp + 8], 0x28
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x130], eax
add edi, dword [esp + 0x1c]
add esi, dword [esp + 0x1c]
mov eax, 0x1000
mov edx, edi
push eax
mov ecx, esi
call fcn.0041b9b9
mov eax, 0x1000
pop ecx
test word [esi + 8], ax
je 0x4214f0
mov ecx, esi
call fcn.0041b242
test eax, eax
jne 0x425e7c
mov ecx, dword [esp + 0x130]
mov eax, ecx
dec ecx
mov dword [esp + 0x130], ecx
test eax, eax
je 0x421395
add esi, 0x28
add edi, 0x28
jmp 0x4214c6
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.0041b9b9
pop ecx
jmp 0x42139d
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 + 0x44]
je 0x421558
push eax
push edx
call fcn.0041b8b3
pop ecx
jmp 0x421528
mov dword [ecx], edx
mov dword [ecx + 4], eax
push 4
pop eax
mov word [ecx + 8], ax
jmp 0x42139d
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 + 0x1c]
mov dword [esp + 0x20], ecx
movzx edx, word [ecx + 8]
add edi, dword [esp + 0x1c]
mov dword [esp + 0x138], edx
mov al, byte [edi + 8]
or al, dl
test al, 1
je 0x4215be
mov eax, 0x2400
test word [esi + 8], ax
je 0x4215ae
mov ecx, esi
call fcn.0041b433
jmp 0x421395
xor eax, eax
inc eax
mov word [esi + 8], ax
mov esi, dword [esp + 0x14]
jmp 0x424c3f
test dl, 0x12
jne 0x4215d2
mov dl, byte [esp + 0x38]
xor eax, eax
push eax
call fcn.0041b2f1
pop ecx
jmp 0x4215e0
mov eax, 0x4000
test eax, edx
je 0x421607
call fcn.0041b288
test eax, eax
jne 0x425e7c
mov eax, dword [esp + 0x20]
mov ecx, 0xfffd
mov ax, word [eax + 8]
and ax, cx
movzx eax, ax
mov dword [esp + 0x138], eax
mov eax, 0x4000
movzx edx, word [edi + 8]
mov dword [esp + 0x130], edx
test dl, 0x12
jne 0x421646
mov dl, byte [esp + 0x38]
xor eax, eax
push eax
mov ecx, edi
call fcn.0041b2f1
pop ecx
test eax, eax
jne 0x425e7c
mov ax, word [edi + 8]
mov ecx, 0xfffd
and ax, cx
movzx edx, ax
mov dword [esp + 0x130], edx
jmp 0x42166f
test eax, edx
je 0x42166f
mov ecx, edi
call fcn.0041b288
test eax, eax
jne 0x425e7c
mov ax, word [edi + 8]
mov ecx, 0xfffd
and ax, cx
movzx eax, ax
mov dword [esp + 0x130], eax
mov eax, dword [esp + 0x20]
mov edx, dword [edi + 0xc]
mov eax, dword [eax + 0xc]
add edx, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x128], edx
cmp edx, dword [eax + 0x6c]
jg 0x425294
xor eax, eax
mov ecx, esi
cmp esi, edi
sete al
add edx, 3
push eax
call fcn.0041b0e2
pop ecx
test eax, eax
jne 0x425e7c
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 0x4216e0
push dword [edi + 0xc]
push dword [edi + 0x10]
push dword [esi + 0x10]
call fcn.00463550
mov eax, dword [esp + 0x13c]
add esp, 0xc
mov word [edi + 8], ax
mov eax, dword [esp + 0x20]
push dword [eax + 0xc]
push dword [eax + 0x10]
mov eax, dword [edi + 0xc]
add eax, dword [esi + 0x10]
push eax
call fcn.00463550
mov eax, dword [esp + 0x2c]
xor edx, edx
mov ecx, dword [esp + 0x144]
add esp, 0xc
mov word [eax + 8], cx
mov eax, dword [esi + 0x10]
mov ecx, dword [esp + 0x128]
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 + 0x38]
mov dword [esi + 0xc], ecx
mov byte [esi + 0xa], al
jmp 0x421395
imul eax, dword [ebp + 4], 0x28
add eax, edi
mov ecx, eax
mov dword [esp + 0x20], eax
call fcn.00420fa9
imul esi, dword [ebp + 8], 0x28
movzx ebx, ax
add esi, edi
mov ecx, esi
mov dword [esp + 0x138], esi
call fcn.00420fa9
movzx ecx, ax
imul eax, dword [ebp + 0xc], 0x28
and cl, bl
push 4
pop edx
add eax, edi
mov dword [esp + 0x130], eax
mov ax, word [esi + 8]
mov esi, dword [esp + 0x20]
or ax, word [esi + 8]
movzx eax, ax
test dl, cl
je 0x4219a3
mov eax, esi
mov edx, dword [eax]
mov esi, dword [eax + 4]
mov eax, dword [esp + 0x138]
mov edi, dword [eax]
mov ebx, dword [eax + 4]
movzx eax, byte [ebp]
mov dword [esp + 0x150], edi
mov dword [esp + 0x154], ebx
sub eax, 0x67
je 0x4218ef
sub eax, 1
je 0x42183e
sub eax, 1
je 0x42182e
sub eax, 1
mov eax, edx
je 0x421804
or eax, esi
je 0x421a4c
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
jne 0x4217e8
xor edx, edx
inc edx
xor eax, eax
mov esi, eax
push esi
push edx
push ebx
push edi
call fcn.00475570
mov dword [esp + 0x150], eax
mov dword [esp + 0x154], edx
jmp 0x421982
or eax, esi
je 0x421a4c
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
jne 0x421823
xor eax, eax
cmp edi, eax
jne 0x421823
cmp ebx, 0x80000000
je 0x421856
push esi
push edx
push ebx
push edi
call fcn.004754c0
jmp 0x4217f1
push esi
push edx
lea ecx, [esp + 0x158]
call fcn.00407e21
jmp 0x42184c
push esi
push edx
lea ecx, [esp + 0x158]
call fcn.00407dd7
pop ecx
pop ecx
test eax, eax
je 0x421982
mov esi, dword [esp + 0x20]
mov ecx, esi
call fcn.0041b571
mov ebx, dword [esp + 0x138]
mov ecx, ebx
movsd qword [esp + 0x128], xmm0
call fcn.0041b571
movzx eax, byte [ebp]
sub eax, 0x67
je 0x4219e8
sub eax, 1
je 0x4219dd
sub eax, 1
je 0x4219d2
sub eax, 1
je 0x4219b3
mov ecx, esi
call fcn.0041b50a
mov ecx, ebx
mov esi, eax
mov edi, edx
call fcn.0041b50a
mov ecx, esi
mov dword [esp + 0x150], eax
or ecx, edi
mov dword [esp + 0x154], edx
je 0x421a4c
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x4218da
xor esi, esi
inc esi
xor ecx, ecx
mov edi, ecx
push edi
push esi
push edx
push eax
call fcn.00475570
mov ecx, eax
call fcn.00476ab0
jmp 0x4219f1
xor eax, eax
cmp esi, eax
jl 0x421924
jg 0x4218fb
cmp edx, eax
jb 0x421924
cmp ebx, eax
jl 0x421970
jg 0x421905
cmp edi, eax
jbe 0x421970
or ecx, 0xffffffff
mov eax, 0x7fffffff
sub ecx, edi
sbb eax, ebx
cmp eax, esi
jg 0x421970
jl 0x421856
cmp ecx, edx
jae 0x421970
jmp 0x421856
cmp ebx, eax
jg 0x421970
jl 0x42192e
cmp edi, eax
jae 0x421970
mov eax, edx
mov ecx, esi
add eax, 1
mov dword [esp + 0x140], eax
push 0
pop eax
adc ecx, eax
inc eax
sub eax, edi
mov dword [esp + 0x128], eax
mov eax, 0x80000000
sbb eax, ebx
cmp eax, ecx
jg 0x421856
jl 0x421970
mov eax, dword [esp + 0x128]
cmp eax, dword [esp + 0x140]
ja 0x421856
add edi, edx
mov dword [esp + 0x150], edi
adc ebx, esi
mov dword [esp + 0x154], ebx
mov edx, dword [esp + 0x130]
mov eax, dword [esp + 0x150]
mov ecx, dword [esp + 0x154]
push 4
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x421a2c
xor edx, edx
inc edx
test dl, al
jne 0x421a4f
jmp 0x42185a
movsd xmm1, qword [esp + 0x128]
ucomisd xmm1, qword [esp + 0x58]
lahf
test ah, 0x44
jnp 0x421a4c
divsd xmm0, xmm1
jmp 0x4219f1
mulsd xmm0, qword [esp + 0x128]
jmp 0x4219f1
subsd xmm0, qword [esp + 0x128]
jmp 0x4219f1
addsd xmm0, qword [esp + 0x128]
movsd qword [esp + 0x128], xmm0
mov ebx, 0x7ff00000
mov ecx, dword [esp + 0x12c]
mov eax, ecx
and eax, ebx
cmp eax, ebx
jne 0x421a1f
mov eax, dword [esp + 0x128]
and ecx, 0xfffff
or eax, ecx
jne 0x421a4c
mov edx, dword [esp + 0x130]
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 + 0x44]
jmp 0x421395
xor edx, edx
inc edx
mov eax, dword [esp + 0x130]
mov ecx, 0x2400
test word [eax + 8], cx
je 0x421a6a
mov ecx, eax
call fcn.0041b433
jmp 0x421a43
mov word [eax + 8], dx
jmp 0x421a43
mov eax, dword [ebp + 4]
test eax, eax
je 0x42139d
imul eax, eax, 0x28
mov ecx, 0x2400
add eax, edi
test word [eax + 8], cx
je 0x421a96
xor ecx, ecx
push ecx
push ecx
mov ecx, eax
jmp 0x421550
xor ecx, ecx
push 4
mov dword [eax], ecx
mov dword [eax + 4], ecx
pop ecx
mov word [eax + 8], cx
jmp 0x42139d
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 + 0x138], edx
mov al, byte [ecx + 8]
or al, byte [esi + 8]
test al, 1
je 0x421af3
mov eax, 0x2400
test word [edx + 8], ax
je 0x421ae3
mov ecx, edx
call fcn.0041b433
jmp 0x421165
xor eax, eax
inc eax
mov word [edx + 8], ax
mov esi, dword [esp + 0x14]
jmp case.0x4210a9.86
call fcn.0041b50a
mov ecx, esi
mov dword [esp + 0x20], eax
mov edi, edx
call fcn.0041b50a
mov cl, byte [ebp]
mov esi, eax
cmp cl, 0x63
jne 0x421b1c
mov eax, dword [esp + 0x20]
and eax, esi
and edi, edx
jmp 0x421c0d
cmp cl, 0x64
jne 0x421b2e
mov eax, dword [esp + 0x20]
or eax, esi
or edi, edx
jmp 0x421c0d
mov eax, esi
or eax, edx
je 0x421c09
xor eax, eax
cmp edx, eax
jg 0x421b85
jl 0x421b44
cmp esi, eax
jae 0x421b5f
mov al, 0xcb
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x421b83
jg 0x421b56
cmp esi, 0xffffffc0
jbe 0x421b83
neg esi
push 0
pop eax
adc edx, eax
neg edx
cmp edx, eax
jl 0x421b6a
jg 0x421b85
cmp esi, 0x40
jae 0x421b85
mov eax, dword [esp + 0x20]
cmp cl, 0x65
mov edx, edi
mov ecx, esi
jne 0x421bb9
call fcn.00475480
mov ecx, eax
jmp 0x421c03
xor eax, eax
cmp edi, eax
jg 0x421b9d
jl 0x421b91
cmp dword [esp + 0x20], eax
jae 0x421b9d
cmp cl, 0x65
je 0x421b9d
or eax, 0xffffffff
or edi, eax
jmp 0x421c0d
xorps xmm0, xmm0
movlpd qword [esp + 0x128], xmm0
mov edi, dword [esp + 0x12c]
mov eax, dword [esp + 0x128]
jmp 0x421c0d
call fcn.004754a0
mov ecx, eax
mov dword [esp + 0x130], edx
xor eax, eax
mov dword [esp + 0x128], ecx
cmp edi, eax
jg 0x421c03
jl 0x421bdc
cmp dword [esp + 0x20], eax
jae 0x421c03
push 0x40
pop ecx
sub ecx, esi
or eax, 0xffffffff
or edx, 0xffffffff
call fcn.00475480
mov ecx, dword [esp + 0x128]
or ecx, eax
or dword [esp + 0x130], edx
mov edx, dword [esp + 0x130]
mov eax, ecx
mov edi, edx
jmp 0x421c0d
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x138]
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 0x421395
imul esi, dword [ebp + 4], 0x28
add esi, edi
mov ecx, esi
call fcn.0041b628
mov eax, dword [ebp + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp 0x421165
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 0x421c8f
push dword [esp + 0x38]
mov dl, 0x43
mov ecx, esi
call fcn.00420e95
movzx eax, word [esi + 8]
pop ecx
push 4
pop edx
mov ecx, eax
test dl, al
jne 0x421c8f
xor eax, eax
cmp dword [ebp + 8], eax
jne 0x425c52
push 0x14
jmp 0x425e96
mov eax, 0x3e40
and ecx, eax
push 4
pop eax
or ecx, eax
mov word [esi + 8], cx
jmp 0x421165
imul ecx, dword [ebp + 4], 0x28
add ecx, edi
test byte [ecx + 8], 0x24
je case.0x4210a9.86
call fcn.0041b64d
jmp 0x42139d
imul esi, dword [ebp + 4], 0x28
mov eax, 0x4000
add esi, edi
test word [esi + 8], ax
je 0x421cd8
mov ecx, esi
call fcn.0041b288
jmp 0x421cda
xor eax, eax
push dword [esp + 0x38]
mov dl, byte [ebp + 8]
mov ecx, esi
mov dword [esp + 0x1c], eax
call fcn.0041b7a1
pop ecx
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x425e97
jmp 0x421165
imul edi, dword [ebp + 4], 0x28
imul eax, dword [ebp + 0xc], 0x28
mov ecx, dword [esp + 0x1c]
add edi, ecx
add ecx, eax
mov dword [esp + 0x20], ecx
movzx eax, word [edi + 8]
movzx esi, word [ecx + 8]
mov ecx, esi
mov dword [esp + 0x28], eax
mov edx, ecx
mov dword [esp + 0x2c], ecx
or edx, eax
test dl, 1
je 0x421db1
movzx eax, word [ebp + 2]
mov edx, 0x80
test dl, al
je 0x421d74
mov al, byte [esp + 0x2c]
xor edx, edx
and al, byte [esp + 0x28]
inc edx
test dl, al
je 0x421d60
test ecx, 0x100
jne 0x421d60
mov esi, dword [esp + 0x20]
xor eax, eax
jmp 0x421ed7
mov esi, dword [esp + 0x20]
not ecx
and ecx, edx
lea ecx, [ecx*2 - 1]
jmp 0x421ed9
test al, 0x20
je 0x421da1
imul ecx, dword [ebp + 8], 0x28
xor edx, edx
mov edi, dword [esp + 0x1c]
mov esi, 0x3e40
inc edx
mov dword [esp + 0x50], edx
mov ax, word [ecx + edi + 8]
and ax, si
or ax, dx
mov word [ecx + edi + 8], ax
jmp 0x421165
push 0x10
pop ecx
test cl, al
jne 0x425c52
jmp 0x421395
mov al, byte [ebp + 2]
and al, 0x47
cmp al, 0x43
jb 0x421e56
push 2
pop eax
mov ecx, esi
test al, dl
je 0x421e10
mov al, byte [esp + 0x28]
push 2
and al, 0x2e
pop ecx
cmp al, cl
jne 0x421deb
xor edx, edx
mov ecx, edi
call fcn.00420de5
mov esi, dword [esp + 0x20]
movzx eax, word [esi + 8]
mov dword [esp + 0x2c], eax
jmp 0x421def
mov esi, dword [esp + 0x20]
mov al, byte [esp + 0x2c]
movzx ecx, word [esp + 0x2c]
and al, 0x2e
push 2
pop edx
cmp al, dl
jne 0x421e14
xor edx, edx
mov ecx, esi
call fcn.00420de5
movzx ecx, word [esi + 8]
jmp 0x421e14
mov esi, dword [esp + 0x20]
mov al, byte [edi + 8]
and al, cl
push 4
pop ecx
test cl, al
je 0x421eca
mov eax, dword [esi + 4]
mov ecx, dword [esi]
cmp eax, dword [edi + 4]
jl 0x421e47
jg 0x421e34
cmp ecx, dword [edi]
jbe 0x421e3c
xor ecx, ecx
inc ecx
jmp 0x421ed9
cmp eax, dword [edi + 4]
jg 0x421e4f
jl 0x421e47
cmp ecx, dword [edi]
jae 0x421e4f
or ecx, 0xffffffff
jmp 0x421ed9
xor eax, eax
jmp 0x421ed7
cmp al, 0x42
jne 0x421ec6
mov al, byte [esp + 0x28]
push 2
pop ecx
test cl, al
jne 0x421e90
test al, 0x2c
je 0x421e90
mov dl, byte [esp + 0x38]
mov ecx, edi
push 1
call fcn.0041b2f1
mov ax, word [edi + 8]
xor ax, word [esp + 0x2c]
pop ecx
mov ecx, 0x3e40
and ax, cx
xor word [esp + 0x28], ax
push 2
pop ecx
mov al, byte [esp + 0x2c]
test cl, al
jne 0x421ec6
mov esi, dword [esp + 0x20]
test al, 0x2c
je 0x421eca
mov dl, byte [esp + 0x38]
mov ecx, esi
push 1
call fcn.0041b2f1
mov ax, word [esi + 8]
xor ax, word [esp + 0x30]
pop ecx
mov ecx, 0x3e40
and ax, cx
xor word [esp + 0x2c], ax
jmp 0x421eca
mov esi, dword [esp + 0x20]
push dword [ebp + 0x10]
mov edx, edi
mov ecx, esi
call fcn.0041ea10
pop ecx
mov ecx, eax
movzx eax, byte [ebp]
test ecx, ecx
jns 0x421ee9
mov al, byte [eax + 0x484c1c]
jmp 0x421ef9
jne 0x421ef3
mov al, byte [eax + 0x484dcc]
jmp 0x421ef9
mov al, byte [eax + 0x4801b0]
movzx edx, al
mov ax, word [esp + 0x28]
mov word [edi + 8], ax
mov ax, word [esp + 0x2c]
mov word [esi + 8], ax
movzx eax, word [ebp + 2]
test al, 0x20
je 0x421f56
imul esi, dword [ebp + 8], 0x28
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x50], ecx
add esi, edi
test al, 8
je 0x421f39
xor eax, eax
cmp byte [ebp], 0x35
sete al
cmp eax, edx
je 0x421165
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 0x42115f
test edx, edx
jmp 0x421da6
cmp dword [esp + 0x50], 0
jne 0x425c52
jmp case.0x4210a9.86
test byte [ebp + 2], al
jne 0x421f76
xor eax, eax
jmp 0x421f7e
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 + 0x4c], esi
mov esi, dword [ebp + 8]
mov dword [esp + 0x40], esi
xor esi, esi
mov dword [esp + 0x138], eax
mov dword [esp + 0x128], ecx
mov dword [esp + 0x140], edx
test ecx, ecx
jle 0x421165
lea ecx, [edx + 0x14]
mov dword [esp + 0x130], ecx
test eax, eax
je 0x421fc4
mov edi, dword [eax + esi*4]
jmp 0x421fc6
mov edi, esi
mov eax, dword [edx + 0x10]
push dword [ecx]
movzx eax, byte [eax + esi]
and eax, 1
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x44]
add eax, edi
imul edx, eax, 0x28
mov eax, dword [esp + 0x50]
add eax, edi
imul ecx, eax, 0x28
add edx, dword [esp + 0x20]
add ecx, dword [esp + 0x20]
call fcn.0041ea10
pop ecx
mov ecx, eax
mov dword [esp + 0x50], ecx
test ecx, ecx
jne 0x422030
mov ecx, dword [esp + 0x130]
inc esi
mov edx, dword [esp + 0x140]
push 4
pop eax
add ecx, eax
mov eax, dword [esp + 0x138]
mov dword [esp + 0x130], ecx
cmp esi, dword [esp + 0x128]
jl 0x421fbb
jmp 0x421395
mov eax, dword [esp + 0x140]
push 2
pop edx
mov eax, dword [eax + 0x10]
test byte [esi + eax], dl
je 0x422077
mov eax, dword [esp + 0x4c]
xor edx, edx
mov ecx, dword [esp + 0x1c]
add eax, edi
imul eax, eax, 0x28
inc edx
test byte [eax + ecx + 8], dl
jne 0x422067
mov eax, dword [esp + 0x40]
add eax, edi
imul eax, eax, 0x28
test byte [eax + ecx + 8], dl
je 0x422073
mov ecx, dword [esp + 0x50]
neg ecx
mov dword [esp + 0x50], ecx
jmp 0x422077
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x14]
xor eax, eax
mov edi, dword [esp + 0x1c]
cmp dword [esp + 0x3c], eax
je 0x42139f
neg ecx
mov dword [esp + 0x50], ecx
jmp 0x42139f
mov ecx, dword [esp + 0x50]
test ecx, ecx
jns 0x4220a4
imul ebp, dword [ebp + 4], 0x14
jmp 0x4220b0
jne 0x4220ac
imul ebp, dword [ebp + 8], 0x14
jmp 0x4220b0
imul ebp, dword [ebp + 0xc], 0x14
add ebp, dword [esp + 0x34]
add ebp, 0xffffffec
jmp case.0x4210a9.86
imul ecx, dword [ebp + 4], 0x28
push 2
pop eax
mov edx, eax
add ecx, edi
call fcn.0041b598
imul ecx, dword [ebp + 8], 0x28
mov esi, eax
push 2
pop eax
mov edx, eax
add ecx, edi
call fcn.0041b598
imul ecx, esi, 3
cmp byte [ebp], 0x2c
jne 0x4220f0
mov dl, byte [ecx + eax + 0x481004]
jmp 0x4220f7
mov dl, byte [ecx + eax + 0x484d90]
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 0x422118
or ecx, 1
jmp 0x422126
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 0x421165
imul ecx, dword [ebp + 4], 0x28
mov edx, dword [ebp + 0xc]
add ecx, edi
call fcn.0041b598
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 + 0x44]
je 0x422160
push edx
push eax
jmp 0x421550
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x42155d
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 0x4221b6
xor edx, edx
call fcn.0041b598
neg eax
mov ecx, 0x2400
sbb eax, eax
inc eax
test word [esi + 8], cx
je 0x4221a7
xor ecx, ecx
push ecx
push eax
mov ecx, esi
call fcn.0041b8b3
pop ecx
pop ecx
jmp 0x421165
mov dword [esi], eax
xor eax, eax
push 4
mov dword [esi + 4], eax
pop eax
jmp 0x422129
mov eax, 0x2400
test word [esi + 8], ax
je 0x4221c8
mov ecx, esi
jmp 0x421ad9
mov word [esi + 8], dx
jmp 0x421165
imul esi, dword [ebp + 8], 0x28
mov eax, 0x2400
imul edi, dword [ebp + 4], 0x28
add esi, dword [esp + 0x1c]
add edi, dword [esp + 0x1c]
test word [esi + 8], ax
je 0x4221f8
mov ecx, esi
call fcn.0041b433
xor edx, edx
inc edx
jmp 0x4221ff
xor edx, edx
inc edx
mov word [esi + 8], dx
test byte [edi + 8], dl
jne 0x421395
push 4
pop eax
mov ecx, edi
mov word [esi + 8], ax
call fcn.0041b50a
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x421395
mov edi, dword [ebx + 0xc8]
test edi, edi
je 0x422266
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 0x425c52
bts eax, ecx
mov byte [esi + edi], al
mov ecx, dword [ebx + 0x68]
mov esi, dword [esp + 0x14]
jmp 0x422275
mov ecx, dword [ebx + 0x68]
mov eax, dword [ecx + 4]
cmp eax, dword [ebp + 4]
je 0x425c52
mov eax, dword [ecx + 4]
mov dword [ebp + 4], eax
jmp 0x421399
imul ecx, dword [ebp + 4], 0x28
mov edx, dword [ebp + 0xc]
add ecx, edi
call fcn.0041b598
test eax, eax
jmp 0x42110d
xor edx, edx
xor eax, eax
cmp dword [ebp + 0xc], eax
sete dl
imul ecx, dword [ebp + 4], 0x28
add ecx, edi
call fcn.0041b598
test eax, eax
je 0x425c52
jmp 0x42139d
imul eax, dword [ebp + 4], 0x28
test byte [eax + edi + 8], 1
jmp 0x42110d
imul eax, dword [ebp + 4], 0x28
test byte [eax + edi + 8], 1
jmp 0x4222ac
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 2], 0
je 0x42139d
imul eax, dword [ebp + 0xc], 0x28
mov ecx, 0x2400
add eax, edi
test word [eax + 8], cx
je 0x422300
mov ecx, eax
call fcn.0041b433
jmp 0x425c52
xor ecx, ecx
inc ecx
mov word [eax + 8], cx
jmp 0x425c52
mov ecx, dword [ebp + 4]
lea edx, [esp + 0x6c]
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + ecx*4]
lea ecx, [esp + 0x64]
mov dword [esp + 0x64], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x6c], eax
call fcn.0041e3c9
mov dword [esp + 0x18], eax
test eax, eax
jne 0x425e97
imul eax, dword [ebp + 0xc], 0x28
mov esi, dword [esp + 0x64]
mov ecx, dword [esi + 0x48]
add edi, eax
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x128], edi
mov dword [esp + 0x20], ecx
cmp eax, dword [ebx + 0x20]
je 0x422453
cmp byte [esi + 2], 0
je 0x42239b
cmp byte [esi], 3
jne 0x4226de
imul edx, dword [esi + 0x20], 0x28
add edx, dword [esp + 0x1c]
mov eax, dword [edx + 0xc]
mov dword [esi + 0x54], eax
mov ecx, dword [esp + 0x64]
mov eax, dword [ecx + 0x54]
mov dword [ecx + 0x50], eax
mov eax, dword [esp + 0x64]
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x4c], ecx
mov ecx, dword [esp + 0x64]
jmp 0x4223d8
mov ecx, edi
jmp 0x4215a4
mov esi, dword [esi + 0x28]
mov ecx, esi
call fcn.00414ba6
mov eax, dword [esp + 0x64]
mov ecx, esi
mov edx, dword [esi + 0x2c]
mov dword [eax + 0x50], edx
mov edx, dword [esp + 0x64]
lea edx, [edx + 0x54]
call fcn.0041502c
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x14]
mov dword [ecx + 0x4c], eax
mov ecx, dword [esp + 0x64]
mov eax, dword [ecx + 0x50]
cmp eax, dword [edx + 0x6c]
ja 0x425294
mov eax, dword [ebx + 0x20]
mov edx, 0x80
mov dword [ecx + 0x1c], eax
mov eax, dword [esp + 0x64]
mov ecx, dword [eax + 0x4c]
mov al, byte [ecx]
cmp al, dl
jae 0x4223fd
mov ecx, dword [esp + 0x20]
movzx eax, al
mov dword [ecx], eax
mov al, 1
jmp 0x422406
mov edx, dword [esp + 0x20]
call fcn.00407b8e
movzx ecx, al
mov eax, dword [esp + 0x64]
mov dword [eax + 0x30], ecx
xor ecx, ecx
mov eax, dword [esp + 0x64]
mov word [eax + 0x3a], cx
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x64]
mov eax, dword [ecx]
cmp dword [esi + 0x54], eax
jae 0x4224c4
xor edx, edx
mov dword [esi + 0x4c], edx
mov eax, dword [esp + 0x64]
mov dword [eax + 0x54], edx
mov eax, dword [ecx]
cmp eax, 0x18003
ja 0x422646
mov esi, dword [esp + 0x64]
cmp eax, dword [esi + 0x50]
ja 0x422646
movzx eax, word [esi + 0x3a]
mov edx, dword [esp + 0x6c]
cmp eax, edx
jg 0x4226f2
mov eax, dword [ecx]
cmp dword [esi + 0x30], eax
jae 0x4226b2
mov ecx, dword [esi + 0x4c]
mov dword [esp + 0x30], ecx
test ecx, ecx
jne 0x4224cd
push 0xa
xor eax, eax
lea edi, [esp + 0xdc]
pop ecx
rep stosd dword es:[edi], eax
mov ecx, dword [esi + 0x28]
lea eax, [esp + 0xd8]
push eax
mov eax, dword [esp + 0x24]
xor edx, edx
push dword [eax]
call fcn.0041bcb6
mov dword [esp + 0x20], eax
pop ecx
pop ecx
test eax, eax
jne 0x425e97
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0xe8]
mov esi, dword [esp + 0x64]
mov dword [esp + 0x30], eax
mov eax, dword [ecx]
jmp 0x4224d1
mov edx, dword [esi + 0x4c]
mov dword [esp + 0x30], edx
jmp 0x4224d1
mov ecx, dword [esp + 0x20]
movzx edx, word [esi + 0x3a]
mov ebx, dword [esi + 0x30]
mov ebp, edx
add ebx, dword [esp + 0x30]
mov dword [esp + 0x3c], edx
mov ecx, dword [ecx + edx*4]
mov dword [esp + 0x2c], ecx
xor ecx, ecx
add eax, dword [esp + 0x30]
mov edi, ecx
lea ecx, [edx*4 + 0x58]
mov dword [esp + 0x28], eax
mov dword [esp + 0x138], ecx
movzx eax, byte [ebx]
mov edx, 0x80
mov dword [esp + 0x68], eax
mov dword [esi + ecx], eax
mov eax, dword [esp + 0x68]
cmp eax, edx
jae 0x422532
movzx eax, al
inc ebx
movzx eax, byte [eax + 0x481708]
cdq
add dword [esp + 0x2c], eax
adc edi, edx
mov edx, dword [esp + 0x2c]
jmp 0x422585
lea edx, [esp + 0x68]
mov ecx, ebx
call fcn.00407b8e
mov edx, dword [esp + 0x138]
mov ecx, dword [esp + 0x68]
movzx eax, al
add ebx, eax
mov eax, dword [esp + 0x64]
mov dword [eax + edx], ecx
mov ecx, 0x80
mov eax, dword [esp + 0x68]
cmp eax, ecx
jb 0x422568
add eax, 0xfffffff4
shr eax, 1
jmp 0x42256f
movzx eax, byte [eax + 0x481708]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x138]
add edx, eax
push 0
pop eax
mov dword [esp + 0x2c], edx
adc edi, eax
mov esi, dword [esp + 0x28]
inc ebp
push 4
pop eax
add ecx, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x138], ecx
mov dword [eax + ecx - 0x58], edx
cmp ebp, dword [esp + 0x6c]
jg 0x4225b1
cmp ebx, esi
jae 0x4225b1
mov esi, dword [esp + 0x64]
jmp 0x422503
mov eax, dword [esp + 0x64]
cmp ebx, esi
mov dword [esp + 0x138], ebx
mov ebx, dword [esp + 0x44]
mov ecx, dword [esp + 0x138]
mov dword [esp + 0x3c], ebp
mov ebp, dword [esp + 0x130]
mov dword [esp + 0x140], edi
mov edi, dword [esp + 0x128]
jb 0x4225fa
cmp ecx, esi
ja 0x422610
cmp edx, dword [eax + 0x50]
jne 0x422610
mov esi, dword [esp + 0x140]
test esi, esi
jne 0x42260c
jmp 0x422601
mov esi, dword [esp + 0x140]
test esi, esi
jb 0x422662
ja 0x42260c
cmp edx, dword [eax + 0x50]
jbe 0x422662
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
xor edx, edx
cmp dword [ecx], edx
jne 0x42261e
mov ecx, esi
jmp 0x422666
cmp dword [eax + 0x4c], edx
jne 0x422646
mov eax, 0x2400
test dword [esp + 0xe0], eax
jne 0x42263a
cmp dword [esp + 0xf0], edx
je 0x422646
lea ecx, [esp + 0xd8]
call fcn.0041b468
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 0xc]
test eax, eax
jle 0x425d01
imul eax, eax, 0x14
lea ebp, [edx - 0x14]
add ebp, eax
jmp 0x421395
mov edx, dword [esp + 0x3c]
sub ecx, dword [esp + 0x30]
mov word [eax + 0x3a], dx
mov eax, dword [esp + 0x64]
mov dword [eax + 0x30], ecx
xor eax, eax
mov esi, dword [esp + 0x64]
cmp dword [esi + 0x4c], eax
jne 0x4226a8
mov eax, 0x2400
test dword [esp + 0xe0], eax
jne 0x422698
cmp dword [esp + 0xf0], 0
je 0x4226a8
lea ecx, [esp + 0xd8]
call fcn.0041b468
mov esi, dword [esp + 0x64]
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
jmp 0x4226ba
xor eax, eax
mov ecx, eax
mov dword [esp + 0x68], ecx
movzx eax, word [esi + 0x3a]
cmp eax, edx
jg 0x4226fa
cmp byte [ebp + 1], 0xf5
jne 0x4226de
mov edx, dword [ebp + 0x10]
mov eax, 0x800
push eax
mov ecx, edi
call fcn.0041b9b9
pop ecx
jmp 0x421395
mov eax, 0x2400
test word [edi + 8], ax
jne 0x422394
jmp 0x4242ac
mov ecx, dword [esi + edx*4 + 0x58]
mov dword [esp + 0x68], ecx
mov eax, 0x2400
test word [edi + 8], ax
je 0x422718
mov ecx, edi
call fcn.0041b433
mov esi, dword [esp + 0x64]
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
mov ebx, dword [esp + 0x20]
mov eax, dword [esi + 0x54]
cmp eax, dword [ebx + edx*4 + 4]
mov ebx, dword [esp + 0x44]
jb 0x4227c6
mov eax, dword [esi + 0x4c]
mov esi, dword [esp + 0x20]
add eax, dword [esi + edx*4]
mov dword [esp + 0x128], eax
cmp ecx, 0xc
jae 0x42274f
mov edx, ecx
mov ecx, eax
push edi
call fcn.0041e53c
jmp 0x4226d8
mov al, byte [esp + 0x38]
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 0x422788
xor eax, eax
mov ecx, edi
inc eax
lfence
mov word [edi + 8], ax
xor eax, eax
push eax
call fcn.0041b0e2
pop ecx
test eax, eax
jne 0x425e7c
mov eax, dword [edi + 0x10]
jmp 0x42278e
mov eax, dword [edi + 0x14]
mov dword [edi + 0x10], eax
push esi
push dword [esp + 0x12c]
push eax
call fcn.00463550
mov eax, dword [edi + 0x10]
xor ecx, ecx
add esp, 0xc
mov byte [esi + eax], cl
mov eax, dword [edi + 0x10]
mov byte [esi + eax + 1], cl
mov eax, dword [esp + 0x68]
and eax, 1
mov ax, word [eax*2 + 0x47f90c]
mov word [edi + 8], ax
jmp 0x421395
mov al, byte [esp + 0x38]
mov byte [edi + 0xa], al
movzx eax, word [ebp + 2]
mov edx, dword [esp + 0x68]
test al, 0xc0
je 0x4227ec
cmp edx, 0xc
jb 0x4227e3
test dl, 1
je 0x422807
mov ecx, 0x80
test cl, al
jne 0x422807
mov eax, 0x80
cmp edx, eax
jb 0x4227fc
lea eax, [edx - 0xc]
shr eax, 1
jmp 0x422803
movzx eax, byte [edx + 0x481708]
test eax, eax
jne 0x422811
mov ecx, 0x492934
jmp 0x422747
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x64]
push edi
push eax
mov eax, dword [esp + 0x28]
mov ecx, dword [ecx + 0x28]
mov edx, dword [eax + edx*4]
call fcn.0041bcb6
mov dword [esp + 0x20], eax
pop ecx
pop ecx
test eax, eax
jne 0x425e97
mov edx, dword [esp + 0x68]
mov ecx, dword [edi + 0x10]
push edi
call fcn.0041e53c
mov eax, 0xefff
and word [edi + 8], ax
pop ecx
jmp 0x421395
imul esi, dword [ebp + 4], 0x28
mov edi, dword [ebp + 0x10]
add esi, dword [esp + 0x1c]
mov al, byte [edi]
push dword [esp + 0x38]
mov dl, al
mov ecx, esi
call fcn.00420e95
cmp byte [edi], 0x45
pop ecx
jne 0x4228d4
movzx ecx, word [esi + 8]
push 4
pop eax
mov dword [esp + 0x128], ecx
test al, cl
je 0x4228d4
mov edx, dword [esi]
xor eax, eax
add edx, eax
mov eax, dword [esi + 4]
adc eax, 0x8000
cmp eax, 0xffff
ja 0x4228b1
jb 0x4228a2
cmp edx, 0xffffffff
ja 0x4228b1
and ecx, 0xfffb
or ecx, 0x20
mov word [esi + 8], cx
jmp 0x4228d4
mov edx, dword [esi + 4]
mov ecx, dword [esi]
call fcn.00476ab0
mov eax, dword [esp + 0x128]
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 0x421395
add esi, 0x28
jmp 0x422861
imul ecx, dword [ebp + 4], 0x28
xor eax, eax
mov edi, dword [ebp + 0x10]
xorps xmm0, xmm0
mov dword [esp + 0x2c], eax
imul eax, dword [ebp + 8], 0x28
movlpd qword [esp + 0x138], xmm0
add ecx, dword [esp + 0x1c]
movlpd qword [esp + 0x140], xmm0
mov dword [esp + 0x3c], ecx
add eax, 0xffffffd8
add eax, ecx
mov dword [esp + 0x128], eax
mov al, byte [ebx + 0x93]
mov byte [esp + 0x27], al
imul eax, dword [ebp + 0xc], 0x28
add eax, dword [esp + 0x1c]
mov dword [esp + 0x4c], eax
test edi, edi
je 0x422978
mov al, byte [edi]
lea esi, [ecx + 8]
mov ebx, dword [esp + 0x38]
push ebx
lea ecx, [esi - 8]
mov dl, al
call fcn.00420e95
cmp byte [edi], 0x45
pop ecx
jne 0x42296a
movzx eax, word [esi]
push 4
pop ecx
test cl, al
je 0x42296a
and eax, 0xfffb
or eax, 0x20
mov word [esi], ax
inc edi
add esi, 0x28
mov al, byte [edi]
test al, al
jne 0x422944
mov ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x138]
mov ecx, dword [esp + 0x144]
mov eax, dword [esp + 0x128]
mov edx, dword [esp + 0x13c]
add eax, 0x1c
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x138], ecx
mov ecx, dword [esp + 0x140]
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], edi
mov dword [esp + 0x140], ecx
movzx ecx, word [eax - 0x14]
mov dword [esp + 0x20], eax
mov dword [esp + 0x40], ecx
test cl, 1
je 0x4229ee
mov esi, dword [esp + 0x20]
mov eax, 0x4000
and ecx, eax
movzx eax, cx
mov ecx, dword [esp + 0x2c]
neg eax
sbb eax, eax
and eax, 0xa
inc ecx
mov dword [esi], eax
mov dword [esp + 0x2c], ecx
jmp 0x422c15
test cl, 0x24
je 0x422b4d
mov edi, dword [eax - 0x18]
mov esi, dword [eax - 0x1c]
xor eax, eax
cmp edi, eax
jg 0x422a13
jl 0x422a09
cmp esi, eax
jae 0x422a13
mov edx, esi
mov eax, edi
not edx
not eax
jmp 0x422a17
mov edx, esi
mov eax, edi
inc dword [esp + 0x2c]
test eax, eax
ja 0x422ad1
jb 0x422a2a
cmp edx, 0x7f
ja 0x422a62
xor ecx, ecx
mov eax, esi
inc ecx
and eax, ecx
cmp eax, esi
jne 0x422a47
xor eax, eax
cmp eax, edi
jne 0x422a49
cmp byte [esp + 0x27], 4
jb 0x422a49
lea eax, [edx + 8]
jmp 0x422a59
xor eax, eax
add dword [esp + 0x30], ecx
mov esi, dword [esp + 0x28]
adc esi, eax
mov eax, ecx
mov dword [esp + 0x28], esi
mov edx, dword [esp + 0x28]
jmp 0x422b3e
test eax, eax
ja 0x422ad1
jb 0x422a70
cmp edx, 0x7fff
ja 0x422a91
push 2
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0x2c]
pop ecx
add edi, ecx
push 0
pop eax
adc edx, eax
mov dword [esp + 0x30], edi
mov dword [esp + 0x28], edx
mov eax, ecx
jmp 0x422b42
test eax, eax
ja 0x422ad1
jb 0x422a9f
cmp edx, 0x7fffff
ja 0x422abf
mov edi, dword [esp + 0x30]
push 0
pop eax
add edi, 3
push 3
mov edx, dword [esp + 0x2c]
adc edx, eax
mov dword [esp + 0x34], edi
mov dword [esp + 0x2c], edx
pop eax
jmp 0x422b42
test eax, eax
ja 0x422ad1
jb 0x422acd
cmp edx, 0x7fffffff
ja 0x422ad1
push 4
jmp 0x422a72
cmp eax, 0x7fff
ja 0x422aed
jb 0x422adf
cmp edx, 0xffffffff
ja 0x422aed
mov edi, dword [esp + 0x30]
push 0
pop eax
add edi, 6
push 5
jmp 0x422aab
mov edx, dword [esp + 0x28]
push 8
pop eax
add dword [esp + 0x30], eax
push 0
pop eax
adc edx, eax
mov dword [esp + 0x28], edx
test cl, 0x20
je 0x422b3b
mov edx, edi
mov ecx, esi
call fcn.00476ab0
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
movsd qword [eax - 0x1c], xmm0
mov eax, dword [esp + 0x40]
push 8
pop ecx
and eax, 0xffdf
or eax, ecx
push 7
mov word [esi - 0x14], ax
pop eax
jmp 0x422b46
push 6
pop eax
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x20]
mov dword [esi], eax
jmp 0x422c11
test cl, 8
je 0x422b74
mov ecx, dword [esp + 0x2c]
inc ecx
mov dword [eax], 7
add edi, 8
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], edi
adc edx, 0
mov dword [esp + 0x28], edx
jmp 0x422c1d
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 + 0x40], eax
jae 0x422bd2
mov esi, dword [esp + 0x20]
mov ecx, dword [esi - 0x1c]
lea eax, [eax + ecx*2]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
or eax, edx
je 0x422bb9
lea ecx, [esi - 0x1c]
call fcn.0041b288
test eax, eax
jne 0x425e7c
add edi, dword [esi - 0x1c]
jmp 0x422bca
mov eax, ecx
cdq
add dword [esp + 0x140], eax
adc dword [esp + 0x138], edx
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x40]
add dword [esp + 0x30], edi
push 0
pop ecx
adc edx, ecx
xor esi, esi
mov ecx, eax
mov dword [esp + 0x28], edx
inc esi
shr ecx, 7
xor eax, eax
mov edx, eax
jmp 0x422bf5
shrd ecx, edx, 7
inc esi
shr edx, 7
mov eax, ecx
or eax, edx
jne 0x422bed
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x40]
add dword [esp + 0x2c], esi
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
mov dword [ecx], eax
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x3c]
add eax, 0xffffffe4
cmp eax, esi
je 0x422c30
mov eax, dword [esp + 0x20]
sub eax, 0x28
jmp 0x4229b8
cmp ecx, 0x7e
jle 0x422c95
mov eax, ecx
xor edi, edi
cdq
inc edi
mov esi, eax
mov dword [esp + 0x40], edi
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x422c60
shrd esi, edx, 7
inc edi
shr edx, 7
mov eax, esi
or eax, edx
jne 0x422c4e
mov dword [esp + 0x40], edi
mov eax, dword [esp + 0x2c]
add eax, edi
xor edi, edi
mov dword [esp + 0x2c], eax
inc edi
cdq
mov esi, eax
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x422c8b
shrd esi, edx, 7
inc edi
shr edx, 7
mov eax, esi
or eax, edx
jne 0x422c7d
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x40], edi
jge 0x422c9a
inc ecx
mov dword [esp + 0x2c], ecx
mov edi, dword [esp + 0x30]
mov eax, ecx
mov esi, dword [esp + 0x28]
cdq
add edi, eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x4c]
mov ecx, edx
adc esi, ecx
mov dword [esp + 0x40], ecx
mov ecx, edi
add ecx, dword [esp + 0x140]
mov eax, dword [eax + 0x18]
adc esi, dword [esp + 0x138]
cdq
cmp esi, edx
jg 0x422ce1
jl 0x422cd5
cmp ecx, eax
ja 0x422ce1
mov ecx, dword [esp + 0x4c]
mov eax, dword [ecx + 0x14]
mov dword [ecx + 0x10], eax
jmp 0x422d12
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x6c]
cdq
cmp esi, edx
jg 0x425294
jl 0x422cfb
cmp ecx, eax
ja 0x425294
mov ecx, dword [esp + 0x4c]
mov edx, edi
call fcn.0041b1dd
test eax, eax
jne 0x425e7c
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x140]
push 0x10
pop eax
mov word [ecx + 8], ax
mov eax, edx
or eax, dword [esp + 0x138]
mov dword [ecx + 0xc], edi
je 0x422d39
mov eax, 0x4010
mov dword [ecx], edx
mov word [ecx + 8], ax
mov esi, dword [ecx + 0x10]
mov ecx, 0x80
mov eax, dword [esp + 0x2c]
lea edi, [esi + eax]
cmp eax, ecx
jae 0x422d53
mov byte [esi], al
xor eax, eax
inc eax
jmp 0x422d69
push dword [esp + 0x40]
mov ecx, esi
push dword [esp + 0x24]
call fcn.004079d4
pop ecx
pop ecx
mov ecx, 0x80
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x128]
movzx eax, al
add esi, eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x128], eax
cmp eax, ecx
jae 0x422d8e
mov byte [esi], al
xor eax, eax
inc eax
jmp 0x422d9b
xor ecx, ecx
push ecx
push eax
mov ecx, esi
call fcn.004079d4
pop ecx
pop ecx
push dword [esp + 0x128]
movzx eax, al
mov edx, ebx
mov ecx, edi
add esi, eax
call fcn.0041e426
add ebx, 0x28
add edi, eax
pop ecx
mov ecx, 0x80
cmp ebx, ebp
jbe 0x422d79
mov ebp, dword [esp + 0x130]
jmp 0x421a43
mov ecx, dword [ebp + 4]
lea edx, [esp + 0x1a8]
mov eax, dword [ebx + 0x60]
xorps xmm0, xmm0
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x28]
movlpd qword [esp + 0x1a8], xmm0
call fcn.00419884
mov dword [esp + 0x18], eax
test eax, eax
jne 0x425e97
mov edx, ebp
mov ecx, ebx
call fcn.00420fd8
mov ecx, dword [esp + 0x1a8]
mov edx, dword [esp + 0x1ac]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x42139d
mov eax, dword [ebp + 4]
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x128], edi
test eax, eax
jne 0x422f0a
cmp dword [esi + 0xb8], eax
jg 0x425d26
test edi, edi
jne 0x422e49
mov esi, eax
jmp 0x422e5d
mov esi, edi
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x422e4e
sub esi, ecx
and esi, 0x3fffffff
mov edi, dword [esp + 0x14]
xor edx, edx
mov ecx, edi
mov eax, dword [edi + 0x1bc]
add eax, dword [edi + 0x1b8]
push eax
call fcn.0044f03c
pop ecx
xor ecx, ecx
mov dword [esp + 0x18], eax
test eax, eax
jne 0x425e99
push ecx
lea eax, [esi + 0x21]
mov ecx, edi
push eax
call fcn.004049b8
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x421395
lea ecx, [esi + 1]
push ecx
push dword [esp + 0x12c]
lea edx, [edi + 0x20]
push edx
mov dword [edi], edx
call fcn.00463550
mov esi, dword [esp + 0x20]
add esp, 0xc
cmp byte [esi + 0x4f], 0
je 0x422ecc
xor eax, eax
mov byte [esi + 0x57], 1
mov byte [esi + 0x4f], al
jmp 0x422ed2
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 0x421399
mov esi, dword [esi + 0x1b0]
xor eax, eax
mov dword [esp + 0x20], eax
jmp 0x422f2c
mov ecx, dword [esi]
mov edx, edi
call fcn.00406f32
test eax, eax
je 0x422f47
inc dword [esp + 0x20]
mov esi, dword [esi + 0x18]
test esi, esi
jne 0x422f18
push edi
push str.no_such_savepoint:__s
push ebx
call fcn.0041c225
add esp, 0xc
xor eax, eax
inc eax
jmp 0x425e97
mov ecx, dword [esp + 0x14]
xor edx, edx
mov edi, dword [esp + 0x3c]
xor eax, eax
inc edx
cmp dword [ecx + 0xb8], eax
jle 0x422f64
cmp edi, edx
je 0x425d3a
lea eax, [esi + 0x18]
cmp dword [eax], 0
mov dword [esp + 0x4c], eax
jne 0x422fbf
cmp byte [ecx + 0x57], 0
je 0x422fbf
mov dword [esp + 0x138], edx
cmp edi, edx
jne 0x422fc8
mov ecx, ebx
call fcn.0041ddef
test eax, eax
jne 0x425f3b
mov eax, dword [esp + 0x14]
mov ecx, ebx
mov byte [eax + 0x4f], 1
call fcn.0041de4a
push 5
pop ecx
cmp eax, ecx
je 0x425d41
mov edx, dword [esp + 0x14]
xor eax, eax
mov byte [edx + 0x57], al
mov eax, dword [ebx + 0x28]
mov dword [esp + 0x18], eax
jmp 0x4230f6
xor eax, eax
mov dword [esp + 0x138], eax
mov edx, dword [ecx + 0x1b8]
sub edx, dword [esp + 0x20]
mov eax, dword [ecx + 0x14]
dec edx
mov dword [esp + 0x20], edx
cmp edi, 2
jne 0x42305b
mov ecx, dword [ecx + 0x18]
xor edi, edi
and ecx, 1
mov dword [esp + 0x128], edi
mov dword [esp + 0x130], ecx
test eax, eax
jle 0x423064
xor ecx, 1
xor eax, eax
mov dword [esp + 0x140], ecx
mov eax, dword [esp + 0x14]
mov edx, 0x204
push ecx
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + edi + 4]
call fcn.004148eb
mov dword [esp + 0x1c], eax
pop ecx
test eax, eax
jne 0x425e97
mov ecx, dword [esp + 0x128]
push 0x10
pop eax
add edi, eax
inc ecx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x128], ecx
mov eax, dword [eax + 0x14]
cmp ecx, eax
mov ecx, dword [esp + 0x140]
jl 0x423005
mov ecx, dword [esp + 0x130]
mov edx, dword [esp + 0x20]
jmp 0x423064
xor ecx, ecx
mov dword [esp + 0x130], ecx
xor edi, edi
mov dword [esp + 0x128], edi
test eax, eax
jle 0x4230bd
xor eax, eax
mov eax, dword [esp + 0x14]
push edx
mov edx, dword [esp + 0x40]
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + edi + 4]
call fcn.00414a2c
mov dword [esp + 0x1c], eax
pop ecx
test eax, eax
jne 0x425e97
mov eax, dword [esp + 0x128]
mov edx, dword [esp + 0x20]
inc eax
push 0x10
pop ecx
add edi, ecx
mov dword [esp + 0x128], eax
mov ecx, dword [esp + 0x14]
cmp eax, dword [ecx + 0x14]
jl 0x423073
mov ecx, dword [esp + 0x130]
mov edx, dword [esp + 0x14]
test ecx, ecx
je 0x4230f2
mov ecx, dword [edx + 4]
jmp 0x4230df
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 0x4230ca
mov ecx, edx
call fcn.00433f15
mov edx, dword [esp + 0x14]
or dword [edx + 0x18], 1
mov edi, dword [esp + 0x3c]
mov ecx, dword [edx + 0x1b0]
cmp ecx, esi
je 0x42312e
mov ebx, dword [esp + 0x14]
mov eax, dword [ecx + 0x18]
mov edx, ecx
mov ecx, ebx
mov dword [ebx + 0x1b0], eax
call fcn.004047d8
mov ecx, dword [ebx + 0x1b0]
dec dword [ebx + 0x1b8]
cmp ecx, esi
jne 0x423104
mov ebx, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
cmp edi, 1
jne 0x42315e
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov dword [edx + 0x1b0], eax
mov edx, esi
mov esi, dword [esp + 0x14]
mov ecx, esi
call fcn.004047d8
cmp dword [esp + 0x138], 0
jne 0x4231b4
dec dword [esi + 0x1b8]
jmp 0x423197
cmp dword [esp + 0x138], 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 + 0x14]
mov dword [esi + 0x1c8], eax
mov dword [esi + 0x1cc], ecx
je 0x423197
push 2
pop eax
cmp edi, eax
jne 0x4231b4
mov ecx, dword [esp + 0x20]
mov edx, edi
push ecx
mov ecx, esi
call fcn.0044f03c
mov dword [esp + 0x1c], eax
pop ecx
test eax, eax
jne 0x425e97
jmp 0x4231b8
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x425e97
jmp 0x421399
mov edx, dword [ebp + 8]
xor eax, eax
mov dword [esp + 0x130], eax
test edx, edx
je 0x4231e7
mov eax, dword [esi + 0x20]
xor ecx, ecx
and eax, 0x100000
or eax, ecx
jne 0x425d66
mov ecx, dword [ebp + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
test esi, esi
je 0x4232b1
lea eax, [esp + 0x130]
mov ecx, esi
push eax
call fcn.00413ec3
mov dword [esp + 0x1c], eax
pop ecx
test eax, eax
jne 0x425d6e
xor ecx, ecx
cmp dword [ebp + 8], ecx
je 0x4232bd
mov edx, 0x80
test byte [ebx + 0x98], dl
je 0x4232bd
mov edi, dword [esp + 0x14]
cmp byte [edi + 0x4f], cl
je 0x423245
cmp dword [edi + 0xb4], 1
jle 0x4232c3
mov eax, dword [ebx + 0x30]
test eax, eax
jne 0x423261
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.0044f03c
mov dword [esp + 0x1c], eax
pop ecx
test eax, eax
jne 0x423283
mov edx, dword [ebx + 0x30]
mov ecx, esi
call fcn.00414a0d
mov dword [esp + 0x18], 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 + 0x18]
mov dword [ebx + 0x54], ecx
xor ecx, ecx
jmp 0x4232c5
mov eax, dword [esp + 0x18]
xor ecx, ecx
mov esi, dword [esp + 0x14]
jmp 0x4232c9
mov esi, dword [esp + 0x14]
jmp 0x4232c9
mov esi, edi
mov edi, dword [esp + 0x1c]
cmp word [ebp + 2], cx
je 0x4232fd
mov eax, dword [esp + 0x130]
cmp eax, dword [ebp + 0xc]
jne 0x425d91
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 0x425d91
mov eax, dword [esp + 0x18]
xor ecx, ecx
test eax, eax
jne 0x425e99
jmp 0x42139d
mov ecx, dword [esi + 0x10]
lea eax, [esp + 0x19c]
mov edx, dword [ebp + 0xc]
push eax
mov eax, dword [ebp + 4]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.0041981c
pop ecx
mov edx, ebp
mov ecx, ebx
call fcn.00420fd8
mov ecx, eax
mov eax, dword [esp + 0x19c]
jmp 0x4211fd
mov eax, dword [esp + 0x14]
mov esi, dword [ebp + 4]
push dword [ebp + 0xc]
mov edx, dword [ebp + 8]
shl esi, 4
add esi, dword [eax + 0x10]
mov ecx, dword [esi + 4]
call fcn.00419846
xor edx, edx
mov dword [esp + 0x1c], eax
inc edx
pop ecx
cmp dword [ebp + 8], edx
jne 0x423377
mov ecx, dword [esi + 0xc]
mov esi, dword [esp + 0x14]
mov eax, dword [ebp + 0xc]
mov dword [ecx], eax
or dword [esi + 0x18], edx
jmp 0x42338c
push 2
pop eax
cmp dword [ebp + 8], eax
jne 0x423388
mov ecx, dword [esi + 0xc]
mov al, byte [ebp + 0xc]
mov byte [ecx + 0x4c], al
mov esi, dword [esp + 0x14]
cmp dword [ebp + 4], edx
jne 0x4233b5
mov ecx, dword [esi + 4]
jmp 0x4233aa
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 0x423396
and dword [ebx + 0x98], 0xfffffffc
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x425e97
jmp 0x42139d
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x4233df
mov eax, dword [esi + 0x34]
cmp eax, dword [ebp + 8]
je 0x423539
mov cl, byte [esp + 0x27]
mov eax, dword [ebx + 0x98]
and al, 3
cmp al, 1
je 0x425de7
mov esi, dword [ebp + 0xc]
xor eax, eax
mov edi, dword [esp + 0x14]
mov edx, dword [ebp + 8]
mov dword [esp + 0x140], eax
mov dword [esp + 0x130], eax
mov eax, esi
shl eax, 4
add eax, dword [edi + 0x10]
mov dword [esp + 0x128], edx
mov dword [esp + 0x138], esi
mov edi, dword [eax + 4]
mov dword [esp + 0x4c], edi
cmp cl, 0x62
jne 0x423453
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 0x423457
mov byte [ebx + 0x93], al
jmp 0x423457
xor eax, eax
mov edi, eax
push 0x10
pop eax
test byte [ebp + 2], al
je 0x42347d
imul esi, edx, 0x28
add esi, dword [esp + 0x1c]
mov ecx, esi
call fcn.0041b628
mov eax, dword [esi]
mov esi, dword [esp + 0x138]
mov dword [esp + 0x128], eax
mov al, byte [ebp + 1]
cmp al, 0xf7
jne 0x423494
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x130], eax
movzx eax, word [eax + 8]
jmp 0x4234a4
cmp al, 0xfd
jne 0x42349d
mov eax, dword [ebp + 0x10]
jmp 0x4234a4
mov eax, dword [esp + 0x140]
mov edx, dword [ebp + 4]
xor ecx, ecx
push ecx
push esi
push eax
mov ecx, ebx
call fcn.00420d1f
mov esi, eax
add esp, 0xc
test esi, esi
je 0x425e7c
mov ecx, dword [esi + 0x28]
xor edx, edx
push 4
pop eax
or dword [esi + 8], eax
inc edx
mov eax, dword [esp + 0x128]
mov byte [esi + 2], dl
mov dword [esi + 0x34], eax
cmp eax, edx
jge 0x423503
push 0x48d334
push 0x108ea
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
pop edi
push edi
call fcn.00406588
add esp, 0x14
mov dword [esp + 0x18], edi
jmp 0x423521
push ecx
mov ecx, dword [esp + 0x50]
mov edx, eax
lfence
push dword [esp + 0x134]
push edi
call fcn.00414aa4
add esp, 0xc
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x130]
mov edi, dword [esp + 0x1c]
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 0x421ced
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.00420d1f
mov ecx, eax
add esp, 0xc
test ecx, ecx
je 0x425e7c
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]
mov ecx, dword [esi + 0xc]
cmp edx, 1
jge 0x4235c9
push 0x48d334
push 0x108ea
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00406588
add esp, 0x14
push 0xb
pop eax
jmp 0x4235da
push eax
push edi
push 4
pop eax
push eax
lfence
call fcn.00414aa4
add esp, 0xc
mov dword [esp + 0x18], eax
jmp 0x421395
mov eax, dword [ebx + 0x60]
mov edx, dword [ebp + 4]
mov esi, dword [eax + edx*4]
xor eax, eax
test esi, esi
je 0x423619
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x1c], eax
test ecx, ecx
je 0x423744
mov edx, dword [esi + 0x34]
push eax
call fcn.00419623
pop ecx
mov dword [esp + 0x18], eax
jmp 0x423748
push eax
push 0xffffffffffffffff
push dword [ebp + 8]
mov ecx, ebx
call fcn.00420d1f
mov esi, eax
add esp, 0xc
test esi, esi
je 0x425e7c
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 + 0x18]
push ecx
push edi
push eax
mov ecx, dword [eax]
call fcn.004136a8
add esp, 0x10
mov dword [esp + 0x18], eax
test eax, eax
jne 0x423726
mov ecx, dword [edi]
xor edx, edx
push eax
inc edx
call fcn.00413ec3
mov dword [esp + 0x1c], eax
pop ecx
test eax, eax
jne 0x423726
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x128], eax
mov dword [esi + 0x2c], eax
test eax, eax
je 0x423702
movzx eax, word [ebp + 2]
mov ecx, dword [edi]
push 2
pop edx
or eax, edx
lea edx, [esi + 0x34]
push eax
call fcn.0041927a
mov dword [esp + 0x1c], eax
pop ecx
test eax, eax
jne 0x4236fb
mov edx, dword [esi + 0x34]
mov eax, dword [esi + 0x28]
mov ecx, dword [edi]
cmp edx, 1
jge 0x4236e0
push 0x48d334
push 0x108ea
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
pop edi
push edi
call fcn.00406588
add esp, 0x14
mov dword [esp + 0x18], edi
jmp 0x4236fb
push eax
lfence
push dword [esp + 0x12c]
push 4
pop eax
push eax
call fcn.00414aa4
add esp, 0xc
mov dword [esp + 0x18], eax
xor eax, eax
mov byte [esi + 4], al
jmp 0x423726
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.00414aa4
add esp, 0xc
mov dword [esp + 0x18], eax
mov byte [esi + 4], 1
mov edi, dword [esp + 0x1c]
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 + 0x18]
test eax, eax
jne 0x425e97
inc eax
mov byte [esi + 2], al
jmp 0x421aea
mov edx, dword [ebp + 4]
mov ecx, ebx
push eax
push 0xffffffffffffffff
push dword [ebp + 8]
call fcn.00420d1f
add esp, 0xc
test eax, eax
je 0x425e80
mov ecx, dword [ebp + 0x10]
mov dword [eax + 0x2c], ecx
mov ecx, esi
mov edx, dword [ebp + 0xc]
push eax
call fcn.004271ae
pop ecx
mov dword [esp + 0x18], eax
jmp 0x4233b9
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 0x425c52
jmp 0x421395
mov edx, dword [ebp + 4]
mov ecx, ebx
push 3
push 0xffffffffffffffff
push dword [ebp + 0xc]
call fcn.00420d1f
add esp, 0xc
test eax, eax
je 0x425e80
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], 0x492944
jmp 0x42139d
mov eax, dword [ebp + 4]
mov ecx, ebx
mov edx, dword [ebx + 0x60]
mov edx, dword [edx + eax*4]
call fcn.0041d4ee
mov ecx, dword [ebp + 4]
xor edx, edx
mov eax, dword [ebx + 0x60]
mov dword [eax + ecx*4], edx
jmp 0x42139d
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
mov edi, dword [eax + ecx*4]
xor ecx, ecx
mov dword [esp + 0x138], ecx
mov word [edi + 2], cx
mov dword [edi + 0x1c], ecx
cmp byte [edi + 4], cl
je 0x42393b
imul esi, dword [ebp + 0xc], 0x28
push 2
pop ecx
add esi, dword [esp + 0x1c]
movzx eax, word [esi + 8]
mov dword [esp + 0x140], eax
and al, 0x2e
cmp al, cl
jne 0x423859
xor edx, edx
mov ecx, esi
call fcn.00420de5
mov ecx, esi
call fcn.0041b50a
movzx ecx, word [esi + 8]
mov dword [esp + 0x130], edx
mov edx, dword [esp + 0x140]
mov dword [esp + 0x128], eax
mov word [esi + 8], dx
test cl, 0x24
jne 0x4238f6
test cl, 8
jne 0x4238bb
test cl, 1
jne 0x425c52
cmp dword [esp + 0x20], 0x18
jae 0x425c52
mov ecx, dword [edi + 0x28]
lea edx, [esp + 0x148]
call fcn.004152ad
mov dword [esp + 0x18], eax
test eax, eax
jne 0x425e97
jmp 0x423a6c
mov edx, dword [esp + 0x130]
mov ecx, dword [esp + 0x128]
call fcn.00476ab0
movsd xmm1, qword [esi]
comisd xmm0, xmm1
jbe 0x4238e3
mov eax, dword [esp + 0x20]
test al, 1
je 0x4238f6
dec eax
jmp 0x4238f2
comisd xmm1, xmm0
jbe 0x4238f6
mov eax, dword [esp + 0x20]
test al, 1
jne 0x4238f6
inc eax
mov dword [esp + 0x20], eax
mov esi, dword [esp + 0x128]
lea eax, [esp + 0x148]
mov ecx, dword [edi + 0x28]
xor edx, edx
push eax
xor eax, eax
push eax
push dword [esp + 0x138]
push esi
call fcn.004152ff
mov ecx, dword [esp + 0x140]
add esp, 0x10
mov dword [esp + 0x18], eax
mov dword [edi + 0x40], esi
mov dword [edi + 0x44], ecx
test eax, eax
jne 0x425e97
jmp 0x4239de
mov eax, dword [edi + 0x28]
push 0
mov al, byte [eax + 3]
and al, 2
mov byte [esp + 0x2b], al
pop eax
setne al
mov dword [esp + 0x138], eax
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x98], eax
mov ax, word [ebp + 0x10]
mov word [esp + 0xa0], ax
mov eax, edx
and al, 1
mov byte [esp + 0xa6], cl
neg al
lea edx, [esp + 0x98]
sbb al, al
and al, 0xfe
inc al
mov byte [esp + 0xa2], al
imul eax, dword [ebp + 0xc], 0x28
add eax, dword [esp + 0x1c]
mov dword [esp + 0x9c], eax
lea eax, [esp + 0x148]
push eax
push ecx
push ecx
push ecx
mov ecx, dword [edi + 0x28]
call fcn.004152ff
add esp, 0x10
mov dword [esp + 0x18], eax
test eax, eax
jne 0x425e97
cmp byte [esp + 0x27], al
je 0x4239de
cmp byte [esp + 0xa6], 0
mov eax, dword [esp + 0x138]
mov dword [esp + 0x138], eax
je 0x423a6c
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x148]
cmp eax, 0x18
jl 0x423a18
test ecx, ecx
js 0x423a04
jne 0x4239f9
cmp eax, 0x19
je 0x423a04
xor eax, eax
mov dword [esp + 0x148], eax
jmp 0x423a7a
xor eax, eax
push eax
mov dword [esp + 0x14c], eax
push dword [edi + 0x28]
call fcn.00415808
jmp 0x423a48
test ecx, ecx
jg 0x423a36
jne 0x423a23
cmp eax, 0x16
je 0x423a36
mov eax, dword [edi + 0x28]
xor ecx, ecx
cmp byte [eax], cl
setne cl
mov dword [esp + 0x148], ecx
jmp 0x423a6c
xor eax, eax
push eax
mov dword [esp + 0x14c], eax
push dword [edi + 0x28]
call fcn.00415922
mov dword [esp + 0x20], eax
pop ecx
pop ecx
test eax, eax
je 0x423a6c
cmp eax, 0x65
jne 0x425e97
xor eax, eax
mov dword [esp + 0x148], 1
mov dword [esp + 0x18], eax
cmp dword [esp + 0x148], 0
jne 0x425c52
cmp dword [esp + 0x138], 0
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
je 0x42139d
push 0x14
pop eax
add ebp, eax
jmp 0x42139d
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 0x42139d
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + ecx*4]
test byte [eax + 8], 8
jne 0x42139d
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 + 0x128], edi
add esi, dword [esp + 0x1c]
cmp dword [ebp + 0x10], ecx
jle 0x423b1f
mov eax, dword [edi + 0x2c]
lea edi, [esp + 0xc8]
mov dword [esp + 0xc8], eax
mov ax, word [ebp + 0x10]
mov dword [esp + 0xcc], esi
mov esi, dword [esp + 0x128]
mov word [esp + 0xd0], ax
mov dword [esp + 0x130], ecx
jmp 0x423b6c
mov eax, 0x4000
test word [esi + 8], ax
je 0x423b39
mov ecx, esi
call fcn.0041b288
test eax, eax
jne 0x425e7c
mov ecx, dword [edi + 0x2c]
call fcn.0041e6d0
mov edi, eax
mov dword [esp + 0x130], edi
test edi, edi
je 0x425e7c
mov edx, dword [esi + 0xc]
push edi
push dword [esi + 0x10]
mov esi, dword [esp + 0x130]
mov ecx, dword [esi + 0x2c]
call fcn.0041e726
pop ecx
pop ecx
xor ecx, ecx
mov byte [edi + 0xa], cl
cmp byte [ebp], 0x1b
mov dword [esp + 0x128], ecx
jne 0x423ba6
movzx edx, word [edi + 8]
test edx, edx
je 0x423ba4
mov eax, dword [edi + 4]
add eax, 8
test byte [eax], 1
jne 0x423b99
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x423b8a
jmp 0x423ba4
mov dword [esp + 0x128], 1
xor ecx, ecx
lea eax, [esp + 0x17c]
mov edx, edi
push eax
push ecx
push ecx
push ecx
mov ecx, dword [esi + 0x28]
call fcn.004152ff
mov edx, dword [esp + 0x140]
add esp, 0x10
mov dword [esp + 0x18], eax
test edx, edx
je 0x423bda
mov ecx, dword [esp + 0x14]
call fcn.004047d8
mov eax, dword [esp + 0x18]
xor ecx, ecx
test eax, eax
jne 0x425e99
mov eax, dword [esp + 0x17c]
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0x17c]
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 0x423c17
test ecx, ecx
jmp 0x421da6
cmp dword [esp + 0x128], eax
jne 0x425c52
test ecx, ecx
jmp 0x4237b0
imul esi, dword [ebp + 0xc], 0x28
add esi, edi
test byte [esi + 8], 0x24
jne case.0x4210a9.31
push 0xa
pop ecx
push dword [esp + 0x38]
lea edi, [esp + 0x1c4]
mov dl, 0x43
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x1c4]
call fcn.00420e95
pop ecx
push 4
pop eax
test byte [esp + 0x1c8], al
je 0x425c52
mov edi, dword [esp + 0x1c0]
mov edx, dword [esp + 0x1c4]
jmp 0x423c85
imul eax, dword [ebp + 0xc], 0x28
mov ecx, dword [esp + 0x1c]
mov edi, dword [eax + edi]
mov edx, dword [eax + ecx + 4]
mov dword [esp + 0x128], 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 + 0x16c], eax
lea eax, [esp + 0x16c]
push eax
xor eax, eax
push eax
push edx
push edi
xor edx, edx
call fcn.004152ff
mov dword [esp + 0x28], eax
add esp, 0x10
mov eax, dword [esp + 0x128]
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 + 0x16c]
mov dword [esi + 0x20], eax
cmp dword [esp + 0x16c], 0
je 0x423d00
xor eax, eax
cmp dword [ebp + 8], eax
jne 0x425c52
push 0x48d334
push 0x159cf
jmp 0x425d0b
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x425e97
jmp 0x421395
mov edx, ebp
mov ecx, ebx
call fcn.00420fd8
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 0x42139d
xorps xmm0, xmm0
xor eax, eax
mov edx, ebp
movlpd qword [esp + 0x140], xmm0
mov ecx, ebx
mov dword [esp + 0x138], eax
call fcn.00420fd8
mov edx, dword [ebp + 4]
mov ecx, dword [ebx + 0x60]
push 2
mov dword [esp + 0x134], eax
pop eax
mov edi, dword [ecx + edx*4]
mov dword [esp + 0x128], edi
test byte [edi + 8], al
jne 0x423e0a
mov ecx, dword [edi + 0x28]
lea edx, [esp + 0x138]
call fcn.004152ad
mov dword [esp + 0x18], eax
test eax, eax
jne 0x425e97
cmp dword [esp + 0x138], eax
je 0x423dbf
mov dword [esp + 0x140], 1
mov dword [esp + 0x144], eax
jmp 0x423e0a
mov esi, dword [edi + 0x28]
mov ecx, esi
call fcn.00414ba6
mov ecx, dword [esi + 0x24]
mov eax, dword [esi + 0x20]
mov dword [esp + 0x140], eax
mov dword [esp + 0x144], ecx
cmp ecx, 0x7fffffff
jl 0x423df4
jg 0x423dec
cmp eax, 0xffffffff
jb 0x423df4
push 2
pop eax
or dword [edi + 8], eax
jmp 0x423e0a
add eax, 1
push 0
pop edx
adc ecx, edx
mov dword [esp + 0x140], eax
mov dword [esp + 0x144], ecx
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x423ea7
mov eax, dword [ebx + 0xc8]
test eax, eax
jne 0x423e85
imul esi, edx, 0x28
add esi, dword [esp + 0x1c]
mov ecx, esi
call fcn.0041b628
mov ecx, dword [esi]
mov edx, dword [esi + 4]
cmp ecx, 0xffffffff
jne 0x423e43
cmp edx, 0x7fffffff
je 0x423f20
push 2
pop eax
test byte [edi + 8], al
jne 0x423f20
mov edi, dword [esp + 0x144]
add ecx, 1
push 0
pop eax
adc edx, eax
cmp edi, edx
jg 0x423e94
jl 0x423e6f
mov eax, dword [esp + 0x140]
cmp eax, ecx
jae 0x423e9b
mov eax, ecx
mov edi, edx
mov dword [esp + 0x140], eax
mov dword [esp + 0x144], edi
jmp 0x423e9b
mov eax, ecx
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x423e83
imul esi, edx, 0x28
add esi, dword [eax + 0x10]
jmp 0x423e26
mov eax, dword [esp + 0x140]
mov dword [esi + 4], edi
mov edi, dword [esp + 0x128]
mov dword [esi], eax
push 2
pop eax
test byte [edi + 8], al
je 0x423f27
xor eax, eax
mov esi, eax
lea eax, [esp + 0x140]
push eax
push 8
pop eax
push eax
call fcn.004065c2
mov eax, dword [esp + 0x14c]
mov ecx, dword [esp + 0x148]
and eax, 0x3fffffff
push 0
add ecx, 1
pop edx
adc eax, edx
mov dword [esp + 0x148], ecx
lea edx, [esp + 0x140]
mov dword [esp + 0x14c], eax
push edx
xor edx, edx
push edx
push eax
push ecx
mov ecx, dword [edi + 0x28]
call fcn.004152ff
add esp, 0x18
mov dword [esp + 0x18], eax
test eax, eax
jne 0x425e97
cmp dword [esp + 0x138], eax
jne 0x423f27
inc esi
cmp esi, 0x64
jl 0x423eb3
push 0xd
jmp 0x425e96
mov edx, dword [esp + 0x130]
xor eax, eax
mov byte [edi + 3], al
mov dword [edi + 0x1c], eax
mov eax, dword [esp + 0x140]
mov ecx, dword [esp + 0x144]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x421395
imul esi, dword [ebp + 8], 0x28
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
mov edx, dword [esp + 0x1c]
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 + 0x138], ecx
mov dword [esp + 0x140], eax
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], eax
jne 0x423fae
mov eax, dword [esp + 0x14]
xor ecx, ecx
cmp dword [eax + 0xe8], ecx
je 0x423fae
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 + 0x128], ecx
jmp 0x423fb7
xor eax, eax
mov dword [esp + 0x128], eax
mov dword [esp + 0x130], eax
movzx eax, word [ebp + 2]
mov edx, eax
test al, 1
je 0x423fcf
inc dword [ebx + 0x2c]
movzx edx, word [ebp + 2]
movzx ecx, dx
test dl, 0x20
je 0x423ff3
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x138]
mov dword [ecx + 0x28], eax
mov eax, dword [esp + 0x140]
mov dword [ecx + 0x2c], eax
movzx ecx, word [ebp + 2]
mov eax, dword [esi + 0x10]
mov dword [esp + 0x80], eax
mov eax, dword [esi + 0xc]
push 0x10
mov dword [esp + 0x90], eax
pop eax
test al, cl
je 0x424013
mov edx, dword [edi + 0x20]
jmp 0x424017
xor eax, eax
mov edx, eax
mov eax, 0x4000
test word [esi + 8], ax
push 0
pop eax
je 0x424032
mov eax, dword [esi]
mov dword [esp + 0x90], eax
xor eax, eax
jmp 0x424039
mov dword [esp + 0x90], eax
push edx
and ecx, 0xa
mov dword [esp + 0x74], eax
push ecx
mov ecx, dword [edi + 0x28]
lea edx, [esp + 0x78]
call fcn.00418b7e
pop ecx
pop ecx
xor ecx, ecx
mov dword [esp + 0x18], eax
mov byte [edi + 3], cl
mov dword [edi + 0x1c], ecx
test eax, eax
jne 0x425e99
mov eax, dword [esp + 0x128]
mov esi, dword [esp + 0x14]
test eax, eax
je 0x421399
push dword [esp + 0x7c]
push dword [esp + 0x7c]
push dword [eax]
push dword [esp + 0x13c]
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 0x421399
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 4]
mov dword [esp + 0x138], eax
mov eax, dword [ebx + 0x60]
mov edi, dword [eax + ecx*4]
xor eax, eax
cmp byte [ebp + 1], 0xfa
jne 0x424119
cmp dword [esi + 0xe8], eax
je 0x424119
movsx ecx, byte [edi + 1]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov esi, dword [ebp + 0x10]
push 2
mov dword [esp + 0x134], esi
mov eax, dword [eax + ecx*8]
mov dword [esp + 0x12c], eax
pop eax
test byte [ebp + 2], al
je 0x424122
cmp byte [edi + 4], 0
je 0x424122
mov esi, dword [edi + 0x28]
mov ecx, esi
call fcn.00414ba6
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x24]
mov esi, dword [esp + 0x130]
mov dword [edi + 0x40], eax
mov dword [edi + 0x44], ecx
jmp 0x424122
mov dword [esp + 0x128], eax
mov esi, eax
mov dl, byte [ebp + 2]
mov ecx, dword [edi + 0x28]
call fcn.00418f41
xor ecx, ecx
mov dword [esp + 0x18], eax
mov dword [edi + 0x1c], ecx
mov dword [edi + 0x20], ecx
test eax, eax
jne 0x425e99
inc eax
test byte [esp + 0x138], al
je 0x4215b5
mov eax, dword [esp + 0x14]
inc dword [ebx + 0x2c]
mov eax, dword [eax + 0xe8]
test eax, eax
je 0x421395
test byte [esi + 0x24], 0x20
jne 0x421395
push dword [edi + 0x44]
push dword [edi + 0x40]
push dword [esi]
mov esi, dword [esp + 0x20]
push dword [esp + 0x134]
push 9
push dword [esi + 0xe4]
call eax
jmp 0x4240a4
mov eax, dword [ebx + 0x2c]
add dword [esi + 0x68], eax
mov dword [esi + 0x64], eax
xor eax, eax
mov dword [ebx + 0x2c], eax
jmp 0x42139d
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 + 0x180], eax
lea eax, [esp + 0x180]
push eax
push dword [ebp + 0x10]
add edx, edi
call fcn.004284ea
mov dword [esp + 0x20], eax
pop ecx
pop ecx
test eax, eax
jne 0x425e97
cmp dword [esp + 0x180], eax
jmp 0x42110d
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.00428494
mov dword [esp + 0x18], eax
test eax, eax
jne 0x425e97
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 0x42139d
mov edx, ebp
mov ecx, ebx
call fcn.00420fd8
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.00414ba6
mov ecx, dword [esp + 0x14]
mov eax, dword [edi + 0x2c]
cmp eax, dword [ecx + 0x6c]
ja 0x425294
push esi
push eax
xor edx, edx
mov ecx, edi
lfence
call fcn.0041bcb6
mov dword [esp + 0x20], eax
pop ecx
pop ecx
test eax, eax
jne 0x425e97
cmp dword [ebp + 0xc], eax
jne 0x421395
mov eax, 0x1000
test word [esi + 8], ax
je 0x421395
mov ecx, esi
call fcn.0041b242
mov esi, dword [esp + 0x14]
test eax, eax
jne 0x425e80
jmp 0x421399
mov edx, ebp
mov ecx, ebx
call fcn.00420fd8
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 0x4242b8
xor eax, eax
inc eax
mov word [edi + 8], ax
jmp 0x4215b5
cmp byte [esi + 3], 0
je 0x4242c9
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
jmp 0x42434b
push 2
pop eax
cmp byte [esi], al
jne 0x42430e
mov ecx, dword [esi + 0x28]
lea edx, [esp + 0x170]
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 + 0x18], eax
mov ecx, ebx
call fcn.0041f61d
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x425e97
mov ecx, dword [esp + 0x174]
mov eax, dword [esp + 0x170]
jmp 0x424359
mov eax, dword [esi + 0x28]
cmp byte [eax], 0
je 0x42432b
mov ecx, esi
call fcn.0041e38f
mov dword [esp + 0x18], eax
test eax, eax
jne 0x425e97
jmp 0x424331
xor eax, eax
mov dword [esp + 0x18], eax
cmp byte [esi + 2], 0
jne 0x4242ac
mov esi, dword [esi + 0x28]
mov ecx, esi
call fcn.00414ba6
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x24]
mov dword [esp + 0x174], ecx
mov dword [esp + 0x170], eax
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x421395
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 0x421aea
mov esi, dword [esi + 0x28]
push dword [esi + 0x10]
call fcn.00404790
xor eax, eax
mov dword [esi + 0x10], eax
inc eax
pop ecx
mov byte [esi], al
jmp 0x421aea
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
mov esi, dword [eax + ecx*4]
xor eax, eax
cmp byte [esp + 0x27], 0x82
mov ecx, dword [esi + 0x28]
mov dword [esp + 0x14c], eax
jne 0x4243c0
or dword [esi + 0x20], 0xffffffff
cmp byte [ecx], al
je 0x421165
lea edx, [esp + 0x14c]
call fcn.004152ad
mov dword [esp + 0x18], eax
mov al, byte [esp + 0x14c]
mov byte [esi + 2], al
xor eax, eax
mov byte [esi + 3], al
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x425e97
cmp dword [ebp + 8], eax
jle 0x421165
cmp dword [esp + 0x14c], eax
jne 0x425c52
jmp 0x421165
mov ecx, dword [ebp + 4]
lea edx, [esp + 0x168]
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x28]
mov ecx, esi
call fcn.00415283
mov dword [esp + 0x18], eax
test eax, eax
jne 0x425e97
cmp dword [esp + 0x168], eax
jne 0x425c52
mov ecx, esi
call fcn.004156eb
xor ecx, ecx
cmp edx, ecx
jl 0x424475
jg 0x42444f
cmp eax, ecx
jb 0x424475
push edx
push eax
lfence
call fcn.00407f89
pop ecx
pop ecx
mov ecx, dword [esp + 0x168]
cwde
cmp eax, dword [ebp + 0xc]
push 1
pop eax
cmovl ecx, eax
mov dword [esp + 0x168], ecx
jmp 0x42447f
mov ecx, dword [esp + 0x168]
xor eax, eax
inc eax
test ecx, ecx
jne 0x425c52
jmp 0x421aea
inc dword [ebx + 0xac]
mov eax, dword [ebx + 0x60]
lea edx, [esp + 0x164]
mov ecx, dword [ebp + 4]
mov esi, dword [eax + ecx*4]
xor eax, eax
inc eax
mov dword [esp + 0x164], eax
cmp byte [esi], al
jne 0x4244bb
mov ecx, esi
call fcn.004283ba
xor ecx, ecx
jmp 0x4244cb
mov ecx, dword [esi + 0x28]
call fcn.00415283
xor ecx, ecx
mov byte [esi + 3], cl
mov dword [esi + 0x1c], ecx
mov dword [esp + 0x18], eax
test eax, eax
jne 0x425e99
mov al, byte [esp + 0x164]
mov byte [esi + 2], al
cmp dword [esp + 0x164], 0
jmp 0x4243fe
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
mov esi, dword [eax + ecx*4]
mov edx, esi
mov ecx, dword [esp + 0x14]
call fcn.00428406
jmp 0x424518
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 + 0x18], eax
xor ecx, ecx
mov dword [esi + 0x1c], ecx
test eax, eax
jne 0x424538
mov byte [esi + 2], al
movzx eax, word [ebp + 2]
inc dword [ebx + eax*4 + 0xa4]
jmp 0x425839
cmp eax, 0x65
jne 0x425e99
xor eax, eax
mov dword [esp + 0x18], eax
inc eax
mov byte [esi + 2], al
jmp 0x424c2d
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 + 0x1c]
add esi, ecx
test byte [ebp + 2], 1
je 0x42456c
inc dword [ebx + 0x2c]
mov eax, 0x4000
test word [esi + 8], ax
je 0x42458a
mov ecx, esi
call fcn.0041b288
test eax, eax
jne 0x425e97
mov ecx, dword [esp + 0x1c]
cmp byte [ebp], 0x83
jne 0x42459d
mov edx, esi
mov ecx, edi
call fcn.00427b42
xor ecx, ecx
jmp 0x4245f3
mov eax, dword [esi + 0xc]
cdq
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
mov eax, dword [esi + 0x10]
mov dword [esp + 0x70], eax
imul eax, dword [ebp + 0xc], 0x28
push 0x10
add eax, ecx
mov dword [esp + 0x88], eax
mov ax, word [ebp + 0x10]
mov word [esp + 0x8c], ax
movzx eax, word [ebp + 2]
pop ecx
test cl, al
je 0x4245d9
mov ecx, dword [edi + 0x20]
jmp 0x4245db
xor ecx, ecx
push ecx
mov ecx, dword [edi + 0x28]
lea edx, [esp + 0x74]
and eax, 0xa
push eax
call fcn.00418b7e
pop ecx
pop ecx
xor ecx, ecx
mov dword [edi + 0x1c], ecx
mov dword [esp + 0x18], eax
test eax, eax
jne 0x425e99
jmp 0x421395
mov ecx, dword [ebp + 4]
lea edx, [esp + 0xb8]
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 + 0xb8], eax
mov ax, word [ebp + 0xc]
mov word [esp + 0xc0], ax
imul eax, dword [ebp + 8], 0x28
mov byte [esp + 0xc2], cl
add eax, dword [esp + 0x1c]
mov dword [esp + 0xbc], eax
lea eax, [esp + 0x1a0]
push eax
push ecx
push ecx
push ecx
mov ecx, edi
call fcn.004152ff
add esp, 0x10
mov dword [esp + 0x18], eax
test eax, eax
jne 0x425e97
cmp dword [esp + 0x1a0], eax
jne 0x424687
push 4
pop eax
mov dl, al
mov ecx, edi
call fcn.00418f41
mov dword [esp + 0x18], eax
test eax, eax
jne 0x425e97
xor eax, eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], eax
jmp 0x421395
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 0x4246ba
mov ecx, esi
call fcn.0041e38f
mov dword [esp + 0x18], eax
test eax, eax
jne 0x425e97
jmp 0x4246c0
xor eax, eax
mov dword [esp + 0x18], eax
cmp byte [esi + 2], 0
jne 0x424752
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x188]
xorps xmm0, xmm0
movlpd qword [esp + 0x188], xmm0
mov edx, dword [esi + 0x28]
push eax
call fcn.0041f41f
mov dword [esp + 0x1c], eax
pop ecx
test eax, eax
jne 0x425e97
cmp byte [ebp], 0x86
jne 0x424731
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 + 0x188]
mov ecx, dword [esp + 0x18c]
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 0x421165
mov edx, ebp
mov ecx, ebx
call fcn.00420fd8
mov ecx, dword [esp + 0x188]
mov edx, dword [esp + 0x18c]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x421165
imul eax, dword [ebp + 8], 0x28
mov ecx, 0x2400
add eax, edi
test word [eax + 8], cx
je 0x42476a
mov ecx, eax
jmp 0x421ad9
xor ecx, ecx
inc ecx
mov word [eax + 8], cx
jmp 0x421165
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
cmp byte [esp + 0x27], 0x27
mov edx, dword [eax + ecx*4]
mov ecx, esi
mov eax, dword [edx + 0x2c]
mov dword [esp + 0xa8], eax
mov ax, word [ebp + 0x10]
mov word [esp + 0xb0], ax
sbb al, al
mov byte [esp + 0xb2], al
imul eax, dword [ebp + 0xc], 0x28
add eax, edi
mov dword [esp + 0xac], eax
xor eax, eax
mov dword [esp + 0x160], eax
lea eax, [esp + 0x160]
push eax
lea eax, [esp + 0xac]
push eax
call fcn.0041f543
test byte [ebp], 1
pop ecx
pop ecx
mov ecx, dword [esp + 0x160]
mov dword [esp + 0x18], eax
je 0x4247e7
neg ecx
jmp 0x4247ec
mov eax, dword [esp + 0x18]
inc ecx
mov dword [esp + 0x160], ecx
test eax, eax
jne 0x425e97
test ecx, ecx
jg 0x425c52
jmp 0x42139d
mov edx, ebp
mov ecx, ebx
call fcn.00420fd8
mov edx, dword [esp + 0x14]
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 0x425df1
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov dword [esp + 0x15c], ecx
mov ecx, eax
mov dword [esp + 0x128], eax
add ecx, ecx
mov eax, dword [edx + 0x10]
lea edx, [esp + 0x15c]
push edx
mov edx, dword [ebp + 4]
mov ecx, dword [eax + ecx*8 + 4]
call fcn.00419660
pop ecx
mov dword [esp + 0x18], eax
push 4
pop eax
mov word [esi + 8], ax
mov eax, dword [esp + 0x15c]
cdq
mov dword [esi], eax
mov eax, dword [esp + 0x18]
mov dword [esi + 4], edx
test eax, eax
jne 0x425e97
mov esi, dword [esp + 0x14]
cmp dword [esp + 0x15c], eax
je 0x42139d
push dword [ebp + 4]
mov edx, dword [esp + 0x12c]
mov ecx, esi
push dword [esp + 0x160]
call fcn.00435e92
mov al, byte [esp + 0x130]
pop ecx
inc al
pop ecx
mov byte [esp + 0x4b], al
jmp 0x42139d
xor edx, edx
lea eax, [esp + 0x128]
xor ecx, ecx
mov dword [esp + 0x128], 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.00419623
pop ecx
xor ecx, ecx
mov dword [esp + 0x18], eax
cmp dword [ebp + 0xc], ecx
je 0x4232fd
mov edx, dword [esp + 0x128]
add dword [ebx + 0x2c], edx
mov ecx, dword [ebp + 0xc]
test ecx, ecx
jle 0x4232fb
imul ecx, ecx, 0x28
mov eax, edx
cdq
add dword [ecx + edi], eax
adc dword [ecx + edi + 4], edx
jmp 0x4232f7
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx], 1
jne 0x424942
mov edx, dword [ecx + 0x28]
mov ecx, esi
call fcn.0042738c
jmp 0x42139d
mov ecx, dword [ecx + 0x28]
xor eax, eax
push eax
mov edx, dword [ecx + 0x40]
mov ecx, dword [ecx + 8]
call fcn.00419623
jmp 0x423785
mov edx, ebp
mov ecx, ebx
call fcn.00420fd8
mov edx, dword [ebp + 4]
mov esi, eax
push dword [ebp + 0xc]
xor eax, eax
add edx, edx
mov dword [esp + 0x188], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + edx*8 + 4]
lea edx, [esp + 0x188]
call fcn.0041927a
mov dword [esp + 0x1c], eax
pop ecx
test eax, eax
jne 0x425e97
mov eax, dword [esp + 0x184]
jmp 0x42115f
inc byte [esi + 0x5a]
xor eax, eax
push eax
push eax
push eax
push dword [ebp + 0x10]
push esi
call fcn.0043ff3a
add esp, 0x14
mov dword [esp + 0x18], eax
dec byte [esi + 0x5a]
jmp 0x4233b9
cmp dword [ebp + 0x10], 0
mov esi, dword [ebp + 4]
mov edi, dword [esp + 0x14]
jne 0x424a0d
mov eax, dword [edi + 0x10]
mov ecx, esi
add ecx, ecx
push dword [eax + ecx*8 + 0xc]
call fcn.00438c78
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.00443584
or dword [esi + 0x18], 1
and dword [ebx + 0x98], 0xfffffffc
pop ecx
pop ecx
mov dword [esp + 0x18], eax
jmp 0x424ad3
push dword [ebp + 0x10]
lea eax, [ebx + 0x7c]
mov dword [esp + 0x7c], esi
mov dword [esp + 0x78], eax
add esi, esi
xor eax, eax
mov dword [esp + 0x74], edi
mov dword [esp + 0x84], 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.004063e4
mov esi, eax
add esp, 0x14
test esi, esi
je 0x425e02
xor eax, eax
mov byte [edi + 0xa5], 1
push eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x88], eax
lea eax, [esp + 0x74]
push eax
push fcn.004433fb
push esi
push edi
call fcn.0043ff3a
add esp, 0x14
mov dword [esp + 0x18], eax
test eax, eax
jne 0x424aba
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x18], eax
test eax, eax
jne 0x424aba
cmp dword [esp + 0x84], eax
jne 0x424aba
push 0x48d334
push 0x15f51
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
pop edi
push edi
call fcn.00406588
add esp, 0x14
mov dword [esp + 0x18], edi
mov edx, esi
mov esi, dword [esp + 0x14]
mov ecx, esi
call fcn.004047d8
xor eax, eax
mov byte [esi + 0xa5], al
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x425e0b
jmp 0x421399
mov edx, dword [ebp + 4]
mov ecx, esi
call fcn.00432b66
jmp 0x423786
push dword [ebp + 0x10]
mov edx, dword [ebp + 4]
mov ecx, esi
call fcn.004340ed
jmp 0x421528
push dword [ebp + 0x10]
mov edx, dword [ebp + 4]
mov ecx, esi
call fcn.00433dbf
jmp 0x421528
push dword [ebp + 0x10]
mov edx, dword [ebp + 4]
mov ecx, esi
call fcn.0044bb4d
jmp 0x421528
imul esi, dword [ebp + 0xc], 0x28
lea eax, [esp + 0x1a4]
mov ecx, dword [esp + 0x14]
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 + 0x20]
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.0041a294
add esp, 0xc
mov dword [esp + 0x128], eax
mov ecx, edi
call fcn.0041b869
mov eax, dword [esp + 0x1a4]
test eax, eax
je 0x424ba5
mov ecx, dword [esp + 0x128]
test ecx, ecx
je 0x425e7c
dec eax
cdq
sub dword [esi], eax
push fcn.00404790
sbb dword [esi + 4], edx
mov edx, ecx
push 1
push 0xffffffffffffffff
mov ecx, edi
call fcn.0041ba9c
add esp, 0xc
movzx edx, byte [esp + 0x38]
mov ecx, edi
call fcn.0041b0cd
jmp 0x421395
imul esi, dword [ebp + 4], 0x28
push 0x10
pop eax
add esi, edi
imul edi, dword [ebp + 8], 0x28
add edi, dword [esp + 0x1c]
test byte [esi + 8], al
jne 0x424bdb
mov ecx, esi
call fcn.0041b906
test eax, eax
jne 0x425e7c
push dword [edi + 4]
mov ecx, dword [esi + 0x10]
push dword [edi]
call fcn.0040b82f
pop ecx
jmp 0x4226d8
imul esi, dword [ebp + 4], 0x28
push 0x10
pop eax
add esi, edi
test byte [esi + 8], al
je 0x424c48
mov ecx, dword [esi + 0x10]
lea edx, [esp + 0x1b0]
call fcn.0040ba84
test eax, eax
je 0x424c48
imul ecx, dword [ebp + 0xc], 0x28
push dword [esp + 0x1b4]
push dword [esp + 0x1b4]
add ecx, edi
call fcn.0041b8d1
pop ecx
pop ecx
xor eax, eax
inc eax
mov esi, dword [esp + 0x14]
xor ecx, ecx
cmp dword [esi + 0x108], ecx
jne 0x42611b
mov edi, dword [esp + 0x1c]
jmp case.0x4210a9.86
mov ecx, esi
call fcn.0041b869
jmp 0x425839
imul esi, dword [ebp + 4], 0x28
mov eax, dword [ebp + 0x10]
push 0x10
pop ecx
mov dword [esp + 0x128], eax
add esi, edi
imul edi, dword [ebp + 0xc], 0x28
add edi, dword [esp + 0x1c]
test byte [esi + 8], cl
jne 0x424c8a
mov ecx, esi
call fcn.0041b906
test eax, eax
jne 0x425e7c
mov eax, dword [esp + 0x128]
test eax, eax
je 0x424bdb
push dword [edi + 4]
mov ecx, dword [esi + 0x10]
mov edx, eax
push dword [edi]
call fcn.0040badc
pop ecx
pop ecx
test eax, eax
jne 0x425c52
cmp dword [esp + 0x128], eax
jl 0x421395
jmp 0x424bdb
imul edi, dword [ebp + 0xc], 0x28
xor eax, eax
mov esi, dword [ebp + 0x10]
mov dword [esp + 0x128], esi
add edi, dword [esp + 0x1c]
cmp word [ebp + 2], ax
je 0x424cf2
mov ecx, dword [esi + 0x14]
mov eax, dword [ebx + 0xc8]
jmp 0x424cee
cmp dword [eax + 0x1c], ecx
je 0x421395
mov eax, dword [eax + 4]
test eax, eax
jne 0x424ce2
mov ecx, dword [esp + 0x14]
mov eax, dword [ebx + 0xd0]
cmp eax, dword [ecx + 0x94]
jge 0x425e1f
push 0x10
pop edx
test byte [edi + 8], dl
jne 0x424e0d
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 + 0x138], 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 0x424d42
add eax, 7
sar eax, 3
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x130], eax
cdq
push edx
push eax
call fcn.0040495f
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x425e7c
mov ecx, edi
call fcn.0041b496
mov ecx, dword [esp + 0x138]
mov eax, 0x410
sub ebp, dword [esp + 0x34]
mov word [edi + 8], ax
mov eax, dword [esp + 0x130]
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], esi
mov dword [edi + 0x24], 0x41ce3b
mov edi, dword [esp + 0x128]
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 0x424e01
mov edx, dword [esp + 0x14]
add ebp, 0x6c
mov word [eax + 8], bp
mov dword [eax + 0x20], edx
add eax, 0x28
cmp eax, ecx
jne 0x424df3
mov eax, dword [ebx + 0xd0]
mov ecx, dword [esp + 0x14]
jmp 0x424e17
mov esi, dword [edi + 0x10]
mov edi, dword [esp + 0x128]
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 + 0x1c], 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.00462ad0
mov edx, dword [edi]
add esp, 0xc
mov dword [ebx + 0x68], edx
mov eax, dword [edi + 4]
mov dword [esp + 0x34], edx
mov dword [ebx + 0x6c], eax
lea ebp, [edx - 0x14]
jmp 0x424c2a
mov edx, ebp
mov ecx, ebx
call fcn.00420fd8
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.0041b9b9
jmp 0x4221a1
mov eax, dword [esi + 0x20]
xor edx, edx
and eax, 0x80000
or eax, edx
mov eax, dword [ebp + 8]
je 0x424f0f
cdq
add dword [esi + 0x1c8], eax
adc dword [esi + 0x1cc], edx
jmp 0x42139d
cmp dword [ebp + 4], edx
cdq
je 0x424f26
add dword [esi + 0x1c0], eax
adc dword [esi + 0x1c4], edx
jmp 0x42139d
add dword [ebx + 0x40], eax
adc dword [ebx + 0x44], edx
jmp 0x42139d
xor eax, eax
cmp dword [ebp + 4], eax
je 0x424f5b
mov eax, dword [esi + 0x1c0]
or eax, dword [esi + 0x1c4]
jne 0x42139d
mov eax, dword [esi + 0x1c8]
or eax, dword [esi + 0x1cc]
jmp 0x4222ac
mov eax, dword [ebx + 0x40]
or eax, dword [ebx + 0x44]
jmp 0x424f44
mov eax, dword [ebx + 0xc8]
test eax, eax
jne 0x424fae
imul edi, dword [ebp + 4], 0x28
add edi, dword [esp + 0x1c]
mov ecx, edi
call fcn.0041b628
imul esi, dword [ebp + 8], 0x28
add esi, dword [esp + 0x1c]
mov ecx, esi
call fcn.0041b628
mov ecx, dword [esi + 4]
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x421395
jl 0x424359
cmp dword [edi], eax
jae 0x421395
jmp 0x424359
mov eax, ecx
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x424fac
imul edi, dword [ebp + 4], 0x28
add edi, dword [eax + 0x10]
jmp 0x424f75
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 0x4215b5
jg 0x424fdd
cmp esi, edx
jbe 0x4215b5
mov eax, dword [ebp + 0xc]
cdq
sub esi, eax
mov dword [ecx], esi
sbb edi, edx
mov dword [ecx + 4], edi
jmp 0x425c52
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 + 0x1c]
call fcn.00420fd8
mov ecx, dword [esi + 4]
mov edx, dword [esi]
xor esi, esi
mov dword [esp + 0x128], eax
mov dword [esp + 0x190], edx
mov dword [esp + 0x194], ecx
cmp ecx, esi
jl 0x42508e
jg 0x42502e
xor ecx, ecx
cmp edx, ecx
jbe 0x42508e
mov ecx, dword [edi + 4]
xor edx, edx
mov eax, dword [edi]
cmp ecx, edx
jl 0x42503f
jg 0x425059
cmp eax, edx
ja 0x425059
xorps xmm0, xmm0
movlpd qword [esp + 0x130], xmm0
mov ecx, dword [esp + 0x134]
mov eax, dword [esp + 0x130]
push ecx
push eax
lea ecx, [esp + 0x198]
call fcn.00407d4b
pop ecx
pop ecx
test eax, eax
jne 0x425087
mov eax, dword [esp + 0x190]
mov ecx, dword [esp + 0x194]
mov edx, dword [esp + 0x128]
jmp 0x423f44
mov eax, dword [esp + 0x128]
or dword [eax], 0xffffffff
or dword [eax + 4], 0xffffffff
jmp 0x421395
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 0x421165
xor eax, eax
cmp esi, eax
jl 0x425c52
jg 0x4250c3
cmp edx, eax
jbe 0x425c52
sub edx, 1
mov dword [ecx], edx
sbb esi, eax
mov dword [ecx + 4], esi
jmp 0x425c52
imul edx, dword [ebp + 4], 0x28
add edx, edi
mov ecx, dword [edx + 4]
mov eax, dword [edx]
cmp ecx, 0x80000000
jl 0x4250f6
jg 0x4250eb
test eax, eax
je 0x4250f6
sub eax, 1
mov dword [edx], eax
sbb ecx, 0
mov dword [edx + 4], ecx
or eax, ecx
jmp 0x4222ac
movzx eax, word [ebp + 2]
xor ecx, ecx
mov dword [esp + 0x128], eax
push ecx
mov ecx, esi
lea eax, [eax*4 + 0x44]
push eax
call fcn.004049b8
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x425e7c
mov edx, dword [esp + 0x14]
xor eax, eax
mov dword [esi + 8], eax
mov eax, dword [esp + 0x128]
add eax, 7
push 1
lea ecx, [esi + eax*4]
mov dword [esi], ecx
call fcn.0041b858
mov eax, dword [ebp + 0x10]
mov dword [esi + 4], eax
mov eax, ebp
sub eax, dword [esp + 0x38]
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 + 0x128]
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 0x4251b9
movzx ecx, byte [esi + 0x19]
sub ecx, 1
mov dword [esi + 8], edx
js 0x4251b9
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 + 0x1c]
mov dword [edi], eax
sub edi, ebx
sub ecx, 1
jns 0x42519c
mov ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x1c]
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 0x4251d4
call dword [ecx + 0x1c]
jmp 0x4251d7
call dword [ecx + 0x10]
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x421165
jle 0x425205
push dword [esi]
call fcn.0041f8d3
pop ecx
push eax
push 0x48876c
push ebx
call fcn.0041c225
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x18], eax
cmp byte [esi + 0x18], 0
je 0x425228
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x425223
xor ecx, ecx
push ecx
imul ecx, eax, 0x28
push 1
add ecx, edi
call fcn.0041b8d1
pop ecx
pop ecx
xor eax, eax
mov byte [esi + 0x18], al
mov ecx, dword [esi]
call fcn.0041b496
mov eax, dword [esi]
xor ecx, ecx
inc ecx
mov word [eax + 8], cx
xor eax, eax
mov dword [esi + 0x14], eax
jmp 0x421ced
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 0x425268
push edx
imul edx, eax, 0x28
add edx, edi
call fcn.0041b3de
imul esi, dword [ebp + 0xc], 0x28
pop ecx
add esi, edi
jmp 0x42526d
call fcn.0041b362
mov dword [esp + 0x18], eax
test eax, eax
jne 0x425e3a
movzx edx, byte [esp + 0x38]
mov ecx, esi
call fcn.0041b0cd
mov ecx, esi
call fcn.0041b97a
test eax, eax
je 0x421165
push str.string_or_blob_too_big
push ebx
call fcn.0041c225
pop ecx
pop ecx
push 0x12
jmp 0x425e96
mov edx, dword [ebp + 4]
xor eax, eax
or dword [esp + 0x1f0], 0xffffffff
mov ecx, esi
or dword [esp + 0x1ec], 0xffffffff
mov dword [esp + 0x1e8], eax
lea eax, [esp + 0x1f0]
push eax
lea eax, [esp + 0x1f0]
push eax
push dword [ebp + 8]
call fcn.0045ebbd
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
je 0x425305
push 5
pop ecx
cmp eax, ecx
jne 0x425e97
xor eax, eax
mov dword [esp + 0x1e8], 1
mov dword [esp + 0x18], eax
imul esi, dword [ebp + 0xc], 0x28
add esi, edi
xor eax, eax
mov edi, eax
mov eax, dword [esp + edi*4 + 0x1e8]
mov ecx, esi
cdq
push edx
push eax
call fcn.0041b8d1
inc edi
add esi, 0x28
pop ecx
pop ecx
cmp edi, 3
jl 0x42530f
jmp 0x421395
mov edx, ebp
mov ecx, ebx
call fcn.00420fd8
mov edx, dword [ebp + 4]
mov esi, dword [ebp + 0xc]
add edx, edx
mov dword [esp + 0x130], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx + edx*8 + 4]
mov ecx, eax
mov dword [esp + 0x128], eax
call fcn.00419964
mov ecx, eax
mov dword [esp + 0x20], eax
call fcn.0040f8fa
mov ecx, dword [esp + 0x20]
mov edi, eax
cmp esi, 0xffffffff
cmove esi, edi
call fcn.0040f8ff
mov ecx, dword [esp + 0x20]
test eax, eax
cmove esi, edi
xor edx, edx
inc edx
call fcn.0040f6a3
push 5
pop edx
cmp esi, edx
jne 0x425400
mov ecx, eax
call fcn.00406d3c
test eax, eax
je 0x4253ad
mov ecx, dword [esp + 0x20]
call fcn.0040f970
test eax, eax
jne 0x4253fd
mov esi, edi
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4253b9
mov esi, edi
mov ecx, dword [esp + 0x20]
mov edx, esi
call fcn.0040f82d
mov esi, dword [esp + 0x130]
mov ecx, 0xa02
mov word [esi + 8], cx
mov ecx, eax
call fcn.004409d2
mov ecx, eax
mov dword [esi + 0x10], eax
call fcn.00406d3c
movzx edx, byte [esp + 0x38]
mov ecx, esi
mov dword [esi + 0xc], eax
mov byte [esi + 0xa], 1
call fcn.0041b0cd
jmp 0x423d00
push 5
pop edx
cmp esi, edi
je 0x4253af
cmp edi, edx
je 0x42540c
cmp esi, edx
jne 0x4253af
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x4f], 0
je 0x425e52
cmp dword [eax + 0xb4], 1
jg 0x425e52
cmp edi, edx
jne 0x42544f
mov ecx, dword [esp + 0x20]
mov edx, eax
call fcn.0040fa49
mov dword [esp + 0x18], eax
test eax, eax
jne 0x4253b7
mov ecx, dword [esp + 0x20]
mov edx, esi
call fcn.0040f82d
jmp 0x42546f
push 4
pop eax
cmp edi, eax
jne 0x425464
mov ecx, dword [esp + 0x20]
push 2
pop eax
mov edx, eax
call fcn.0040f82d
cmp dword [esp + 0x18], 0
jne 0x4253b7
mov ecx, dword [esp + 0x128]
xor edx, edx
push 5
pop eax
cmp esi, eax
sete dl
inc edx
call fcn.0041a631
mov dword [esp + 0x18], eax
jmp 0x4253b3
mov eax, dword [ebp + 8]
test eax, eax
je 0x42549d
imul eax, eax, 0x28
add eax, edi
jmp 0x42549f
xor eax, eax
push eax
push dword [ebp + 4]
lea ecx, [ebx + 0x7c]
mov edx, esi
call fcn.0044de93
pop ecx
jmp 0x423785
mov ecx, dword [ebp + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
call fcn.0041460b
mov dword [esp + 0x18], eax
test eax, eax
je 0x42139d
cmp eax, 0x65
jne 0x425e97
xor eax, eax
mov dword [esp + 0x18], eax
jmp 0x425c52
xor eax, eax
cmp dword [ebp + 4], eax
jne 0x4254fa
mov edx, dword [ebp + 8]
mov ecx, esi
call fcn.0041f5f9
jmp 0x42139d
mov eax, dword [ebp + 8]
inc eax
xor eax, dword [ebx + 0x98]
and eax, 3
xor dword [ebx + 0x98], eax
jmp 0x42139d
mov esi, dword [ebp + 0x10]
mov edx, esi
mov ecx, dword [esp + 0x14]
call fcn.0044ef8d
mov dword [esp + 0x18], eax
test esi, esi
je 0x421cf1
mov edx, dword [esi + 8]
mov ecx, ebx
call fcn.0041f61d
jmp 0x421ced
imul edx, dword [ebp + 8], 0x28
lea edi, [esp + 0x100]
push 0xa
pop ecx
xor eax, eax
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x1c]
lea ecx, [esp + 0x100]
add edx, edi
mov dword [esp + 0x120], esi
call fcn.0041ba0a
mov dword [esp + 0x18], eax
lea eax, [esp + 0x100]
push eax
call fcn.0041f8d3
pop ecx
test eax, eax
je 0x425591
mov edx, dword [ebp + 4]
lea ecx, [ebx + 0x7c]
push ecx
push eax
mov ecx, esi
call fcn.0044ec54
pop ecx
pop ecx
mov dword [esp + 0x18], eax
lea ecx, [esp + 0x100]
call fcn.0041b496
jmp 0x4233b5
inc dword [esi + 0xc0]
mov ecx, esi
push dword [ebp + 0x10]
mov edx, dword [ebp + 4]
call fcn.0044eea8
dec dword [esi + 0xc0]
pop ecx
mov dword [esp + 0x18], eax
jmp 0x4233b9
xor eax, eax
mov dword [esp + 0x130], eax
mov eax, dword [ebp + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x425f5e
mov edi, dword [esi]
test edi, edi
je 0x425f5e
lea eax, [esp + 0x130]
push eax
push esi
call dword [edi + 0x18]
pop ecx
pop ecx
mov edx, esi
mov dword [esp + 0x18], eax
mov ecx, ebx
call fcn.0041f61d
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x425e97
mov eax, dword [esp + 0x130]
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.00420d1f
add esp, 0xc
test eax, eax
je 0x425e71
mov ecx, dword [esp + 0x130]
mov dword [eax + 0x28], ecx
inc dword [esi + 4]
jmp 0x421395
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 + 0x140], 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 + 0x138], eax
mov eax, dword [eax]
mov dword [esp + 0x130], eax
mov eax, dword [edx]
mov dword [esp + 0x128], eax
xor eax, eax
test ecx, ecx
jle 0x425694
add edx, 0x50
mov dword [edi + eax*4], edx
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x425689
push edi
mov edi, dword [esp + 0x134]
push ecx
push dword [ebp + 0x10]
push dword [esp + 0x134]
push esi
call dword [edi + 0x20]
mov edx, dword [esp + 0x14c]
add esp, 0x14
mov ecx, ebx
mov dword [esp + 0x18], eax
call fcn.0041f61d
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x425e97
push esi
call dword [edi + 0x28]
pop ecx
mov ecx, dword [esp + 0x140]
xor edx, edx
mov byte [ecx + 2], dl
test eax, eax
je 0x421395
jmp 0x425c52
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 + 0x128], ecx
add esi, edi
cmp byte [ecx + 2], 0
je 0x425712
mov ecx, esi
call fcn.0041b869
jmp 0x421165
mov eax, dword [ecx + 0x28]
lea edi, [esp + 0x70]
push 8
mov eax, dword [eax]
mov dword [esp + 0x13c], eax
mov eax, dword [eax]
mov dword [esp + 0x134], eax
pop eax
mov ecx, eax
xor eax, eax
rep stosd dword es:[edi], eax
xor ecx, ecx
mov dword [esp + 0x70], esi
inc ecx
test byte [ebp + 2], cl
je 0x425752
mov ecx, esi
call fcn.0041b869
xor eax, eax
mov dword [esi], eax
mov eax, 0x4001
jmp 0x425764
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 + 0x70]
push dword [ebp + 8]
push eax
mov eax, dword [esp + 0x130]
push dword [eax + 0x28]
mov eax, dword [esp + 0x13c]
call dword [eax + 0x2c]
mov edx, dword [esp + 0x144]
add esp, 0xc
mov ecx, ebx
mov dword [esp + 0x18], eax
call fcn.0041f61d
cmp dword [esp + 0x84], 0
jle 0x4257c4
push esi
call fcn.0041f8d3
pop ecx
push eax
push 0x48876c
push ebx
call fcn.0041c225
mov eax, dword [esp + 0x90]
add esp, 0xc
mov dword [esp + 0x18], eax
movzx edx, byte [esp + 0x38]
mov ecx, esi
call fcn.0041b0cd
mov ecx, esi
call fcn.0041b97a
test eax, eax
jne 0x425294
jmp 0x423d00
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 2], 0
jne 0x421399
mov eax, dword [edi + 0x28]
push eax
mov esi, dword [eax]
mov ecx, dword [esi]
mov dword [esp + 0x12c], ecx
call dword [ecx + 0x24]
pop ecx
mov edx, esi
mov dword [esp + 0x18], eax
mov ecx, ebx
call fcn.0041f61d
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x425e97
mov eax, dword [esp + 0x128]
push dword [edi + 0x28]
call dword [eax + 0x28]
pop ecx
test eax, eax
jne 0x424c2a
mov esi, dword [esp + 0x14]
imul eax, dword [ebp + 8], 0x14
mov ebp, dword [esp + 0x34]
add ebp, 0xffffffec
add ebp, eax
xor eax, eax
inc eax
jmp 0x424c31
mov eax, dword [esi + 0x20]
mov ecx, 0x4000000
or dword [esi + 0x20], ecx
and eax, ecx
mov dword [esp + 0x128], 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 + 0x1c]
mov edi, dword [eax + 8]
mov ecx, esi
call fcn.0041b0cd
test eax, eax
jne 0x425e97
push dword [esi + 0x10]
mov eax, dword [edi]
push edi
call dword [eax + 0x4c]
cmp dword [esp + 0x130], 0
mov esi, dword [esp + 0x1c]
pop ecx
pop ecx
mov dword [esp + 0x18], eax
jne 0x4258b6
mov eax, dword [esi + 0x24]
and dword [esi + 0x20], 0xfbffffff
mov dword [esi + 0x24], eax
mov edx, edi
mov ecx, ebx
call fcn.0041f61d
and dword [ebx + 0x98], 0xfffffffc
jmp 0x4231b4
cmp byte [esi + 0x51], 0
jne 0x425e80
mov eax, dword [ebp + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x425f5e
mov edi, dword [esi]
test edi, edi
je 0x425f5e
mov edx, dword [ebp + 8]
xor eax, eax
cmp dword [edi + 0x34], eax
je 0x421395
mov eax, dword [esp + 0x14]
xor ecx, ecx
mov al, byte [eax + 0x56]
mov byte [esp + 0x27], al
mov eax, dword [ebx + 0x5c]
mov dword [esp + 0x128], eax
imul eax, dword [ebp + 0xc], 0x28
add eax, dword [esp + 0x1c]
test edx, edx
jle 0x425934
mov ebx, dword [esp + 0x128]
mov dword [ebx + ecx*4], eax
add eax, 0x28
inc ecx
cmp ecx, edx
jl 0x425925
mov ebx, dword [esp + 0x44]
mov ecx, dword [esp + 0x14]
mov al, byte [ebp + 2]
mov byte [ecx + 0x56], al
lea eax, [esp + 0x1b8]
push eax
push dword [esp + 0x12c]
push edx
push esi
call dword [edi + 0x34]
mov ecx, dword [esp + 0x24]
add esp, 0x10
mov dword [esp + 0x18], eax
mov edx, esi
mov al, byte [esp + 0x27]
mov byte [ecx + 0x56], al
mov ecx, ebx
call fcn.0041f61d
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x42599a
mov esi, dword [esp + 0x14]
xor ecx, ecx
cmp dword [ebp + 4], ecx
je 0x4259c8
mov eax, dword [esp + 0x1b8]
mov ecx, dword [esp + 0x1bc]
mov dword [esi + 0x28], eax
mov eax, dword [esp + 0x18]
mov dword [esi + 0x2c], ecx
jmp 0x4259c6
cmp al, 0x13
jne 0x4259c2
mov eax, dword [ebp + 0x10]
cmp byte [eax + 0x10], 0
je 0x4259be
movzx ecx, word [ebp + 2]
push 4
pop eax
cmp cx, ax
jne 0x425f65
xor eax, eax
jmp 0x4235da
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
xor ecx, ecx
inc dword [ebx + 0x2c]
test eax, eax
jne 0x425e99
jmp 0x421399
mov edx, ebp
mov ecx, ebx
call fcn.00420fd8
mov edx, dword [ebp + 4]
mov esi, eax
mov eax, dword [esp + 0x14]
add edx, edx
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + edx*8 + 4]
call fcn.004134ef
mov dword [esi], eax
xor eax, eax
mov dword [esi + 4], eax
jmp 0x421165
mov edx, ebp
mov ecx, ebx
call fcn.00420fd8
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 0x425a32
mov ecx, esi
call fcn.004134ef
cmp eax, dword [ebp + 0xc]
cmovb eax, dword [ebp + 0xc]
mov edx, eax
mov ecx, esi
call fcn.00413acd
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x421395
movzx eax, word [ebp + 2]
xor ecx, ecx
mov dword [esp + 0x128], eax
push ecx
mov ecx, esi
lea eax, [eax*4 + 0x1c]
push eax
call fcn.004049b8
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x425e7c
xor eax, eax
mov dword [esi], eax
mov eax, ebp
mov ecx, dword [ebp + 0x10]
sub eax, dword [esp + 0x34]
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 + 0x12c]
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 + 0x1c]
cmp dword [esi], edi
je 0x425ae3
movzx ecx, byte [esi + 0x19]
sub ecx, 1
mov dword [esi], edi
js 0x425ae3
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 + 0x1c]
mov dword [edx], eax
sub edx, ebx
sub ecx, 1
jns 0x425aca
mov ebx, dword [esp + 0x44]
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 0x425b5a
jle 0x425b32
push edi
call fcn.0041f8d3
pop ecx
push eax
push 0x48876c
push ebx
call fcn.0041c225
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x18], eax
push dword [ebp + 4]
mov ecx, dword [esp + 0x18]
lea edx, [ebx + 0xdc]
push dword [esi + 0x10]
call fcn.0041e1f7
xor eax, eax
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x20]
pop ecx
pop ecx
test eax, eax
jne 0x425e97
test byte [edi + 8], 0x12
je 0x421395
movzx edx, byte [esp + 0x38]
mov ecx, edi
call fcn.0041b0cd
mov ecx, edi
call fcn.0041b97a
test eax, eax
jne 0x425294
jmp 0x421395
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
jmp 0x42139f
xor edx, edx
inc edx
test byte [esi + 0x58], dl
je 0x425c08
push 0x10
pop eax
test byte [ebx + 0x98], al
jne 0x425c08
mov eax, dword [ebp + 0x10]
test eax, eax
jne 0x425bb5
mov eax, dword [ebx + 0xc0]
test eax, eax
je 0x425c08
push eax
cmp dword [esi + 0xbc], edx
jle 0x425bf4
push str.____s
push esi
call fcn.004063e4
add esp, 0xc
mov esi, eax
mov eax, dword [esp + 0x14]
push esi
push ebx
push dword [eax + 0xd0]
push 1
call dword [eax + 0xcc]
add esp, 0x10
mov edx, esi
mov esi, dword [esp + 0x14]
mov ecx, esi
call fcn.00404809
jmp 0x425c05
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 [0x490a5c]
jl 0x425c48
cmp byte [ebp], 0xa8
je 0x42139d
cmp dword [ebx + 0x6c], 1
jle 0x425c46
push 0x14
pop esi
mov eax, esi
xor ebp, ebp
mov ecx, dword [ebx + 0x68]
cmp byte [eax + ecx], 0x11
jne 0x425c37
mov dword [eax + ecx + 4], ebp
inc edx
add eax, esi
cmp edx, dword [ebx + 0x6c]
jl 0x425c2a
mov ebp, dword [esp + 0x130]
xor eax, eax
inc eax
mov dword [ebp + 4], eax
inc dword [ebx + 0xbc]
imul eax, dword [ebp + 8], 0x14
mov ebp, dword [esp + 0x34]
add ebp, 0xffffffec
jmp 0x42265b
mov dword [ebx + 0x28], ecx
mov al, byte [ebp + 8]
mov byte [ebx + 0x92], al
mov dword [ebx + 0x24], esi
test ecx, ecx
je 0x425ce0
movzx eax, word [ebp + 2]
test ax, ax
je 0x425cb5
push dword [eax*4 + 0x481618]
push str._s_constraint_failed
push ebx
call fcn.0041c225
add esp, 0xc
cmp dword [ebp + 0x10], 0
je 0x425cc6
push dword [ebp + 0x10]
push dword [ebx + 0x7c]
push str._z:__s
push dword [esp + 0x20]
call fcn.004063e4
add esp, 0x10
mov dword [ebx + 0x7c], eax
jmp 0x425cc6
push dword [ebp + 0x10]
push 0x48876c
push ebx
call fcn.0041c225
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.00406588
add esp, 0x14
mov ecx, ebx
call fcn.0041de4a
push 5
pop ecx
cmp eax, ecx
je 0x425d5e
push 0x65
pop eax
xor ecx, ecx
cmp dword [ebx + 0x28], ecx
push 1
pop ecx
cmovne eax, ecx
jmp 0x425f3b
push 0x48d334
push 0x152d5
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00406588
add esp, 0x14
push 0xb
jmp 0x425e96
push str.cannot_open_savepoint___SQL_statements_in_progress
push ebx
call fcn.0041c225
pop ecx
pop ecx
push 5
jmp 0x425e96
push str.cannot_release_savepoint___SQL_statements_in_progress
jmp 0x425d2b
sub ebp, dword [esp + 0x34]
push 0x14
pop ecx
mov eax, ebp
cdq
idiv ecx
xor ecx, ecx
mov dword [ebx + 0x24], eax
mov eax, dword [esp + 0x14]
push 5
mov byte [eax + 0x4f], cl
pop ecx
mov eax, ecx
mov dword [ebx + 0x28], ecx
jmp 0x425f3b
push 8
pop eax
jmp 0x425e99
cmp al, 5
jne 0x425e97
sub ebp, dword [esp + 0x34]
mov eax, ebp
push 0x14
cdq
pop ecx
idiv ecx
mov dword [ebx + 0x24], eax
mov eax, dword [esp + 0x18]
mov dword [ebx + 0x28], eax
jmp 0x425f3b
mov edx, dword [ebx + 0x7c]
test edx, edx
je 0x425d9f
mov ecx, esi
call fcn.004047d8
mov edx, str.database_schema_has_changed
mov ecx, esi
call fcn.00404b16
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 + 0x130]
je 0x425dce
mov ecx, esi
call fcn.00433ebc
mov eax, dword [ebx + 0x98]
and eax, 0xfffffffd
or eax, 1
mov dword [ebx + 0x98], eax
push 0x11
jmp 0x425e96
mov eax, 0x204
jmp 0x425e97
push 6
pop eax
push 2
pop ecx
mov byte [ebx + 0x92], cl
jmp 0x425e97
push 7
pop eax
mov dword [esp + 0x18], eax
mov esi, edi
mov ecx, esi
call fcn.00433f15
mov eax, dword [esp + 0x18]
push 7
pop ecx
cmp eax, ecx
je 0x425e80
jmp 0x425e97
push str.too_many_levels_of_trigger_recursion
push ebx
mov dword [esp + 0x20], 1
call fcn.0041c225
pop ecx
pop ecx
mov eax, dword [esp + 0x18]
jmp 0x425e97
push esi
call fcn.0041f8d3
pop ecx
push eax
push 0x48876c
push ebx
call fcn.0041c225
add esp, 0xc
jmp 0x425e34
cmp esi, edx
mov dword [esp + 0x18], 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 0x425e47
push dword [esp + 0x130]
call dword [edi + 0x1c]
pop ecx
mov esi, dword [esp + 0x14]
mov ecx, esi
call fcn.00404c16
push str.out_of_memory
push ebx
call fcn.0041c225
pop ecx
pop ecx
push 7
pop eax
xor ecx, ecx
mov esi, dword [esp + 0x14]
mov edi, 0xc0a
push 7
pop edx
cmp byte [esi + 0x51], 0
cmovne eax, edx
mov dword [esp + 0x18], eax
cmp dword [ebx + 0x7c], ecx
jne 0x425ed3
cmp eax, edi
je 0x425ed3
mov ecx, eax
call fcn.0045e4ca
push eax
push 0x48876c
push ebx
call fcn.0041c225
mov eax, dword [esp + 0x24]
add esp, 0xc
mov edx, eax
mov dword [ebx + 0x28], eax
mov ecx, esi
call fcn.00406db3
push dword [ebx + 0x7c]
sub ebp, dword [esp + 0x38]
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 + 0x28]
call fcn.00406588
add esp, 0x14
mov ecx, ebx
call fcn.0041de4a
cmp dword [esp + 0x18], edi
jne 0x425f1a
mov ecx, esi
call fcn.00404c16
mov cl, byte [esp + 0x4b]
xor eax, eax
inc eax
mov dword [esp + 0x18], eax
test cl, cl
je 0x425f3b
movzx edx, cl
mov ecx, esi
dec edx
lfence
call fcn.00433ebc
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x54]
add dword [ebx + 0xb4], ecx
mov ecx, dword [esp + 0x1f4]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004614f6
add esp, 0x1ec
ret
push 6
jmp 0x425e96
push 5
pop edx
movzx eax, cl
cmp cx, dx
push 2
pop ecx
cmove eax, ecx
mov byte [ebx + 0x92], al
jmp 0x425e34
xor edx, edx
mov ecx, ebx
call fcn.0041ddef
test eax, eax
jne 0x425e97
mov eax, dword [ebx]
xor ecx, ecx
cmp dword [eax + 0x1bc], ecx
je 0x425fad
cmp dword [ebx + 0x30], ecx
je 0x425fad
xor edx, edx
mov ecx, ebx
inc edx
call fcn.0041dd09
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 0x42600b
mov eax, 0x1000
test word [esi + 8], ax
je 0x425fe5
mov ecx, esi
call fcn.0041b242
test eax, eax
jne 0x425e7c
mov ax, word [esi + 8]
mov ecx, 0x202
and ax, cx
push 2
pop ecx
cmp ax, cx
jne 0x426000
mov ecx, esi
call fcn.0041b1fc
inc edi
add esi, 0x28
cmp edi, dword [ebp + 8]
jl 0x425fcb
xor ecx, ecx
mov esi, dword [esp + 0x14]
cmp byte [esi + 0x51], 0
jne 0x425e80
push 4
pop eax
test byte [esi + 0x58], al
je 0x426033
push ecx
push ebx
push dword [esi + 0xd0]
push eax
call dword [esi + 0xcc]
add esp, 0x10
sub ebp, dword [esp + 0x34]
push 0x14
mov eax, ebp
cdq
pop ecx
idiv ecx
push 0x64
inc eax
mov dword [ebx + 0x24], eax
pop eax
jmp 0x425f3b
mov ecx, dword [esp + 0x14]
mov edx, dword [ebp + 4]
mov esi, dword [ebp + 8]
mov dword [esp + 0x14c], edx
movzx eax, byte [ecx + 0x4f]
cmp edx, eax
je 0x4260f4
test esi, esi
je 0x42607a
mov edx, 0x204
call fcn.0045e3ee
mov al, 1
jmp 0x4260b2
test edx, edx
je 0x426092
xor eax, eax
cmp dword [ecx + 0xb8], eax
jle 0x426092
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x425d2b
xor edx, edx
mov ecx, ebx
inc edx
call fcn.0041ddef
test eax, eax
jne 0x425f3b
mov al, byte [esp + 0x14c]
mov byte [esp + 0x14c], al
mov esi, dword [esp + 0x14]
mov ecx, ebx
mov byte [esi + 0x4f], al
call fcn.0041de4a
push 5
pop ecx
cmp eax, ecx
jne 0x4260e8
sub ebp, dword [esp + 0x34]
mov eax, ebp
cdq
push 0x14
pop ebp
idiv ebp
mov dword [ebx + 0x24], eax
xor eax, eax
inc eax
sub al, byte [esp + 0x14c]
mov byte [esi + 0x4f], al
jmp 0x425d5c
mov ecx, esi
call fcn.0045e04e
jmp 0x425cee
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.0041c225
pop ecx
pop ecx
jmp 0x422f3f
cmp byte [esi + 0x51], 0
push 9
pop eax
push 7
pop ecx
cmovne eax, ecx
mov ecx, eax
mov dword [esp + 0x18], eax
mov dword [ebx + 0x28], eax
call fcn.0045e4ca
jmp 0x425e41