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

Disassembly:
sub esp, 0x1e4
push ebx
mov ebx, ecx
xor edx, edx
push ebp
push esi
mov eax, edx
mov dword [esp + 0x6c], ebx
mov esi, dword [ebx]
mov ecx, dword [ebx + 0x68]
mov ebp, ecx
mov dword [esp + 0x10], eax
push edi
mov al, byte [esi + 0x4e]
mov edi, dword [ebx + 0x58]
mov byte [esp + 0x5c], al
xor eax, eax
inc eax
mov dword [esp + 0x58], ecx
cmp dword [ebx + 0x28], 7
mov dword [esp + 0x10], esi
mov byte [esp + 0x7b], dl
mov dword [esp + 0x84], edx
mov dword [esp + 0xac], edx
mov dword [esp + 0x18], edi
je 0x424f31
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 0x4251be
imul ebp, dword [ebx + 0x24], 0x14
xorps xmm0, xmm0
movsd qword [esp + 0x160], xmm0
add ebp, ecx
inc edx
mov dword [esp + 0xac], edx
mov dword [esp + 0x38], ebp
mov cl, byte [ebp]
movzx edx, cl
mov byte [esp + 0x2f], cl
mov dword [esp + 0x1c], edx
cmp edx, 0xa8
ja case.0x420407.86
jmp dword [edx*4 + 0x4251e0]
imul ecx, dword [ebp + 4], 0x28
push 4
pop eax
push 0x14
pop esi
mov word [ecx + edi + 8], ax
mov eax, ebp
sub eax, dword [esp + 0x58]
cdq
idiv esi
cdq
mov dword [ecx + edi], eax
mov dword [ecx + edi + 4], edx
jmp 0x424d09
imul eax, dword [ebp + 4], 0x28
mov ecx, 0x80
imul ebp, dword [eax + edi], 0x14
mov word [eax + edi + 8], cx
add ebp, dword [esp + 0x58]
jmp 0x4206f5
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 0x424d09
jmp 0x4206f5
imul ecx, dword [ebp + 4], 0x28
mov edx, dword [esp + 0x58]
lea ebp, [edx - 0x14]
imul eax, dword [ecx + edi], 0x14
imul eax, dword [eax + edx + 8], 0x14
add ebp, eax
mov eax, 0x80
mov word [ecx + edi + 8], ax
jmp 0x4206f5
imul esi, dword [ebp + 4], 0x28
sub ebp, dword [esp + 0x58]
push 4
pop eax
push 0x14
add esi, edi
mov ecx, dword [esi]
mov word [esi + 8], ax
mov eax, ebp
pop ebp
cdq
idiv ebp
imul ebp, ecx, 0x14
add ebp, dword [esp + 0x58]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
mov esi, dword [esp + 0x10]
jmp 0x4206f5
imul eax, dword [ebp + 0xc], 0x28
test byte [eax + edi + 8], 1
je 0x4206f5
mov eax, ebp
sub eax, dword [esp + 0x58]
push 0x14
pop ecx
cdq
idiv ecx
mov ecx, dword [ebp + 4]
mov esi, eax
test ecx, ecx
jne 0x424d19
mov edx, dword [ebx + 0xc8]
test edx, edx
je 0x424d19
mov eax, dword [edx + 4]
mov ecx, edx
mov esi, dword [esp + 0x10]
dec dword [ebx + 0xd0]
mov dword [ebx + 0xc8], eax
mov eax, dword [ebx + 0x2c]
add dword [esi + 0x68], eax
mov dword [esi + 0x64], eax
call fcn.0041ca7e
mov edx, dword [ebx + 0x68]
push 4
pop ecx
mov dword [esp + 0x58], edx
cmp dword [ebp + 8], ecx
jne 0x42053c
imul eax, eax, 0x14
mov eax, dword [eax + edx + 8]
dec eax
mov edi, dword [ebx + 0x58]
imul ebp, eax, 0x14
mov dword [esp + 0x18], edi
add ebp, edx
jmp 0x4206f5
mov edx, ebp
mov ecx, ebx
call fcn.0042033b
mov ecx, eax
mov eax, dword [ebp + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x4206f5
mov edx, ebp
mov ecx, ebx
call fcn.0042033b
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp 0x4206f5
mov edx, ebp
mov ecx, ebx
call fcn.0042033b
push 8
pop ecx
mov word [eax + 8], cx
mov ecx, dword [ebp + 0x10]
movsd xmm0, qword [ecx]
movsd qword [eax], xmm0
jmp 0x4206f5
mov edx, ebp
mov ecx, ebx
call fcn.0042033b
mov edx, dword [ebp + 0x10]
mov esi, eax
test edx, edx
jne 0x4205b9
xor eax, eax
mov ecx, eax
jmp 0x4205d1
mov ecx, edx
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4205be
sub ecx, edi
mov edi, dword [esp + 0x18]
and ecx, 0x3fffffff
xor eax, eax
mov dword [ebp + 4], ecx
inc eax
cmp byte [esp + 0x5c], al
je 0x42064f
xor ecx, ecx
push ecx
push eax
push 0xffffffffffffffff
mov ecx, esi
call fcn.0041afc3
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4243a1
push 2
pop eax
test byte [esi + 8], al
je 0x42061b
mov al, byte [esp + 0x5c]
cmp byte [esi + 0xa], al
je 0x42061b
mov dl, al
mov ecx, esi
call fcn.00406aef
test eax, eax
jne 0x424f2d
xor eax, eax
mov dword [esi + 0x18], eax
mov eax, 0x800
or word [esi + 8], ax
cmp byte [ebp + 1], 0xf9
jne 0x42063f
mov edx, dword [ebp + 0x10]
test edx, edx
je 0x42063f
mov ecx, dword [esp + 0x10]
call fcn.00404c57
mov byte [ebp + 1], 0xf9
mov eax, dword [esi + 0x10]
mov dword [ebp + 0x10], eax
mov ecx, dword [esi + 0xc]
mov dword [ebp + 4], ecx
mov esi, dword [esp + 0x10]
cmp ecx, dword [esi + 0x6c]
jg 0x4243a1
mov byte [ebp], 0x48
mov edx, ebp
mov ecx, ebx
call fcn.0042033b
mov ecx, 0xa02
mov word [eax + 8], cx
mov ecx, dword [ebp + 0x10]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp + 4]
mov dword [eax + 0xc], ecx
mov cl, byte [esp + 0x5c]
mov byte [eax + 0xa], cl
jmp 0x4206f5
mov edx, ebp
mov ecx, ebx
call fcn.0042033b
mov edi, dword [ebp + 0xc]
xor ecx, ecx
mov edx, dword [ebp + 8]
inc ecx
cmp dword [ebp + 4], 0
mov esi, 0x101
cmovne ecx, esi
and dword [eax + 0xc], 0
lea esi, [eax + 8]
movzx ecx, cx
sub edi, edx
mov dword [esp + 0x20], ecx
xor eax, eax
mov word [esi], cx
test edi, edi
jle 0x424c3d
mov edx, 0x2400
lea esi, [esi + 0x28]
test word [esi], dx
je 0x4206e2
lea ecx, [esi - 8]
call fcn.0041a971
mov ecx, dword [esp + 0x20]
xor eax, eax
mov edx, 0x2400
dec edi
mov word [esi], cx
mov dword [esi + 4], eax
test edi, edi
jg 0x4206c7
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
xor eax, eax
inc eax
mov edx, dword [esp + 0xac]
push 0x14
pop ecx
jmp 0x4203df
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 0x420491
mov edx, ebp
mov ecx, ebx
call fcn.0042033b
mov edx, dword [ebp + 0x10]
mov esi, eax
xor eax, eax
mov ecx, esi
push eax
push eax
push dword [ebp + 4]
call fcn.0041afc3
mov al, byte [esp + 0x68]
add esp, 0xc
mov byte [esi + 0xa], al
jmp 0x4204c3
imul ecx, dword [ebp + 4], 0x28
mov esi, dword [ebx + 0x64]
add ecx, 0xffffffd8
add esi, ecx
mov ecx, esi
call fcn.0041aea1
test eax, eax
jne 0x4243a1
imul edx, dword [ebp + 8], 0x28
mov eax, 0x2400
add edx, edi
mov dword [esp + 0x20], edx
test word [edx + 8], ax
je 0x420789
mov ecx, edx
call fcn.0041a971
mov edx, dword [esp + 0x20]
push 5
pop eax
mov ecx, eax
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ax, word [edx + 8]
mov ecx, 0xebff
and ax, cx
mov ecx, 0x840
or ax, cx
mov word [edx + 8], ax
jmp 0x4206ed
imul edi, dword [ebp + 4], 0x28
imul esi, dword [ebp + 8], 0x28
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x38], eax
add edi, dword [esp + 0x18]
add esi, dword [esp + 0x18]
mov edx, edi
mov ecx, esi
call fcn.0041afa1
mov eax, 0x1000
test word [esi + 8], ax
je 0x4207e9
mov ecx, esi
call fcn.0041a7aa
test eax, eax
jne 0x424f2d
add edi, 0x28
add esi, 0x28
sub dword [esp + 0x38], 1
jne 0x4207c6
jmp 0x4206ed
imul edi, dword [ebp + 4], 0x28
imul esi, dword [ebp + 8], 0x28
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x38], eax
add edi, dword [esp + 0x18]
add esi, dword [esp + 0x18]
mov eax, 0x1000
mov edx, edi
push eax
mov ecx, esi
call fcn.0041aee0
mov eax, 0x1000
pop ecx
test word [esi + 8], ax
je 0x42083c
mov ecx, esi
call fcn.0041a7aa
test eax, eax
jne 0x424f2d
mov ecx, dword [esp + 0x38]
mov eax, ecx
dec ecx
mov dword [esp + 0x38], ecx
test eax, eax
je 0x4206ed
add esi, 0x28
add edi, 0x28
jmp 0x420812
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.0041aee0
pop ecx
jmp 0x4206f5
imul ecx, dword [ebp + 8], 0x28
mov ebx, 0x2400
imul eax, dword [ebp + 4], 0x28
add ecx, edi
mov edx, dword [eax + edi]
test word [ecx + 8], bx
mov eax, dword [eax + edi + 4]
mov ebx, dword [esp + 0x70]
je 0x42089e
push eax
push edx
call fcn.0041adda
pop ecx
jmp 0x42086e
mov dword [ecx], edx
mov dword [ecx + 4], eax
push 4
pop eax
mov word [ecx + 8], ax
jmp 0x4206f5
imul ecx, dword [ebp + 4], 0x28
imul esi, dword [ebp + 0xc], 0x28
add ecx, edi
imul edi, dword [ebp + 8], 0x28
add esi, dword [esp + 0x18]
mov dword [esp + 0x1c], ecx
movzx edx, word [ecx + 8]
add edi, dword [esp + 0x18]
mov dword [esp + 0x48], edx
mov al, byte [edi + 8]
or al, dl
test al, 1
je 0x420901
mov eax, 0x2400
test word [esi + 8], ax
je 0x4208f1
mov ecx, esi
call fcn.0041a971
jmp 0x4206ed
xor eax, eax
inc eax
mov word [esi + 8], ax
mov esi, dword [esp + 0x10]
jmp 0x423d85
test dl, 0x12
jne 0x420915
mov dl, byte [esp + 0x5c]
xor eax, eax
push eax
call fcn.0041a859
pop ecx
jmp 0x420923
mov eax, 0x4000
test eax, edx
je 0x420947
call fcn.0041a7f0
test eax, eax
jne 0x424f2d
mov eax, dword [esp + 0x1c]
mov ecx, 0xfffd
mov ax, word [eax + 8]
and ax, cx
movzx eax, ax
mov dword [esp + 0x48], eax
mov eax, 0x4000
movzx edx, word [edi + 8]
mov dword [esp + 0x38], edx
test dl, 0x12
jne 0x420980
mov dl, byte [esp + 0x5c]
xor eax, eax
push eax
mov ecx, edi
call fcn.0041a859
pop ecx
test eax, eax
jne 0x424f2d
mov ax, word [edi + 8]
mov ecx, 0xfffd
and ax, cx
movzx edx, ax
mov dword [esp + 0x38], edx
jmp 0x4209a6
test eax, edx
je 0x4209a6
mov ecx, edi
call fcn.0041a7f0
test eax, eax
jne 0x424f2d
mov ax, word [edi + 8]
mov ecx, 0xfffd
and ax, cx
movzx eax, ax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x1c]
mov edx, dword [edi + 0xc]
mov eax, dword [eax + 0xc]
add edx, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], edx
cmp edx, dword [eax + 0x6c]
jg 0x4243a1
xor eax, eax
mov ecx, esi
cmp esi, edi
sete al
add edx, 3
push eax
call fcn.0041a64d
pop ecx
test eax, eax
jne 0x424f2d
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 0x420a11
push dword [edi + 0xc]
push dword [edi + 0x10]
push dword [esi + 0x10]
call fcn.00462610
mov eax, dword [esp + 0x44]
add esp, 0xc
mov word [edi + 8], ax
mov eax, dword [esp + 0x1c]
push dword [eax + 0xc]
push dword [eax + 0x10]
mov eax, dword [edi + 0xc]
add eax, dword [esi + 0x10]
push eax
call fcn.00462610
mov eax, dword [esp + 0x28]
xor edx, edx
mov ecx, dword [esp + 0x54]
add esp, 0xc
mov word [eax + 8], cx
mov eax, dword [esi + 0x10]
mov ecx, dword [esp + 0x20]
mov byte [ecx + eax], dl
mov eax, dword [esi + 0x10]
mov byte [ecx + eax + 1], dl
mov eax, dword [esi + 0x10]
mov byte [ecx + eax + 2], dl
mov eax, 0x200
or word [esi + 8], ax
mov al, byte [esp + 0x5c]
mov dword [esi + 0xc], ecx
mov byte [esi + 0xa], al
jmp 0x4206ed
imul eax, dword [ebp + 4], 0x28
add eax, edi
mov ecx, eax
mov dword [esp + 0x1c], eax
call fcn.0042030c
imul esi, dword [ebp + 8], 0x28
movzx ebx, ax
add esi, edi
mov ecx, esi
mov dword [esp + 0x48], esi
call fcn.0042030c
movzx ecx, ax
imul eax, dword [ebp + 0xc], 0x28
and cl, bl
push 4
pop edx
add eax, edi
mov dword [esp + 0x38], eax
mov ax, word [esi + 8]
mov esi, dword [esp + 0x1c]
or ax, word [esi + 8]
movzx eax, ax
test dl, cl
je 0x420cad
mov eax, esi
mov edx, dword [eax]
mov esi, dword [eax + 4]
mov eax, dword [esp + 0x48]
mov edi, dword [eax]
mov ebx, dword [eax + 4]
movzx eax, byte [ebp]
mov dword [esp + 0x90], edi
mov dword [esp + 0x94], ebx
sub eax, 0x67
je 0x420c0b
sub eax, 1
je 0x420b60
sub eax, 1
je 0x420b50
sub eax, 1
mov eax, edx
je 0x420b26
or eax, esi
je 0x420d3d
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
jne 0x420b0a
xor edx, edx
inc edx
xor eax, eax
mov esi, eax
push esi
push edx
push ebx
push edi
call fcn.00479270
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], edx
jmp 0x420c92
or eax, esi
je 0x420d3d
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
jne 0x420b45
xor eax, eax
cmp edi, eax
jne 0x420b45
cmp ebx, 0x80000000
je 0x420b78
push esi
push edx
push ebx
push edi
call fcn.004791c0
jmp 0x420b13
push esi
push edx
lea ecx, [esp + 0x98]
call fcn.0040814f
jmp 0x420b6e
push esi
push edx
lea ecx, [esp + 0x98]
call fcn.00408105
pop ecx
pop ecx
test eax, eax
je 0x420c92
mov esi, dword [esp + 0x1c]
mov ecx, esi
call fcn.0041aaac
mov ebx, dword [esp + 0x48]
mov ecx, ebx
movsd qword [esp + 0x20], xmm0
call fcn.0041aaac
movzx eax, byte [ebp]
sub eax, 0x67
je 0x420ce8
sub eax, 1
je 0x420ce0
sub eax, 1
je 0x420cd8
sub eax, 1
je 0x420cbd
mov ecx, esi
call fcn.0041aa45
mov ecx, ebx
mov esi, eax
mov edi, edx
call fcn.0041aa45
mov ecx, esi
mov dword [esp + 0x90], eax
or ecx, edi
mov dword [esp + 0x94], edx
je 0x420d3d
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x420bf6
xor esi, esi
inc esi
xor ecx, ecx
mov edi, ecx
push edi
push esi
push edx
push eax
call fcn.00479270
mov ecx, eax
call fcn.0047a630
jmp 0x420cee
xor eax, eax
cmp esi, eax
jl 0x420c40
jg 0x420c17
cmp edx, eax
jb 0x420c40
cmp ebx, eax
jl 0x420c80
jg 0x420c21
cmp edi, eax
jbe 0x420c80
or ecx, 0xffffffff
mov eax, 0x7fffffff
sub ecx, edi
sbb eax, ebx
cmp eax, esi
jg 0x420c80
jl 0x420b78
cmp ecx, edx
jae 0x420c80
jmp 0x420b78
cmp ebx, eax
jg 0x420c80
jl 0x420c4a
cmp edi, eax
jae 0x420c80
mov eax, edx
mov ecx, esi
add eax, 1
mov dword [esp + 0x60], eax
push 0
pop eax
adc ecx, eax
inc eax
sub eax, edi
mov dword [esp + 0x20], eax
mov eax, 0x80000000
sbb eax, ebx
cmp eax, ecx
jg 0x420b78
jl 0x420c80
mov eax, dword [esp + 0x20]
cmp eax, dword [esp + 0x60]
ja 0x420b78
add edi, edx
mov dword [esp + 0x90], edi
adc ebx, esi
mov dword [esp + 0x94], ebx
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
push 4
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x420d1d
xor edx, edx
inc edx
test dl, al
jne 0x420d40
jmp 0x420b7c
movsd xmm1, qword [esp + 0x20]
ucomisd xmm1, qword [esp + 0x160]
lahf
test ah, 0x44
jnp 0x420d3d
divsd xmm0, xmm1
jmp 0x420cee
mulsd xmm0, qword [esp + 0x20]
jmp 0x420cee
subsd xmm0, qword [esp + 0x20]
jmp 0x420cee
addsd xmm0, qword [esp + 0x20]
movsd qword [esp + 0x20], xmm0
mov ebx, 0x7ff00000
mov ecx, dword [esp + 0x24]
mov eax, ecx
and eax, ebx
cmp eax, ebx
jne 0x420d13
mov eax, dword [esp + 0x20]
and ecx, 0xfffff
or eax, ecx
jne 0x420d3d
mov edx, dword [esp + 0x38]
push 8
movsd qword [edx], xmm0
mov ax, word [edx + 8]
mov ecx, 0x3e40
and ax, cx
pop ecx
or ax, cx
movzx eax, ax
mov word [edx + 8], ax
mov ebx, dword [esp + 0x70]
jmp 0x4206ed
xor edx, edx
inc edx
mov eax, dword [esp + 0x38]
mov ecx, 0x2400
test word [eax + 8], cx
je 0x420d58
mov ecx, eax
call fcn.0041a971
jmp 0x420d34
mov word [eax + 8], dx
jmp 0x420d34
mov eax, dword [ebp + 4]
test eax, eax
je 0x4206f5
imul eax, eax, 0x28
mov ecx, 0x2400
add eax, edi
test word [eax + 8], cx
je 0x420d84
xor ecx, ecx
push ecx
push ecx
mov ecx, eax
jmp 0x420896
xor ecx, ecx
push 4
mov dword [eax], ecx
mov dword [eax + 4], ecx
pop ecx
mov word [eax + 8], cx
jmp 0x4206f5
imul ecx, dword [ebp + 8], 0x28
imul esi, dword [ebp + 4], 0x28
imul edx, dword [ebp + 0xc], 0x28
add ecx, edi
add esi, edi
add edx, edi
mov dword [esp + 0x48], edx
mov al, byte [ecx + 8]
or al, byte [esi + 8]
test al, 1
je 0x420dde
mov eax, 0x2400
test word [edx + 8], ax
je 0x420dce
mov ecx, edx
call fcn.0041a971
jmp 0x4204c3
xor eax, eax
inc eax
mov word [edx + 8], ax
mov esi, dword [esp + 0x10]
jmp case.0x420407.86
call fcn.0041aa45
mov ecx, esi
mov dword [esp + 0x1c], eax
mov edi, edx
call fcn.0041aa45
mov cl, byte [ebp]
mov esi, eax
cmp cl, 0x63
jne 0x420e07
mov eax, dword [esp + 0x1c]
and eax, esi
and edi, edx
jmp 0x420edd
cmp cl, 0x64
jne 0x420e19
mov eax, dword [esp + 0x1c]
or eax, esi
or edi, edx
jmp 0x420edd
mov eax, esi
or eax, edx
je 0x420ed9
xor eax, eax
cmp edx, eax
jg 0x420e6d
jl 0x420e2f
cmp esi, eax
jae 0x420e4a
mov al, 0xcb
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x420e6b
jg 0x420e41
cmp esi, 0xffffffc0
jbe 0x420e6b
neg esi
push 0
pop eax
adc edx, eax
neg edx
cmp edx, eax
jl 0x420e55
jg 0x420e6d
cmp esi, 0x40
jae 0x420e6d
mov eax, dword [esp + 0x1c]
cmp cl, 0x65
mov edx, edi
mov ecx, esi
jne 0x420e98
call fcn.00479180
mov ecx, eax
jmp 0x420ed3
xor eax, eax
cmp edi, eax
jg 0x420e85
jl 0x420e79
cmp dword [esp + 0x1c], eax
jae 0x420e85
cmp cl, 0x65
je 0x420e85
or eax, 0xffffffff
or edi, eax
jmp 0x420edd
xorps xmm0, xmm0
movlpd qword [esp + 0x20], xmm0
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
jmp 0x420edd
call fcn.004791a0
mov ecx, eax
mov dword [esp + 0x38], edx
xor eax, eax
mov dword [esp + 0x20], ecx
cmp edi, eax
jg 0x420ed3
jl 0x420eb5
cmp dword [esp + 0x1c], eax
jae 0x420ed3
push 0x40
pop ecx
sub ecx, esi
or eax, 0xffffffff
or edx, 0xffffffff
call fcn.00479180
mov ecx, dword [esp + 0x20]
or ecx, eax
or dword [esp + 0x38], edx
mov edx, dword [esp + 0x38]
mov eax, ecx
mov edi, edx
jmp 0x420edd
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x48]
mov edx, 0x3e40
push 4
mov dword [ecx], eax
mov ax, word [ecx + 8]
and ax, dx
mov dword [ecx + 4], edi
pop edx
or ax, dx
mov word [ecx + 8], ax
jmp 0x4206ed
imul esi, dword [ebp + 4], 0x28
add esi, edi
mov ecx, esi
call fcn.0041ab63
mov eax, dword [ebp + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp 0x4204c3
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 0x420f5c
push dword [esp + 0x5c]
mov dl, 0x43
mov ecx, esi
call fcn.004201fe
movzx eax, word [esi + 8]
pop ecx
push 4
pop edx
mov ecx, eax
test dl, al
jne 0x420f5c
xor eax, eax
cmp dword [ebp + 8], eax
jne 0x424d09
push 0x14
jmp 0x424f47
mov eax, 0x3e40
and ecx, eax
push 4
pop eax
or ecx, eax
mov word [esi + 8], cx
jmp 0x4204c3
imul ecx, dword [ebp + 4], 0x28
add ecx, edi
test byte [ecx + 8], 0x24
je case.0x420407.86
call fcn.0041ab88
jmp 0x4206f5
imul esi, dword [ebp + 4], 0x28
mov eax, 0x4000
add esi, edi
test word [esi + 8], ax
je 0x420fa5
mov ecx, esi
call fcn.0041a7f0
jmp 0x420fa7
xor eax, eax
push dword [esp + 0x5c]
mov dl, byte [ebp + 8]
mov ecx, esi
mov dword [esp + 0x18], eax
call fcn.0041acc8
pop ecx
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x424f48
jmp 0x4204c3
imul edi, dword [ebp + 4], 0x28
imul eax, dword [ebp + 0xc], 0x28
mov ecx, dword [esp + 0x18]
add edi, ecx
add ecx, eax
mov dword [esp + 0x1c], ecx
movzx eax, word [edi + 8]
movzx esi, word [ecx + 8]
mov ecx, esi
mov dword [esp + 0x30], eax
mov edx, ecx
mov dword [esp + 0x34], ecx
or edx, eax
test dl, 1
je 0x421081
movzx eax, word [ebp + 2]
mov edx, 0x80
test dl, al
je 0x421041
mov al, byte [esp + 0x34]
xor edx, edx
and al, byte [esp + 0x30]
inc edx
test dl, al
je 0x42102d
test ecx, 0x100
jne 0x42102d
mov esi, dword [esp + 0x1c]
xor eax, eax
jmp 0x4211a7
mov esi, dword [esp + 0x1c]
not ecx
and ecx, edx
lea ecx, [ecx*2 - 1]
jmp 0x4211a9
test al, 0x20
je 0x421071
imul ecx, dword [ebp + 8], 0x28
xor edx, edx
mov edi, dword [esp + 0x18]
mov esi, 0x3e40
inc edx
mov dword [esp + 0x84], edx
mov ax, word [ecx + edi + 8]
and ax, si
or ax, dx
mov word [ecx + edi + 8], ax
jmp 0x4204c3
push 0x10
pop ecx
test cl, al
jne 0x424d09
jmp 0x4206ed
mov al, byte [ebp + 2]
and al, 0x47
cmp al, 0x43
jb 0x421126
push 2
pop eax
mov ecx, esi
test al, dl
je 0x4210e0
mov al, byte [esp + 0x30]
push 2
and al, 0x2e
pop ecx
cmp al, cl
jne 0x4210bb
xor edx, edx
mov ecx, edi
call fcn.0042014e
mov esi, dword [esp + 0x1c]
movzx eax, word [esi + 8]
mov dword [esp + 0x34], eax
jmp 0x4210bf
mov esi, dword [esp + 0x1c]
mov al, byte [esp + 0x34]
movzx ecx, word [esp + 0x34]
and al, 0x2e
push 2
pop edx
cmp al, dl
jne 0x4210e4
xor edx, edx
mov ecx, esi
call fcn.0042014e
movzx ecx, word [esi + 8]
jmp 0x4210e4
mov esi, dword [esp + 0x1c]
mov al, byte [edi + 8]
and al, cl
push 4
pop ecx
test cl, al
je 0x42119a
mov eax, dword [esi + 4]
mov ecx, dword [esi]
cmp eax, dword [edi + 4]
jl 0x421117
jg 0x421104
cmp ecx, dword [edi]
jbe 0x42110c
xor ecx, ecx
inc ecx
jmp 0x4211a9
cmp eax, dword [edi + 4]
jg 0x42111f
jl 0x421117
cmp ecx, dword [edi]
jae 0x42111f
or ecx, 0xffffffff
jmp 0x4211a9
xor eax, eax
jmp 0x4211a7
cmp al, 0x42
jne 0x421196
mov al, byte [esp + 0x30]
push 2
pop ecx
test cl, al
jne 0x421160
test al, 0x2c
je 0x421160
mov dl, byte [esp + 0x5c]
mov ecx, edi
push 1
call fcn.0041a859
mov ax, word [edi + 8]
xor ax, word [esp + 0x34]
pop ecx
mov ecx, 0x3e40
and ax, cx
xor word [esp + 0x30], ax
push 2
pop ecx
mov al, byte [esp + 0x34]
test cl, al
jne 0x421196
mov esi, dword [esp + 0x1c]
test al, 0x2c
je 0x42119a
mov dl, byte [esp + 0x5c]
mov ecx, esi
push 1
call fcn.0041a859
mov ax, word [esi + 8]
xor ax, word [esp + 0x38]
pop ecx
mov ecx, 0x3e40
and ax, cx
xor word [esp + 0x34], ax
jmp 0x42119a
mov esi, dword [esp + 0x1c]
push dword [ebp + 0x10]
mov edx, edi
mov ecx, esi
call fcn.0041de4e
pop ecx
mov ecx, eax
movzx eax, byte [ebp]
test ecx, ecx
jns 0x4211b9
mov al, byte [eax + 0x48959c]
jmp 0x4211c9
jne 0x4211c3
mov al, byte [eax + 0x48974c]
jmp 0x4211c9
mov al, byte [eax + 0x484b40]
movzx edx, al
mov ax, word [esp + 0x30]
mov word [edi + 8], ax
mov ax, word [esp + 0x34]
mov word [esi + 8], ax
movzx eax, word [ebp + 2]
test al, 0x20
je 0x421229
imul esi, dword [ebp + 8], 0x28
mov edi, dword [esp + 0x18]
mov dword [esp + 0x84], ecx
add esi, edi
test al, 8
je 0x42120c
xor eax, eax
cmp byte [ebp], 0x35
sete al
cmp eax, edx
je 0x4204c3
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 0x4204bd
test edx, edx
jmp 0x421076
cmp dword [esp + 0x84], 0
jne 0x424d09
jmp case.0x420407.86
test byte [ebp + 2], al
jne 0x42124c
xor eax, eax
jmp 0x421254
mov eax, dword [ebp - 4]
push 4
pop ecx
add eax, ecx
mov esi, dword [ebp + 4]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x80], esi
mov esi, dword [ebp + 8]
mov dword [esp + 0x6c], esi
xor esi, esi
mov dword [esp + 0x48], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x60], edx
test ecx, ecx
jle 0x4204c3
lea ecx, [edx + 0x14]
mov dword [esp + 0x38], ecx
test eax, eax
je 0x421291
mov edi, dword [eax + esi*4]
jmp 0x421293
mov edi, esi
mov eax, dword [edx + 0x10]
push dword [ecx]
movzx eax, byte [eax + esi]
and eax, 1
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x70]
add eax, edi
imul edx, eax, 0x28
mov eax, dword [esp + 0x84]
add eax, edi
imul ecx, eax, 0x28
add edx, dword [esp + 0x1c]
add ecx, dword [esp + 0x1c]
call fcn.0041de4e
pop ecx
mov ecx, eax
mov dword [esp + 0x84], ecx
test ecx, ecx
jne 0x4212f4
mov ecx, dword [esp + 0x38]
inc esi
mov edx, dword [esp + 0x60]
push 4
pop eax
add ecx, eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x38], ecx
cmp esi, dword [esp + 0x20]
jl 0x421288
jmp 0x4206ed
mov eax, dword [esp + 0x60]
push 2
pop edx
mov eax, dword [eax + 0x10]
test byte [esi + eax], dl
je 0x421344
mov eax, dword [esp + 0x80]
xor edx, edx
mov ecx, dword [esp + 0x18]
add eax, edi
imul eax, eax, 0x28
inc edx
test byte [eax + ecx + 8], dl
jne 0x42132b
mov eax, dword [esp + 0x6c]
add eax, edi
imul eax, eax, 0x28
test byte [eax + ecx + 8], dl
je 0x42133d
mov ecx, dword [esp + 0x84]
neg ecx
mov dword [esp + 0x84], ecx
jmp 0x421344
mov ecx, dword [esp + 0x84]
mov esi, dword [esp + 0x10]
xor eax, eax
mov edi, dword [esp + 0x18]
cmp dword [esp + 0x68], eax
je 0x4206f7
neg ecx
mov dword [esp + 0x84], ecx
jmp 0x4206f7
mov ecx, dword [esp + 0x84]
test ecx, ecx
jns 0x421377
imul ebp, dword [ebp + 4], 0x14
jmp 0x421383
jne 0x42137f
imul ebp, dword [ebp + 8], 0x14
jmp 0x421383
imul ebp, dword [ebp + 0xc], 0x14
add ebp, dword [esp + 0x58]
add ebp, 0xffffffec
jmp case.0x420407.86
imul ecx, dword [ebp + 4], 0x28
push 2
pop eax
mov edx, eax
add ecx, edi
call fcn.0041aad3
imul ecx, dword [ebp + 8], 0x28
mov esi, eax
push 2
pop eax
mov edx, eax
add ecx, edi
call fcn.0041aad3
imul ecx, esi, 3
cmp byte [ebp], 0x2c
jne 0x4213c3
mov dl, byte [ecx + eax + 0x485984]
jmp 0x4213ca
mov dl, byte [ecx + eax + 0x489710]
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 0x4213eb
or ecx, 1
jmp 0x4213f9
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 0x4204c3
imul ecx, dword [ebp + 4], 0x28
mov edx, dword [ebp + 0xc]
add ecx, edi
call fcn.0041aad3
imul ecx, dword [ebp + 8], 0x28
mov ebx, 0x2400
xor eax, dword [ebp + 0x10]
cdq
add ecx, edi
test word [ecx + 8], bx
mov ebx, dword [esp + 0x70]
je 0x421433
push edx
push eax
jmp 0x420896
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x4208a3
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 0x421489
xor edx, edx
call fcn.0041aad3
neg eax
mov ecx, 0x2400
sbb eax, eax
inc eax
test word [esi + 8], cx
je 0x42147a
xor ecx, ecx
push ecx
push eax
mov ecx, esi
call fcn.0041adda
pop ecx
pop ecx
jmp 0x4204c3
mov dword [esi], eax
xor eax, eax
push 4
mov dword [esi + 4], eax
pop eax
jmp 0x4213fc
mov eax, 0x2400
test word [esi + 8], ax
je 0x42149b
mov ecx, esi
jmp 0x420dc4
mov word [esi + 8], dx
jmp 0x4204c3
imul esi, dword [ebp + 8], 0x28
mov eax, 0x2400
imul edi, dword [ebp + 4], 0x28
add esi, dword [esp + 0x18]
add edi, dword [esp + 0x18]
test word [esi + 8], ax
je 0x4214cb
mov ecx, esi
call fcn.0041a971
xor edx, edx
inc edx
jmp 0x4214d2
xor edx, edx
inc edx
mov word [esi + 8], dx
test byte [edi + 8], dl
jne 0x4206ed
push 4
pop eax
mov ecx, edi
mov word [esi + 8], ax
call fcn.0041aa45
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x4206ed
mov edi, dword [ebx + 0xc8]
test edi, edi
je 0x421539
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 0x424d09
bts eax, ecx
mov byte [esi + edi], al
mov ecx, dword [ebx + 0x68]
mov esi, dword [esp + 0x10]
jmp 0x421548
mov ecx, dword [ebx + 0x68]
mov eax, dword [ecx + 4]
cmp eax, dword [ebp + 4]
je 0x424d09
mov eax, dword [ecx + 4]
mov dword [ebp + 4], eax
jmp 0x4206f1
imul ecx, dword [ebp + 4], 0x28
mov edx, dword [ebp + 0xc]
add ecx, edi
call fcn.0041aad3
test eax, eax
jmp 0x42046b
xor edx, edx
xor eax, eax
cmp dword [ebp + 0xc], eax
sete dl
imul ecx, dword [ebp + 4], 0x28
add ecx, edi
call fcn.0041aad3
test eax, eax
je 0x424d09
jmp 0x4206f5
imul eax, dword [ebp + 4], 0x28
test byte [eax + edi + 8], 1
jmp 0x42046b
imul eax, dword [ebp + 4], 0x28
test byte [eax + edi + 8], 1
jmp 0x42157f
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 2], 0
je 0x4206f5
imul eax, dword [ebp + 0xc], 0x28
mov ecx, 0x2400
add eax, edi
test word [eax + 8], cx
je 0x4215d3
mov ecx, eax
call fcn.0041a971
jmp 0x424d09
xor ecx, ecx
inc ecx
mov word [eax + 8], cx
jmp 0x424d09
mov ecx, dword [ebp + 4]
lea edx, [esp + 0x88]
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + ecx*4]
lea ecx, [esp + 0x54]
mov dword [esp + 0x54], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x88], eax
call fcn.0041d82b
mov dword [esp + 0x14], eax
test eax, eax
jne 0x424f48
imul eax, dword [ebp + 0xc], 0x28
mov esi, dword [esp + 0x54]
mov ecx, dword [esi + 0x48]
add edi, eax
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], ecx
cmp eax, dword [ebx + 0x20]
je 0x421729
cmp byte [esi + 2], 0
je 0x421671
cmp byte [esi], 3
jne 0x42199c
imul edx, dword [esi + 0x20], 0x28
add edx, dword [esp + 0x18]
mov eax, dword [edx + 0xc]
mov dword [esi + 0x54], eax
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx + 0x54]
mov dword [ecx + 0x50], eax
mov eax, dword [esp + 0x54]
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x4c], ecx
mov ecx, dword [esp + 0x54]
jmp 0x4216ae
mov ecx, edi
jmp 0x4208e7
mov esi, dword [esi + 0x28]
mov ecx, esi
call fcn.0041471f
mov eax, dword [esp + 0x54]
mov ecx, esi
mov edx, dword [esi + 0x2c]
mov dword [eax + 0x50], edx
mov edx, dword [esp + 0x54]
lea edx, [edx + 0x54]
call fcn.00414b84
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x10]
mov dword [ecx + 0x4c], eax
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx + 0x50]
cmp eax, dword [edx + 0x6c]
ja 0x4243a1
mov eax, dword [ebx + 0x20]
mov edx, 0x80
mov dword [ecx + 0x1c], eax
mov eax, dword [esp + 0x54]
mov ecx, dword [eax + 0x4c]
mov al, byte [ecx]
cmp al, dl
jae 0x4216d3
mov ecx, dword [esp + 0x1c]
movzx eax, al
mov dword [ecx], eax
mov al, 1
jmp 0x4216dc
mov edx, dword [esp + 0x1c]
call fcn.00407ebc
movzx ecx, al
mov eax, dword [esp + 0x54]
mov dword [eax + 0x30], ecx
xor ecx, ecx
mov eax, dword [esp + 0x54]
mov word [eax + 0x3a], cx
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x54]
mov eax, dword [ecx]
cmp dword [esi + 0x54], eax
jae 0x42179d
xor edx, edx
mov dword [esi + 0x4c], edx
mov eax, dword [esp + 0x54]
mov dword [eax + 0x54], edx
mov eax, dword [ecx]
cmp eax, 0x18003
ja 0x421901
mov esi, dword [esp + 0x54]
cmp eax, dword [esi + 0x50]
ja 0x421901
movzx eax, word [esi + 0x3a]
mov edx, dword [esp + 0x88]
cmp eax, edx
jg 0x4219b0
mov eax, dword [ecx]
cmp dword [esi + 0x30], eax
jae 0x421970
mov ecx, dword [esi + 0x4c]
mov dword [esp + 0x44], ecx
test ecx, ecx
jne 0x4217a6
push 0xa
xor eax, eax
lea edi, [esp + 0x17c]
pop ecx
rep stosd dword es:[edi], eax
mov ecx, dword [esi + 0x28]
lea eax, [esp + 0x178]
push eax
mov eax, dword [esp + 0x20]
xor edx, edx
push dword [eax]
call fcn.0041b1d4
mov dword [esp + 0x1c], eax
pop ecx
pop ecx
test eax, eax
jne 0x424f48
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x188]
mov esi, dword [esp + 0x54]
mov dword [esp + 0x44], eax
mov eax, dword [ecx]
jmp 0x4217aa
mov edx, dword [esi + 0x4c]
mov dword [esp + 0x44], edx
jmp 0x4217aa
mov ecx, dword [esp + 0x1c]
movzx edx, word [esi + 0x3a]
mov ebx, dword [esi + 0x30]
mov ebp, edx
add ebx, dword [esp + 0x44]
mov dword [esp + 0x68], edx
mov ecx, dword [ecx + edx*4]
mov dword [esp + 0x34], ecx
xor ecx, ecx
add eax, dword [esp + 0x44]
mov edi, ecx
lea ecx, [edx*4 + 0x58]
mov dword [esp + 0x30], eax
mov dword [esp + 0x48], ecx
movzx eax, byte [ebx]
mov edx, 0x80
mov dword [esp + 0x74], eax
mov dword [esi + ecx], eax
mov eax, dword [esp + 0x74]
cmp eax, edx
jae 0x421808
movzx eax, al
inc ebx
movzx eax, byte [eax + 0x486088]
cdq
add dword [esp + 0x34], eax
adc edi, edx
mov edx, dword [esp + 0x34]
jmp 0x421855
lea edx, [esp + 0x74]
mov ecx, ebx
call fcn.00407ebc
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x74]
movzx eax, al
add ebx, eax
mov eax, dword [esp + 0x54]
mov dword [eax + edx], ecx
mov ecx, 0x80
mov eax, dword [esp + 0x74]
cmp eax, ecx
jb 0x42183b
add eax, 0xfffffff4
shr eax, 1
jmp 0x421842
movzx eax, byte [eax + 0x486088]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x48]
add edx, eax
push 0
pop eax
mov dword [esp + 0x34], edx
adc edi, eax
mov esi, dword [esp + 0x30]
inc ebp
push 4
pop eax
add ecx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x48], ecx
mov dword [eax + ecx - 0x58], edx
cmp ebp, dword [esp + 0x88]
jg 0x421881
cmp ebx, esi
jae 0x421881
mov esi, dword [esp + 0x54]
jmp 0x4217d9
mov eax, dword [esp + 0x54]
cmp ebx, esi
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x70]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x68], ebp
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x60], edi
mov edi, dword [esp + 0x20]
jb 0x4218b8
cmp ecx, esi
ja 0x4218cb
cmp edx, dword [eax + 0x50]
jne 0x4218cb
mov esi, dword [esp + 0x60]
test esi, esi
jne 0x4218c7
jmp 0x4218bc
mov esi, dword [esp + 0x60]
test esi, esi
jb 0x42191d
ja 0x4218c7
cmp edx, dword [eax + 0x50]
jbe 0x42191d
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x1c]
xor edx, edx
cmp dword [ecx], edx
jne 0x4218d9
mov ecx, esi
jmp 0x421921
cmp dword [eax + 0x4c], edx
jne 0x421901
mov eax, 0x2400
test dword [esp + 0x180], eax
jne 0x4218f5
cmp dword [esp + 0x190], edx
je 0x421901
lea ecx, [esp + 0x178]
call fcn.0041a9a6
mov edx, dword [esp + 0x58]
mov eax, dword [edx + 0xc]
test eax, eax
jle 0x424db8
imul eax, eax, 0x14
lea ebp, [edx - 0x14]
add ebp, eax
jmp 0x4206ed
mov edx, dword [esp + 0x68]
sub ecx, dword [esp + 0x44]
mov word [eax + 0x3a], dx
mov eax, dword [esp + 0x54]
mov dword [eax + 0x30], ecx
xor eax, eax
mov esi, dword [esp + 0x54]
cmp dword [esi + 0x4c], eax
jne 0x421963
mov eax, 0x2400
test dword [esp + 0x180], eax
jne 0x421953
cmp dword [esp + 0x190], 0
je 0x421963
lea ecx, [esp + 0x178]
call fcn.0041a9a6
mov esi, dword [esp + 0x54]
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x74]
jmp 0x421978
xor eax, eax
mov ecx, eax
mov dword [esp + 0x74], ecx
movzx eax, word [esi + 0x3a]
cmp eax, edx
jg 0x4219b8
cmp byte [ebp + 1], 0xf5
jne 0x42199c
mov edx, dword [ebp + 0x10]
mov eax, 0x800
push eax
mov ecx, edi
call fcn.0041aee0
pop ecx
jmp 0x4206ed
mov eax, 0x2400
test word [edi + 8], ax
jne 0x42166a
jmp 0x4233f2
mov ecx, dword [esi + edx*4 + 0x58]
mov dword [esp + 0x74], ecx
mov eax, 0x2400
test word [edi + 8], ax
je 0x4219d9
mov ecx, edi
call fcn.0041a971
mov esi, dword [esp + 0x54]
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x74]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esi + 0x54]
cmp eax, dword [ebx + edx*4 + 4]
mov ebx, dword [esp + 0x70]
jb 0x421a7e
mov eax, dword [esi + 0x4c]
mov esi, dword [esp + 0x1c]
add eax, dword [esi + edx*4]
mov dword [esp + 0x20], eax
cmp ecx, 0xc
jae 0x421a0d
mov edx, ecx
mov ecx, eax
push edi
call fcn.0041d998
jmp 0x421996
mov al, byte [esp + 0x5c]
lea esi, [ecx - 0xc]
shr esi, 1
mov dword [edi + 0xc], esi
mov byte [edi + 0xa], al
lea edx, [esi + 2]
cmp dword [edi + 0x18], edx
jge 0x421a43
xor eax, eax
mov ecx, edi
inc eax
mov word [edi + 8], ax
xor eax, eax
push eax
call fcn.0041a64d
pop ecx
test eax, eax
jne 0x424f2d
mov eax, dword [edi + 0x10]
jmp 0x421a49
mov eax, dword [edi + 0x14]
mov dword [edi + 0x10], eax
push esi
push dword [esp + 0x24]
push eax
call fcn.00462610
mov eax, dword [edi + 0x10]
xor ecx, ecx
add esp, 0xc
mov byte [esi + eax], cl
mov eax, dword [edi + 0x10]
mov byte [eax + esi + 1], cl
mov eax, dword [esp + 0x74]
and eax, 1
mov ax, word [eax*2 + 0x483a9c]
mov word [edi + 8], ax
jmp 0x4206ed
mov al, byte [esp + 0x5c]
mov byte [edi + 0xa], al
movzx eax, word [ebp + 2]
mov edx, dword [esp + 0x74]
test al, 0xc0
je 0x421aa4
cmp edx, 0xc
jb 0x421a9b
test dl, 1
je 0x421abf
mov ecx, 0x80
test cl, al
jne 0x421abf
mov eax, 0x80
cmp edx, eax
jb 0x421ab4
lea eax, [edx - 0xc]
shr eax, 1
jmp 0x421abb
movzx eax, byte [edx + 0x486088]
test eax, eax
jne 0x421ac9
mov ecx, 0x49b954
jmp 0x421a05
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x54]
push edi
push eax
mov eax, dword [esp + 0x24]
mov ecx, dword [ecx + 0x28]
mov edx, dword [eax + edx*4]
call fcn.0041b1d4
mov dword [esp + 0x1c], eax
pop ecx
pop ecx
test eax, eax
jne 0x424f48
mov edx, dword [esp + 0x74]
mov ecx, dword [edi + 0x10]
push edi
call fcn.0041d998
mov eax, 0xefff
and word [edi + 8], ax
pop ecx
jmp 0x4206ed
imul esi, dword [ebp + 4], 0x28
mov edi, dword [ebp + 0x10]
add esi, dword [esp + 0x18]
mov al, byte [edi]
push dword [esp + 0x5c]
mov dl, al
mov ecx, esi
call fcn.004201fe
cmp byte [edi], 0x45
pop ecx
jne 0x421b89
movzx ecx, word [esi + 8]
push 4
pop eax
mov dword [esp + 0x20], ecx
test al, cl
je 0x421b89
mov edx, dword [esi]
xor eax, eax
add edx, eax
mov eax, dword [esi + 4]
adc eax, 0x8000
cmp eax, 0xffff
ja 0x421b69
jb 0x421b5a
cmp edx, 0xffffffff
ja 0x421b69
and ecx, 0xfffb
or ecx, 0x20
mov word [esi + 8], cx
jmp 0x421b89
mov edx, dword [esi + 4]
mov ecx, dword [esi]
call fcn.0047a630
mov eax, dword [esp + 0x20]
push 8
and eax, 0xfffb
movsd qword [esi], xmm0
pop ecx
or eax, ecx
mov word [esi + 8], ax
inc edi
mov al, byte [edi]
test al, al
je 0x4206ed
add esi, 0x28
jmp 0x421b1c
imul ecx, dword [ebp + 4], 0x28
xor eax, eax
mov edi, dword [ebp + 0x10]
xorps xmm0, xmm0
mov dword [esp + 0x34], eax
imul eax, dword [ebp + 8], 0x28
movlpd qword [esp + 0x48], xmm0
add ecx, dword [esp + 0x18]
movlpd qword [esp + 0x60], xmm0
mov dword [esp + 0x68], ecx
add eax, 0xffffffd8
add eax, ecx
mov dword [esp + 0x20], eax
mov al, byte [ebx + 0x93]
mov byte [esp + 0x2f], al
imul eax, dword [ebp + 0xc], 0x28
add eax, dword [esp + 0x18]
mov dword [esp + 0x80], eax
test edi, edi
je 0x421c24
mov al, byte [edi]
lea esi, [ecx + 8]
mov ebx, dword [esp + 0x5c]
push ebx
lea ecx, [esi - 8]
mov dl, al
call fcn.004201fe
cmp byte [edi], 0x45
pop ecx
jne 0x421c16
movzx eax, word [esi]
push 4
pop ecx
test cl, al
je 0x421c16
and eax, 0xfffb
or eax, 0x20
mov word [esi], ax
inc edi
add esi, 0x28
mov al, byte [edi]
test al, al
jne 0x421bf0
mov ebx, dword [esp + 0x70]
mov edi, dword [esp + 0x48]
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x4c]
add eax, 0x1c
mov esi, dword [esp + 0x68]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x30], edx
mov dword [esp + 0x44], edi
mov dword [esp + 0x60], ecx
movzx ecx, word [eax - 0x14]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x6c], ecx
test cl, 1
je 0x421c85
mov esi, dword [esp + 0x1c]
mov eax, 0x4000
and ecx, eax
movzx eax, cx
mov ecx, dword [esp + 0x34]
neg eax
sbb eax, eax
and eax, 0xa
inc ecx
mov dword [esi], eax
mov dword [esp + 0x34], ecx
jmp 0x421ea6
test cl, 0x24
je 0x421de4
mov edi, dword [eax - 0x18]
mov esi, dword [eax - 0x1c]
xor eax, eax
cmp edi, eax
jg 0x421caa
jl 0x421ca0
cmp esi, eax
jae 0x421caa
mov edx, esi
mov eax, edi
not edx
not eax
jmp 0x421cae
mov edx, esi
mov eax, edi
inc dword [esp + 0x34]
test eax, eax
ja 0x421d68
jb 0x421cc1
cmp edx, 0x7f
ja 0x421cf9
xor ecx, ecx
mov eax, esi
inc ecx
and eax, ecx
cmp eax, esi
jne 0x421cde
xor eax, eax
cmp eax, edi
jne 0x421ce0
cmp byte [esp + 0x2f], 4
jb 0x421ce0
lea eax, [edx + 8]
jmp 0x421cf0
xor eax, eax
add dword [esp + 0x44], ecx
mov esi, dword [esp + 0x30]
adc esi, eax
mov eax, ecx
mov dword [esp + 0x30], esi
mov edx, dword [esp + 0x30]
jmp 0x421dd5
test eax, eax
ja 0x421d68
jb 0x421d07
cmp edx, 0x7fff
ja 0x421d28
push 2
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x34]
pop ecx
add edi, ecx
push 0
pop eax
adc edx, eax
mov dword [esp + 0x44], edi
mov dword [esp + 0x30], edx
mov eax, ecx
jmp 0x421dd9
test eax, eax
ja 0x421d68
jb 0x421d36
cmp edx, 0x7fffff
ja 0x421d56
mov edi, dword [esp + 0x44]
push 0
pop eax
add edi, 3
push 3
mov edx, dword [esp + 0x34]
adc edx, eax
mov dword [esp + 0x48], edi
mov dword [esp + 0x34], edx
pop eax
jmp 0x421dd9
test eax, eax
ja 0x421d68
jb 0x421d64
cmp edx, 0x7fffffff
ja 0x421d68
push 4
jmp 0x421d09
cmp eax, 0x7fff
ja 0x421d84
jb 0x421d76
cmp edx, 0xffffffff
ja 0x421d84
mov edi, dword [esp + 0x44]
push 0
pop eax
add edi, 6
push 5
jmp 0x421d42
mov edx, dword [esp + 0x30]
push 8
pop eax
add dword [esp + 0x44], eax
push 0
pop eax
adc edx, eax
mov dword [esp + 0x30], edx
test cl, 0x20
je 0x421dd2
mov edx, edi
mov ecx, esi
call fcn.0047a630
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x44]
movsd qword [eax - 0x1c], xmm0
mov eax, dword [esp + 0x6c]
push 8
pop ecx
and eax, 0xffdf
or eax, ecx
push 7
mov word [esi - 0x14], ax
pop eax
jmp 0x421ddd
push 6
pop eax
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x1c]
mov dword [esi], eax
jmp 0x421ea2
test cl, 8
je 0x421e0b
mov ecx, dword [esp + 0x34]
inc ecx
mov dword [eax], 7
add edi, 8
mov dword [esp + 0x34], ecx
mov dword [esp + 0x44], edi
adc edx, 0
mov dword [esp + 0x30], edx
jmp 0x421eae
mov edi, dword [eax - 0x10]
mov eax, ecx
shr eax, 1
and eax, 1
lea eax, [eax + edi*2]
add eax, 0xc
bt ecx, 0xe
mov dword [esp + 0x6c], eax
jae 0x421e63
mov esi, dword [esp + 0x1c]
mov ecx, dword [esi - 0x1c]
lea eax, [eax + ecx*2]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x44]
or eax, edx
je 0x421e50
lea ecx, [esi - 0x1c]
call fcn.0041a7f0
test eax, eax
jne 0x424f2d
add edi, dword [esi - 0x1c]
jmp 0x421e5b
mov eax, ecx
cdq
add dword [esp + 0x60], eax
adc dword [esp + 0x48], edx
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x6c]
add dword [esp + 0x44], edi
push 0
pop ecx
adc edx, ecx
xor esi, esi
mov ecx, eax
mov dword [esp + 0x30], edx
inc esi
shr ecx, 7
xor eax, eax
mov edx, eax
jmp 0x421e86
shrd ecx, edx, 7
inc esi
shr edx, 7
mov eax, ecx
or eax, edx
jne 0x421e7e
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x6c]
add dword [esp + 0x34], esi
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x44]
mov dword [ecx], eax
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x68]
add eax, 0xffffffe4
cmp eax, esi
je 0x421ec1
mov eax, dword [esp + 0x1c]
sub eax, 0x28
jmp 0x421c4f
cmp ecx, 0x7e
jle 0x421f26
mov eax, ecx
xor edi, edi
cdq
inc edi
mov esi, eax
mov dword [esp + 0x6c], edi
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x421ef1
shrd esi, edx, 7
inc edi
shr edx, 7
mov eax, esi
or eax, edx
jne 0x421edf
mov dword [esp + 0x6c], edi
mov eax, dword [esp + 0x34]
add eax, edi
xor edi, edi
mov dword [esp + 0x34], eax
inc edi
cdq
mov esi, eax
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x421f1c
shrd esi, edx, 7
inc edi
shr edx, 7
mov eax, esi
or eax, edx
jne 0x421f0e
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x6c], edi
jge 0x421f2b
inc ecx
mov dword [esp + 0x34], ecx
mov edi, dword [esp + 0x44]
mov eax, ecx
mov esi, dword [esp + 0x30]
cdq
add edi, eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x80]
mov ecx, edx
adc esi, ecx
mov dword [esp + 0x6c], ecx
mov ecx, edi
add ecx, dword [esp + 0x60]
mov eax, dword [eax + 0x18]
adc esi, dword [esp + 0x48]
cdq
cmp esi, edx
jg 0x421f72
jl 0x421f63
cmp ecx, eax
ja 0x421f72
mov ecx, dword [esp + 0x80]
mov eax, dword [ecx + 0x14]
mov dword [ecx + 0x10], eax
jmp 0x421fa9
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x6c]
cdq
cmp esi, edx
jg 0x4243a1
jl 0x421f8c
cmp ecx, eax
ja 0x4243a1
mov ecx, dword [esp + 0x80]
mov edx, edi
call fcn.0041a748
test eax, eax
jne 0x424f2d
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x60]
push 0x10
pop eax
mov word [ecx + 8], ax
mov eax, edx
or eax, dword [esp + 0x48]
mov dword [ecx + 0xc], edi
je 0x421fca
mov eax, 0x4010
mov dword [ecx], edx
mov word [ecx + 8], ax
mov esi, dword [ecx + 0x10]
mov ecx, 0x80
mov eax, dword [esp + 0x34]
lea edi, [esi + eax]
cmp eax, ecx
jae 0x421fe4
mov byte [esi], al
xor eax, eax
inc eax
jmp 0x421ffa
push dword [esp + 0x6c]
mov ecx, esi
push dword [esp + 0x20]
call fcn.00407d02
pop ecx
pop ecx
mov ecx, 0x80
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x20]
movzx eax, al
add esi, eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x20], eax
cmp eax, ecx
jae 0x422019
mov byte [esi], al
xor eax, eax
inc eax
jmp 0x422026
xor ecx, ecx
push ecx
push eax
mov ecx, esi
call fcn.00407d02
pop ecx
pop ecx
push dword [esp + 0x20]
movzx eax, al
mov edx, ebx
mov ecx, edi
add esi, eax
call fcn.0041d885
add ebx, 0x28
add edi, eax
pop ecx
mov ecx, 0x80
cmp ebx, ebp
jbe 0x422007
mov ebp, dword [esp + 0x38]
jmp 0x420d34
mov ecx, dword [ebp + 4]
lea edx, [esp + 0x118]
mov eax, dword [ebx + 0x60]
xorps xmm0, xmm0
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x28]
movlpd qword [esp + 0x118], xmm0
call fcn.00418ee6
mov dword [esp + 0x14], eax
test eax, eax
jne 0x424f48
mov edx, ebp
mov ecx, ebx
call fcn.0042033b
mov ecx, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x4206f5
mov eax, dword [ebp + 4]
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x68], eax
mov dword [esp + 0x20], edi
test eax, eax
jne 0x422189
cmp dword [esi + 0xb8], eax
jg 0x424ddd
test edi, edi
jne 0x4220cb
mov esi, eax
jmp 0x4220df
mov esi, edi
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x4220d0
sub esi, ecx
and esi, 0x3fffffff
mov edi, dword [esp + 0x10]
xor edx, edx
mov ecx, edi
mov eax, dword [edi + 0x1bc]
add eax, dword [edi + 0x1b8]
push eax
call fcn.0044d4e3
pop ecx
xor ecx, ecx
mov dword [esp + 0x14], eax
test eax, eax
jne 0x424f4a
push ecx
lea eax, [esi + 0x21]
mov ecx, edi
push eax
call fcn.00404e37
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x4206ed
lea ecx, [esi + 1]
push ecx
push dword [esp + 0x24]
lea edx, [edi + 0x20]
push edx
mov dword [edi], edx
call fcn.00462610
mov esi, dword [esp + 0x1c]
add esp, 0xc
cmp byte [esi + 0x4f], 0
je 0x42214b
xor eax, eax
mov byte [esi + 0x57], 1
mov byte [esi + 0x4f], al
jmp 0x422151
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 0x4206f1
mov esi, dword [esi + 0x1b0]
xor eax, eax
mov dword [esp + 0x1c], eax
jmp 0x4221ab
mov ecx, dword [esi]
mov edx, edi
call fcn.0040727a
test eax, eax
je 0x4221c6
inc dword [esp + 0x1c]
mov esi, dword [esi + 0x18]
test esi, esi
jne 0x422197
push edi
push str.no_such_savepoint:__s
push ebx
call fcn.0041b721
add esp, 0xc
xor eax, eax
inc eax
jmp 0x424f48
mov ecx, dword [esp + 0x10]
xor edx, edx
mov edi, dword [esp + 0x68]
xor eax, eax
inc edx
cmp dword [ecx + 0xb8], eax
jle 0x4221e3
cmp edi, edx
je 0x424df1
lea eax, [esi + 0x18]
cmp dword [eax], 0
mov dword [esp + 0x80], eax
jne 0x42223e
cmp byte [ecx + 0x57], 0
je 0x42223e
mov dword [esp + 0x48], edx
cmp edi, edx
jne 0x422244
mov ecx, ebx
call fcn.0041d251
test eax, eax
jne 0x424fe9
mov eax, dword [esp + 0x10]
mov ecx, ebx
mov byte [eax + 0x4f], 1
call fcn.0041d2ac
push 5
pop ecx
cmp eax, ecx
je 0x424df8
mov edx, dword [esp + 0x10]
xor eax, eax
mov byte [edx + 0x57], al
mov eax, dword [ebx + 0x28]
mov dword [esp + 0x14], eax
jmp 0x42234e
xor eax, eax
mov dword [esp + 0x48], eax
mov edx, dword [ecx + 0x1b8]
sub edx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x14]
dec edx
mov dword [esp + 0x1c], edx
cmp edi, 2
jne 0x4222c2
mov ecx, dword [ecx + 0x18]
xor edi, edi
and ecx, 1
mov dword [esp + 0x20], edi
mov dword [esp + 0x38], ecx
test eax, eax
jle 0x4222c8
xor ecx, 1
xor eax, eax
mov dword [esp + 0x60], ecx
mov eax, dword [esp + 0x10]
mov edx, 0x204
push ecx
mov ecx, dword [eax + 0x10]
mov ecx, dword [edi + ecx + 4]
call fcn.00414467
mov dword [esp + 0x18], eax
pop ecx
test eax, eax
jne 0x424f48
mov ecx, dword [esp + 0x20]
push 0x10
pop eax
add edi, eax
inc ecx
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], ecx
mov eax, dword [eax + 0x14]
cmp ecx, eax
mov ecx, dword [esp + 0x60]
jl 0x422278
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x1c]
jmp 0x4222c8
xor ecx, ecx
mov dword [esp + 0x38], ecx
xor edi, edi
mov dword [esp + 0x20], edi
test eax, eax
jle 0x422315
xor eax, eax
mov eax, dword [esp + 0x10]
push edx
mov edx, dword [esp + 0x6c]
mov ecx, dword [eax + 0x10]
mov ecx, dword [edi + ecx + 4]
call fcn.004145a5
mov dword [esp + 0x18], eax
pop ecx
test eax, eax
jne 0x424f48
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
inc eax
push 0x10
pop ecx
add edi, ecx
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x10]
cmp eax, dword [ecx + 0x14]
jl 0x4222d4
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x10]
test ecx, ecx
je 0x42234a
mov ecx, dword [edx + 4]
jmp 0x422337
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 0x422322
mov ecx, edx
call fcn.004329bf
mov edx, dword [esp + 0x10]
or dword [edx + 0x18], 1
mov edi, dword [esp + 0x68]
mov ecx, dword [edx + 0x1b0]
cmp ecx, esi
je 0x422386
mov ebx, dword [esp + 0x10]
mov eax, dword [ecx + 0x18]
mov edx, ecx
mov ecx, ebx
mov dword [ebx + 0x1b0], eax
call fcn.00404c57
mov ecx, dword [ebx + 0x1b0]
dec dword [ebx + 0x1b8]
cmp ecx, esi
jne 0x42235c
mov ebx, dword [esp + 0x70]
mov edx, dword [esp + 0x10]
cmp edi, 1
jne 0x4223b6
mov eax, dword [esp + 0x80]
mov eax, dword [eax]
mov dword [edx + 0x1b0], eax
mov edx, esi
mov esi, dword [esp + 0x10]
mov ecx, esi
call fcn.00404c57
cmp dword [esp + 0x48], 0
jne 0x422409
dec dword [esi + 0x1b8]
jmp 0x4223ec
cmp dword [esp + 0x48], 0
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [edx + 0x1c0], eax
mov dword [edx + 0x1c4], ecx
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov esi, dword [esp + 0x10]
mov dword [esi + 0x1c8], eax
mov dword [esi + 0x1cc], ecx
je 0x4223ec
push 2
pop eax
cmp edi, eax
jne 0x422409
mov ecx, dword [esp + 0x1c]
mov edx, edi
push ecx
mov ecx, esi
call fcn.0044d4e3
mov dword [esp + 0x18], eax
pop ecx
test eax, eax
jne 0x424f48
jmp 0x42240d
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x424f48
jmp 0x4206f1
mov edx, dword [ebp + 8]
xor eax, eax
mov dword [esp + 0x38], eax
test edx, edx
je 0x422439
mov eax, dword [esi + 0x20]
xor ecx, ecx
and eax, 0x100000
or eax, ecx
jne 0x424e1d
mov ecx, dword [ebp + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
test esi, esi
je 0x422500
lea eax, [esp + 0x38]
mov ecx, esi
push eax
call fcn.00413a9b
mov dword [esp + 0x18], eax
pop ecx
test eax, eax
jne 0x424e25
xor ecx, ecx
cmp dword [ebp + 8], ecx
je 0x42250c
mov edx, 0x80
test byte [ebx + 0x98], dl
je 0x42250c
mov edi, dword [esp + 0x10]
cmp byte [edi + 0x4f], cl
je 0x422494
cmp dword [edi + 0xb4], 1
jle 0x422512
mov eax, dword [ebx + 0x30]
test eax, eax
jne 0x4224b0
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.0044d4e3
mov dword [esp + 0x18], eax
pop ecx
test eax, eax
jne 0x4224d2
mov edx, dword [ebx + 0x30]
mov ecx, esi
call fcn.00414589
mov dword [esp + 0x14], eax
mov esi, edi
mov eax, dword [esi + 0x1c0]
mov ecx, dword [esi + 0x1c4]
mov dword [ebx + 0x48], eax
mov dword [ebx + 0x4c], ecx
mov eax, dword [esi + 0x1c8]
mov ecx, dword [esi + 0x1cc]
mov dword [ebx + 0x50], eax
mov eax, dword [esp + 0x14]
mov dword [ebx + 0x54], ecx
xor ecx, ecx
jmp 0x422514
mov eax, dword [esp + 0x14]
xor ecx, ecx
mov esi, dword [esp + 0x10]
jmp 0x422518
mov esi, dword [esp + 0x10]
jmp 0x422518
mov esi, edi
mov edi, dword [esp + 0x18]
cmp word [ebp + 2], cx
je 0x422549
mov eax, dword [esp + 0x38]
cmp eax, dword [ebp + 0xc]
jne 0x424e48
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 0x424e48
mov eax, dword [esp + 0x14]
xor ecx, ecx
test eax, eax
jne 0x424f4a
jmp 0x4206f5
mov ecx, dword [esi + 0x10]
lea eax, [esp + 0x10c]
mov edx, dword [ebp + 0xc]
push eax
mov eax, dword [ebp + 4]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00418e7e
pop ecx
mov edx, ebp
mov ecx, ebx
call fcn.0042033b
mov ecx, eax
mov eax, dword [esp + 0x10c]
jmp 0x42055b
mov eax, dword [esp + 0x10]
mov esi, dword [ebp + 4]
push dword [ebp + 0xc]
mov edx, dword [ebp + 8]
shl esi, 4
add esi, dword [eax + 0x10]
mov ecx, dword [esi + 4]
call fcn.00418ea8
xor edx, edx
mov dword [esp + 0x18], eax
inc edx
pop ecx
cmp dword [ebp + 8], edx
jne 0x4225c3
mov ecx, dword [esi + 0xc]
mov esi, dword [esp + 0x10]
mov eax, dword [ebp + 0xc]
mov dword [ecx], eax
or dword [esi + 0x18], edx
jmp 0x4225d8
push 2
pop eax
cmp dword [ebp + 8], eax
jne 0x4225d4
mov ecx, dword [esi + 0xc]
mov al, byte [ebp + 0xc]
mov byte [ecx + 0x4c], al
mov esi, dword [esp + 0x10]
cmp dword [ebp + 4], edx
jne 0x422601
mov ecx, dword [esi + 4]
jmp 0x4225f6
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 0x4225e2
and dword [ebx + 0x98], 0xfffffffc
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x424f48
jmp 0x4206f5
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x42262b
mov eax, dword [esi + 0x34]
cmp eax, dword [ebp + 8]
je 0x422766
mov cl, byte [esp + 0x2f]
mov eax, dword [ebx + 0x98]
and al, 3
cmp al, 1
je 0x424e9b
mov esi, dword [ebp + 0xc]
xor eax, eax
mov edi, dword [esp + 0x10]
mov edx, dword [ebp + 8]
mov dword [esp + 0x60], eax
mov dword [esp + 0x38], eax
mov eax, esi
shl eax, 4
add eax, dword [edi + 0x10]
mov dword [esp + 0x20], edx
mov dword [esp + 0x48], esi
mov edi, dword [eax + 4]
mov dword [esp + 0x80], edi
cmp cl, 0x62
jne 0x422696
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 0x42269a
mov byte [ebx + 0x93], al
jmp 0x42269a
xor eax, eax
mov edi, eax
push 0x10
pop eax
test byte [ebp + 2], al
je 0x4226ba
imul esi, edx, 0x28
add esi, dword [esp + 0x18]
mov ecx, esi
call fcn.0041ab63
mov eax, dword [esi]
mov esi, dword [esp + 0x48]
mov dword [esp + 0x20], eax
mov al, byte [ebp + 1]
cmp al, 0xf7
jne 0x4226ce
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x38], eax
movzx eax, word [eax + 8]
jmp 0x4226db
cmp al, 0xfd
jne 0x4226d7
mov eax, dword [ebp + 0x10]
jmp 0x4226db
mov eax, dword [esp + 0x60]
mov edx, dword [ebp + 4]
xor ecx, ecx
push ecx
push esi
push eax
mov ecx, ebx
call fcn.00420088
mov esi, eax
add esp, 0xc
test esi, esi
je 0x424f2d
push 4
xor ecx, ecx
pop eax
or dword [esi + 8], eax
inc ecx
mov eax, dword [esp + 0x20]
mov byte [esi + 2], cl
mov dword [esi + 0x34], eax
cmp eax, ecx
jge 0x422734
push 0x4947a4
push 0x108ea
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
pop edi
push edi
call fcn.004068c1
add esp, 0x14
mov dword [esp + 0x14], edi
jmp 0x422751
push dword [esi + 0x28]
mov ecx, dword [esp + 0x84]
mov edx, eax
push dword [esp + 0x3c]
push edi
call fcn.0041461d
add esp, 0xc
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x18]
mov dword [esi + 0x2c], eax
cmp byte [ebp + 1], 0xf7
setne al
mov byte [esi + 4], al
mov cl, byte [ebp + 2]
mov eax, dword [esi + 0x28]
and cl, 3
mov byte [eax + 3], cl
jmp 0x420fba
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.00420088
mov ecx, eax
add esp, 0xc
test ecx, ecx
je 0x424f2d
xor eax, eax
inc eax
or dword [ecx + 8], eax
mov byte [ecx + 2], al
mov edi, dword [esi + 0x2c]
mov dword [ecx + 0x2c], edi
mov al, byte [esi + 4]
mov byte [ecx + 4], al
mov edx, dword [esi + 0x34]
mov dword [ecx + 0x34], edx
mov eax, dword [esi + 8]
xor eax, dword [ecx + 8]
and eax, 4
xor dword [ecx + 8], eax
mov eax, dword [ecx + 0x28]
cmp edx, 1
jge 0x4227f3
push 0x4947a4
push 0x108ea
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004068c1
add esp, 0x14
push 0xb
pop eax
jmp 0x422804
mov ecx, dword [esi + 0xc]
push eax
push edi
push 4
pop eax
push eax
call fcn.0041461d
add esp, 0xc
mov dword [esp + 0x14], eax
jmp 0x4206ed
mov eax, dword [ebx + 0x60]
mov edx, dword [ebp + 4]
mov esi, dword [eax + edx*4]
xor eax, eax
test esi, esi
je 0x422843
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x1c], eax
test ecx, ecx
je 0x422966
mov edx, dword [esi + 0x34]
push eax
call fcn.00418c8c
pop ecx
mov dword [esp + 0x14], eax
jmp 0x42296a
push eax
push 0xffffffffffffffff
push dword [ebp + 8]
mov ecx, ebx
call fcn.00420088
mov esi, eax
add esp, 0xc
test esi, esi
je 0x424f2d
or dword [esi + 8], 1
lea edi, [esi + 0xc]
movzx ecx, word [ebp + 2]
xor edx, edx
push 0x41e
push 5
pop eax
or ecx, eax
mov eax, dword [esp + 0x14]
push ecx
push edi
push eax
mov ecx, dword [eax]
call fcn.004132ad
add esp, 0x10
mov dword [esp + 0x14], eax
test eax, eax
jne 0x422948
mov ecx, dword [edi]
xor edx, edx
push eax
inc edx
call fcn.00413a9b
mov dword [esp + 0x18], eax
pop ecx
test eax, eax
jne 0x422948
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x20], eax
mov dword [esi + 0x2c], eax
test eax, eax
je 0x422924
movzx eax, word [ebp + 2]
mov ecx, dword [edi]
push 2
pop edx
or eax, edx
lea edx, [esi + 0x34]
push eax
call fcn.00418900
mov dword [esp + 0x18], eax
pop ecx
test eax, eax
jne 0x42291d
mov edx, dword [esi + 0x34]
cmp edx, 1
jge 0x422904
push 0x4947a4
push 0x108ea
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004068c1
add esp, 0x14
mov dword [esp + 0x14], 0xb
jmp 0x42291d
push dword [esi + 0x28]
mov ecx, dword [edi]
push dword [esp + 0x24]
push 4
pop eax
push eax
call fcn.0041461d
add esp, 0xc
mov dword [esp + 0x14], eax
xor eax, eax
mov byte [esi + 4], al
jmp 0x422948
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.0041461d
add esp, 0xc
mov dword [esp + 0x14], eax
mov byte [esi + 4], 1
mov edi, dword [esp + 0x18]
xor ecx, ecx
push 8
pop eax
cmp word [ebp + 2], ax
push 4
pop eax
cmovne ecx, eax
mov eax, dword [esi + 8]
and eax, 0xfffffffb
or ecx, eax
mov dword [esi + 8], ecx
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x424f48
inc eax
mov byte [esi + 2], al
jmp 0x420dd5
mov edx, dword [ebp + 4]
mov ecx, ebx
push eax
push 0xffffffffffffffff
push dword [ebp + 8]
call fcn.00420088
add esp, 0xc
test eax, eax
je 0x424f31
mov ecx, dword [ebp + 0x10]
mov dword [eax + 0x2c], ecx
mov ecx, esi
mov edx, dword [ebp + 0xc]
push eax
call fcn.004261be
pop ecx
mov dword [esp + 0x14], eax
jmp 0x422605
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 0x424d09
jmp 0x4206ed
mov edx, dword [ebp + 4]
mov ecx, ebx
push 3
push 0xffffffffffffffff
push dword [ebp + 0xc]
call fcn.00420088
add esp, 0xc
test eax, eax
je 0x424f31
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], 0x49b964
jmp 0x4206f5
mov eax, dword [ebp + 4]
mov ecx, ebx
mov edx, dword [ebx + 0x60]
mov edx, dword [edx + eax*4]
call fcn.0041c9d2
mov ecx, dword [ebp + 4]
xor edx, edx
mov eax, dword [ebx + 0x60]
mov dword [eax + ecx*4], edx
jmp 0x4206f5
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
mov edi, dword [eax + ecx*4]
xor ecx, ecx
mov dword [esp + 0x48], ecx
mov word [edi + 2], cx
mov dword [edi + 0x1c], ecx
cmp byte [edi + 4], cl
je 0x422b39
imul esi, dword [ebp + 0xc], 0x28
push 2
pop ecx
add esi, dword [esp + 0x18]
movzx eax, word [esi + 8]
mov dword [esp + 0x60], eax
and al, 0x2e
cmp al, cl
jne 0x422a75
xor edx, edx
mov ecx, esi
call fcn.0042014e
mov ecx, esi
call fcn.0041aa45
movzx ecx, word [esi + 8]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x20], eax
mov word [esi + 8], dx
test cl, 0x24
jne 0x422b00
test cl, 8
jne 0x422acb
test cl, 1
jne 0x424d09
cmp dword [esp + 0x1c], 0x18
jae 0x424d09
mov ecx, dword [edi + 0x28]
lea edx, [esp + 0x7c]
call fcn.00414e05
mov dword [esp + 0x14], eax
test eax, eax
jne 0x424f48
jmp 0x422c52
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x20]
call fcn.0047a630
movsd xmm1, qword [esi]
comisd xmm0, xmm1
jbe 0x422aed
mov eax, dword [esp + 0x1c]
test al, 1
je 0x422b00
dec eax
jmp 0x422afc
comisd xmm1, xmm0
jbe 0x422b00
mov eax, dword [esp + 0x1c]
test al, 1
jne 0x422b00
inc eax
mov dword [esp + 0x1c], eax
mov esi, dword [esp + 0x20]
lea eax, [esp + 0x7c]
mov ecx, dword [edi + 0x28]
xor edx, edx
push eax
xor eax, eax
push eax
push dword [esp + 0x40]
push esi
call fcn.00414e57
mov ecx, dword [esp + 0x48]
add esp, 0x10
mov dword [esp + 0x14], eax
mov dword [edi + 0x40], esi
mov dword [edi + 0x44], ecx
test eax, eax
jne 0x424f48
jmp 0x422bd0
mov eax, dword [edi + 0x28]
push 0
mov al, byte [eax + 3]
and al, 2
mov byte [esp + 0x33], al
pop eax
setne al
mov dword [esp + 0x48], eax
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x120], eax
mov ax, word [ebp + 0x10]
mov word [esp + 0x128], ax
mov eax, edx
and al, 1
mov byte [esp + 0x12e], cl
neg al
lea edx, [esp + 0x120]
sbb al, al
and al, 0xfe
inc al
mov byte [esp + 0x12a], al
imul eax, dword [ebp + 0xc], 0x28
add eax, dword [esp + 0x18]
mov dword [esp + 0x124], eax
lea eax, [esp + 0x7c]
push eax
push ecx
push ecx
push ecx
mov ecx, dword [edi + 0x28]
call fcn.00414e57
add esp, 0x10
mov dword [esp + 0x14], eax
test eax, eax
jne 0x424f48
cmp byte [esp + 0x2f], al
je 0x422bd0
cmp byte [esp + 0x12e], 0
mov eax, dword [esp + 0x48]
mov dword [esp + 0x48], eax
je 0x422c52
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x7c]
cmp eax, 0x18
jl 0x422c04
test ecx, ecx
js 0x422bf0
jne 0x422be8
cmp eax, 0x19
je 0x422bf0
xor eax, eax
mov dword [esp + 0x7c], eax
jmp 0x422c5d
xor eax, eax
push eax
mov dword [esp + 0x80], eax
push dword [edi + 0x28]
call fcn.00415361
jmp 0x422c31
test ecx, ecx
jg 0x422c1f
jne 0x422c0f
cmp eax, 0x16
je 0x422c1f
mov eax, dword [edi + 0x28]
xor ecx, ecx
cmp byte [eax], cl
setne cl
mov dword [esp + 0x7c], ecx
jmp 0x422c52
xor eax, eax
push eax
mov dword [esp + 0x80], eax
push dword [edi + 0x28]
call fcn.0041547b
mov dword [esp + 0x1c], eax
pop ecx
pop ecx
test eax, eax
je 0x422c52
cmp eax, 0x65
jne 0x424f48
xor eax, eax
mov dword [esp + 0x7c], 1
mov dword [esp + 0x14], eax
cmp dword [esp + 0x7c], 0
jne 0x424d09
cmp dword [esp + 0x48], 0
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
je 0x4206f5
push 0x14
pop eax
add ebp, eax
jmp 0x4206f5
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 0x4206f5
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + ecx*4]
test byte [eax + 8], 8
jne 0x4206f5
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
imul esi, dword [ebp + 0xc], 0x28
mov edi, dword [eax + ecx*4]
xor ecx, ecx
mov dword [esp + 0x20], edi
add esi, dword [esp + 0x18]
cmp dword [ebp + 0x10], ecx
jle 0x422cf6
mov eax, dword [edi + 0x2c]
lea edi, [esp + 0x168]
mov dword [esp + 0x168], eax
mov ax, word [ebp + 0x10]
mov dword [esp + 0x16c], esi
mov esi, dword [esp + 0x20]
mov word [esp + 0x170], ax
mov dword [esp + 0x38], ecx
jmp 0x422d3d
mov eax, 0x4000
test word [esi + 8], ax
je 0x422d10
mov ecx, esi
call fcn.0041a7f0
test eax, eax
jne 0x424f2d
mov ecx, dword [edi + 0x2c]
call fcn.0041db28
mov edi, eax
mov dword [esp + 0x38], edi
test edi, edi
je 0x424f2d
mov edx, dword [esi + 0xc]
push edi
push dword [esi + 0x10]
mov esi, dword [esp + 0x28]
mov ecx, dword [esi + 0x2c]
call fcn.0041db7e
pop ecx
pop ecx
xor ecx, ecx
mov byte [edi + 0xa], cl
cmp byte [ebp], 0x1b
mov dword [esp + 0x20], ecx
jne 0x422d71
movzx edx, word [edi + 8]
test edx, edx
je 0x422d6f
mov eax, dword [edi + 4]
add eax, 8
test byte [eax], 1
jne 0x422d67
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x422d58
jmp 0x422d6f
mov dword [esp + 0x20], 1
xor ecx, ecx
lea eax, [esp + 0xc4]
mov edx, edi
push eax
push ecx
push ecx
push ecx
mov ecx, dword [esi + 0x28]
call fcn.00414e57
mov edx, dword [esp + 0x48]
add esp, 0x10
mov dword [esp + 0x14], eax
test edx, edx
je 0x422da2
mov ecx, dword [esp + 0x10]
call fcn.00404c57
mov eax, dword [esp + 0x14]
xor ecx, ecx
test eax, eax
jne 0x424f4a
mov eax, dword [esp + 0xc4]
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0xc4]
test eax, eax
sete cl
test eax, eax
setne al
mov byte [esi + 2], al
xor eax, eax
mov byte [esi + 3], al
mov dword [esi + 0x1c], eax
cmp byte [ebp], 0x1d
jne 0x422ddf
test ecx, ecx
jmp 0x421076
cmp dword [esp + 0x20], eax
jne 0x424d09
test ecx, ecx
jmp 0x4229d2
imul esi, dword [ebp + 0xc], 0x28
add esi, edi
test byte [esi + 8], 0x24
jne case.0x420407.31
push 0xa
pop ecx
push dword [esp + 0x5c]
lea edi, [esp + 0x1a4]
mov dl, 0x43
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x1a4]
call fcn.004201fe
pop ecx
push 4
pop eax
test byte [esp + 0x1a8], al
je 0x424d09
mov edi, dword [esp + 0x1a0]
mov edx, dword [esp + 0x1a4]
jmp 0x422e4a
imul eax, dword [ebp + 0xc], 0x28
mov ecx, dword [esp + 0x18]
mov edi, dword [eax + edi]
mov edx, dword [eax + ecx + 4]
mov dword [esp + 0x20], edx
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
mov esi, dword [eax + ecx*4]
xor eax, eax
mov ecx, dword [esi + 0x28]
mov dword [esp + 0xa8], eax
lea eax, [esp + 0xa8]
push eax
xor eax, eax
push eax
push edx
push edi
xor edx, edx
call fcn.00414e57
mov dword [esp + 0x24], eax
add esp, 0x10
mov eax, dword [esp + 0x20]
mov dword [esi + 0x44], eax
xor eax, eax
mov dword [esi + 0x40], edi
mov word [esi + 2], ax
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0xa8]
mov dword [esi + 0x20], eax
cmp dword [esp + 0xa8], 0
je 0x422ebf
xor eax, eax
cmp dword [ebp + 8], eax
jne 0x424d09
push 0x4947a4
push 0x159cf
jmp 0x424dc2
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x424f48
jmp 0x4206ed
mov edx, ebp
mov ecx, ebx
call fcn.0042033b
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 0x4206f5
xorps xmm0, xmm0
xor eax, eax
mov edx, ebp
movlpd qword [esp + 0x60], xmm0
mov ecx, ebx
mov dword [esp + 0x48], eax
call fcn.0042033b
mov edx, dword [ebp + 4]
mov ecx, dword [ebx + 0x60]
push 2
mov dword [esp + 0x3c], eax
pop eax
mov edi, dword [ecx + edx*4]
mov dword [esp + 0x20], edi
test byte [edi + 8], al
jne 0x422fa1
mov ecx, dword [edi + 0x28]
lea edx, [esp + 0x48]
call fcn.00414e05
mov dword [esp + 0x14], eax
test eax, eax
jne 0x424f48
cmp dword [esp + 0x48], eax
je 0x422f62
mov dword [esp + 0x60], 1
mov dword [esp + 0x64], eax
jmp 0x422fa1
mov esi, dword [edi + 0x28]
mov ecx, esi
call fcn.0041471f
mov ecx, dword [esi + 0x24]
mov eax, dword [esi + 0x20]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
cmp ecx, 0x7fffffff
jl 0x422f91
jg 0x422f89
cmp eax, 0xffffffff
jb 0x422f91
push 2
pop eax
or dword [edi + 8], eax
jmp 0x422fa1
add eax, 1
push 0
pop edx
adc ecx, edx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x42302c
mov eax, dword [ebx + 0xc8]
test eax, eax
jne 0x423010
imul esi, edx, 0x28
add esi, dword [esp + 0x18]
mov ecx, esi
call fcn.0041ab63
mov ecx, dword [esi]
mov edx, dword [esi + 4]
cmp ecx, 0xffffffff
jne 0x422fda
cmp edx, 0x7fffffff
je 0x423090
push 2
pop eax
test byte [edi + 8], al
jne 0x423090
mov edi, dword [esp + 0x64]
add ecx, 1
push 0
pop eax
adc edx, eax
cmp edi, edx
jg 0x42301f
jl 0x423000
mov eax, dword [esp + 0x60]
cmp eax, ecx
jae 0x423023
mov eax, ecx
mov edi, edx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edi
jmp 0x423023
mov eax, ecx
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x42300e
imul esi, edx, 0x28
add esi, dword [eax + 0x10]
jmp 0x422fbd
mov eax, dword [esp + 0x60]
mov dword [esi + 4], edi
mov edi, dword [esp + 0x20]
mov dword [esi], eax
push 2
pop eax
test byte [edi + 8], al
je 0x423097
xor eax, eax
mov esi, eax
lea eax, [esp + 0x60]
push eax
push 8
pop eax
push eax
call fcn.00406941
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
and eax, 0x3fffffff
push 0
add ecx, 1
pop edx
adc eax, edx
mov dword [esp + 0x68], ecx
lea edx, [esp + 0x50]
mov dword [esp + 0x6c], eax
push edx
xor edx, edx
push edx
push eax
push ecx
mov ecx, dword [edi + 0x28]
call fcn.00414e57
add esp, 0x18
mov dword [esp + 0x14], eax
test eax, eax
jne 0x424f48
cmp dword [esp + 0x48], eax
jne 0x423097
inc esi
cmp esi, 0x64
jl 0x423038
push 0xd
jmp 0x424f47
mov edx, dword [esp + 0x38]
xor eax, eax
mov byte [edi + 3], al
mov dword [edi + 0x1c], eax
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x4206ed
imul esi, dword [ebp + 8], 0x28
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
mov edx, dword [esp + 0x18]
add esi, edi
mov edi, dword [eax + ecx*4]
imul eax, dword [ebp + 0xc], 0x28
cmp byte [ebp + 1], 0xfa
mov ecx, dword [eax + edx]
mov eax, dword [eax + edx + 4]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x60], eax
mov dword [esp + 0xd8], ecx
mov dword [esp + 0xdc], eax
jne 0x423112
mov eax, dword [esp + 0x10]
xor ecx, ecx
cmp dword [eax + 0xe8], ecx
je 0x423112
movsx ecx, byte [edi + 1]
mov eax, dword [eax + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8]
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x20], ecx
jmp 0x423118
xor eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x38], eax
movzx eax, word [ebp + 2]
mov edx, eax
test al, 1
je 0x42312d
inc dword [ebx + 0x2c]
movzx edx, word [ebp + 2]
movzx ecx, dx
test dl, 0x20
je 0x42314b
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x48]
mov dword [ecx + 0x28], eax
mov eax, dword [esp + 0x60]
mov dword [ecx + 0x2c], eax
movzx ecx, word [ebp + 2]
mov eax, dword [esi + 0x10]
mov dword [esp + 0xe0], eax
mov eax, dword [esi + 0xc]
push 0x10
mov dword [esp + 0xf0], eax
pop eax
test al, cl
je 0x42316b
mov edx, dword [edi + 0x20]
jmp 0x42316f
xor eax, eax
mov edx, eax
mov eax, 0x4000
test word [esi + 8], ax
push 0
pop eax
je 0x42318a
mov eax, dword [esi]
mov dword [esp + 0xf0], eax
xor eax, eax
jmp 0x423191
mov dword [esp + 0xf0], eax
push edx
and ecx, 0xa
mov dword [esp + 0xd4], eax
push ecx
mov ecx, dword [edi + 0x28]
lea edx, [esp + 0xd8]
call fcn.00418232
pop ecx
pop ecx
xor ecx, ecx
mov dword [esp + 0x14], eax
mov byte [edi + 3], cl
mov dword [edi + 0x1c], ecx
test eax, eax
jne 0x424f4a
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x10]
test eax, eax
je 0x4206f1
push dword [esp + 0xdc]
push dword [esp + 0xdc]
push dword [eax]
push dword [esp + 0x44]
push 4
pop eax
test byte [ebp + 2], al
push 0x12
pop eax
push 0x17
pop ecx
cmovne eax, ecx
push eax
push dword [esi + 0xe4]
call dword [esi + 0xe8]
add esp, 0x18
jmp 0x4206f1
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 4]
mov dword [esp + 0x48], eax
mov eax, dword [ebx + 0x60]
mov edi, dword [eax + ecx*4]
xor eax, eax
cmp byte [ebp + 1], 0xfa
jne 0x42326b
cmp dword [esi + 0xe8], eax
je 0x42326b
movsx ecx, byte [edi + 1]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov esi, dword [ebp + 0x10]
push 2
mov dword [esp + 0x3c], esi
mov eax, dword [eax + ecx*8]
mov dword [esp + 0x24], eax
pop eax
test byte [ebp + 2], al
je 0x423271
cmp byte [edi + 4], 0
je 0x423271
mov esi, dword [edi + 0x28]
mov ecx, esi
call fcn.0041471f
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x24]
mov esi, dword [esp + 0x38]
mov dword [edi + 0x40], eax
mov dword [edi + 0x44], ecx
jmp 0x423271
mov dword [esp + 0x20], eax
mov esi, eax
mov dl, byte [ebp + 2]
mov ecx, dword [edi + 0x28]
call fcn.004185e8
xor ecx, ecx
mov dword [esp + 0x14], eax
mov dword [edi + 0x1c], ecx
mov dword [edi + 0x20], ecx
test eax, eax
jne 0x424f4a
inc eax
test byte [esp + 0x48], al
je 0x4208f8
mov eax, dword [esp + 0x10]
inc dword [ebx + 0x2c]
mov eax, dword [eax + 0xe8]
test eax, eax
je 0x4206ed
test byte [esi + 0x24], 0x20
jne 0x4206ed
push dword [edi + 0x44]
push dword [edi + 0x40]
push dword [esi]
mov esi, dword [esp + 0x1c]
push dword [esp + 0x2c]
push 9
push dword [esi + 0xe4]
call eax
jmp 0x423202
mov eax, dword [ebx + 0x2c]
add dword [esi + 0x68], eax
mov dword [esi + 0x64], eax
xor eax, eax
mov dword [ebx + 0x2c], eax
jmp 0x4206f5
mov eax, dword [ebx + 0x60]
mov ecx, dword [ebp + 4]
imul edx, dword [ebp + 0xc], 0x28
mov ecx, dword [eax + ecx*4]
xor eax, eax
mov dword [esp + 0xbc], eax
lea eax, [esp + 0xbc]
push eax
push dword [ebp + 0x10]
add edx, edi
call fcn.00427455
mov dword [esp + 0x1c], eax
pop ecx
pop ecx
test eax, eax
jne 0x424f48
cmp dword [esp + 0xbc], eax
jmp 0x42046b
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.004273ff
mov dword [esp + 0x14], eax
test eax, eax
jne 0x424f48
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 0x4206f5
mov edx, ebp
mov ecx, ebx
call fcn.0042033b
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.0041471f
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x2c]
cmp eax, dword [ecx + 0x6c]
ja 0x4243a1
push esi
push eax
xor edx, edx
mov ecx, edi
call fcn.0041b1d4
mov dword [esp + 0x1c], eax
pop ecx
pop ecx
test eax, eax
jne 0x424f48
cmp dword [ebp + 0xc], eax
jne 0x4206ed
mov eax, 0x1000
test word [esi + 8], ax
je 0x4206ed
mov ecx, esi
call fcn.0041a7aa
mov esi, dword [esp + 0x10]
test eax, eax
jne 0x424f31
jmp 0x4206f1
mov edx, ebp
mov ecx, ebx
call fcn.0042033b
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 0x4233fe
xor eax, eax
inc eax
mov word [edi + 8], ax
jmp 0x4208f8
cmp byte [esi + 3], 0
je 0x42340f
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
jmp 0x423491
push 2
pop eax
cmp byte [esi], al
jne 0x423454
mov ecx, dword [esi + 0x28]
lea edx, [esp + 0xb0]
push edx
push ecx
mov esi, dword [ecx]
mov eax, dword [esi]
call dword [eax + 0x30]
pop ecx
pop ecx
mov edx, esi
mov dword [esp + 0x14], eax
mov ecx, ebx
call fcn.0041e9ed
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x424f48
mov ecx, dword [esp + 0xb4]
mov eax, dword [esp + 0xb0]
jmp 0x42349f
mov eax, dword [esi + 0x28]
cmp byte [eax], 0
je 0x423471
mov ecx, esi
call fcn.0041d7f1
mov dword [esp + 0x14], eax
test eax, eax
jne 0x424f48
jmp 0x423477
xor eax, eax
mov dword [esp + 0x14], eax
cmp byte [esi + 2], 0
jne 0x4233f2
mov esi, dword [esi + 0x28]
mov ecx, esi
call fcn.0041471f
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x24]
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb0], eax
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x4206ed
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 0x420dd5
mov esi, dword [esi + 0x28]
push dword [esi + 0x10]
call fcn.00404c0f
xor eax, eax
mov dword [esi + 0x10], eax
inc eax
pop ecx
mov byte [esi], al
jmp 0x420dd5
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
mov esi, dword [eax + ecx*4]
xor eax, eax
cmp byte [esp + 0x2f], 0x82
mov ecx, dword [esi + 0x28]
mov dword [esp + 0x8c], eax
jne 0x423506
or dword [esi + 0x20], 0xffffffff
cmp byte [ecx], al
je 0x4204c3
lea edx, [esp + 0x8c]
call fcn.00414e05
mov dword [esp + 0x14], eax
mov al, byte [esp + 0x8c]
mov byte [esi + 2], al
xor eax, eax
mov byte [esi + 3], al
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x424f48
cmp dword [ebp + 8], eax
jle 0x4204c3
cmp dword [esp + 0x8c], eax
jne 0x424d09
jmp 0x4204c3
mov ecx, dword [ebp + 4]
lea edx, [esp + 0x98]
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x28]
mov ecx, esi
call fcn.00414ddb
mov dword [esp + 0x14], eax
test eax, eax
jne 0x424f48
cmp dword [esp + 0x98], eax
jne 0x424d09
mov ecx, esi
call fcn.00415244
xor ecx, ecx
cmp edx, ecx
jl 0x4235b8
jg 0x423595
cmp eax, ecx
jb 0x4235b8
push edx
push eax
call fcn.004082b1
pop ecx
pop ecx
mov ecx, dword [esp + 0x98]
cwde
cmp eax, dword [ebp + 0xc]
push 1
pop eax
cmovl ecx, eax
mov dword [esp + 0x98], ecx
jmp 0x4235c2
mov ecx, dword [esp + 0x98]
xor eax, eax
inc eax
test ecx, ecx
jne 0x424d09
jmp 0x420dd5
inc dword [ebx + 0xac]
mov eax, dword [ebx + 0x60]
lea edx, [esp + 0x9c]
mov ecx, dword [ebp + 4]
mov esi, dword [eax + ecx*4]
xor eax, eax
inc eax
mov dword [esp + 0x9c], eax
cmp byte [esi], al
jne 0x4235fe
mov ecx, esi
call fcn.00427325
xor ecx, ecx
jmp 0x42360e
mov ecx, dword [esi + 0x28]
call fcn.00414ddb
xor ecx, ecx
mov byte [esi + 3], cl
mov dword [esi + 0x1c], ecx
mov dword [esp + 0x14], eax
test eax, eax
jne 0x424f4a
mov al, byte [esp + 0x9c]
mov byte [esi + 2], al
cmp dword [esp + 0x9c], 0
jmp 0x423544
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
mov esi, dword [eax + ecx*4]
mov edx, esi
mov ecx, dword [esp + 0x10]
call fcn.00427371
jmp 0x42365b
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
push dword [ebp + 0xc]
mov esi, dword [eax + ecx*4]
push dword [esi + 0x28]
call dword [ebp + 0x10]
pop ecx
pop ecx
mov dword [esp + 0x14], eax
xor ecx, ecx
mov dword [esi + 0x1c], ecx
test eax, eax
jne 0x42367b
mov byte [esi + 2], al
movzx eax, word [ebp + 2]
inc dword [ebx + eax*4 + 0xa4]
jmp 0x424907
cmp eax, 0x65
jne 0x424f4a
xor eax, eax
mov dword [esp + 0x14], eax
inc eax
mov byte [esi + 2], al
jmp 0x423d73
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
imul esi, dword [ebp + 8], 0x28
mov edi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x18]
add esi, ecx
test byte [ebp + 2], 1
je 0x4236af
inc dword [ebx + 0x2c]
mov eax, 0x4000
test word [esi + 8], ax
je 0x4236cd
mov ecx, esi
call fcn.0041a7f0
test eax, eax
jne 0x424f48
mov ecx, dword [esp + 0x18]
cmp byte [ebp], 0x83
jne 0x4236e0
mov edx, esi
mov ecx, edi
call fcn.00426ace
xor ecx, ecx
jmp 0x423742
mov eax, dword [esi + 0xc]
cdq
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], edx
mov eax, dword [esi + 0x10]
mov dword [esp + 0xd0], eax
imul eax, dword [ebp + 0xc], 0x28
push 0x10
add eax, ecx
mov dword [esp + 0xe8], eax
mov ax, word [ebp + 0x10]
mov word [esp + 0xec], ax
movzx eax, word [ebp + 2]
pop ecx
test cl, al
je 0x423725
mov ecx, dword [edi + 0x20]
jmp 0x423727
xor ecx, ecx
push ecx
mov ecx, dword [edi + 0x28]
lea edx, [esp + 0xd4]
and eax, 0xa
push eax
call fcn.00418232
pop ecx
pop ecx
xor ecx, ecx
mov dword [edi + 0x1c], ecx
mov dword [esp + 0x14], eax
test eax, eax
jne 0x424f4a
jmp 0x4206ed
mov ecx, dword [ebp + 4]
lea edx, [esp + 0x140]
mov eax, dword [ebx + 0x60]
mov esi, dword [eax + ecx*4]
xor ecx, ecx
mov eax, dword [esi + 0x2c]
mov edi, dword [esi + 0x28]
mov dword [esp + 0x140], eax
mov ax, word [ebp + 0xc]
mov word [esp + 0x148], ax
imul eax, dword [ebp + 8], 0x28
mov byte [esp + 0x14a], cl
add eax, dword [esp + 0x18]
mov dword [esp + 0x144], eax
lea eax, [esp + 0x110]
push eax
push ecx
push ecx
push ecx
mov ecx, edi
call fcn.00414e57
add esp, 0x10
mov dword [esp + 0x14], eax
test eax, eax
jne 0x424f48
cmp dword [esp + 0x110], eax
jne 0x4237d6
push 4
pop eax
mov dl, al
mov ecx, edi
call fcn.004185e8
mov dword [esp + 0x14], eax
test eax, eax
jne 0x424f48
xor eax, eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], eax
jmp 0x4206ed
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 0x423809
mov ecx, esi
call fcn.0041d7f1
mov dword [esp + 0x14], eax
test eax, eax
jne 0x424f48
jmp 0x42380f
xor eax, eax
mov dword [esp + 0x14], eax
cmp byte [esi + 2], 0
jne 0x4238a1
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0xc8]
xorps xmm0, xmm0
movlpd qword [esp + 0xc8], xmm0
mov edx, dword [esi + 0x28]
push eax
call fcn.0041e83e
mov dword [esp + 0x18], eax
pop ecx
test eax, eax
jne 0x424f48
cmp byte [ebp], 0x86
jne 0x423880
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebx + 0x60]
mov edx, dword [eax + ecx*4]
xor eax, eax
mov byte [edx + 2], al
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xcc]
mov dword [edx + 0x40], eax
mov dword [edx + 0x44], ecx
mov byte [edx + 3], 1
mov eax, dword [ebp + 0x10]
mov dword [edx + 0x18], eax
mov dword [edx + 0x24], esi
jmp 0x4204c3
mov edx, ebp
mov ecx, ebx
call fcn.0042033b
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xcc]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x4204c3
imul eax, dword [ebp + 8], 0x28
mov ecx, 0x2400
add eax, edi
test word [eax + 8], cx
je 0x4238b9
mov ecx, eax
jmp 0x420dc4
xor ecx, ecx
inc ecx
mov word [eax + 8], cx
jmp 0x4204c3
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
cmp byte [esp + 0x2f], 0x27
mov edx, dword [eax + ecx*4]
mov ecx, esi
mov eax, dword [edx + 0x2c]
mov dword [esp + 0x150], eax
mov ax, word [ebp + 0x10]
mov word [esp + 0x158], ax
sbb al, al
mov byte [esp + 0x15a], al
imul eax, dword [ebp + 0xc], 0x28
add eax, edi
mov dword [esp + 0x154], eax
xor eax, eax
mov dword [esp + 0xa0], eax
lea eax, [esp + 0xa0]
push eax
lea eax, [esp + 0x154]
push eax
call fcn.0041e933
test byte [ebp], 1
pop ecx
pop ecx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x14], eax
je 0x423936
neg ecx
jmp 0x42393b
mov eax, dword [esp + 0x14]
inc ecx
mov dword [esp + 0xa0], ecx
test eax, eax
jne 0x424f48
test ecx, ecx
jg 0x424d09
jmp 0x4206f5
mov edx, ebp
mov ecx, ebx
call fcn.0042033b
mov edx, dword [esp + 0x10]
mov esi, eax
xor eax, eax
inc eax
mov word [esi + 8], ax
mov ecx, dword [edx + 0xc0]
inc ecx
cmp dword [edx + 0xb4], ecx
jg 0x424ea5
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov dword [esp + 0xa4], ecx
mov ecx, eax
mov dword [esp + 0x20], eax
add ecx, ecx
mov eax, dword [edx + 0x10]
lea edx, [esp + 0xa4]
push edx
mov edx, dword [ebp + 4]
mov ecx, dword [eax + ecx*8 + 4]
call fcn.00418cc9
pop ecx
mov dword [esp + 0x14], eax
push 4
pop eax
mov word [esi + 8], ax
mov eax, dword [esp + 0xa4]
cdq
mov dword [esi], eax
mov eax, dword [esp + 0x14]
mov dword [esi + 4], edx
test eax, eax
jne 0x424f48
mov esi, dword [esp + 0x10]
cmp dword [esp + 0xa4], eax
je 0x4206f5
push dword [ebp + 4]
mov edx, dword [esp + 0x24]
mov ecx, esi
push dword [esp + 0xa8]
call fcn.004348f3
mov al, byte [esp + 0x28]
pop ecx
inc al
pop ecx
mov byte [esp + 0x7b], al
jmp 0x4206f5
xor edx, edx
lea eax, [esp + 0x20]
xor ecx, ecx
mov dword [esp + 0x20], edx
cmp dword [ebp + 0xc], edx
mov edx, dword [ebp + 4]
cmove eax, ecx
mov ecx, dword [esi + 0x10]
push eax
mov eax, dword [ebp + 8]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00418c8c
pop ecx
xor ecx, ecx
mov dword [esp + 0x14], eax
cmp dword [ebp + 0xc], ecx
je 0x422549
mov edx, dword [esp + 0x20]
add dword [ebx + 0x2c], edx
mov ecx, dword [ebp + 0xc]
test ecx, ecx
jle 0x422547
imul ecx, ecx, 0x28
mov eax, edx
cdq
add dword [ecx + edi], eax
adc dword [ecx + edi + 4], edx
jmp 0x422543
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx], 1
jne 0x423a7f
mov edx, dword [ecx + 0x28]
mov ecx, esi
call fcn.0042639c
jmp 0x4206f5
mov ecx, dword [ecx + 0x28]
xor eax, eax
push eax
mov edx, dword [ecx + 0x40]
mov ecx, dword [ecx + 8]
call fcn.00418c8c
jmp 0x4229a7
mov edx, ebp
mov ecx, ebx
call fcn.0042033b
mov edx, dword [ebp + 4]
mov esi, eax
push dword [ebp + 0xc]
xor eax, eax
add edx, edx
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + edx*8 + 4]
lea edx, [esp + 0xc4]
call fcn.00418900
mov dword [esp + 0x18], eax
pop ecx
test eax, eax
jne 0x424f48
mov eax, dword [esp + 0xc0]
jmp 0x4204bd
inc byte [esi + 0x5a]
xor eax, eax
push eax
push eax
push eax
push dword [ebp + 0x10]
push esi
call fcn.0043e6ff
add esp, 0x14
mov dword [esp + 0x14], eax
dec byte [esi + 0x5a]
jmp 0x422605
cmp dword [ebp + 0x10], 0
mov esi, dword [ebp + 4]
mov edi, dword [esp + 0x10]
jne 0x423b4a
mov eax, dword [edi + 0x10]
mov ecx, esi
add ecx, ecx
push dword [eax + ecx*8 + 0xc]
call fcn.0043762f
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.00441c77
or dword [esi + 0x18], 1
and dword [ebx + 0x98], 0xfffffffc
pop ecx
pop ecx
mov dword [esp + 0x14], eax
jmp 0x423c1f
push dword [ebp + 0x10]
lea eax, [ebx + 0x7c]
mov dword [esp + 0xdc], esi
mov dword [esp + 0xd8], eax
add esi, esi
xor eax, eax
mov dword [esp + 0xd4], edi
mov dword [esp + 0xe4], eax
mov eax, dword [edi + 0x10]
push str.sqlite_master
push dword [eax + esi*8]
push str.SELECTFROM__w_._s_WHERE__s_ORDER_BY_rowid
push edi
call fcn.004067d0
mov esi, eax
add esp, 0x14
test esi, esi
je 0x424eb6
xor eax, eax
mov byte [edi + 0xa5], 1
push eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe8], eax
lea eax, [esp + 0xd4]
push eax
push fcn.00441aee
push esi
push edi
call fcn.0043e6ff
add esp, 0x14
mov dword [esp + 0x14], eax
test eax, eax
jne 0x423c06
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x14], eax
test eax, eax
jne 0x423c06
cmp dword [esp + 0xe4], eax
jne 0x423c06
push 0x4947a4
push 0x15f51
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
pop edi
push edi
call fcn.004068c1
add esp, 0x14
mov dword [esp + 0x14], edi
mov edx, esi
mov esi, dword [esp + 0x10]
mov ecx, esi
call fcn.00404c57
xor eax, eax
mov byte [esi + 0xa5], al
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x424ebf
jmp 0x4206f1
mov edx, dword [ebp + 4]
mov ecx, esi
call fcn.004316d0
jmp 0x4229a8
push dword [ebp + 0x10]
mov edx, dword [ebp + 4]
mov ecx, esi
call fcn.00432b97
jmp 0x42086e
push dword [ebp + 0x10]
mov edx, dword [ebp + 4]
mov ecx, esi
call fcn.0043286c
jmp 0x42086e
push dword [ebp + 0x10]
mov edx, dword [ebp + 4]
mov ecx, esi
call fcn.0044a105
jmp 0x42086e
imul esi, dword [ebp + 0xc], 0x28
lea eax, [esp + 0x114]
mov ecx, dword [esp + 0x10]
mov edx, dword [ebp + 0x10]
push eax
add edx, 4
mov ecx, dword [ecx + 0x10]
add esi, edi
imul edi, dword [ebp + 4], 0x28
mov eax, dword [esi]
add edi, dword [esp + 0x1c]
inc eax
push eax
movzx eax, word [ebp + 2]
push dword [ebp + 8]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.0041989f
add esp, 0xc
mov dword [esp + 0x20], eax
mov ecx, edi
call fcn.0041ad90
mov eax, dword [esp + 0x114]
test eax, eax
je 0x423ceb
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x424f2d
dec eax
cdq
sub dword [esi], eax
push fcn.00404c0f
sbb dword [esi + 4], edx
mov edx, ecx
push 1
push 0xffffffffffffffff
mov ecx, edi
call fcn.0041afc3
add esp, 0xc
movzx edx, byte [esp + 0x5c]
mov ecx, edi
call fcn.0041a638
jmp 0x4206ed
imul esi, dword [ebp + 4], 0x28
push 0x10
pop eax
add esi, edi
imul edi, dword [ebp + 8], 0x28
add edi, dword [esp + 0x18]
test byte [esi + 8], al
jne 0x423d21
mov ecx, esi
call fcn.0041ae2d
test eax, eax
jne 0x424f2d
push dword [edi + 4]
mov ecx, dword [esi + 0x10]
push dword [edi]
call fcn.0040b994
pop ecx
jmp 0x421996
imul esi, dword [ebp + 4], 0x28
push 0x10
pop eax
add esi, edi
test byte [esi + 8], al
je 0x423d8e
mov ecx, dword [esi + 0x10]
lea edx, [esp + 0x130]
call fcn.0040bb87
test eax, eax
je 0x423d8e
imul ecx, dword [ebp + 0xc], 0x28
push dword [esp + 0x134]
push dword [esp + 0x134]
add ecx, edi
call fcn.0041adf8
pop ecx
pop ecx
xor eax, eax
inc eax
mov esi, dword [esp + 0x10]
xor ecx, ecx
cmp dword [esi + 0x108], ecx
jne 0x4251be
mov edi, dword [esp + 0x18]
jmp case.0x420407.86
mov ecx, esi
call fcn.0041ad90
jmp 0x424907
imul esi, dword [ebp + 4], 0x28
mov eax, dword [ebp + 0x10]
push 0x10
pop ecx
mov dword [esp + 0x20], eax
add esi, edi
imul edi, dword [ebp + 0xc], 0x28
add edi, dword [esp + 0x18]
test byte [esi + 8], cl
jne 0x423dca
mov ecx, esi
call fcn.0041ae2d
test eax, eax
jne 0x424f2d
mov eax, dword [esp + 0x20]
test eax, eax
je 0x423d21
push dword [edi + 4]
mov ecx, dword [esi + 0x10]
mov edx, eax
push dword [edi]
call fcn.0040bbdf
pop ecx
pop ecx
test eax, eax
jne 0x424d09
cmp dword [esp + 0x20], eax
jl 0x4206ed
jmp 0x423d21
imul edi, dword [ebp + 0xc], 0x28
xor eax, eax
mov esi, dword [ebp + 0x10]
mov dword [esp + 0x20], esi
add edi, dword [esp + 0x18]
cmp word [ebp + 2], ax
je 0x423e2c
mov ecx, dword [esi + 0x14]
mov eax, dword [ebx + 0xc8]
jmp 0x423e28
cmp dword [eax + 0x1c], ecx
je 0x4206ed
mov eax, dword [eax + 4]
test eax, eax
jne 0x423e1c
mov ecx, dword [esp + 0x10]
mov eax, dword [ebx + 0xd0]
cmp eax, dword [ecx + 0x94]
jge 0x424ed3
push 0x10
pop edx
test byte [edi + 8], dl
jne 0x423f38
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 8]
add eax, edx
test edx, edx
lea ecx, [eax + 1]
cmovne ecx, eax
mov dword [esp + 0x48], ecx
lea eax, [ecx + 2]
imul ecx, eax, 0xa
mov eax, dword [esi + 4]
add eax, 7
add ecx, edx
mov eax, eax
test eax, eax
jns 0x423e79
add eax, 7
sar eax, 3
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x38], eax
cdq
push edx
push eax
call fcn.00404dde
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x424f2d
mov ecx, edi
call fcn.0041a9d4
mov ecx, dword [esp + 0x48]
mov eax, 0x410
sub ebp, dword [esp + 0x58]
mov word [edi + 8], ax
mov eax, dword [esp + 0x38]
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], esi
mov dword [edi + 0x24], 0x41c31f
mov edi, dword [esp + 0x20]
mov dword [esi + 0x3c], ecx
mov dword [esi], ebx
push 0x14
mov eax, dword [edi + 0xc]
mov dword [esi + 0x40], eax
mov eax, ebp
cdq
pop ebp
idiv ebp
mov dword [esi + 0x30], eax
mov eax, dword [ebx + 0x58]
mov dword [esi + 0x10], eax
mov eax, dword [ebx + 0x18]
mov dword [esi + 0x38], eax
mov eax, dword [ebx + 0x60]
mov dword [esi + 0x14], eax
mov eax, dword [ebx + 0x1c]
mov dword [esi + 0x2c], eax
mov eax, dword [ebx + 0x68]
mov dword [esi + 8], eax
mov eax, dword [ebx + 0x6c]
mov dword [esi + 0x34], eax
mov eax, dword [edi + 0x14]
mov dword [esi + 0x1c], eax
lea eax, [ecx + 2]
imul ecx, eax, 0x28
lea eax, [esi + 0x50]
add ecx, esi
cmp eax, ecx
je 0x423f2c
mov edx, dword [esp + 0x10]
add ebp, 0x6c
mov word [eax + 8], bp
mov dword [eax + 0x20], edx
add eax, 0x28
cmp eax, ecx
jne 0x423f1e
mov eax, dword [ebx + 0xd0]
mov ecx, dword [esp + 0x10]
jmp 0x423f3f
mov esi, dword [edi + 0x10]
mov edi, dword [esp + 0x20]
inc eax
lea edx, [esi + 0x50]
mov dword [ebx + 0xd0], eax
mov eax, dword [ebx + 0xc8]
mov dword [esi + 4], eax
mov eax, dword [ecx + 0x28]
mov ecx, dword [ecx + 0x2c]
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], ecx
mov eax, dword [ebx + 0x2c]
mov dword [esi + 0x44], eax
mov eax, dword [ebx]
push 7
pop ebp
mov dword [esp + 0x18], edx
mov eax, dword [eax + 0x64]
mov dword [esi + 0x48], eax
mov eax, dword [ebx + 0xdc]
mov dword [esi + 0x28], eax
xor eax, eax
mov dword [ebx + 0xdc], eax
mov dword [ebx + 0x2c], eax
mov dword [ebx + 0x58], edx
mov dword [ebx + 0xc8], esi
mov ecx, dword [esi + 0x3c]
mov dword [ebx + 0x18], ecx
movzx eax, word [esi + 0x40]
imul ecx, ecx, 0x28
mov dword [ebx + 0x1c], eax
add ecx, edx
mov dword [ebx + 0x60], ecx
mov eax, dword [edi + 0xc]
lea ecx, [ecx + eax*4]
mov dword [esi + 0x18], ecx
mov eax, dword [edi + 4]
add eax, ebp
cdq
and edx, ebp
add eax, edx
sar eax, 3
push eax
xor eax, eax
push eax
push ecx
call fcn.00461a70
mov edx, dword [edi]
add esp, 0xc
mov dword [ebx + 0x68], edx
mov eax, dword [edi + 4]
mov dword [esp + 0x58], edx
mov dword [ebx + 0x6c], eax
lea ebp, [edx - 0x14]
jmp 0x423d70
mov edx, ebp
mov ecx, ebx
call fcn.0042033b
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.0041aee0
jmp 0x421474
mov eax, dword [esi + 0x20]
xor edx, edx
and eax, 0x80000
or eax, edx
mov eax, dword [ebp + 8]
je 0x424037
cdq
add dword [esi + 0x1c8], eax
adc dword [esi + 0x1cc], edx
jmp 0x4206f5
cmp dword [ebp + 4], edx
cdq
je 0x42404e
add dword [esi + 0x1c0], eax
adc dword [esi + 0x1c4], edx
jmp 0x4206f5
add dword [ebx + 0x40], eax
adc dword [ebx + 0x44], edx
jmp 0x4206f5
xor eax, eax
cmp dword [ebp + 4], eax
je 0x424083
mov eax, dword [esi + 0x1c0]
or eax, dword [esi + 0x1c4]
jne 0x4206f5
mov eax, dword [esi + 0x1c8]
or eax, dword [esi + 0x1cc]
jmp 0x42157f
mov eax, dword [ebx + 0x40]
or eax, dword [ebx + 0x44]
jmp 0x42406c
mov eax, dword [ebx + 0xc8]
test eax, eax
jne 0x4240d6
imul edi, dword [ebp + 4], 0x28
add edi, dword [esp + 0x18]
mov ecx, edi
call fcn.0041ab63
imul esi, dword [ebp + 8], 0x28
add esi, dword [esp + 0x18]
mov ecx, esi
call fcn.0041ab63
mov ecx, dword [esi + 4]
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x4206ed
jl 0x42349f
cmp dword [edi], eax
jae 0x4206ed
jmp 0x42349f
mov eax, ecx
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x4240d4
imul edi, dword [ebp + 4], 0x28
add edi, dword [eax + 0x10]
jmp 0x42409d
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 0x4208f8
jg 0x424105
cmp esi, edx
jbe 0x4208f8
mov eax, dword [ebp + 0xc]
cdq
sub esi, eax
mov dword [ecx], esi
sbb edi, edx
mov dword [ecx + 4], edi
jmp 0x424d09
imul esi, dword [ebp + 4], 0x28
mov edx, ebp
mov ecx, ebx
add esi, edi
imul edi, dword [ebp + 0xc], 0x28
add edi, dword [esp + 0x18]
call fcn.0042033b
mov ecx, dword [esi + 4]
mov edx, dword [esi]
xor esi, esi
mov dword [esp + 0x20], eax
mov dword [esp + 0xf8], edx
mov dword [esp + 0xfc], ecx
cmp ecx, esi
jl 0x4241a4
jg 0x424153
xor ecx, ecx
cmp edx, ecx
jbe 0x4241a4
mov ecx, dword [edi + 4]
xor edx, edx
mov eax, dword [edi]
cmp ecx, edx
jl 0x424164
jg 0x424175
cmp eax, edx
ja 0x424175
xorps xmm0, xmm0
movlpd qword [esp + 0x38], xmm0
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
push ecx
push eax
lea ecx, [esp + 0x100]
call fcn.00408079
pop ecx
pop ecx
test eax, eax
jne 0x4241a0
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0xfc]
mov edx, dword [esp + 0x20]
jmp 0x4230ab
mov eax, dword [esp + 0x20]
or dword [eax], 0xffffffff
or dword [eax + 4], 0xffffffff
jmp 0x4206ed
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 0x4204c3
xor eax, eax
cmp esi, eax
jl 0x424d09
jg 0x4241d9
cmp edx, eax
jbe 0x424d09
sub edx, 1
mov dword [ecx], edx
sbb esi, eax
mov dword [ecx + 4], esi
jmp 0x424d09
imul edx, dword [ebp + 4], 0x28
add edx, edi
mov ecx, dword [edx + 4]
mov eax, dword [edx]
cmp ecx, 0x80000000
jl 0x42420c
jg 0x424201
test eax, eax
je 0x42420c
sub eax, 1
mov dword [edx], eax
sbb ecx, 0
mov dword [edx + 4], ecx
or eax, ecx
jmp 0x42157f
movzx eax, word [ebp + 2]
xor ecx, ecx
mov dword [esp + 0x20], eax
push ecx
mov ecx, esi
lea eax, [eax*4 + 0x44]
push eax
call fcn.00404e37
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x424f2d
mov edx, dword [esp + 0x10]
xor eax, eax
mov dword [esi + 8], eax
mov eax, dword [esp + 0x20]
add eax, 7
push 1
lea ecx, [esi + eax*4]
mov dword [esi], ecx
call fcn.0041ad7f
mov eax, dword [ebp + 0x10]
mov dword [esi + 4], eax
mov eax, ebp
sub eax, dword [esp + 0x5c]
pop ecx
cdq
push 0x14
pop ecx
idiv ecx
mov dword [esi + 0xc], ebx
mov dword [esi + 0x10], eax
xor eax, eax
mov byte [esi + 0x18], al
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x20]
mov byte [esi + 0x19], al
mov word [ebp], 0xf09b
mov dword [ebp + 0x10], esi
imul edx, dword [ebp + 0xc], 0x28
mov esi, dword [ebp + 0x10]
add edx, edi
cmp dword [esi + 8], edx
je 0x4242c6
movzx ecx, byte [esi + 0x19]
sub ecx, 1
mov dword [esi + 8], edx
js 0x4242c6
lea edi, [ecx + 7]
push 4
lea edi, [esi + edi*4]
pop ebx
mov eax, dword [ebp + 8]
add eax, ecx
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
mov dword [edi], eax
sub edi, ebx
sub ecx, 1
jns 0x4242a9
mov ebx, dword [esp + 0x70]
mov edi, dword [esp + 0x18]
inc dword [edx + 0xc]
lea eax, [esi + 0x1c]
cmp dword [ebp + 4], 0
movzx edx, byte [esi + 0x19]
mov ecx, dword [esi + 4]
push eax
push edx
push esi
je 0x4242e1
call dword [ecx + 0x1c]
jmp 0x4242e4
call dword [ecx + 0x10]
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x4204c3
jle 0x424312
push dword [esi]
call fcn.0041ec91
pop ecx
push eax
push 0x48fbdc
push ebx
call fcn.0041b721
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x14], eax
cmp byte [esi + 0x18], 0
je 0x424335
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x424330
xor ecx, ecx
push ecx
imul ecx, eax, 0x28
push 1
add ecx, edi
call fcn.0041adf8
pop ecx
pop ecx
xor eax, eax
mov byte [esi + 0x18], al
mov ecx, dword [esi]
call fcn.0041a9d4
mov eax, dword [esi]
xor ecx, ecx
inc ecx
mov word [eax + 8], cx
xor eax, eax
mov dword [esi + 0x14], eax
jmp 0x420fba
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 0x424375
push edx
imul edx, eax, 0x28
add edx, edi
call fcn.0041a932
imul esi, dword [ebp + 0xc], 0x28
pop ecx
add esi, edi
jmp 0x42437a
call fcn.0041a8ca
mov dword [esp + 0x14], eax
test eax, eax
jne 0x424eee
movzx edx, byte [esp + 0x5c]
mov ecx, esi
call fcn.0041a638
mov ecx, esi
call fcn.0041aea1
test eax, eax
je 0x4204c3
push str.string_or_blob_too_big
push ebx
call fcn.0041b721
pop ecx
pop ecx
push 0x12
jmp 0x424f47
mov edx, dword [ebp + 4]
xor eax, eax
or dword [esp + 0x108], 0xffffffff
mov ecx, esi
or dword [esp + 0x104], 0xffffffff
mov dword [esp + 0x100], eax
lea eax, [esp + 0x108]
push eax
lea eax, [esp + 0x108]
push eax
push dword [ebp + 8]
call fcn.0045ce10
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
je 0x424412
push 5
pop ecx
cmp eax, ecx
jne 0x424f48
xor eax, eax
mov dword [esp + 0x100], 1
mov dword [esp + 0x14], eax
imul esi, dword [ebp + 0xc], 0x28
add esi, edi
xor eax, eax
mov edi, eax
mov eax, dword [esp + edi*4 + 0x100]
mov ecx, esi
cdq
push edx
push eax
call fcn.0041adf8
inc edi
add esi, 0x28
pop ecx
pop ecx
cmp edi, 3
jl 0x42441c
jmp 0x4206ed
mov edx, ebp
mov ecx, ebx
call fcn.0042033b
mov edx, dword [ebp + 4]
mov esi, dword [ebp + 0xc]
add edx, edx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx + edx*8 + 4]
mov ecx, eax
mov dword [esp + 0x20], eax
call fcn.00418fc6
mov ecx, eax
mov dword [esp + 0x1c], eax
call fcn.0040f753
mov ecx, dword [esp + 0x1c]
mov edi, eax
cmp esi, 0xffffffff
cmove esi, edi
call fcn.0040f758
mov ecx, dword [esp + 0x1c]
test eax, eax
cmove esi, edi
xor edx, edx
inc edx
call fcn.0040f51d
push 5
pop edx
cmp esi, edx
jne 0x424504
mov ecx, eax
call fcn.00407084
test eax, eax
je 0x4244b4
mov ecx, dword [esp + 0x1c]
call fcn.0040f7c9
test eax, eax
jne 0x424501
mov esi, edi
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4244c0
mov esi, edi
mov ecx, dword [esp + 0x1c]
mov edx, esi
call fcn.0040f686
mov esi, dword [esp + 0x38]
mov ecx, 0xa02
mov word [esi + 8], cx
mov ecx, eax
call fcn.0043f15b
mov ecx, eax
mov dword [esi + 0x10], eax
call fcn.00407084
movzx edx, byte [esp + 0x5c]
mov ecx, esi
mov dword [esi + 0xc], eax
mov byte [esi + 0xa], 1
call fcn.0041a638
jmp 0x422ebf
push 5
pop edx
cmp esi, edi
je 0x4244b6
cmp edi, edx
je 0x424510
cmp esi, edx
jne 0x4244b6
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x4f], 0
je 0x424f06
cmp dword [eax + 0xb4], 1
jg 0x424f06
cmp edi, edx
jne 0x424553
mov ecx, dword [esp + 0x1c]
mov edx, eax
call fcn.0040f8a2
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4244be
mov ecx, dword [esp + 0x1c]
mov edx, esi
call fcn.0040f686
jmp 0x424573
push 4
pop eax
cmp edi, eax
jne 0x424568
mov ecx, dword [esp + 0x1c]
push 2
pop eax
mov edx, eax
call fcn.0040f686
cmp dword [esp + 0x14], 0
jne 0x4244be
mov ecx, dword [esp + 0x20]
xor edx, edx
push 5
pop eax
cmp esi, eax
sete dl
inc edx
call fcn.00419c1a
mov dword [esp + 0x14], eax
jmp 0x4244ba
mov eax, dword [ebp + 8]
test eax, eax
je 0x42459e
imul eax, eax, 0x28
add eax, edi
jmp 0x4245a0
xor eax, eax
push eax
push dword [ebp + 4]
lea ecx, [ebx + 0x7c]
mov edx, esi
call fcn.0044c396
pop ecx
jmp 0x4229a7
mov ecx, dword [ebp + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
call fcn.0041419e
mov dword [esp + 0x14], eax
test eax, eax
je 0x4206f5
cmp eax, 0x65
jne 0x424f48
xor eax, eax
mov dword [esp + 0x14], eax
jmp 0x424d09
xor eax, eax
cmp dword [ebp + 4], eax
jne 0x4245fb
mov edx, dword [ebp + 8]
mov ecx, esi
call fcn.0041e9c9
jmp 0x4206f5
mov eax, dword [ebp + 8]
inc eax
xor eax, dword [ebx + 0x98]
and eax, 3
xor dword [ebx + 0x98], eax
jmp 0x4206f5
mov esi, dword [ebp + 0x10]
mov edx, esi
mov ecx, dword [esp + 0x10]
call fcn.0044d434
mov dword [esp + 0x14], eax
test esi, esi
je 0x420fbe
mov edx, dword [esi + 8]
mov ecx, ebx
call fcn.0041e9ed
jmp 0x420fba
imul edx, dword [ebp + 8], 0x28
lea edi, [esp + 0x1c8]
push 0xa
pop ecx
xor eax, eax
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x18]
lea ecx, [esp + 0x1c8]
add edx, edi
mov dword [esp + 0x1e8], esi
call fcn.0041af31
mov dword [esp + 0x14], eax
lea eax, [esp + 0x1c8]
push eax
call fcn.0041ec91
pop ecx
test eax, eax
je 0x424692
mov edx, dword [ebp + 4]
lea ecx, [ebx + 0x7c]
push ecx
push eax
mov ecx, esi
call fcn.0044d11f
pop ecx
pop ecx
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x1c8]
call fcn.0041a9d4
jmp 0x422601
inc dword [esi + 0xc0]
mov ecx, esi
push dword [ebp + 0x10]
mov edx, dword [ebp + 4]
call fcn.0044d34f
dec dword [esi + 0xc0]
pop ecx
mov dword [esp + 0x14], eax
jmp 0x422605
xor eax, eax
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x425001
mov edi, dword [esi]
test edi, edi
je 0x425001
lea eax, [esp + 0x38]
push eax
push esi
call dword [edi + 0x18]
pop ecx
pop ecx
mov edx, esi
mov dword [esp + 0x14], eax
mov ecx, ebx
call fcn.0041e9ed
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x424f48
mov eax, dword [esp + 0x38]
mov ecx, ebx
push 2
mov dword [eax], esi
mov edx, dword [ebp + 4]
pop eax
push eax
xor eax, eax
push 0xffffffffffffffff
push eax
call fcn.00420088
add esp, 0xc
test eax, eax
je 0x424f25
mov ecx, dword [esp + 0x38]
mov dword [eax + 0x28], ecx
inc dword [esi + 4]
jmp 0x4206ed
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
imul edx, dword [ebp + 0xc], 0x28
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x60], eax
add edx, edi
mov edi, dword [ebx + 0x5c]
mov esi, dword [eax + 0x28]
mov ecx, dword [edx + 0x28]
mov eax, dword [esi]
mov dword [esp + 0x48], eax
mov eax, dword [eax]
mov dword [esp + 0x38], eax
mov eax, dword [edx]
mov dword [esp + 0x20], eax
xor eax, eax
test ecx, ecx
jle 0x42477d
add edx, 0x50
mov dword [edi + eax*4], edx
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x424772
push edi
mov edi, dword [esp + 0x3c]
push ecx
push dword [ebp + 0x10]
push dword [esp + 0x2c]
push esi
call dword [edi + 0x20]
mov edx, dword [esp + 0x5c]
add esp, 0x14
mov ecx, ebx
mov dword [esp + 0x14], eax
call fcn.0041e9ed
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x424f48
push esi
call dword [edi + 0x28]
pop ecx
mov ecx, dword [esp + 0x60]
xor edx, edx
mov byte [ecx + 2], dl
test eax, eax
je 0x4206ed
jmp 0x424d09
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
imul esi, dword [ebp + 0xc], 0x28
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x20], ecx
add esi, edi
cmp byte [ecx + 2], 0
je 0x4247ec
mov ecx, esi
call fcn.0041ad90
jmp 0x4204c3
mov eax, dword [ecx + 0x28]
lea edi, [esp + 0xd0]
push 8
mov eax, dword [eax]
mov dword [esp + 0x4c], eax
mov eax, dword [eax]
mov dword [esp + 0x3c], eax
pop eax
mov ecx, eax
xor eax, eax
rep stosd dword es:[edi], eax
xor ecx, ecx
mov dword [esp + 0xd0], esi
inc ecx
test byte [ebp + 2], cl
je 0x42482c
mov ecx, esi
call fcn.0041ad90
xor eax, eax
mov dword [esi], eax
mov eax, 0x4001
jmp 0x42483e
mov ax, word [esi + 8]
mov edx, 0x3e40
and ax, dx
or ax, cx
movzx eax, ax
mov word [esi + 8], ax
lea eax, [esp + 0xd0]
push dword [ebp + 8]
push eax
mov eax, dword [esp + 0x28]
push dword [eax + 0x28]
mov eax, dword [esp + 0x44]
call dword [eax + 0x2c]
mov edx, dword [esp + 0x54]
add esp, 0xc
mov ecx, ebx
mov dword [esp + 0x14], eax
call fcn.0041e9ed
cmp dword [esp + 0xe4], 0
jle 0x424898
push esi
call fcn.0041ec91
pop ecx
push eax
push 0x48fbdc
push ebx
call fcn.0041b721
mov eax, dword [esp + 0xf0]
add esp, 0xc
mov dword [esp + 0x14], eax
movzx edx, byte [esp + 0x5c]
mov ecx, esi
call fcn.0041a638
mov ecx, esi
call fcn.0041aea1
test eax, eax
jne 0x4243a1
jmp 0x422ebf
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x60]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 2], 0
jne 0x4206f1
mov eax, dword [edi + 0x28]
push eax
mov esi, dword [eax]
mov ecx, dword [esi]
mov dword [esp + 0x24], ecx
call dword [ecx + 0x24]
pop ecx
mov edx, esi
mov dword [esp + 0x14], eax
mov ecx, ebx
call fcn.0041e9ed
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x424f48
mov eax, dword [esp + 0x20]
push dword [edi + 0x28]
call dword [eax + 0x28]
pop ecx
test eax, eax
jne 0x423d70
mov esi, dword [esp + 0x10]
imul eax, dword [ebp + 8], 0x14
mov ebp, dword [esp + 0x58]
add ebp, 0xffffffec
add ebp, eax
xor eax, eax
inc eax
jmp 0x423d77
mov eax, dword [esi + 0x20]
mov ecx, 0x4000000
or dword [esi + 0x20], ecx
and eax, ecx
mov dword [esp + 0x20], eax
xor edx, edx
mov eax, dword [esi + 0x24]
inc edx
mov dword [esi + 0x24], eax
imul esi, dword [ebp + 4], 0x28
mov eax, dword [ebp + 0x10]
add esi, dword [esp + 0x18]
mov edi, dword [eax + 8]
mov ecx, esi
call fcn.0041a638
test eax, eax
jne 0x424f48
push dword [esi + 0x10]
mov eax, dword [edi]
push edi
call dword [eax + 0x4c]
cmp dword [esp + 0x28], 0
mov esi, dword [esp + 0x18]
pop ecx
pop ecx
mov dword [esp + 0x14], eax
jne 0x42497e
mov eax, dword [esi + 0x24]
and dword [esi + 0x20], 0xfbffffff
mov dword [esi + 0x24], eax
mov edx, edi
mov ecx, ebx
call fcn.0041e9ed
and dword [ebx + 0x98], 0xfffffffc
jmp 0x422409
cmp byte [esi + 0x51], 0
jne 0x424f31
mov eax, dword [ebp + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x425001
mov edi, dword [esi]
test edi, edi
je 0x425001
mov edx, dword [ebp + 8]
xor eax, eax
cmp dword [edi + 0x34], eax
je 0x4206ed
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov al, byte [eax + 0x56]
mov byte [esp + 0x2f], al
mov eax, dword [ebx + 0x5c]
mov dword [esp + 0x20], eax
imul eax, dword [ebp + 0xc], 0x28
add eax, dword [esp + 0x18]
test edx, edx
jle 0x4249f6
mov ebx, dword [esp + 0x20]
mov dword [ebx + ecx*4], eax
add eax, 0x28
inc ecx
cmp ecx, edx
jl 0x4249e7
mov ebx, dword [esp + 0x70]
mov ecx, dword [esp + 0x10]
mov al, byte [ebp + 2]
mov byte [ecx + 0x56], al
lea eax, [esp + 0x138]
push eax
push dword [esp + 0x24]
push edx
push esi
call dword [edi + 0x34]
mov ecx, dword [esp + 0x20]
add esp, 0x10
mov dword [esp + 0x14], eax
mov edx, esi
mov al, byte [esp + 0x2f]
mov byte [ecx + 0x56], al
mov ecx, ebx
call fcn.0041e9ed
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x424a59
mov esi, dword [esp + 0x10]
xor ecx, ecx
cmp dword [ebp + 4], ecx
je 0x424a87
mov eax, dword [esp + 0x138]
mov ecx, dword [esp + 0x13c]
mov dword [esi + 0x28], eax
mov eax, dword [esp + 0x14]
mov dword [esi + 0x2c], ecx
jmp 0x424a85
cmp al, 0x13
jne 0x424a81
mov eax, dword [ebp + 0x10]
cmp byte [eax + 0x10], 0
je 0x424a7d
movzx ecx, word [ebp + 2]
push 4
pop eax
cmp cx, ax
jne 0x425008
xor eax, eax
jmp 0x422804
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
xor ecx, ecx
inc dword [ebx + 0x2c]
test eax, eax
jne 0x424f4a
jmp 0x4206f1
mov edx, ebp
mov ecx, ebx
call fcn.0042033b
mov edx, dword [ebp + 4]
mov esi, eax
mov eax, dword [esp + 0x10]
add edx, edx
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + edx*8 + 4]
call fcn.00413112
mov dword [esi], eax
xor eax, eax
mov dword [esi + 4], eax
jmp 0x4204c3
mov edx, ebp
mov ecx, ebx
call fcn.0042033b
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 0x424af1
mov ecx, esi
call fcn.00413112
cmp eax, dword [ebp + 0xc]
cmovb eax, dword [ebp + 0xc]
mov edx, eax
mov ecx, esi
call fcn.004136a8
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x4206ed
movzx eax, word [ebp + 2]
xor ecx, ecx
mov dword [esp + 0x20], eax
push ecx
mov ecx, esi
lea eax, [eax*4 + 0x1c]
push eax
call fcn.00404e37
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x424f2d
xor eax, eax
mov dword [esi], eax
mov eax, ebp
mov ecx, dword [ebp + 0x10]
sub eax, dword [esp + 0x58]
mov dword [esi + 4], ecx
push 0x14
cdq
pop ecx
idiv ecx
push 2
mov dword [esi + 0x10], eax
xor eax, eax
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x24]
mov byte [esi + 0x19], al
mov dword [esi + 0xc], ebx
pop eax
add byte [ebp], al
mov byte [ebp + 1], 0xf0
mov dword [ebp + 0x10], esi
imul edi, dword [ebp + 0xc], 0x28
mov esi, dword [ebp + 0x10]
add edi, dword [esp + 0x18]
cmp dword [esi], edi
je 0x424b9c
movzx ecx, byte [esi + 0x19]
sub ecx, 1
mov dword [esi], edi
js 0x424b9c
lea edx, [ecx + 7]
push 4
lea edx, [esi + edx*4]
pop ebx
mov eax, dword [ebp + 8]
add eax, ecx
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
mov dword [edx], eax
sub edx, ebx
sub ecx, 1
jns 0x424b83
mov ebx, dword [esp + 0x70]
mov ax, word [edi + 8]
mov ecx, 0x3e40
and ax, cx
xor ecx, ecx
inc ecx
or ax, cx
mov word [edi + 8], ax
lea eax, [esi + 0x1c]
mov ecx, dword [esi + 4]
push eax
movzx eax, byte [esi + 0x19]
push eax
push esi
call dword [ecx + 0x10]
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x424c13
jle 0x424beb
push edi
call fcn.0041ec91
pop ecx
push eax
push 0x48fbdc
push ebx
call fcn.0041b721
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x14], eax
push dword [ebp + 4]
mov ecx, dword [esp + 0x14]
lea edx, [ebx + 0xdc]
push dword [esi + 0x10]
call fcn.0041d659
xor eax, eax
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x1c]
pop ecx
pop ecx
test eax, eax
jne 0x424f48
test byte [edi + 8], 0x12
je 0x4206ed
movzx edx, byte [esp + 0x5c]
mov ecx, edi
call fcn.0041a638
mov ecx, edi
call fcn.0041aea1
test eax, eax
jne 0x4243a1
jmp 0x4206ed
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
jmp 0x4206f7
xor edx, edx
inc edx
test byte [esi + 0x58], dl
je 0x424cc1
push 0x10
pop eax
test byte [ebx + 0x98], al
jne 0x424cc1
mov eax, dword [ebp + 0x10]
test eax, eax
jne 0x424c6e
mov eax, dword [ebx + 0xc0]
test eax, eax
je 0x424cc1
push eax
cmp dword [esi + 0xbc], edx
jle 0x424cad
push str.____s
push esi
call fcn.004067d0
add esp, 0xc
mov esi, eax
mov eax, dword [esp + 0x10]
push esi
push ebx
push dword [eax + 0xd0]
push 1
call dword [eax + 0xcc]
add esp, 0x10
mov edx, esi
mov esi, dword [esp + 0x10]
mov ecx, esi
call fcn.00404c88
jmp 0x424cbe
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 [0x499a5c]
jl 0x424cff
cmp byte [ebp], 0xa8
je 0x4206f5
mov ecx, edx
cmp dword [ebx + 0x6c], edx
jle 0x424cfd
push 0x14
pop esi
mov eax, esi
xor ebp, ebp
mov edx, dword [ebx + 0x68]
cmp byte [eax + edx], 0x11
jne 0x424cf1
mov dword [eax + edx + 4], ebp
inc ecx
add eax, esi
cmp ecx, dword [ebx + 0x6c]
jl 0x424ce4
mov ebp, dword [esp + 0x38]
xor eax, eax
inc eax
mov dword [ebp + 4], eax
inc dword [ebx + 0xbc]
imul eax, dword [ebp + 8], 0x14
mov ebp, dword [esp + 0x58]
add ebp, 0xffffffec
jmp 0x421916
mov dword [ebx + 0x28], ecx
mov al, byte [ebp + 8]
mov byte [ebx + 0x92], al
mov dword [ebx + 0x24], esi
test ecx, ecx
je 0x424d97
movzx eax, word [ebp + 2]
test ax, ax
je 0x424d6c
push dword [eax*4 + 0x485f98]
push str._s_constraint_failed
push ebx
call fcn.0041b721
add esp, 0xc
cmp dword [ebp + 0x10], 0
je 0x424d7d
push dword [ebp + 0x10]
push dword [ebx + 0x7c]
push str._z:__s
push dword [esp + 0x1c]
call fcn.004067d0
add esp, 0x10
mov dword [ebx + 0x7c], eax
jmp 0x424d7d
push dword [ebp + 0x10]
push 0x48fbdc
push ebx
call fcn.0041b721
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.004068c1
add esp, 0x14
mov ecx, ebx
call fcn.0041d2ac
push 5
pop ecx
cmp eax, ecx
je 0x424e15
push 0x65
pop eax
xor ecx, ecx
cmp dword [ebx + 0x28], ecx
push 1
pop ecx
cmovne eax, ecx
jmp 0x424fe9
push 0x4947a4
push 0x152d5
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004068c1
add esp, 0x14
push 0xb
jmp 0x424f47
push str.cannot_open_savepoint___SQL_statements_in_progress
push ebx
call fcn.0041b721
pop ecx
pop ecx
push 5
jmp 0x424f47
push str.cannot_release_savepoint___SQL_statements_in_progress
jmp 0x424de2
sub ebp, dword [esp + 0x58]
push 0x14
pop ecx
mov eax, ebp
cdq
idiv ecx
xor ecx, ecx
mov dword [ebx + 0x24], eax
mov eax, dword [esp + 0x10]
push 5
mov byte [eax + 0x4f], cl
pop ecx
mov eax, ecx
mov dword [ebx + 0x28], ecx
jmp 0x424fe9
push 8
pop eax
jmp 0x424f4a
cmp al, 5
jne 0x424f48
sub ebp, dword [esp + 0x58]
mov eax, ebp
push 0x14
cdq
pop ecx
idiv ecx
mov dword [ebx + 0x24], eax
mov eax, dword [esp + 0x14]
mov dword [ebx + 0x28], eax
jmp 0x424fe9
mov edx, dword [ebx + 0x7c]
test edx, edx
je 0x424e56
mov ecx, esi
call fcn.00404c57
mov edx, str.database_schema_has_changed
mov ecx, esi
call fcn.00404f95
mov dword [ebx + 0x7c], eax
mov edx, dword [ebp + 4]
mov ecx, edx
mov eax, dword [esi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax]
cmp eax, dword [esp + 0x38]
je 0x424e82
mov ecx, esi
call fcn.00432969
mov eax, dword [ebx + 0x98]
and eax, 0xfffffffd
or eax, 1
mov dword [ebx + 0x98], eax
push 0x11
jmp 0x424f47
mov eax, 0x204
jmp 0x424f48
push 6
pop eax
push 2
pop ecx
mov byte [ebx + 0x92], cl
jmp 0x424f48
push 7
pop eax
mov dword [esp + 0x14], eax
mov esi, edi
mov ecx, esi
call fcn.004329bf
mov eax, dword [esp + 0x14]
push 7
pop ecx
cmp eax, ecx
je 0x424f31
jmp 0x424f48
push str.too_many_levels_of_trigger_recursion
push ebx
mov dword [esp + 0x1c], 1
call fcn.0041b721
pop ecx
pop ecx
mov eax, dword [esp + 0x14]
jmp 0x424f48
push esi
call fcn.0041ec91
pop ecx
push eax
push 0x48fbdc
push ebx
call fcn.0041b721
add esp, 0xc
jmp 0x424ee8
cmp esi, edx
mov dword [esp + 0x14], 1
mov eax, str.into
mov ecx, str.out_of
cmovne eax, ecx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
jmp 0x424efb
push dword [esp + 0x38]
call dword [edi + 0x1c]
pop ecx
mov esi, dword [esp + 0x10]
mov ecx, esi
call fcn.00405092
push str.out_of_memory
push ebx
call fcn.0041b721
pop ecx
pop ecx
push 7
pop eax
xor ecx, ecx
mov esi, dword [esp + 0x10]
mov edi, 0xc0a
push 7
pop edx
cmp byte [esi + 0x51], 0
cmovne eax, edx
mov dword [esp + 0x14], eax
cmp dword [ebx + 0x7c], ecx
jne 0x424f84
cmp eax, edi
je 0x424f84
mov ecx, eax
call fcn.0045c760
push eax
push 0x48fbdc
push ebx
call fcn.0041b721
mov eax, dword [esp + 0x20]
add esp, 0xc
mov edx, eax
mov dword [ebx + 0x28], eax
mov ecx, esi
call fcn.004070fb
push dword [ebx + 0x7c]
sub ebp, dword [esp + 0x5c]
push dword [ebx + 0xc0]
mov eax, ebp
push 0x14
pop ecx
cdq
idiv ecx
push eax
push str.statement_aborts_at__d:___s___s
push dword [esp + 0x24]
call fcn.004068c1
add esp, 0x14
mov ecx, ebx
call fcn.0041d2ac
cmp dword [esp + 0x14], edi
jne 0x424fcb
mov ecx, esi
call fcn.00405092
mov cl, byte [esp + 0x7b]
xor eax, eax
inc eax
mov dword [esp + 0x14], eax
test cl, cl
je 0x424fe9
movzx edx, cl
mov ecx, esi
dec edx
call fcn.00432969
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xac]
add dword [ebx + 0xb4], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1e4
ret
push 6
jmp 0x424f47
push 5
pop edx
movzx eax, cl
cmp cx, dx
push 2
pop ecx
cmove eax, ecx
mov byte [ebx + 0x92], al
jmp 0x424ee8
xor edx, edx
mov ecx, ebx
call fcn.0041d251
test eax, eax
jne 0x424f48
mov eax, dword [ebx]
xor ecx, ecx
cmp dword [eax + 0x1bc], ecx
je 0x425050
cmp dword [ebx + 0x30], ecx
je 0x425050
xor edx, edx
mov ecx, ebx
inc edx
call fcn.0041d16b
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 0x4250ae
mov eax, 0x1000
test word [esi + 8], ax
je 0x425088
mov ecx, esi
call fcn.0041a7aa
test eax, eax
jne 0x424f2d
mov ax, word [esi + 8]
mov ecx, 0x202
and ax, cx
push 2
pop ecx
cmp ax, cx
jne 0x4250a3
mov ecx, esi
call fcn.0041a764
inc edi
add esi, 0x28
cmp edi, dword [ebp + 8]
jl 0x42506e
xor ecx, ecx
mov esi, dword [esp + 0x10]
cmp byte [esi + 0x51], 0
jne 0x424f31
push 4
pop eax
test byte [esi + 0x58], al
je 0x4250d6
push ecx
push ebx
push dword [esi + 0xd0]
push eax
call dword [esi + 0xcc]
add esp, 0x10
sub ebp, dword [esp + 0x58]
push 0x14
mov eax, ebp
cdq
pop ecx
idiv ecx
push 0x64
inc eax
mov dword [ebx + 0x24], eax
pop eax
jmp 0x424fe9
mov ecx, dword [esp + 0x10]
mov edx, dword [ebp + 4]
mov esi, dword [ebp + 8]
mov dword [esp + 0x8c], edx
movzx eax, byte [ecx + 0x4f]
cmp edx, eax
je 0x425197
test esi, esi
je 0x42511d
mov edx, 0x204
call fcn.0045c684
mov al, 1
jmp 0x425155
test edx, edx
je 0x425135
xor eax, eax
cmp dword [ecx + 0xb8], eax
jle 0x425135
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x424de2
xor edx, edx
mov ecx, ebx
inc edx
call fcn.0041d251
test eax, eax
jne 0x424fe9
mov al, byte [esp + 0x8c]
mov byte [esp + 0x8c], al
mov esi, dword [esp + 0x10]
mov ecx, ebx
mov byte [esi + 0x4f], al
call fcn.0041d2ac
push 5
pop ecx
cmp eax, ecx
jne 0x42518b
sub ebp, dword [esp + 0x58]
mov eax, ebp
cdq
push 0x14
pop ebp
idiv ebp
mov dword [ebx + 0x24], eax
xor eax, eax
inc eax
sub al, byte [esp + 0x8c]
mov byte [esi + 0x4f], al
jmp 0x424e13
mov ecx, esi
call fcn.0045c2e4
jmp 0x424da5
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.0041b721
pop ecx
pop ecx
jmp 0x4221be
cmp byte [esi + 0x51], 0
push 9
pop eax
push 7
pop ecx
cmovne eax, ecx
mov ecx, eax
mov dword [esp + 0x14], eax
mov dword [ebx + 0x28], eax
call fcn.0045c760
jmp 0x424ef5