Function at 0x415cb0
Capabilities:
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2f4
mov eax, dword [0x53f030]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
xor ebx, ebx
mov dword [ebp - 0x104], edi
mov dword [ebp - 0x178], ebx
mov dword [ebp - 0xcc], ebx
mov eax, dword [edi]
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xdc], ebx
mov dword [ebp - 0x124], ebx
mov eax, dword [eax + 8]
mov dword [ebp - 0x120], ebx
mov dword [ebp - 0xd8], ebx
mov dword [ebp - 0x158], ebx
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x154], ebx
mov dword [ebp - 0x15c], ebx
mov al, byte [eax + 0x49]
mov byte [ebp - 0x128], al
lea eax, [edi + 0xa4]
mov ecx, eax
mov dword [ebp - 0x188], eax
call fcn.0040b209
mov esi, dword [ebp - 0xd0]
push 7
pop eax
cmp dword [edi + 0x68], eax
je 0x419d39
mov dword [edi + 0x68], ebx
mov dword [edi + 0x84], ebx
mov dword [esi + 0x19c], ebx
cmp dword [esi + 0xd8], ebx
jne 0x419f7e
mov ebx, dword [edi + 0x64]
push 4
mov dword [ebp - 0xd4], ebx
pop edx
mov dword [ebp - 0x194], 0x28
cmp byte [esi + 0x1e], 0
jne 0x419d39
mov eax, dword [esi + 0x100]
imul ebx, ebx, 0x14
add ebx, dword [edi + 0x14]
mov dword [ebp - 0x118], ebx
test eax, eax
je 0x415dc4
mov ecx, dword [ebp - 0x15c]
cmp dword [esi + 0x108], ecx
jne 0x415db7
push dword [esi + 0x104]
call eax
pop ecx
test eax, eax
jne 0x419d23
push 4
pop edx
jmp 0x415dbd
mov eax, dword [ebp - 0x15c]
inc eax
mov dword [ebp - 0x15c], eax
movzx eax, byte [ebx]
push 2
pop ecx
mov al, byte [eax + 0x5231d0]
test cl, al
je 0x415df7
imul eax, dword [ebx + 8], 0x28
add eax, dword [edi + 0x4c]
mov ecx, eax
mov dword [ebp - 0xd8], eax
call fcn.00412077
mov ecx, dword [ebp - 0xd8]
xor eax, eax
inc eax
mov word [ecx + 0x1c], ax
jmp 0x415e66
push 8
test dl, al
je 0x415e3e
imul edx, dword [ebx + 4], 0x28
mov ecx, dword [edi + 0x4c]
add edx, ecx
mov dword [ebp - 0xdc], edx
pop edx
test dl, al
je 0x415e2f
imul edx, dword [ebx + 8], 0x28
add edx, ecx
mov dword [ebp - 0x124], edx
test al, 0x20
je 0x415e66
imul eax, dword [ebx + 0xc], 0x28
add eax, ecx
mov dword [ebp - 0xd8], eax
jmp 0x415e66
push 0x10
pop edx
test dl, al
je 0x415e66
imul eax, dword [ebx + 0xc], 0x28
add eax, ecx
jmp 0x415e60
pop ecx
test cl, al
je 0x415e52
imul eax, dword [ebx + 8], 0x28
add eax, dword [edi + 0x4c]
mov dword [ebp - 0x124], eax
jmp 0x415e66
push 0x10
pop ecx
test cl, al
je 0x415e66
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [edi + 0x4c]
mov dword [ebp - 0x120], eax
mov cl, byte [ebx]
movzx edx, cl
mov byte [ebp - 0x129], cl
mov dword [ebp - 0xfc], edx
lea eax, [edx - 1]
cmp eax, 0x90
ja case.0x415e81.13
jmp dword [eax*4 + 0x419fb4]
cmp dword [esi + 0xd8], 0
jne 0x419f7e
mov ebx, dword [ebx + 8]
dec ebx
mov dword [ebp - 0xd4], ebx
mov ebx, dword [ebp - 0xcc]
jmp 0x41601a
imul ecx, dword [ebx + 4], 0x28
push 4
pop eax
add ecx, dword [edi + 0x4c]
mov dword [ebp - 0xdc], ecx
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0xd4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x415e95
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax]
mov ebx, dword [ebp - 0xcc]
jmp 0x416020
mov ebx, dword [ebp - 0xdc]
push 4
pop eax
mov ecx, dword [ebx]
mov word [ebx + 0x1c], ax
mov eax, dword [ebp - 0xd4]
cdq
mov dword [ebx], eax
mov eax, ecx
mov dword [ebx + 4], edx
jmp 0x415ed4
mov ecx, dword [ebp - 0xd8]
push 4
pop eax
mov word [ecx + 0x1c], ax
mov eax, dword [ebx + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x415e81.13
mov edx, dword [ebp - 0xd8]
push 4
pop eax
mov word [edx + 0x1c], ax
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
jmp case.0x415e81.13
mov ecx, dword [ebp - 0xd8]
push 8
pop eax
mov word [ecx + 0x1c], ax
mov eax, dword [ebx + 0x10]
movsd xmm0, qword [eax]
movsd qword [ecx + 8], xmm0
jmp case.0x415e81.13
mov ecx, dword [ebx + 0x10]
mov byte [ebx], 0x1d
call fcn.00405a28
xor edx, edx
mov dword [ebx + 4], eax
inc edx
cmp byte [ebp - 0x128], dl
je 0x416039
push 0
push edx
mov edx, ecx
mov ecx, dword [ebp - 0xd8]
push 0xffffffffffffffff
call fcn.004124aa
movzx edx, byte [ebp - 0x128]
add esp, 0xc
mov ecx, dword [ebp - 0xd8]
call fcn.00411dba
test eax, eax
jne 0x419d39
mov ecx, dword [ebp - 0xd8]
call fcn.00411e9e
test eax, eax
jne 0x419d39
mov ecx, dword [ebp - 0xd8]
mov edx, 0xfbff
and dword [ecx + 0x24], eax
mov ax, word [ecx + 0x1c]
and ax, dx
mov edx, 0x800
or ax, dx
mov word [ecx + 0x1c], ax
cmp byte [ebx + 1], 0xff
jne 0x415fef
push dword [ebx + 0x10]
push dword [ebp - 0xd0]
call fcn.00403f63
pop ecx
pop ecx
mov ecx, dword [ebp - 0xd8]
mov byte [ebx + 1], 0xff
mov eax, dword [ecx + 0x14]
mov dword [ebx + 0x10], eax
mov eax, dword [ecx + 0x18]
mov dword [ebx + 4], eax
mov ebx, dword [ebp - 0xd0]
cmp eax, dword [ebx + 0x50]
jg 0x419ea1
mov ebx, dword [ebp - 0xcc]
mov esi, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xd4]
push 4
pop edx
inc eax
mov dword [ebp - 0xd4], eax
test ebx, ebx
jne 0x419d5d
mov ebx, eax
jmp 0x415d73
cmp eax, dword [esi + 0x50]
jg 0x4166ae
mov ecx, dword [ebp - 0xd8]
mov eax, 0xa02
mov word [ecx + 0x1c], ax
mov eax, dword [ebx + 0x10]
mov dword [ecx + 0x14], eax
mov eax, dword [ebx + 4]
mov dword [ecx + 0x18], eax
mov al, byte [ebp - 0x128]
mov byte [ecx + 0x1f], al
jmp case.0x415e81.13
mov edx, dword [ebx + 0x10]
xor eax, eax
push eax
push eax
push dword [ebx + 4]
mov ebx, dword [ebp - 0xd8]
mov ecx, ebx
call fcn.004124aa
mov al, byte [ebp - 0x128]
add esp, 0xc
mov byte [ebx + 0x1f], al
jmp case.0x415e81.13
mov eax, dword [ebx + 4]
mov esi, dword [edi + 0x38]
dec eax
imul ecx, eax, 0x28
add esi, ecx
mov ecx, esi
call fcn.004123ad
test eax, eax
jne 0x4166ae
mov ecx, dword [ebp - 0xd8]
mov eax, 0x800
push eax
mov edx, esi
call fcn.004123d0
pop ecx
jmp 0x41600e
imul edx, dword [ebx + 4], 0x28
imul ecx, dword [ebx + 8], 0x28
mov ebx, dword [ebx + 0xc]
add edx, dword [edi + 0x4c]
add ecx, dword [edi + 0x4c]
mov dword [ebp - 0xdc], edx
mov dword [ebp - 0xd8], ecx
test ebx, ebx
je case.0x415e81.13
mov edi, ecx
mov ecx, edx
mov esi, dword [edi + 0x24]
mov edx, ecx
and dword [edi + 0x24], 0
mov ecx, edi
call fcn.00412484
mov ecx, dword [ebp - 0xdc]
push 0x28
pop eax
add edi, eax
mov dword [ecx + 0x24], esi
add ecx, eax
mov dword [ebp - 0xdc], ecx
dec ebx
jne 0x4160f0
mov dword [ebp - 0xd8], edi
mov edi, dword [ebp - 0x104]
jmp 0x41600e
imul eax, dword [ebx + 8], 0x28
mov ebx, 0x1000
mov edx, dword [ebp - 0xdc]
push ebx
add eax, dword [edi + 0x4c]
mov ecx, eax
mov dword [ebp - 0xd8], eax
call fcn.004123d0
pop ecx
mov ecx, dword [ebp - 0xd8]
test word [ecx + 0x1c], bx
je case.0x415e81.13
call fcn.00411e9e
test eax, eax
jne 0x419d39
jmp case.0x415e81.13
imul eax, dword [ebx + 8], 0x28
mov ecx, 0x1000
mov edx, dword [ebp - 0xdc]
push ecx
add eax, dword [edi + 0x4c]
mov ecx, eax
mov dword [ebp - 0xd8], eax
call fcn.004123d0
pop ecx
jmp case.0x415e81.13
mov ebx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0x124]
movzx ecx, word [ebx + 0x1c]
mov al, byte [eax + 0x1c]
or al, cl
test al, 1
je 0x4161bc
mov ecx, dword [ebp - 0xd8]
call fcn.0041228d
jmp case.0x415e81.13
mov eax, 0x4000
test eax, ecx
je 0x4161cc
mov ecx, ebx
call fcn.00411efa
test byte [ebx + 0x1c], 0x12
jne 0x4161e8
movzx edx, byte [ebp - 0x128]
mov ecx, ebx
call fcn.00411f94
test eax, eax
jne 0x419d39
mov eax, dword [ebp - 0x124]
mov ecx, 0x4000
test word [eax + 0x1c], cx
je 0x416206
mov ecx, eax
call fcn.00411efa
mov eax, dword [ebp - 0x124]
test byte [eax + 0x1c], 0x12
jne 0x416222
movzx edx, byte [ebp - 0x128]
mov ecx, eax
call fcn.00411f94
test eax, eax
jne 0x419d39
mov ecx, dword [ebp - 0x124]
mov eax, dword [ebx + 0x18]
add eax, dword [ecx + 0x18]
cdq
mov esi, eax
mov ecx, edx
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 0x50]
cdq
cmp ecx, edx
jg 0x4166ae
jl 0x41624f
cmp esi, eax
ja 0x4166ae
mov ebx, dword [ebp - 0xd8]
lea edx, [esi + 2]
mov ecx, 0xbf02
push 2
mov ax, word [ebx + 0x1c]
and ax, cx
pop ecx
or ax, cx
mov ecx, ebx
mov word [ebx + 0x1c], ax
xor eax, eax
cmp ebx, dword [ebp - 0x124]
sete al
push eax
call fcn.00411dd4
pop ecx
test eax, eax
jne 0x419d33
mov eax, dword [ebp - 0x124]
cmp ebx, eax
je 0x4162a5
push dword [eax + 0x18]
push dword [eax + 0x14]
push dword [ebx + 0x14]
call fcn.004d8a10
add esp, 0xc
mov eax, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0x124]
push dword [eax + 0x18]
push dword [eax + 0x14]
mov eax, dword [ebx + 0x14]
add eax, dword [ecx + 0x18]
push eax
call fcn.004d8a10
mov eax, dword [ebx + 0x14]
xor ecx, ecx
add esp, 0xc
mov byte [esi + eax], cl
mov eax, dword [ebx + 0x14]
mov byte [eax + esi + 1], cl
mov eax, 0x200
mov ecx, dword [ebp - 0xd8]
or word [ecx + 0x1c], ax
mov al, byte [ebp - 0x128]
mov dword [ecx + 0x18], esi
mov byte [ecx + 0x1f], al
jmp 0x41600e
mov ecx, dword [ebp - 0xdc]
call fcn.00415bd2
mov ecx, dword [ebp - 0x124]
call fcn.00415bd2
mov eax, dword [ebp - 0x124]
movzx edx, word [eax + 0x1c]
mov eax, dword [ebp - 0xdc]
movzx ecx, word [eax + 0x1c]
mov eax, ecx
mov dword [ebp - 0xf4], eax
mov eax, edx
or dword [ebp - 0xf4], eax
test byte [ebp - 0xf4], 1
jne 0x416516
push 4
and cl, dl
pop eax
test al, cl
je 0x41640f
mov eax, dword [ebp - 0xdc]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x124]
mov esi, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x118], eax
movzx eax, byte [ebx]
sub eax, 0x53
je 0x416400
dec eax
je 0x4163f1
dec eax
je 0x4163dd
dec eax
mov eax, ecx
je 0x4163a6
or eax, edx
je 0x416516
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x416392
xor ecx, ecx
inc ecx
xor edx, edx
mov eax, dword [ebp - 0x118]
push edx
push ecx
push eax
push esi
call fcn.004eddd0
jmp 0x416728
or eax, edx
je 0x416516
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
mov eax, dword [ebp - 0x118]
jne 0x4163cf
xor ebx, ebx
cmp esi, ebx
jne 0x4163cf
cmp eax, 0x80000000
jne 0x4163cf
xor ecx, ecx
mov edx, ebx
inc ecx
push edx
push ecx
push eax
push esi
call fcn.004dcec0
jmp 0x416728
mov eax, dword [ebp - 0x118]
push edx
push ecx
push eax
push esi
call fcn.004e21b0
jmp 0x416728
mov eax, dword [ebp - 0x118]
sub esi, ecx
sbb eax, edx
jmp 0x416744
mov eax, dword [ebp - 0x118]
add esi, ecx
adc eax, edx
jmp 0x416744
mov ecx, dword [ebp - 0xdc]
call fcn.004121a2
mov ecx, dword [ebp - 0x124]
movsd qword [ebp - 0x110], xmm0
call fcn.004121a2
movzx eax, byte [ebx]
movapd xmm1, xmm0
movsd qword [ebp - 0xf0], xmm1
sub eax, 0x53
je 0x4164ca
dec eax
je 0x4164c0
dec eax
je 0x4164b6
movsd xmm0, qword [ebp - 0x110]
dec eax
je 0x4164a2
call fcn.004da47f
movsd xmm0, qword [ebp - 0xf0]
mov esi, eax
mov ebx, edx
call fcn.004da47f
mov ecx, eax
mov eax, esi
or eax, ebx
je 0x416516
mov eax, esi
and eax, ebx
cmp eax, 0xffffffff
jne 0x416486
xor esi, esi
inc esi
xor ebx, ebx
push ebx
push esi
push edx
push ecx
call fcn.004eddd0
mov ecx, eax
call fcn.004da61f
mov esi, dword [ebp - 0xd0]
movapd xmm1, xmm0
jmp 0x4164d2
ucomisd xmm0, qword [0x525368]
lahf
test ah, 0x44
jnp 0x416516
divsd xmm1, xmm0
jmp 0x4164d2
mulsd xmm1, qword [ebp - 0x110]
jmp 0x4164d2
subsd xmm1, qword [ebp - 0x110]
jmp 0x4164d2
addsd xmm1, qword [ebp - 0x110]
movapd xmm0, xmm1
call fcn.004059f8
test eax, eax
jne 0x416516
mov ecx, dword [ebp - 0xd8]
mov edx, 0xbf08
push 8
mov ax, word [ecx + 0x1c]
and ax, dx
movsd qword [ecx + 8], xmm1
pop edx
or ax, dx
mov word [ecx + 0x1c], ax
test byte [ebp - 0xf4], dl
jne case.0x415e81.13
call fcn.00412214
jmp case.0x415e81.13
mov ecx, dword [ebp - 0xd8]
call fcn.0041228d
jmp 0x41600e
imul ecx, dword [ebx + 8], 0x28
xor edx, edx
movzx esi, byte [ebx + 3]
mov eax, dword [edi + 0x24]
mov dword [ebp - 0xec], eax
add ecx, dword [edi + 0x4c]
test esi, esi
jle 0x416560
push 0x28
mov edi, eax
pop ebx
mov dword [edi + edx*4], ecx
call fcn.00415ad9
inc edx
add ecx, ebx
cmp edx, esi
jl 0x416545
mov ebx, dword [ebp - 0x118]
mov edi, dword [ebp - 0x104]
cmp byte [ebx + 1], 0xfb
mov eax, dword [ebx + 0x10]
jne 0x416579
mov dword [ebp - 0x240], eax
xor eax, eax
mov dword [ebp - 0x23c], eax
jmp 0x416589
mov dword [ebp - 0x23c], eax
mov eax, dword [eax]
mov dword [ebp - 0x240], eax
xor eax, eax
imul edx, dword [ebx + 0xc], 0x28
xor ecx, ecx
inc ecx
mov dword [ebp - 0x218], eax
mov word [ebp - 0x21c], cx
mov ecx, dword [ebp - 0xd0]
mov dword [ebp - 0x228], ecx
lea ecx, [ebp - 0x238]
add edx, dword [edi + 0x4c]
mov dword [ebp - 0xd8], edx
mov dword [ebp - 0x214], eax
call fcn.00412484
mov eax, dword [ebp - 0x21c]
mov ecx, 0xbf01
and dword [ebp - 0x20c], 0
and eax, ecx
mov ecx, dword [ebp - 0x240]
or eax, 1
mov word [ebp - 0x21c], ax
push 8
pop eax
test byte [ecx + 3], al
je 0x4165f8
mov eax, dword [ebx - 4]
mov dword [ebp - 0x208], eax
push dword [ebp - 0xec]
lea eax, [ebp - 0x240]
push esi
push eax
call dword [ecx + 0xc]
mov eax, dword [ebp - 0xd0]
add esp, 0xc
cmp byte [eax + 0x1e], 0
jne 0x419d28
mov ecx, dword [ebp - 0x23c]
test ecx, ecx
je 0x41663b
mov edx, dword [ebx + 4]
call fcn.00414144
mov eax, dword [ebp - 0x23c]
mov dword [ebx + 0x10], eax
mov byte [ebx + 1], 0xf9
cmp dword [ebp - 0x20c], 0
je 0x416678
mov dl, 1
lea ecx, [ebp - 0x238]
call fcn.004128d3
push eax
push 0x51ef44
push dword [ebp - 0xd0]
lea eax, [edi + 0x80]
push eax
call fcn.0040428e
mov eax, dword [ebp - 0x20c]
add esp, 0x10
mov dword [ebp - 0xcc], eax
movzx edx, byte [ebp - 0x128]
lea ecx, [ebp - 0x238]
call fcn.00411dba
mov ecx, dword [ebp - 0xd8]
lea edx, [ebp - 0x238]
call fcn.00412484
mov ecx, dword [ebp - 0xd8]
call fcn.004123ad
test eax, eax
je 0x41600e
mov eax, dword [ebp - 0xd0]
push str.string_or_blob_too_big
push eax
lea eax, [edi + 0x80]
push eax
call fcn.0040428e
add esp, 0xc
push 0x12
jmp 0x419d25
mov edx, dword [ebp - 0x124]
mov ecx, dword [ebp - 0xdc]
mov al, byte [edx + 0x1c]
or al, byte [ecx + 0x1c]
test al, 1
jne 0x4161ac
mov ecx, edx
call fcn.00412132
mov ecx, dword [ebp - 0xdc]
mov esi, eax
mov dword [ebp - 0xf4], edx
call fcn.00412132
mov ecx, eax
movzx eax, byte [ebx]
sub eax, 0x4f
je 0x41673a
dec eax
je 0x41672e
mov edx, dword [ebp - 0xf4]
dec eax
mov eax, esi
je 0x416723
call fcn.004f8240
jmp 0x416728
call fcn.004f8220
mov esi, eax
mov eax, edx
jmp 0x416744
mov eax, dword [ebp - 0xf4]
or esi, ecx
or eax, edx
jmp 0x416744
mov eax, dword [ebp - 0xf4]
and esi, ecx
and eax, edx
mov ecx, dword [ebp - 0xd8]
mov dword [ecx + 4], eax
mov dword [ecx], esi
mov ax, word [ecx + 0x1c]
mov edx, 0xbf04
and ax, dx
push 4
pop edx
or ax, dx
mov word [ecx + 0x1c], ax
mov esi, dword [ebp - 0xd0]
mov ebx, dword [ebp - 0xcc]
mov eax, dword [ebp - 0xd4]
jmp 0x416023
mov ecx, dword [ebp - 0xdc]
call fcn.00412243
mov eax, dword [ebx + 8]
mov ecx, dword [ebp - 0xdc]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
jmp case.0x415e81.13
mov ecx, dword [ebp - 0xdc]
call fcn.00415bd2
mov ecx, dword [ebp - 0xdc]
push 8
pop eax
test byte [ecx + 0x1c], al
je 0x4167bf
call fcn.00412214
mov ecx, dword [ebp - 0xdc]
movzx eax, word [ecx + 0x1c]
push 4
pop edx
test dl, al
jne 0x4167e1
mov eax, dword [ebx + 8]
test eax, eax
je 0x419da8
dec eax
mov ebx, dword [ebp - 0xcc]
jmp 0x416023
mov ebx, 0xbf04
and eax, ebx
or eax, edx
mov word [ecx + 0x1c], ax
jmp 0x41676b
mov ecx, dword [ebp - 0xdc]
push 4
pop edx
test byte [ecx + 0x1c], dl
je 0x41676b
call fcn.00412268
jmp case.0x415e81.13
mov edx, dword [ebp - 0xdc]
movzx ecx, word [edx + 0x1c]
test cl, 1
jne case.0x415e81.13
push dword [ebp - 0x128]
mov eax, ecx
shr eax, 3
and eax, 2
or eax, ecx
mov ecx, dword [ebp - 0xdc]
mov word [edx + 0x1c], ax
mov dl, 0x61
call fcn.00415c4d
pop ecx
mov ecx, dword [ebp - 0xdc]
mov eax, 0x4000
test word [ecx + 0x1c], ax
je 0x416868
call fcn.00411efa
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xcc], eax
jmp 0x41686f
and dword [ebp - 0xcc], 0
mov eax, 0xbfe3
and word [ecx + 0x1c], ax
jmp case.0x415e81.13
mov ecx, dword [ebp - 0xdc]
movzx eax, word [ecx + 0x1c]
test al, 1
jne case.0x415e81.13
push 0x10
pop ebx
test bl, al
jne 0x4168c2
push dword [ebp - 0x128]
mov dl, 0x61
call fcn.00415c4d
pop ecx
mov ecx, dword [ebp - 0xdc]
mov edx, 0xbf10
mov ax, word [ecx + 0x1c]
and ax, dx
or ax, bx
mov word [ecx + 0x1c], ax
jmp case.0x415e81.13
and eax, 0xff10
jmp 0x4168b9
mov ecx, dword [ebp - 0xdc]
test byte [ecx + 0x1c], 0xd
jne case.0x415e81.13
call fcn.004121a2
movsd qword [ebp - 0x110], xmm0
call fcn.004120e6
mov ecx, eax
call fcn.004da61f
movsd xmm1, qword [ebp - 0x110]
mov ecx, dword [ebp - 0xdc]
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x416914
call fcn.00412243
jmp case.0x415e81.13
mov ax, word [ecx + 0x1c]
mov edx, 0xbf08
push 8
and ax, dx
movsd qword [ecx + 8], xmm1
pop edx
or ax, dx
jmp 0x4168b9
mov ecx, dword [ebp - 0xdc]
test byte [ecx + 0x1c], 1
jne case.0x415e81.13
jmp 0x41690a
mov ecx, dword [ebp - 0xdc]
test byte [ecx + 0x1c], 1
jne case.0x415e81.13
jmp 0x416805
mov eax, dword [ebp - 0x120]
xor edx, edx
mov ecx, dword [ebp - 0xdc]
inc edx
mov al, byte [eax + 0x1c]
or al, byte [ecx + 0x1c]
test dl, al
mov al, byte [ebx + 3]
je 0x4169af
push 0x10
pop ecx
test cl, al
je 0x416992
imul ecx, dword [ebx + 8], 0x28
mov ebx, 0xbf01
add ecx, dword [edi + 0x4c]
mov dword [ebp - 0xd8], ecx
mov ax, word [ecx + 0x1c]
and ax, bx
jmp 0x416928
push 8
pop ecx
test cl, al
push 4
pop edx
je 0x41676b
mov ebx, dword [ebx + 8]
dec ebx
mov dword [ebp - 0xd4], ebx
jmp 0x41676b
and al, 0x67
mov byte [ebp - 0x129], al
je 0x4169ef
push dword [ebp - 0x128]
mov dl, al
call fcn.00415c4d
mov dl, byte [ebp - 0x129]
pop ecx
push dword [ebp - 0x128]
mov ecx, dword [ebp - 0x120]
call fcn.00415c4d
cmp byte [esi + 0x1e], 0
pop ecx
jne 0x419d39
mov ecx, dword [ebp - 0xdc]
mov eax, 0x4000
test word [ecx + 0x1c], ax
je 0x4169ff
call fcn.00411efa
mov eax, dword [ebp - 0x120]
mov ecx, 0x4000
test word [eax + 0x1c], cx
je 0x416a1d
mov ecx, eax
call fcn.00411efa
mov eax, dword [ebp - 0x120]
push dword [ebx + 0x10]
mov edx, dword [ebp - 0xdc]
mov ecx, eax
call fcn.00412616
pop ecx
movzx ecx, byte [ebx]
mov edx, eax
xor eax, eax
sub ecx, 0x48
je 0x416a69
dec ecx
je 0x416a62
dec ecx
je 0x416a5b
dec ecx
je 0x416a54
dec ecx
je 0x416a4d
test edx, edx
setns al
jmp 0x416a6e
test edx, edx
sets al
jmp 0x416a6e
test edx, edx
setle al
jmp 0x416a6e
test edx, edx
setg al
jmp 0x416a6e
test edx, edx
sete al
jmp 0x416a6e
test edx, edx
setne al
push 0x10
pop ecx
push 4
test byte [ebx + 3], cl
je 0x416aa4
imul ebx, dword [ebx + 8], 0x28
mov edx, 0xbf04
add ebx, dword [edi + 0x4c]
mov dword [ebp - 0xd8], ebx
mov cx, word [ebx + 0x1c]
and cx, dx
pop edx
or cx, dx
cdq
mov word [ebx + 0x1c], cx
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp case.0x415e81.13
test eax, eax
jmp 0x416999
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x154], ecx
jmp case.0x415e81.13
mov edx, dword [ebx + 4]
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x11c], edx
mov edx, dword [ebx + 8]
xor ebx, ebx
mov dword [ebp - 0xf4], eax
mov esi, ebx
mov dword [ebp - 0xfc], ecx
mov dword [ebp - 0xe4], edx
test eax, eax
jle 0x416b70
lea edx, [ecx + 0xc]
mov dword [ebp - 0xec], edx
mov eax, dword [ebp - 0x154]
test eax, eax
je 0x416b01
mov ecx, dword [eax + esi*4]
jmp 0x416b03
mov ecx, esi
mov eax, dword [ebp - 0xfc]
push dword [edx]
mov eax, dword [eax + 8]
movzx eax, byte [eax + esi]
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0xe4]
add eax, ecx
imul edx, eax, 0x28
mov eax, dword [ebp - 0x11c]
add eax, ecx
imul ecx, eax, 0x28
add edx, dword [edi + 0x4c]
add ecx, dword [edi + 0x4c]
call fcn.00412616
mov dword [ebp - 0x158], eax
pop ecx
test eax, eax
jne 0x416b60
mov edx, dword [ebp - 0xec]
inc esi
push 4
pop eax
add edx, eax
mov dword [ebp - 0xec], edx
cmp esi, dword [ebp - 0xf4]
jl 0x416af2
jmp 0x416b70
cmp dword [ebp - 0x130], ebx
je 0x416b70
neg eax
mov dword [ebp - 0x158], eax
mov dword [ebp - 0x154], ebx
jmp 0x41600e
mov eax, dword [ebp - 0x158]
test eax, eax
jns 0x416b8d
mov ebx, dword [ebx + 4]
jmp 0x415e98
push 4
pop edx
je 0x4169a0
mov ebx, dword [ebx + 0xc]
jmp 0x4169a3
mov eax, dword [ebp - 0xdc]
xor edx, edx
inc edx
test byte [eax + 0x1c], dl
je 0x416bb3
push 2
pop ecx
mov esi, ecx
jmp 0x416bcd
mov ecx, eax
call fcn.00412132
or eax, edx
push 2
pop ecx
je 0x416bc8
xor edx, edx
inc edx
mov esi, edx
jmp 0x416bcd
xor edx, edx
xor esi, esi
inc edx
mov eax, dword [ebp - 0x124]
test byte [eax + 0x1c], dl
jne 0x416be9
mov ecx, eax
call fcn.00412132
xor ecx, ecx
or eax, edx
je 0x416be6
inc ecx
xor edx, edx
inc edx
imul eax, esi, 3
cmp byte [ebx], 0x42
jne 0x416bfb
movzx eax, byte [eax + ecx + 0x5252e0]
jmp 0x416c03
movzx eax, byte [eax + ecx + 0x52510c]
mov esi, dword [ebp - 0xd0]
push 2
pop ecx
cmp eax, ecx
mov ecx, dword [ebp - 0xd8]
push 4
jne 0x416c3c
mov ax, word [ecx + 0x1c]
mov ebx, 0xbf01
and ax, bx
mov ebx, dword [ebp - 0xcc]
or ax, dx
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0xd4]
jmp 0x416022
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov ax, word [ecx + 0x1c]
mov edx, 0xbf04
and ax, dx
pop edx
or ax, dx
jmp 0x4167ea
imul eax, dword [ebx + 8], 0x28
xor ebx, ebx
mov ecx, dword [ebp - 0xdc]
inc ebx
add eax, dword [edi + 0x4c]
mov dword [ebp - 0xd8], eax
test byte [ecx + 0x1c], bl
je 0x416c79
mov ecx, eax
jmp 0x4161b2
call fcn.00412132
or eax, edx
jne 0x416c86
mov eax, ebx
jmp 0x416c88
xor eax, eax
mov ecx, dword [ebp - 0xd8]
cdq
push edx
push eax
call fcn.004122d9
pop ecx
jmp 0x41618d
imul ebx, dword [ebx + 8], 0x28
mov eax, dword [ebp - 0xdc]
add ebx, dword [edi + 0x4c]
test byte [eax + 0x1c], 1
mov dword [ebp - 0xd8], ebx
je 0x416cbc
mov ecx, ebx
jmp 0x4161b2
mov ecx, eax
call fcn.00412132
not eax
not edx
mov ecx, ebx
jmp 0x416c8f
mov edx, dword [ebp - 0xdc]
test byte [edx + 0x1c], 1
je 0x416cdc
mov ecx, dword [ebx + 0xc]
jmp 0x416d02
mov ecx, edx
call fcn.004121a2
ucomisd xmm0, qword [0x525368]
lahf
xor ecx, ecx
test ah, 0x44
jnp 0x416cf4
inc ecx
cmp byte [ebx], 0x45
jne 0x416d02
xor eax, eax
test ecx, ecx
sete al
mov ecx, eax
test ecx, ecx
jmp 0x416997
mov eax, dword [ebx + 0xc]
xor edx, edx
mov ecx, dword [ebp - 0xdc]
inc edx
test byte [ecx + 0x1c], dl
jne 0x415e95
add ecx, 0x28
dec eax
mov dword [ebp - 0xdc], ecx
test eax, eax
jg 0x416d15
jmp case.0x415e81.13
mov eax, dword [ebp - 0xdc]
test byte [eax + 0x1c], 1
push 4
pop edx
jne 0x41676b
jmp 0x4169a0
mov eax, dword [ebx + 8]
lea edi, [ebp - 0x268]
mov edx, dword [ebx + 4]
mov esi, 0xbf01
mov dword [ebp - 0xec], eax
xor eax, eax
push 0xa
pop ecx
rep stosd dword es:[edi], eax
imul ecx, dword [ebx + 0xc], 0x28
mov edi, dword [ebp - 0x104]
add ecx, dword [edi + 0x4c]
mov dword [ebp - 0xfc], ecx
mov ax, word [ecx + 0x1c]
and ax, si
xor esi, esi
inc esi
or ax, si
mov word [ecx + 0x1c], ax
mov eax, dword [edi + 0x30]
mov esi, dword [eax + edx*4]
xor edx, edx
mov dword [ebp - 0x10c], esi
cmp dword [esi], edx
je 0x416e0e
mov ecx, esi
call fcn.00414263
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x419e34
mov ecx, dword [esi]
xor edx, edx
mov dword [ebp - 0xe0], edx
mov dword [ebp - 0x130], ecx
cmp byte [esi + 0x1c], dl
je 0x416dcb
mov eax, edx
jmp 0x416e23
mov eax, dword [esi + 0x60]
cmp eax, dword [edi + 0x54]
jne 0x416ddb
mov eax, dword [esi + 0x64]
mov ecx, dword [esi + 0x70]
jmp 0x416e1d
cmp byte [esi + 0x22], dl
je 0x416df9
lea edx, [ebp - 0x270]
call fcn.0040d614
mov eax, dword [ebp - 0x270]
mov dword [ebp - 0x144], eax
jmp 0x416e0a
lea edx, [ebp - 0x144]
call fcn.0040d654
mov eax, dword [ebp - 0x144]
xor edx, edx
jmp 0x416e29
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x38]
mov dword [esi + 0x60], edx
mov dword [ebp - 0x130], edx
mov dword [ebp - 0xe0], ecx
mov dword [ebp - 0x144], eax
mov ecx, dword [esi + 0x4c]
mov dword [ebp - 0xe4], ecx
test eax, eax
je 0x41600e
mov ebx, dword [ebp - 0xd0]
cmp eax, dword [ebx + 0x50]
mov ebx, dword [ebp - 0x118]
jg 0x4166ae
mov eax, dword [esi + 0x68]
mov dword [ebp - 0xf4], eax
mov eax, dword [esi + 0x60]
cmp eax, dword [edi + 0x54]
jne 0x416e6e
mov esi, dword [esi + 0x6c]
mov dword [ebp - 0x13c], esi
jmp 0x417098
mov eax, dword [ebp - 0xf4]
mov dword [ebp - 0x11c], edx
lea eax, [eax + ecx*4]
mov dword [ebp - 0x13c], eax
mov dword [esi + 0x6c], eax
mov eax, dword [ebp - 0x144]
mov dword [esi + 0x64], eax
mov eax, dword [edi + 0x54]
mov dword [esi + 0x60], eax
mov eax, dword [ebp - 0xe0]
test eax, eax
je 0x416ea7
mov dword [ebp - 0x114], eax
jmp 0x416f0b
cmp byte [esi + 0x22], 0
mov eax, dword [ebp - 0x130]
je 0x416ec6
cmp byte [eax + 0x3b], 1
jne 0x416ebc
push edx
jmp 0x416ecf
mov eax, edx
mov dword [ebp - 0x114], eax
jmp 0x416eef
xor ecx, ecx
inc ecx
cmp byte [eax + 0x3b], cl
jne 0x416ee7
push ecx
lea edx, [ebp - 0x11c]
mov ecx, eax
call fcn.0040da88
pop ecx
mov dword [ebp - 0x114], eax
xor edx, edx
jmp 0x416eef
mov eax, edx
mov dword [ebp - 0x114], edx
mov ecx, dword [ebp - 0x11c]
cmp ecx, dword [ebp - 0x144]
jl 0x416f08
mov dword [ebp - 0xe0], eax
mov dword [esi + 0x70], eax
jmp 0x416f0b
mov dword [esi + 0x70], edx
mov cl, byte [eax]
cmp cl, 0x80
jae 0x416f20
movzx ecx, cl
xor edx, edx
mov dword [ebp - 0x148], ecx
inc edx
jmp 0x416f3c
lea edx, [ebp - 0x148]
mov ecx, eax
call fcn.00406278
mov ecx, dword [ebp - 0x148]
movzx edx, al
mov eax, dword [ebp - 0x114]
cmp dword [ebp - 0xe0], 0
movzx edx, dl
mov dword [ebp - 0x114], edx
jne 0x416f9c
cmp dword [ebp - 0x11c], ecx
jge 0x416f9c
xor eax, eax
xor edx, edx
and dword [ebp - 0x258], eax
mov word [ebp - 0x24c], ax
lea eax, [ebp - 0x268]
push eax
movzx eax, byte [esi + 0x22]
push eax
push ecx
mov ecx, dword [ebp - 0x130]
call fcn.004127ea
add esp, 0xc
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x41600e
mov eax, dword [ebp - 0x254]
mov edx, dword [ebp - 0x114]
mov ecx, dword [ebp - 0x148]
lea esi, [ecx + eax]
mov dword [ebp - 0x114], esi
lea esi, [edx + eax]
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0x11c], esi
test edx, edx
jle 0x41704f
mov ebx, dword [ebp - 0x13c]
mov esi, dword [ebp - 0xf4]
sub ebx, esi
mov edi, dword [ebp - 0x11c]
mov eax, dword [ebp - 0x114]
cmp edi, eax
jae 0x417027
mov dword [ebx + esi], ecx
mov al, byte [edi]
cmp al, 0x80
jae 0x416ff3
movzx eax, al
mov dword [esi], eax
xor eax, eax
inc eax
jmp 0x417005
mov edx, esi
mov ecx, edi
call fcn.00406278
mov edx, dword [ebp - 0xe4]
movzx eax, al
mov ecx, dword [esi]
movzx eax, al
add edi, eax
call fcn.004143cd
mov ecx, dword [ebp - 0x148]
add ecx, eax
mov eax, dword [ebp - 0x114]
mov dword [ebp - 0x148], ecx
jmp 0x41702b
and dword [ebx + esi], 0
add esi, 4
dec edx
mov dword [ebp - 0xe4], edx
jne 0x416fdc
mov ebx, dword [ebp - 0x118]
mov dword [ebp - 0x11c], edi
mov edi, dword [ebp - 0x104]
mov esi, dword [ebp - 0x11c]
lea ecx, [ebp - 0x268]
call fcn.004120ba
xor edx, edx
inc edx
mov word [ebp - 0x24c], dx
mov edx, dword [ebp - 0x114]
cmp esi, edx
ja 0x4171c6
mov eax, dword [ebp - 0x148]
mov ecx, dword [ebp - 0x144]
cmp eax, ecx
jg 0x4171c6
cmp esi, edx
jne 0x417092
cmp eax, ecx
jne 0x4171c6
mov esi, dword [ebp - 0x13c]
mov ecx, dword [ebp - 0xec]
cmp dword [esi + ecx*4], 0
je 0x41715a
cmp dword [ebp - 0xe0], 0
je 0x4170d8
mov ebx, dword [ebp - 0xfc]
mov ecx, ebx
call fcn.00412077
mov edx, dword [ebp - 0xec]
mov eax, dword [ebp - 0xf4]
mov ecx, dword [esi + edx*4]
add ecx, dword [ebp - 0xe0]
mov edx, dword [eax + edx*4]
jmp 0x417148
mov eax, dword [ebp - 0xf4]
mov ecx, dword [eax + ecx*4]
call fcn.004143cd
mov ebx, dword [ebp - 0xfc]
lea ecx, [ebp - 0x268]
mov edx, ebx
mov esi, eax
call fcn.00412484
lea eax, [ebp - 0x268]
push eax
mov eax, dword [ebp - 0x10c]
movzx ecx, byte [eax + 0x22]
mov eax, dword [ebp - 0x13c]
push ecx
mov ecx, dword [ebp - 0x130]
push esi
mov esi, dword [ebp - 0xec]
mov edx, dword [eax + esi*4]
call fcn.004127ea
add esp, 0xc
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x41600e
mov eax, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0x254]
mov edx, dword [eax + esi*4]
push ebx
call fcn.00414485
mov al, byte [ebp - 0x128]
pop ecx
mov byte [ebx + 0x1f], al
jmp 0x41717f
cmp byte [ebx + 1], 0xf8
jne 0x417179
mov edx, dword [ebx + 0x10]
mov eax, 0x800
mov ebx, dword [ebp - 0xfc]
mov ecx, ebx
push eax
call fcn.004123d0
pop ecx
jmp 0x41717f
mov ebx, dword [ebp - 0xfc]
cmp dword [ebp - 0x244], 0
je 0x4171b2
mov ax, word [ebx + 0x1c]
mov ecx, 0xe7ff
and ax, cx
mov ecx, 0x200
or ax, cx
mov word [ebx + 0x1c], ax
mov eax, dword [ebp - 0x254]
mov dword [ebx + 0x14], eax
mov eax, dword [ebp - 0x244]
mov dword [ebx + 0x24], eax
mov ecx, ebx
call fcn.00411e9e
mov ebx, eax
mov dword [ebp - 0xcc], ebx
jmp 0x416014
push 0xb
pop ebx
jmp 0x4171bb
mov eax, dword [ebx + 0x10]
imul esi, dword [ebx + 4], 0x28
mov dword [ebp - 0x10c], eax
imul eax, dword [ebx + 8], 0x28
add esi, dword [edi + 0x4c]
add eax, 0xffffffd8
add eax, esi
mov dword [ebp - 0xec], eax
cmp esi, eax
ja 0x41600e
push 0x28
xor ebx, ebx
lea edi, [esi + 0x1c]
pop ecx
mov eax, 0x4000
test word [edi + ebx], ax
je 0x41720f
mov ecx, esi
call fcn.00411efa
push 0x28
pop ecx
mov eax, ebx
cdq
idiv ecx
mov ecx, dword [ebp - 0x10c]
push dword [ebp - 0x128]
mov dl, byte [eax + ecx]
mov ecx, esi
call fcn.00415c4d
pop ecx
push 0x28
pop ecx
add esi, ecx
add ebx, ecx
cmp esi, dword [ebp - 0xec]
jbe 0x4171fa
jmp 0x41611f
imul edx, dword [ebx + 4], 0x28
xor eax, eax
mov ecx, eax
mov dword [ebp - 0x114], eax
mov eax, dword [ebx + 0x10]
xorps xmm0, xmm0
mov dword [ebp - 0x10c], eax
imul eax, dword [ebx + 8], 0x28
add edx, dword [edi + 0x4c]
movzx edi, byte [edi + 0x8b]
mov esi, edx
movlpd qword [ebp - 0x100], xmm0
mov dword [ebp - 0xe0], ecx
add eax, 0xffffffd8
mov dword [ebp - 0xf4], edx
add eax, edx
mov dword [ebp - 0xec], edi
mov dword [ebp - 0x11c], eax
cmp edx, eax
ja 0x417382
mov ecx, dword [ebp - 0xfc]
push 0xffffffffffffffe8
pop eax
sub eax, edx
mov dword [ebp - 0xe4], ecx
mov ecx, dword [ebp - 0x100]
xor ebx, ebx
mov dword [ebp - 0x130], eax
mov dword [ebp - 0xfc], ecx
mov ecx, dword [ebp - 0x10c]
test ecx, ecx
je 0x4172e2
add eax, 0x18
add eax, esi
cdq
idiv dword [ebp - 0x194]
push dword [ebp - 0x128]
mov dl, byte [eax + ecx]
mov ecx, esi
call fcn.00415c4d
pop ecx
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x4172f9
cmp dword [esi + 0x18], ebx
jle 0x4172f9
mov ecx, esi
call fcn.00411efa
mov edx, edi
mov ecx, esi
call fcn.0041430a
mov ecx, eax
call fcn.004143cd
mov edi, eax
cdq
add dword [ebp - 0xfc], eax
push ebx
adc dword [ebp - 0xe4], edx
push ecx
call fcn.0040630f
pop ecx
pop ecx
mov ecx, dword [ebp - 0xe0]
add ecx, eax
mov eax, 0x4000
mov dword [ebp - 0xe0], ecx
test word [esi + 0x1c], ax
je 0x41734a
mov eax, dword [ebp - 0x114]
add eax, dword [esi]
mov dword [ebp - 0x114], eax
jmp 0x41735d
mov edx, dword [ebp - 0x114]
xor eax, eax
test edi, edi
cmovne edx, eax
mov dword [ebp - 0x114], edx
mov edi, dword [ebp - 0xec]
push 0x28
pop eax
add esi, eax
mov eax, dword [ebp - 0x130]
cmp esi, dword [ebp - 0x11c]
jbe 0x4172bb
mov ebx, dword [ebp - 0x118]
jmp 0x41739a
mov eax, dword [ebp - 0xfc]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0x100]
mov dword [ebp - 0xfc], eax
mov eax, ecx
cdq
push edx
push eax
call fcn.0040630f
mov esi, eax
mov eax, dword [ebp - 0xe0]
add eax, esi
mov dword [ebp - 0xe0], eax
cdq
push edx
push eax
call fcn.0040630f
mov edi, dword [ebp - 0xe0]
add esp, 0x10
cmp esi, eax
jge 0x4173d0
inc edi
mov dword [ebp - 0xe0], edi
mov eax, dword [ebp - 0x114]
cdq
mov ecx, eax
mov esi, edx
mov eax, edi
cdq
sub eax, ecx
mov edi, edx
sbb edi, esi
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0xd0]
adc edi, dword [ebp - 0xe4]
mov eax, dword [eax + 0x50]
cdq
cmp edi, edx
jg 0x419e96
mov edx, dword [ebp - 0xfc]
jl 0x417412
cmp edx, eax
ja 0x419e96
imul ebx, dword [ebx + 0xc], 0x28
mov edi, dword [ebp - 0x104]
push 0
add ebx, dword [edi + 0x4c]
mov ecx, ebx
mov dword [ebp - 0xd8], ebx
call fcn.00411dd4
pop ecx
test eax, eax
jne 0x419d33
mov ecx, dword [ebp - 0xe0]
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0xe4], eax
cmp ecx, 0x80
jae 0x417455
mov byte [eax], cl
xor eax, eax
inc eax
jmp 0x41745e
mov edx, ecx
mov ecx, eax
call fcn.004060f7
movzx esi, al
mov eax, dword [ebp - 0xf4]
mov ebx, eax
cmp eax, dword [ebp - 0x11c]
ja 0x4174bb
mov edi, dword [ebp - 0xe4]
mov edx, dword [ebp - 0xec]
mov ecx, ebx
call fcn.0041430a
cmp eax, 0x80
jae 0x417493
mov byte [esi + edi], al
xor eax, eax
inc eax
jmp 0x41749d
lea ecx, [esi + edi]
mov edx, eax
call fcn.004060f7
movzx eax, al
add esi, eax
push 0x28
pop eax
add ebx, eax
cmp ebx, dword [ebp - 0x11c]
jbe 0x417477
mov edi, dword [ebp - 0x104]
mov eax, dword [ebp - 0xf4]
mov ebx, dword [ebp - 0x11c]
cmp eax, ebx
ja 0x417501
mov edi, dword [ebp - 0xe4]
push dword [ebp - 0xec]
mov edx, dword [ebp - 0xfc]
lea ecx, [esi + edi]
push eax
sub edx, esi
call fcn.004143e0
pop ecx
pop ecx
add esi, eax
mov eax, dword [ebp - 0xf4]
push 0x28
pop ecx
add eax, ecx
mov dword [ebp - 0xf4], eax
cmp eax, ebx
jbe 0x4174cb
mov edi, dword [ebp - 0x104]
mov ecx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xfc]
and dword [ecx + 0x20], 0
mov dword [ecx + 0x18], eax
mov eax, 0x410
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0x114]
test eax, eax
je 0x417532
mov dword [ecx], eax
mov eax, 0x4410
mov word [ecx + 0x1c], ax
mov byte [ecx + 0x1f], 1
jmp 0x41600e
cmp byte [esi + 0x1c], 0
je 0x41754e
cmp dword [esi + 0x90], 1
jle case.0x415e81.13
imul ecx, dword [ebx + 4], 0x18
mov ebx, dword [ebp - 0xd0]
mov eax, dword [ebx + 8]
mov ecx, dword [ecx + eax + 4]
mov eax, dword [ecx + 4]
test eax, eax
je 0x417570
cmp byte [eax + 0x10], 0
jne 0x41600e
call fcn.0040d2d6
mov ebx, eax
mov dword [edi + 0xe4], 1
mov dword [ebp - 0xcc], ebx
jmp 0x416014
mov eax, dword [ebx + 4]
mov ebx, dword [ebx + 0x10]
mov dword [ebp - 0xfc], eax
test eax, eax
jne 0x41763b
mov eax, dword [ebp - 0xd0]
cmp dword [eax + 0x94], 0
jle 0x4175cc
push str.cannot_open_savepoint___SQL_statements_in_progress
push eax
lea eax, [edi + 0x80]
push eax
call fcn.0040428e
add esp, 0xc
push 5
pop eax
jmp 0x4171b9
mov ecx, ebx
call fcn.00405a28
mov ecx, dword [ebp - 0xd0]
mov dword [ebp - 0x10c], eax
lea edx, [eax + 9]
call fcn.00404100
mov esi, eax
test esi, esi
je 0x41600e
mov ecx, dword [ebp - 0x10c]
lea edx, [esi + 8]
inc ecx
mov dword [esi], edx
push ecx
push ebx
push edx
call fcn.004d8a10
mov ebx, dword [ebp - 0xd0]
add esp, 0xc
cmp byte [ebx + 0x1c], 0
je 0x417621
mov byte [ebx + 0x1c], 0
mov byte [ebx + 0x1dc], 1
jmp 0x417627
inc dword [ebx + 0x1d8]
mov eax, dword [ebx + 0x1d4]
mov dword [esi + 4], eax
mov dword [ebx + 0x1d4], esi
jmp 0x41600e
xor eax, eax
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xd0]
mov esi, dword [eax + 0x1d4]
test esi, esi
je 0x417838
mov edi, dword [ebp - 0xec]
mov ecx, dword [esi]
mov edx, ebx
call fcn.00405b7c
test eax, eax
je 0x417672
mov esi, dword [esi + 4]
inc edi
test esi, esi
jne 0x41765d
mov dword [ebp - 0xec], edi
mov edi, dword [ebp - 0x104]
test esi, esi
je 0x417832
mov ecx, dword [ebp - 0xd0]
xor ebx, ebx
mov edx, dword [ebp - 0xfc]
cmp dword [ecx + 0x94], ebx
jg 0x4176ae
push 2
pop eax
cmp edx, eax
jne 0x4176d9
xor eax, eax
inc eax
cmp dword [ecx + 0x90], eax
jle 0x4176dc
cmp edx, 2
mov eax, str.rollback
mov esi, str.release
cmovne eax, esi
push eax
push str.cannot__s_savepoint___SQL_statements_in_progress
push ecx
lea eax, [edi + 0x80]
push eax
call fcn.0040428e
add esp, 0x10
jmp 0x4175c4
xor eax, eax
inc eax
cmp dword [esi + 4], ebx
jne 0x417728
cmp byte [ecx + 0x1dc], bl
je 0x417728
mov dword [ebp - 0x11c], eax
cmp edx, eax
jne 0x41772e
mov byte [ecx + 0x1c], al
mov ecx, edi
call fcn.00413dcb
push 5
pop ecx
cmp eax, ecx
je 0x419db0
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x1dc], bl
mov eax, dword [edi + 0x68]
mov dword [ebp - 0xcc], eax
mov ebx, dword [ebp - 0xd0]
jmp 0x4177e4
mov dword [ebp - 0x11c], ebx
mov ebx, dword [ecx + 0x1d8]
xor eax, eax
sub ebx, dword [ebp - 0xec]
dec ebx
mov dword [ebp - 0xec], eax
cmp dword [ecx + 4], eax
jle 0x41779d
mov dword [ebp - 0xe4], eax
mov ecx, dword [ecx + 8]
push ebx
mov ecx, dword [eax + ecx + 4]
call fcn.0040d3d1
mov dword [ebp - 0xcc], eax
pop ecx
test eax, eax
jne 0x419e34
mov edx, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xec]
mov eax, dword [ebp - 0xe4]
inc ecx
add eax, 0x18
mov dword [ebp - 0xec], ecx
cmp ecx, dword [edx + 4]
mov edx, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0xd0]
mov dword [ebp - 0xe4], eax
jl 0x41774e
push 2
pop eax
cmp edx, eax
jne 0x41771d
mov ebx, dword [ebp - 0xd0]
push 0x10
pop eax
test byte [ebx + 0xc], al
je 0x4177e4
mov ecx, ebx
call fcn.00414ac7
xor edx, edx
call fcn.00420c9a
jmp 0x4177e4
mov ecx, dword [ebx + 0x1d4]
push ecx
push ebx
mov eax, dword [ecx + 4]
mov dword [ebx + 0x1d4], eax
call fcn.00403f63
dec dword [ebx + 0x1d8]
pop ecx
pop ecx
cmp dword [ebx + 0x1d4], esi
jne 0x4177c6
cmp dword [ebp - 0xfc], 1
jne 0x41600e
mov eax, dword [esi + 4]
push esi
push ebx
mov dword [ebx + 0x1d4], eax
call fcn.00403f63
cmp dword [ebp - 0x11c], 0
mov esi, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xd4]
pop ecx
pop ecx
push 4
pop edx
jne 0x4167d6
dec dword [ebx + 0x1d8]
jmp 0x4167d6
mov eax, dword [ebp - 0xd0]
push ebx
push str.no_such_savepoint:__s
push eax
lea eax, [edi + 0x80]
push eax
call fcn.0040428e
add esp, 0x10
xor ebx, ebx
inc ebx
jmp 0x4171bb
mov ecx, dword [ebx + 4]
mov esi, dword [ebx + 8]
mov ebx, dword [ebp - 0xd0]
mov dword [ebp - 0x10c], ecx
test ecx, ecx
je 0x41789a
cmp byte [ebx + 0x1c], 0
jne 0x41789a
test esi, esi
je 0x41788a
cmp dword [ebx + 0x90], 1
jle 0x41789a
push str.cannot_rollback_transaction___SQL_statements_in_progress
push ebx
jmp 0x4175b5
cmp dword [ebx + 0x94], 1
jle 0x41789a
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x417884
movzx eax, byte [ebx + 0x1c]
cmp ecx, eax
jne 0x419dcd
xor edx, edx
mov eax, str.cannot_commit___no_transaction_is_active
test ecx, ecx
mov ecx, str.cannot_rollback___no_transaction_is_active
sete dl
test esi, esi
cmove ecx, eax
test edx, edx
mov eax, str.cannot_start_a_transaction_within_a_transaction
cmove eax, ecx
push eax
push ebx
lea eax, [edi + 0x80]
push eax
call fcn.0040428e
add esp, 0xc
jmp 0x41784e
imul ecx, dword [ebx + 4], 0x18
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 8]
mov ecx, dword [ecx + eax + 4]
test ecx, ecx
je 0x41600e
mov edx, dword [ebx + 8]
call fcn.0040c9d4
push 5
mov ebx, eax
pop ecx
mov dword [ebp - 0xcc], ebx
cmp ebx, ecx
je 0x419e22
test ebx, ebx
je 0x416014
push 8
pop eax
cmp ebx, eax
jne 0x419e3a
jmp 0x416014
mov ecx, dword [ebx + 4]
mov edx, dword [ebx + 0xc]
test ecx, ecx
jns 0x41793b
or eax, 0xffffffff
sub eax, ecx
neg edx
mov ecx, eax
lea eax, [ebp - 0x190]
inc edx
push eax
imul eax, ecx, 0x18
mov ecx, dword [ebp - 0xd0]
mov ecx, dword [ecx + 8]
mov ecx, dword [eax + ecx + 4]
call fcn.00410a20
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0x190]
pop ecx
mov ecx, dword [ebp - 0xd8]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x41674f
imul esi, dword [ebx + 4], 0x18
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0x120]
add esi, dword [eax + 8]
call fcn.00412243
mov eax, dword [ebp - 0x120]
mov edx, dword [ebx + 8]
mov ecx, dword [esi + 4]
inc edx
push dword [eax]
call fcn.00410ace
xor edx, edx
mov dword [ebp - 0xcc], eax
pop ecx
cmp dword [ebx + 8], edx
jne 0x4179cc
mov ecx, dword [esi + 0x14]
mov eax, dword [ebp - 0x120]
mov esi, dword [ebp - 0xd0]
push 0x10
mov eax, dword [eax]
mov dword [ecx], eax
pop eax
or dword [esi + 0xc], eax
inc edx
jmp 0x4179e6
inc edx
cmp dword [ebx + 8], edx
jne 0x4179e0
mov eax, dword [ebp - 0x120]
mov ecx, dword [esi + 0x14]
mov al, byte [eax]
mov byte [ecx + 0x48], al
mov esi, dword [ebp - 0xd0]
cmp dword [ebx + 4], edx
jne 0x41600e
mov ecx, esi
call fcn.00414ac7
jmp 0x41600e
imul ecx, dword [ebx + 4], 0x18
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 8]
mov ecx, dword [ecx + eax + 4]
test ecx, ecx
je 0x417a28
lea eax, [ebp - 0x170]
xor edx, edx
push eax
inc edx
call fcn.00410a20
mov esi, dword [ebp - 0x170]
pop ecx
jmp 0x417a32
xor eax, eax
mov esi, eax
mov dword [ebp - 0x170], esi
mov ecx, eax
mov dword [ebp - 0xcc], ecx
test ecx, ecx
jne 0x41600e
cmp esi, dword [ebx + 8]
je 0x41600e
push dword [edi + 0x80]
push dword [ebp - 0xd0]
call fcn.00403f63
pop ecx
pop ecx
mov ecx, dword [ebp - 0xd0]
mov edx, str.database_schema_has_changed
call fcn.00404213
mov dword [edi + 0x80], eax
mov edx, dword [ebx + 4]
mov ebx, dword [ebp - 0xd0]
imul ecx, edx, 0x18
mov eax, dword [ebx + 8]
mov eax, dword [ecx + eax + 0x14]
cmp dword [eax], esi
je 0x417a92
mov ecx, ebx
call fcn.00420c9a
mov ecx, ebx
call fcn.00414ac7
push 0x11
pop ebx
mov dword [ebp - 0xcc], ebx
mov esi, ecx
jmp 0x41601a
mov eax, dword [ebx + 4]
mov esi, dword [ebx + 0xc]
mov edi, dword [ebp - 0xd0]
mov edx, dword [ebx + 8]
mov dword [ebp - 0x10c], eax
imul eax, esi, 0x18
mov dword [ebp - 0xfc], edx
add eax, dword [edi + 8]
mov edi, dword [eax + 4]
mov dword [ebp - 0xe4], edi
mov edi, dword [ebp - 0x104]
cmp cl, 0xa
jne 0x417afe
mov eax, dword [eax + 0x14]
mov dword [ebp - 0xec], 1
mov al, byte [eax + 0x48]
cmp al, byte [edi + 0x8b]
jae 0x417b05
mov byte [edi + 0x8b], al
jmp 0x417b05
and dword [ebp - 0xec], 0
cmp byte [ebx + 3], 0
je 0x417b37
imul eax, edx, 0x28
add eax, dword [edi + 0x4c]
mov ecx, eax
mov dword [ebp - 0x124], eax
call fcn.00412243
mov ecx, dword [ebp - 0x124]
push 2
mov eax, dword [ecx]
pop ecx
mov dword [ebp - 0xfc], eax
cmp eax, ecx
jl 0x417c4e
mov edx, dword [ebp - 0x10c]
lea eax, [ebx - 0x14]
push 1
push esi
push eax
mov ecx, edi
call fcn.00415b04
mov esi, eax
add esp, 0xc
test esi, esi
je 0x419d33
push dword [esi]
mov edx, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0xe4]
mov byte [esi + 0x1c], 1
push dword [ebx + 0x10]
push dword [ebp - 0xec]
call fcn.0040d4f1
add esp, 0xc
mov dword [ebp - 0xcc], eax
xor edx, edx
cmp byte [ebx + 1], 0xfa
jne 0x417b9f
mov ecx, dword [ebx + 0x10]
mov dword [esi + 0x48], ecx
mov eax, dword [edi]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x14]
mov al, byte [eax + 0x49]
mov byte [ecx + 4], al
jmp 0x417ba2
mov dword [esi + 0x48], edx
mov eax, dword [ebp - 0xcc]
test eax, eax
je 0x417bdd
push 5
pop ecx
cmp eax, ecx
je 0x419e22
push 0x10
pop ecx
cmp eax, ecx
jne 0x419e34
cmp byte [ebx + 1], 0xfa
mov ebx, edx
mov dword [esi], edx
setne al
test al, al
mov byte [esi + 0x21], al
sete al
mov byte [esi + 0x22], al
jmp 0x4171bb
mov ecx, dword [esi]
push 2
pop eax
mov dword [ebp - 0x10c], ecx
cmp byte [ecx + 0x3b], al
jb 0x417bf8
call fcn.0040b526
mov ecx, dword [ebp - 0x10c]
movsx eax, word [ecx + 0x54]
mov eax, dword [ecx + eax*4 + 0x58]
movzx ecx, byte [eax + 5]
mov eax, dword [eax + 0x40]
movzx ecx, byte [ecx + eax]
test cl, 0xf0
jne 0x417c4e
mov eax, ecx
push 5
and eax, 7
pop edx
cmp eax, edx
je 0x417c21
cmp eax, 2
jne 0x417c4e
xor edx, edx
mov al, cl
inc edx
shr ecx, 1
and al, dl
and cl, dl
mov byte [esi + 0x21], al
mov byte [esi + 0x22], cl
test al, al
je 0x417c3c
cmp byte [ebx + 1], 0xfa
je 0x417c4e
test cl, cl
je 0x41600e
cmp byte [ebx + 1], 0xfa
je 0x41600e
push 0xb
jmp 0x419daa
mov edx, dword [ebx + 4]
mov ecx, edi
push 1
push 0xffffffffffffffff
push ebx
call fcn.00415b04
mov esi, eax
add esp, 0xc
test esi, esi
je 0x419d33
lea eax, [esi + 0x30]
xor ecx, ecx
push eax
inc ecx
xor edx, edx
push 0x41e
push 0x1f4
mov byte [esi + 0x1c], cl
push ecx
mov ecx, dword [ebp - 0xd0]
call fcn.004398f1
add esp, 0x10
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x417d2d
mov ecx, dword [esi + 0x30]
xor edx, edx
inc edx
call fcn.0040c9d4
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x417d2d
mov ecx, dword [esi + 0x30]
cmp dword [ebx + 0x10], eax
je 0x417d13
push 2
pop eax
push eax
lea edx, [ebp - 0x198]
call fcn.004106ef
mov dword [ebp - 0xcc], eax
pop ecx
test eax, eax
jne 0x417d0d
push dword [esi]
mov edx, dword [ebp - 0x198]
push dword [ebx + 0x10]
mov ecx, dword [esi + 0x30]
push 1
call fcn.0040d4f1
mov ecx, dword [ebx + 0x10]
add esp, 0xc
mov dword [esi + 0x48], ecx
mov dword [ebp - 0xcc], eax
mov eax, dword [edi]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x14]
mov al, byte [eax + 0x49]
mov byte [ecx + 4], al
mov byte [esi + 0x21], 0
jmp 0x417d2d
push dword [esi]
xor ebx, ebx
push eax
inc ebx
push ebx
mov edx, ebx
call fcn.0040d4f1
add esp, 0xc
mov dword [ebp - 0xcc], eax
mov byte [esi + 0x21], bl
cmp byte [esi + 0x21], 0
sete al
mov byte [esi + 0x22], al
jmp 0x41600e
mov edx, dword [ebx + 4]
lea eax, [ebx - 0x14]
push 0
push 0xffffffffffffffff
push eax
mov ecx, edi
call fcn.00415b04
add esp, 0xc
test eax, eax
je 0x419d39
xor ecx, ecx
inc ecx
mov byte [eax + 0x1c], cl
mov byte [eax + 0x1e], cl
mov cl, byte [ebx + 8]
mov byte [eax + 0x1f], cl
mov word [eax + 0x21], 1
jmp case.0x415e81.13
mov esi, dword [ebx + 4]
mov ecx, edi
mov edx, dword [edi + 0x30]
mov edx, dword [edx + esi*4]
call fcn.0041370c
mov eax, dword [edi + 0x30]
and dword [eax + esi*4], 0
jmp 0x41600e
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
mov esi, dword [eax + ecx*4]
cmp dword [esi], 0
je 0x41805b
xor ecx, ecx
mov byte [esi + 0x1c], cl
cmp byte [esi + 0x21], cl
je 0x417f65
mov ecx, dword [ebp - 0x120]
call fcn.00415bd2
mov ecx, dword [ebp - 0x120]
call fcn.00412132
mov ecx, edx
mov byte [esi + 0x19], 0
mov edx, dword [ebp - 0x120]
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0x118], ecx
movzx edx, word [edx + 0x1c]
test dl, 4
jne 0x417f18
test dl, 8
jne 0x417dfe
mov ebx, dword [ebx + 8]
dec ebx
mov dword [ebp - 0xd4], ebx
jmp 0x41600e
test eax, eax
jne 0x417ea6
mov edx, SysReAllocStringLen
cmp ecx, edx
jne 0x417ea6
xor ecx, ecx
call fcn.004da61f
mov eax, dword [ebp - 0x120]
movsd xmm1, qword [eax + 8]
comisd xmm0, xmm1
xorps xmm0, xmm0
ja 0x417e34
comisd xmm1, xmm0
jbe 0x417e9a
comisd xmm0, xmm1
mov edx, dword [ebp - 0xfc]
mov dword [ebp - 0x134], 1
jbe 0x417e63
cmp edx, 0x79
je 0x417e54
cmp edx, 0x6d
jne 0x417def
mov ecx, dword [esi]
lea edx, [ebp - 0x134]
call fcn.0040dccd
jmp 0x417e7a
cmp edx, 0x59
je 0x417e6d
cmp edx, 0x38
jne 0x417def
mov ecx, dword [esi]
lea edx, [ebp - 0x134]
call fcn.0040dcf8
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x419e34
cmp dword [ebp - 0x134], 0
je 0x41600e
jmp 0x417def
mov eax, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0x118]
mov edx, dword [ebp - 0xfc]
cmp edx, 0x59
je 0x417ee0
cmp edx, 0x6d
je 0x417ee0
mov edx, ecx
mov ecx, eax
call fcn.004da61f
mov eax, dword [ebp - 0x120]
mov ecx, dword [ebp - 0x118]
comisd xmm0, xmmword [eax + 8]
mov eax, dword [ebp - 0xe0]
jbe 0x417f18
add eax, 0xffffffff
adc ecx, 0xffffffff
jmp 0x417f0c
mov edx, ecx
mov ecx, eax
call fcn.004da61f
mov eax, dword [ebp - 0x120]
mov ecx, dword [ebp - 0x118]
movsd xmm1, qword [eax + 8]
comisd xmm1, xmm0
mov eax, dword [ebp - 0xe0]
jbe 0x417f18
add eax, 1
adc ecx, 0
mov dword [ebp - 0x118], ecx
mov dword [ebp - 0xe0], eax
lea edx, [ebp - 0x134]
push edx
push 0
push ecx
mov ecx, dword [esi]
xor edx, edx
push eax
call fcn.0040dd38
add esp, 0x10
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x419e34
mov ecx, dword [ebp - 0x134]
xor edx, edx
test ecx, ecx
jne 0x417fd1
mov eax, dword [ebp - 0xe0]
mov dword [esi + 8], eax
mov eax, dword [ebp - 0x118]
mov byte [esi + 0x19], 1
mov dword [esi + 0xc], eax
jmp 0x417fd1
mov eax, dword [esi + 0x48]
mov dword [ebp - 0x1a8], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0x1a4], ax
cmp edx, 0x79
je 0x417f87
cmp edx, 0x38
je 0x417f87
xor eax, eax
jmp 0x417f8a
push 8
pop eax
mov word [ebp - 0x1a2], ax
lea edx, [ebp - 0x1a8]
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [edi + 0x4c]
mov dword [ebp - 0x1a0], eax
lea eax, [ebp - 0x134]
push eax
push ecx
push ecx
push ecx
mov ecx, dword [esi]
call fcn.0040dd38
add esp, 0x10
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x419e34
mov ecx, dword [ebp - 0x134]
xor edx, edx
mov byte [esi + 0x19], dl
mov eax, dword [ebp - 0xfc]
mov byte [esi + 0x20], dl
mov dword [esi + 0x60], edx
cmp eax, 0x6d
je 0x418014
cmp eax, 0x79
je 0x418014
test ecx, ecx
jg 0x418005
jne 0x417ff2
cmp eax, 0x59
je 0x418005
mov eax, dword [esi]
xor ecx, ecx
cmp byte [eax + 0x3b], 1
setne cl
mov dword [ebp - 0x134], ecx
jmp 0x418049
mov ecx, dword [esi]
lea edx, [ebp - 0x134]
call fcn.0040e19c
jmp 0x418037
test ecx, ecx
js 0x41802a
jne 0x41801f
cmp eax, 0x79
je 0x41802a
mov dword [ebp - 0x134], edx
jmp 0x41600e
mov ecx, dword [esi]
lea edx, [ebp - 0x134]
call fcn.0040e0af
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x419e34
mov byte [esi + 0x19], 0
mov esi, dword [ebp - 0xd0]
cmp dword [ebp - 0x134], 0
jmp 0x416997
cmp byte [esi + 0x1e], 0
mov esi, dword [ebp - 0xd0]
jmp 0x416d3b
mov ecx, dword [ebx + 4]
xor ebx, ebx
mov eax, dword [edi + 0x30]
mov esi, dword [eax + ecx*4]
cmp dword [esi], ebx
je 0x41600e
mov ecx, dword [ebp - 0x124]
mov byte [esi + 0x1c], bl
call fcn.00412132
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], edx
mov byte [esi + 0x19], bl
mov byte [esi + 0x20], 1
jmp 0x41600e
mov ecx, dword [ebx + 4]
xor edx, edx
mov eax, dword [edi + 0x30]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xec], eax
cmp dword [eax], edx
je 0x418143
push ecx
lea ecx, [ebp - 0xc8]
push ecx
mov ecx, dword [ebp - 0x120]
push dword [ecx + 0x14]
mov edx, dword [ecx + 0x18]
mov ecx, dword [eax + 0x48]
call fcn.0041465d
mov esi, eax
add esp, 0xc
test esi, esi
je 0x419d33
cmp byte [ebx], 0x7e
jne 0x4180eb
push 0x10
pop eax
or word [esi + 6], ax
mov ecx, dword [ebp - 0xec]
lea eax, [ebp - 0x19c]
push eax
xor eax, eax
mov edx, esi
push eax
mov ecx, dword [ecx]
push eax
push eax
call fcn.0040dd38
add esp, 0x10
mov dword [ebp - 0xcc], eax
mov ecx, esi
call fcn.00414771
mov eax, dword [ebp - 0xcc]
mov esi, dword [ebp - 0xd0]
test eax, eax
jne case.0x415e81.13
mov eax, dword [ebp - 0xec]
xor edx, edx
cmp dword [ebp - 0x19c], edx
sete dl
xor ecx, ecx
mov byte [eax + 0x20], cl
mov dword [eax + 0x60], ecx
cmp byte [ebx], 0x7e
push 4
jne 0x418151
test edx, edx
jmp 0x416999
test edx, edx
jmp 0x416d3d
imul eax, dword [ebx + 0x10], 0x28
mov ecx, dword [ebp - 0x120]
mov esi, dword [ebx + 4]
add eax, dword [edi + 0x4c]
mov dword [ebp - 0x10c], eax
call fcn.00412243
mov edx, dword [ebp - 0x120]
mov eax, dword [edx]
mov dword [ebp - 0xe4], eax
mov eax, dword [edx + 4]
mov dword [ebp - 0x11c], eax
mov eax, dword [edi + 0x30]
mov eax, dword [eax + esi*4]
mov dword [ebp - 0xfc], eax
mov ecx, dword [eax]
mov dword [ebp - 0xec], ecx
test ecx, ecx
je 0x41600e
mov edx, dword [ebp - 0x10c]
push ecx
lea ecx, [ebp - 0xc8]
push ecx
push dword [edx + 0x14]
mov edx, dword [edx + 0x18]
mov ecx, dword [eax + 0x48]
call fcn.0041465d
mov esi, eax
add esp, 0xc
test esi, esi
je 0x419d33
push 4
pop eax
or word [esi + 6], ax
xor ecx, ecx
mov eax, dword [ebp - 0xfc]
mov edx, esi
mov dword [eax + 0x60], ecx
lea eax, [ebp - 0x14c]
push eax
push ecx
push ecx
push ecx
mov ecx, dword [ebp - 0xec]
call fcn.0040dd38
add esp, 0x10
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x419e2d
cmp dword [ebp - 0x14c], eax
jge 0x418247
mov ecx, dword [ebp - 0xec]
lea edx, [ebp - 0x14c]
call fcn.0040e0af
cmp dword [ebp - 0x14c], 0
mov dword [ebp - 0xcc], eax
je 0x418247
mov eax, dword [ebx + 8]
mov ecx, esi
dec eax
mov dword [ebp - 0xd4], eax
call fcn.00414771
jmp 0x41600e
mov ecx, dword [ebp - 0xfc]
lea eax, [ebp - 0x14c]
push eax
mov edx, esi
call fcn.00414a3d
pop ecx
mov ecx, esi
mov dword [ebp - 0xcc], eax
call fcn.00414771
mov eax, dword [ebp - 0xcc]
test eax, eax
jne 0x419e34
cmp dword [ebp - 0x14c], eax
jg 0x417def
mov ecx, dword [ebp - 0xec]
lea edx, [ebp - 0x1d0]
call fcn.0041493f
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x419e34
mov ecx, dword [ebp - 0x1d0]
mov eax, dword [ebp - 0x1cc]
cmp ecx, dword [ebp - 0xe4]
jne 0x4182c2
cmp eax, dword [ebp - 0x11c]
je 0x417def
mov edx, dword [ebp - 0x120]
mov dword [edx], ecx
mov dword [edx + 4], eax
jmp 0x41600e
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi]
test ecx, ecx
je 0x41805b
xor eax, eax
lea edx, [ebp - 0xfc]
push edx
push eax
mov dword [ebp - 0xfc], eax
xor edx, edx
mov eax, dword [ebp - 0x120]
push dword [eax + 4]
push dword [eax]
call fcn.0040dd38
mov ecx, dword [ebp - 0x120]
add esp, 0x10
mov dword [ebp - 0xcc], eax
mov eax, dword [ecx]
mov dword [esi + 8], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0xfc]
test ecx, ecx
mov dword [esi + 0xc], eax
sete al
mov byte [esi + 0x19], al
xor eax, eax
mov byte [esi + 0x1c], al
mov dword [esi + 0x60], eax
jmp 0x418bb4
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
mov ebx, dword [ebp - 0xd8]
push 4
mov ecx, dword [eax + edx*4]
mov eax, dword [ecx + 0x50]
mov dword [ebx], eax
mov eax, dword [ecx + 0x54]
mov ecx, ebx
mov dword [ecx + 4], eax
mov eax, dword [edi + 0x30]
mov eax, dword [eax + edx*4]
add dword [eax + 0x50], 1
adc dword [eax + 0x54], 0
jmp 0x416c42
mov ecx, dword [ebx + 4]
xorps xmm0, xmm0
mov eax, dword [edi + 0x30]
movlpd qword [ebp - 0x140], xmm0
mov edx, dword [eax + ecx*4]
mov dword [ebp - 0xe0], edx
mov esi, dword [edx]
test esi, esi
je 0x41860f
xor eax, eax
push 2
mov dword [ebp - 0x114], eax
mov dword [ebp - 0xfc], eax
pop eax
cmp byte [esi + 0x3b], al
jb 0x4183b4
mov ecx, esi
call fcn.0040b526
mov edx, dword [ebp - 0xe0]
movsx eax, word [esi + 0x54]
mov eax, dword [esi + eax*4 + 0x58]
movzx ecx, byte [eax + 5]
mov eax, dword [eax + 0x40]
mov al, byte [ecx + eax]
and al, 3
cmp al, 1
jne 0x417c4e
cmp byte [edx + 0x1b], 0
jne 0x4184e8
cmp byte [edx + 0x1d], 0
je 0x4183e8
mov esi, dword [edx + 0x10]
mov edi, dword [edx + 0x14]
jmp 0x418456
mov esi, dword [ebp - 0xe0]
lea edx, [ebp - 0x114]
mov ecx, dword [esi]
call fcn.0040dcf8
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x419e34
cmp dword [ebp - 0x114], eax
je 0x418418
xor esi, esi
inc esi
xor edi, edi
jmp 0x418450
mov ecx, dword [esi]
lea edx, [ebp - 0x140]
call fcn.0040d614
mov esi, dword [ebp - 0x140]
mov edi, dword [ebp - 0x13c]
cmp esi, 0xffffffff
jne 0x41844a
cmp edi, 0x7fffffff
jne 0x41844a
mov edx, dword [ebp - 0xe0]
mov byte [edx + 0x1b], 1
jmp 0x418456
add esi, 1
adc edi, 0
mov edx, dword [ebp - 0xe0]
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x4184bb
mov ebx, dword [ebp - 0x104]
imul eax, eax, 0x28
add eax, dword [ebx + 0x4c]
mov ecx, eax
mov dword [ebp - 0x10c], eax
call fcn.00412243
mov eax, dword [ebp - 0x10c]
mov ebx, dword [eax]
mov ecx, dword [eax + 4]
cmp ebx, 0xffffffff
jne 0x418492
cmp ecx, 0x7fffffff
je 0x419e6b
mov edx, dword [ebp - 0xe0]
cmp byte [edx + 0x1b], 0
jne 0x419e6b
add ebx, 1
adc ecx, 0
cmp edi, ecx
jg 0x4184b6
jl 0x4184b2
cmp esi, ebx
jae 0x4184b6
mov esi, ebx
mov edi, ecx
mov dword [eax], esi
mov dword [eax + 4], edi
cmp edi, 0x7fffffff
jg 0x4184e1
jl 0x4184ca
cmp esi, 0xffffffff
jae 0x4184e1
xor eax, eax
mov ecx, esi
inc eax
add ecx, eax
mov byte [edx + 0x1d], al
mov eax, edi
mov dword [edx + 0x10], ecx
adc eax, 0
mov dword [edx + 0x14], eax
jmp 0x4184f4
xor ecx, ecx
mov byte [edx + 0x1d], cl
jmp 0x4184f6
mov edi, dword [ebp - 0x13c]
mov esi, dword [ebp - 0x140]
xor ecx, ecx
cmp byte [edx + 0x1b], 0
je 0x418602
mov eax, dword [ebp - 0xd0]
mov edx, ecx
mov ebx, dword [ebp - 0xe0]
mov dword [ebp - 0xec], edx
mov esi, dword [eax + 0x38]
mov edi, dword [eax + 0x3c]
mov dword [ebp - 0x140], esi
mov dword [ebp - 0x13c], edi
test edx, edx
jne 0x41854c
mov eax, esi
and eax, 0xffffff
cmp eax, esi
jne 0x41854c
cmp ecx, edi
jne 0x41854c
add esi, 1
adc edi, ecx
mov dword [ebp - 0x140], esi
mov dword [ebp - 0x13c], edi
jmp 0x418585
lea eax, [ebp - 0x140]
push eax
push 8
pop eax
push eax
call fcn.0040534b
mov edx, dword [ebp - 0xec]
mov esi, dword [ebp - 0x140]
pop ecx
pop ecx
push 5
pop eax
cmp edx, eax
jge 0x41857d
and esi, 0xffffff
xor ecx, ecx
mov edi, ecx
jmp 0x41853e
mov edi, dword [ebp - 0x13c]
xor ecx, ecx
mov eax, esi
or eax, edi
je 0x4185b6
lea eax, [ebp - 0x114]
xor edx, edx
push eax
push ecx
mov ecx, dword [ebx]
push edi
push esi
call fcn.0040dd38
mov edx, dword [ebp - 0xec]
add esp, 0x10
inc edx
mov dword [ebp - 0xfc], eax
mov dword [ebp - 0xec], edx
jmp 0x4185bc
mov eax, dword [ebp - 0xfc]
cmp edx, 0x64
jge 0x4185d8
test eax, eax
mov eax, dword [ebp - 0x114]
jne 0x4185de
push 0
pop ecx
test eax, eax
je 0x418526
jmp 0x4185de
mov eax, dword [ebp - 0x114]
mov ecx, dword [ebp - 0xd0]
mov dword [ecx + 0x38], esi
mov dword [ecx + 0x3c], edi
mov ecx, dword [ebp - 0xfc]
test ecx, ecx
jne 0x4185fc
test eax, eax
je 0x419e6b
mov edx, dword [ebp - 0xe0]
xor ecx, ecx
mov byte [edx + 0x19], cl
mov byte [edx + 0x20], cl
mov dword [edx + 0x60], ecx
jmp 0x41861b
mov edi, dword [ebp - 0x13c]
mov esi, dword [ebp - 0x140]
mov ecx, dword [ebp - 0xd8]
mov dword [ecx + 4], edi
mov edi, dword [ebp - 0x104]
jmp 0x41674d
imul eax, dword [ebx + 0xc], 0x28
mov ecx, dword [ebx + 4]
imul edx, dword [ebx + 8], 0x28
add eax, dword [edi + 0x4c]
mov dword [ebp - 0x10c], eax
mov eax, dword [edi + 0x30]
add edx, dword [edi + 0x4c]
test byte [ebx + 3], 1
mov dword [ebp - 0xe4], edx
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x10c]
mov eax, dword [ecx]
mov dword [ebp - 0xfc], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0xec], eax
je 0x418675
inc dword [edi + 0x90]
push 2
pop eax
test byte [ebx + 3], al
je 0x418694
mov edi, dword [ebp - 0xd0]
mov eax, dword [ecx]
mov dword [edi + 0x30], eax
mov eax, dword [ecx + 4]
mov dword [edi + 0x34], eax
mov edi, dword [ebp - 0x104]
cmp byte [esi + 0x1d], 0
je 0x4186af
mov eax, dword [ecx + 4]
cmp eax, dword [esi + 0x14]
jl 0x4186af
jg 0x4186ab
mov eax, dword [ecx]
cmp eax, dword [esi + 0x10]
jb 0x4186af
mov byte [esi + 0x1d], 0
movzx eax, word [edx + 0x1c]
test al, 1
je 0x4186bf
and dword [edx + 0x14], 0
and dword [edx + 0x18], 0
cmp byte [esi + 0x1e], 0
je 0x418778
cmp byte [esi + 0x1f], 0
jne 0x4186e5
push dword [esi + 0x38]
push dword [ebp - 0xd0]
call fcn.00403f63
mov edx, dword [ebp - 0xe4]
pop ecx
pop ecx
mov eax, dword [ebp - 0xfc]
mov dword [esi + 0x40], eax
mov eax, dword [ebp - 0xec]
mov dword [esi + 0x44], eax
mov ecx, dword [edx + 0x18]
mov dword [esi + 0x34], ecx
mov eax, dword [edx + 0x14]
cmp eax, dword [edx + 0x24]
je 0x41874c
cmp byte [esi + 0x1f], 0
jne 0x41874c
lea eax, [ecx + 2]
push eax
call fcn.00403ce0
mov dword [esi + 0x38], eax
pop ecx
test eax, eax
je 0x419d33
mov ecx, dword [ebp - 0xe4]
push dword [esi + 0x34]
push dword [ecx + 0x14]
push eax
call fcn.004d8a10
mov ecx, dword [esi + 0x34]
add esp, 0xc
mov eax, dword [esi + 0x38]
xor edx, edx
mov byte [ecx + eax], dl
mov ecx, dword [esi + 0x34]
mov eax, dword [esi + 0x38]
mov byte [ecx + eax + 1], dl
jmp 0x418773
cmp byte [esi + 0x1f], 0
mov dword [esi + 0x38], eax
jne 0x418771
mov ax, word [edx + 0x1c]
mov ecx, 0xfbff
and ax, cx
mov ecx, 0x1000
or ax, cx
and dword [edx + 0x24], 0
mov word [edx + 0x1c], ax
xor edx, edx
mov byte [esi + 0x1c], dl
jmp 0x4187b8
mov ecx, 0x4000
test ecx, eax
je 0x418785
mov ecx, dword [edx]
jmp 0x418787
xor ecx, ecx
movzx eax, byte [ebx + 3]
and eax, 8
push eax
mov eax, dword [ebp - 0xec]
push ecx
push dword [edx + 0x18]
mov ecx, dword [esi]
push dword [edx + 0x14]
xor edx, edx
push eax
mov eax, dword [ebp - 0xfc]
push eax
call fcn.0040ff8e
add esp, 0x18
mov dword [ebp - 0xcc], eax
xor edx, edx
mov eax, dword [ebp - 0xcc]
mov byte [esi + 0x19], dl
mov byte [esi + 0x20], dl
mov dword [esi + 0x60], edx
test eax, eax
jne 0x41600e
mov edx, dword [ebp - 0xd0]
mov edx, dword [edx + 0xbc]
test edx, edx
je 0x41600e
cmp dword [ebx + 0x10], eax
je 0x41600e
push dword [ebp - 0xec]
imul ecx, dword [esi + 4], 0x18
push dword [ebp - 0xfc]
mov eax, dword [ebp - 0xd0]
push dword [ebx + 0x10]
mov eax, dword [eax + 8]
push dword [ecx + eax]
push 4
pop eax
test byte [ebx + 3], al
push 0x12
pop eax
push 0x17
pop ecx
cmovne eax, ecx
push eax
mov eax, dword [ebp - 0xd0]
push dword [eax + 0xb8]
call edx
add esp, 0x18
jmp 0x41600e
mov ecx, dword [ebx + 4]
xorps xmm0, xmm0
mov eax, dword [edi + 0x30]
movlpd qword [ebp - 0x110], xmm0
mov esi, dword [eax + ecx*4]
xor eax, eax
mov ecx, dword [ebp - 0xd0]
cmp dword [ecx + 0xbc], eax
je 0x41886e
cmp dword [ebx + 0x10], eax
je 0x41886e
mov eax, dword [esi + 8]
mov dword [ebp - 0xfc], eax
mov eax, dword [esi + 0xc]
mov dword [ebp - 0xec], eax
jmp 0x418886
mov eax, dword [ebp - 0x10c]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0x110]
mov dword [ebp - 0xfc], eax
mov ecx, esi
call fcn.00414263
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x419e34
mov ecx, dword [esi]
call fcn.00410165
mov dword [ebp - 0xcc], eax
xor eax, eax
mov byte [esi + 0x1d], al
mov dword [esi + 0x60], eax
mov eax, dword [ebp - 0xcc]
test eax, eax
jne 0x418901
mov edx, dword [ebp - 0xd0]
mov edx, dword [edx + 0xbc]
test edx, edx
je 0x418901
cmp dword [ebx + 0x10], eax
je 0x418901
push dword [ebp - 0xec]
imul ecx, dword [esi + 4], 0x18
mov eax, dword [ebp - 0xd0]
push dword [ebp - 0xfc]
push dword [ebx + 0x10]
mov eax, dword [eax + 8]
push dword [ecx + eax]
mov eax, dword [ebp - 0xd0]
push 9
push dword [eax + 0xb8]
call edx
add esp, 0x18
test byte [ebx + 8], 1
mov esi, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0xcc]
push 4
pop edx
je 0x416023
inc dword [edi + 0x90]
jmp 0x416023
xor edx, edx
cmp dword [ebx + 4], edx
je 0x418946
mov ebx, dword [ebp - 0xd0]
mov esi, ebx
mov eax, dword [edi + 0x90]
add dword [ebx + 0x48], eax
mov dword [ebx + 0x44], eax
mov dword [edi + 0x90], edx
jmp case.0x415e81.13
imul eax, dword [ebx + 8], 0x28
mov ecx, dword [ebx + 4]
add eax, dword [edi + 0x4c]
mov dword [ebp - 0xd8], eax
mov eax, dword [edi + 0x30]
mov esi, dword [eax + ecx*4]
mov ecx, esi
mov dword [ebp - 0x10c], esi
mov ebx, dword [esi]
call fcn.00414263
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x419e34
mov ecx, ebx
cmp byte [esi + 0x22], al
je 0x4189c4
lea edx, [ebp - 0x1f8]
call fcn.0040d614
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 0x50]
cdq
cmp dword [ebp - 0x1f4], edx
jg 0x4166ae
mov esi, dword [ebp - 0x1f8]
jl 0x4189bc
cmp esi, eax
ja 0x4166ae
mov dword [ebp - 0x16c], esi
jmp 0x4189e4
lea edx, [ebp - 0x16c]
call fcn.0040d654
mov eax, dword [ebp - 0xd0]
mov esi, dword [ebp - 0x16c]
cmp esi, dword [eax + 0x50]
jg 0x4166b4
mov ecx, dword [ebp - 0xd8]
mov edx, esi
push 0
call fcn.00411dd4
pop ecx
test eax, eax
jne 0x419d33
mov ecx, dword [ebp - 0xd8]
mov edx, 0xbf10
push 0x10
mov ax, word [ecx + 0x1c]
and ax, dx
mov dword [ecx + 0x18], esi
pop edx
push dword [ecx + 0x14]
or ax, dx
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0x10c]
push esi
cmp byte [eax + 0x22], 0
je 0x418a38
xor edx, edx
mov ecx, ebx
call fcn.0040da03
pop ecx
pop ecx
jmp 0x418a43
push 0
push ebx
call fcn.0040da47
add esp, 0x10
mov ebx, eax
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0xcc], ebx
mov byte [eax + 0x1f], 1
jmp 0x416014
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
mov esi, dword [eax + ecx*4]
mov ecx, esi
call fcn.00414263
mov ebx, eax
mov dword [ebp - 0xcc], ebx
test ebx, ebx
jne 0x419e3a
cmp byte [esi + 0x19], al
je 0x418a87
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
jmp 0x418a93
cmp byte [esi + 0x1e], 0
je 0x418aa1
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
mov dword [ebp - 0x168], eax
mov dword [ebp - 0x164], ecx
jmp 0x418ac4
cmp byte [esi + 0x1c], 0
jne 0x416014
mov ecx, dword [esi]
lea edx, [ebp - 0x168]
call fcn.0040d614
mov ecx, dword [ebp - 0x164]
mov eax, dword [ebp - 0x168]
mov edx, dword [ebp - 0xd8]
push 4
mov dword [edx], eax
mov ax, word [edx + 0x1c]
mov dword [edx + 4], ecx
mov ecx, 0xbf04
and ax, cx
pop ecx
or ax, cx
mov word [edx + 0x1c], ax
jmp 0x416014
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
mov byte [eax + 0x1c], 1
mov byte [eax + 0x19], 0
test ecx, ecx
je case.0x415e81.13
call fcn.0040b510
jmp case.0x415e81.13
mov ecx, dword [ebx + 4]
lea edx, [ebp - 0x18c]
mov eax, dword [edi + 0x30]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi]
call fcn.0040dcf8
xor edx, edx
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0x18c]
mov byte [esi + 0x1c], al
mov byte [esi + 0x20], dl
mov byte [esi + 0x19], dl
mov dword [esi + 0x60], edx
test eax, eax
je 0x41600e
mov eax, dword [ebx + 8]
mov ebx, dword [ebp - 0xcc]
mov esi, dword [ebp - 0xd0]
push 4
pop edx
test eax, eax
jle 0x416771
dec eax
jmp 0x416023
inc dword [edi + 0xd8]
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi]
test ecx, ecx
je 0x418ba8
lea edx, [ebp - 0x17c]
call fcn.0040dccd
mov ecx, dword [ebp - 0x17c]
test ecx, ecx
mov dword [ebp - 0xcc], eax
sete al
xor edx, edx
mov byte [esi + 0x1a], al
mov byte [esi + 0x20], dl
mov dword [esi + 0x60], edx
mov byte [esi + 0x19], dl
jmp 0x418bb1
xor ecx, ecx
inc ecx
mov dword [ebp - 0x17c], ecx
mov byte [esi + 0x1c], cl
mov esi, dword [ebp - 0xd0]
jmp 0x416d02
mov eax, dword [ebp - 0xd0]
cmp dword [eax + 0xd8], 0
jne 0x419f7e
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x41600e
cmp byte [ebx], 0x6b
lea edx, [ebp - 0xec]
mov ecx, dword [esi]
mov dword [ebp - 0xec], 1
jne 0x418c01
call fcn.0040e0af
jmp 0x418c06
call fcn.0040e19c
mov dword [ebp - 0xcc], eax
xor edx, edx
mov eax, dword [ebp - 0xec]
mov byte [esi + 0x1c], al
mov dword [esi + 0x60], edx
test eax, eax
jne 0x418c39
mov eax, dword [ebx + 8]
dec eax
mov dword [ebp - 0xd4], eax
mov al, byte [ebx + 3]
test al, al
je 0x418c39
movzx eax, al
inc dword [edi + eax*4 + 0xd0]
mov byte [esi + 0x19], dl
jmp 0x41600e
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi]
mov dword [ebp - 0x10c], ecx
test ecx, ecx
je 0x41600e
mov eax, dword [ebp - 0x124]
mov edx, 0x4000
test word [eax + 0x1c], dx
je 0x418c82
mov ecx, eax
call fcn.00411efa
mov ecx, dword [ebp - 0x10c]
xor edx, edx
mov dword [ebp - 0xcc], eax
jmp 0x418c8c
xor edx, edx
mov eax, edx
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x41600e
push dword [ebx + 0xc]
mov ebx, dword [ebp - 0x124]
push edx
push edx
push 0x51e9b0
mov eax, dword [ebx + 0x18]
cdq
push edx
mov edx, dword [ebx + 0x14]
push eax
call fcn.0040ff8e
mov ebx, eax
add esp, 0x18
and dword [esi + 0x60], 0
mov dword [ebp - 0xcc], ebx
jmp 0x416014
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x10c], eax
mov esi, dword [eax]
test esi, esi
je 0x41600e
mov eax, dword [eax + 0x48]
lea edx, [ebp - 0x1c8]
mov dword [ebp - 0x1c8], eax
mov ecx, esi
mov ax, word [ebx + 0xc]
mov word [ebp - 0x1c4], ax
xor eax, eax
mov word [ebp - 0x1c2], ax
imul eax, dword [ebx + 8], 0x28
xor ebx, ebx
add eax, dword [edi + 0x4c]
mov dword [ebp - 0x1c0], eax
lea eax, [ebp - 0x1bc]
push eax
push ebx
push ebx
push ebx
call fcn.0040dd38
add esp, 0x10
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x418d44
cmp dword [ebp - 0x1bc], ebx
jne 0x418d44
mov ecx, esi
call fcn.00410165
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0x10c]
mov dword [eax + 0x60], ebx
jmp 0x41600e
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
test ecx, ecx
je case.0x415e81.13
cmp byte [eax + 0x1c], 0
jne case.0x415e81.13
lea edx, [ebp - 0x200]
call fcn.0041493f
mov ebx, eax
mov dword [ebp - 0xcc], ebx
test ebx, ebx
jne 0x419e3a
mov ecx, dword [ebp - 0xd8]
mov edx, 0xbf04
push 4
mov ax, word [ecx + 0x1c]
and ax, dx
pop edx
or ax, dx
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0x200]
mov dword [ecx], eax
mov eax, dword [ebp - 0x1fc]
mov dword [ecx + 4], eax
jmp 0x416771
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
mov ecx, dword [eax + ecx*4]
cmp dword [ecx], 0
je case.0x415e81.13
cmp byte [ebx + 3], 0
mov eax, dword [ecx + 0x48]
mov dword [ebp - 0x1b8], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0x1b4], ax
je 0x418dec
push 0xc
jmp 0x418dee
push 4
pop eax
mov word [ebp - 0x1b2], ax
lea edx, [ebp - 0x1b8]
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [edi + 0x4c]
mov dword [ebp - 0x1b0], eax
lea eax, [ebp - 0x150]
push eax
call fcn.00414a3d
cmp byte [ebx], 0x2a
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0x150]
pop ecx
jne 0x418e2b
neg eax
jmp 0x418e2c
inc eax
mov dword [ebp - 0x150], eax
push 4
pop edx
test eax, eax
jle 0x41676b
jmp 0x4169a0
mov eax, dword [ebp - 0xd0]
xor edx, edx
mov ecx, edx
mov eax, dword [eax + 0x8c]
test eax, eax
je 0x418e8e
cmp dword [eax + 0x44], 0xbdf20da3
jne 0x418e6e
cmp byte [eax + 0x8c], 2
jae 0x418e6e
cmp dword [eax + 0x64], edx
jl 0x418e6e
inc ecx
mov eax, dword [eax + 8]
test eax, eax
jne 0x418e56
cmp ecx, 1
jle 0x418e8e
push 6
pop ebx
push 2
pop eax
mov dword [ebp - 0xcc], ebx
mov dword [edi + 0x70], eax
jmp 0x416014
imul ecx, dword [ebx + 0xc], 0x18
mov eax, dword [ebp - 0xd0]
mov esi, dword [ebx + 4]
mov eax, dword [eax + 8]
mov dword [ebp - 0x10c], ecx
mov edi, dword [eax + ecx + 4]
mov ecx, edi
call fcn.0040b01f
mov ecx, dword [edi + 4]
mov edx, esi
mov eax, dword [edi]
mov dword [ecx + 4], eax
lea eax, [ebp - 0x180]
push eax
mov ecx, edi
call fcn.004108b3
pop ecx
mov ecx, edi
mov dword [ebp - 0xcc], eax
call fcn.0040b098
mov ecx, dword [ebp - 0xd8]
mov edx, 0xbf04
mov esi, dword [ebp - 0x180]
push 4
mov ax, word [ecx + 0x1c]
and ax, dx
pop edx
or ax, dx
mov word [ecx + 0x1c], ax
mov eax, esi
cdq
mov dword [ecx], eax
mov eax, dword [ebp - 0xcc]
mov dword [ecx + 4], edx
test eax, eax
jne 0x41611f
test esi, esi
je 0x41611f
mov eax, dword [ebp - 0xd0]
mov edi, dword [ebx + 4]
mov edx, dword [eax + 8]
add edx, dword [ebp - 0x10c]
mov eax, dword [edx + 0x14]
mov eax, dword [eax + 0xc]
jmp 0x418f3c
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x18], esi
jne 0x418f3a
mov dword [ecx + 0x18], edi
mov eax, dword [eax]
test eax, eax
jne 0x418f2f
mov eax, dword [edx + 0x14]
mov eax, dword [eax + 0x1c]
jmp 0x418f55
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x14], esi
jne 0x418f53
mov dword [ecx + 0x14], edi
mov eax, dword [eax]
test eax, eax
jne 0x418f48
jmp 0x41611f
xor ecx, ecx
lea eax, [ebp - 0xe4]
xor edx, edx
mov dword [ebp - 0xe4], ecx
cmp dword [ebx + 0xc], ecx
mov ecx, dword [ebp - 0xd0]
cmove eax, edx
mov edx, dword [ebx + 4]
push eax
imul eax, dword [ebx + 8], 0x18
mov ecx, dword [ecx + 8]
mov ecx, dword [eax + ecx + 4]
call fcn.0041084b
cmp dword [ebx + 0xc], 0
pop ecx
mov dword [ebp - 0xcc], eax
je 0x41600e
mov eax, dword [ebp - 0xe4]
add dword [edi + 0x90], eax
mov ecx, dword [ebx + 0xc]
mov ebx, dword [ebp - 0xcc]
push 4
test ecx, ecx
jle 0x418fc8
imul esi, ecx, 0x28
mov ecx, dword [edi + 0x4c]
cdq
add dword [ecx + esi], eax
adc dword [ecx + esi + 4], edx
mov esi, dword [ebp - 0xd0]
jmp 0x416c31
imul ecx, dword [ebx + 4], 0x18
mov eax, dword [ebp - 0xd0]
and dword [ebp - 0x130], 0
push 2
add ecx, dword [eax + 8]
cmp byte [ebp - 0x129], 0x36
pop eax
push 5
mov ecx, dword [ecx + 4]
pop edx
cmove eax, edx
lea edx, [ebp - 0x130]
push eax
call fcn.004106ef
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0x130]
jmp 0x417964
cmp dword [ebx + 8], 0
mov edx, dword [ebx + 4]
jne 0x41903a
mov eax, dword [ebp - 0xd0]
imul ecx, edx, 0x18
mov eax, dword [eax + 8]
mov eax, dword [ecx + eax + 0x14]
test byte [eax + 0x4a], 1
je 0x41600e
push dword [ebx + 0x10]
cmp edx, 1
mov dword [ebp - 0x1dc], edx
mov eax, str.sqlite_master
mov ecx, str.sqlite_temp_master
cmovne ecx, eax
mov eax, dword [ebp - 0xd0]
push ecx
imul ecx, edx, 0x18
mov edx, dword [ebp - 0xd0]
mov dword [ebp - 0x1e0], eax
lea eax, [edi + 0x80]
mov dword [ebp - 0x1d8], eax
mov eax, dword [edx + 8]
push dword [ecx + eax]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s
push edx
call fcn.004050fb
mov esi, eax
add esp, 0x14
test esi, esi
je 0x419d33
mov eax, dword [ebp - 0xd0]
lea ecx, [ebp - 0x1e0]
xor ebx, ebx
push ebx
push ecx
push fcn.0042aaac
push esi
push eax
mov byte [eax + 0x80], 1
mov dword [ebp - 0x1d4], ebx
call fcn.004287d6
add esp, 0x14
test eax, eax
cmove eax, dword [ebp - 0x1d4]
mov dword [ebp - 0xcc], eax
push esi
push dword [ebp - 0xd0]
call fcn.00403f63
mov esi, dword [ebp - 0xd0]
pop ecx
pop ecx
mov byte [esi + 0x80], bl
mov ebx, dword [ebp - 0xcc]
cmp ebx, 7
je 0x419d39
jmp 0x41601a
mov edx, dword [ebx + 4]
mov ecx, dword [ebp - 0xd0]
call fcn.0041fca8
jmp 0x4171b9
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, dword [ebp - 0xd0]
call fcn.00420fd5
jmp 0x4160c1
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, dword [ebp - 0xd0]
call fcn.00420c2a
jmp 0x4160c1
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, dword [ebp - 0xd0]
call fcn.004309b0
jmp 0x4160c1
mov eax, dword [ebx + 8]
mov ecx, dword [ebp - 0xd0]
mov dword [ebp - 0xfc], eax
lea edx, [eax*4 + 4]
call fcn.00404100
mov edx, eax
mov dword [ebp - 0xe4], edx
test edx, edx
je 0x419d33
imul esi, dword [ebx + 0xc], 0x28
xor eax, eax
imul ecx, dword [ebx + 4], 0x28
add esi, dword [edi + 0x4c]
add ecx, dword [edi + 0x4c]
mov dword [ebp - 0x10c], esi
mov dword [ebp - 0xdc], ecx
cmp dword [ebp - 0xfc], eax
jle 0x4191e2
mov esi, dword [ebp - 0xfc]
mov ebx, ecx
mov edi, eax
mov ecx, ebx
call fcn.00412132
mov edx, dword [ebp - 0xe4]
push 0x28
mov dword [edx + edi*4], eax
inc edi
pop eax
add ebx, eax
cmp edi, esi
jl 0x4191aa
mov ebx, dword [ebp - 0x118]
mov esi, dword [ebp - 0x10c]
mov dword [ebp - 0xec], edi
mov edi, dword [ebp - 0x104]
mov eax, dword [ebp - 0xec]
and dword [edx + eax*4], 0
lea eax, [ebp - 0x174]
mov ecx, dword [ebp - 0xd0]
push eax
movzx eax, byte [ebx + 3]
push dword [esi]
mov ecx, dword [ecx + 8]
push dword [ebp - 0xfc]
imul eax, eax, 0x18
mov ecx, dword [eax + ecx + 4]
call fcn.00411346
add esp, 0xc
mov ebx, eax
push dword [ebp - 0xe4]
push dword [ebp - 0xd0]
call fcn.00403f63
mov eax, dword [ebp - 0x174]
cdq
sub dword [esi], eax
pop ecx
sbb dword [esi + 4], edx
mov esi, dword [ebp - 0xdc]
pop ecx
mov ecx, esi
call fcn.0041228d
cmp dword [ebp - 0x174], 0
je 0x419265
test ebx, ebx
je 0x419d33
push fcn.00403f10
push 1
push 0xffffffffffffffff
mov edx, ebx
mov ecx, esi
call fcn.004124aa
add esp, 0xc
movzx edx, byte [ebp - 0x128]
mov ecx, esi
call fcn.00411dba
jmp 0x41600e
imul esi, dword [ebx + 4], 0x28
imul ebx, dword [ebx + 8], 0x28
add esi, dword [edi + 0x4c]
add ebx, dword [edi + 0x4c]
test byte [esi + 0x1c], 0x20
jne 0x41929d
mov ecx, esi
call fcn.0041233e
test byte [esi + 0x1c], 0x20
je 0x419d33
push dword [ebx + 4]
mov ecx, dword [esi]
push dword [ebx]
call fcn.0040850f
pop ecx
jmp 0x4160c1
mov eax, dword [ebp - 0xd0]
cmp dword [eax + 0xd8], 0
jne 0x419f7e
imul eax, dword [ebx + 4], 0x28
imul ecx, dword [ebx + 0xc], 0x28
add eax, dword [edi + 0x4c]
add ecx, dword [edi + 0x4c]
mov dword [ebp - 0x10c], eax
mov dword [ebp - 0xd8], ecx
test byte [eax + 0x1c], 0x20
je 0x419331
mov esi, dword [eax]
cmp byte [esi + 0x16], 0
jne 0x4192f7
mov ecx, esi
call fcn.004085eb
mov eax, dword [ebp - 0x10c]
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x419331
mov eax, dword [ecx + 4]
mov ebx, dword [ecx]
mov dword [ebp - 0x10c], eax
mov eax, dword [ecx + 8]
mov dword [esi + 8], eax
test eax, eax
jne 0x41931a
mov ecx, esi
call fcn.004084db
push dword [ebp - 0x10c]
mov ecx, dword [ebp - 0xd8]
push ebx
call fcn.004122d9
jmp 0x4192a9
mov ecx, eax
call fcn.0041228d
jmp 0x417def
mov esi, dword [edi + 0x58]
lea eax, [esi + 1]
mov dword [edi + 0x58], eax
cmp esi, dword [edi + 0x5c]
jl 0x41936f
mov edx, dword [edi + 0x60]
mov ecx, dword [ebp - 0xd0]
mov dword [edi + 0x5c], eax
lea eax, [esi + 1]
shl eax, 4
push eax
call fcn.004041ea
mov dword [edi + 0x60], eax
pop ecx
test eax, eax
je 0x419d33
mov eax, dword [ebp - 0xd0]
shl esi, 4
add esi, dword [edi + 0x60]
mov eax, dword [eax + 0x30]
mov dword [esi], eax
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 0x34]
mov dword [esi + 4], eax
mov eax, dword [edi + 0x90]
mov dword [esi + 8], eax
jmp 0x41600e
dec dword [edi + 0x58]
mov ecx, dword [edi + 0x58]
mov ebx, dword [ebp - 0xd0]
shl ecx, 4
add ecx, dword [edi + 0x60]
mov eax, dword [ecx]
mov dword [ebx + 0x30], eax
mov eax, dword [ecx + 4]
mov dword [ebx + 0x34], eax
mov eax, dword [ecx + 8]
mov dword [edi + 0x90], eax
jmp 0x41600e
mov ecx, dword [ebp - 0xdc]
call fcn.00412243
mov ebx, dword [ebp - 0x124]
mov ecx, ebx
call fcn.00412243
mov edx, dword [ebp - 0xdc]
mov ecx, dword [ebx + 4]
mov eax, dword [ebx]
cmp dword [edx + 4], ecx
jg case.0x415e81.13
jl 0x4193fb
cmp dword [edx], eax
jae case.0x415e81.13
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp case.0x415e81.13
mov ecx, dword [ebp - 0xdc]
xor edx, edx
cmp dword [ecx + 4], edx
jl case.0x415e81.13
jg 0x415e95
cmp dword [ecx], edx
jbe case.0x415e81.13
jmp 0x415e95
mov ecx, dword [ebp - 0xdc]
xor edx, edx
cmp dword [ecx + 4], edx
jg case.0x415e81.13
jl 0x415e95
cmp dword [ecx], edx
jae case.0x415e81.13
jmp 0x415e95
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jmp 0x416d3b
imul ecx, dword [ebx + 8], 0x28
xor edx, edx
movzx esi, byte [ebx + 3]
mov eax, dword [edi + 0x24]
mov dword [ebp - 0xec], eax
add ecx, dword [edi + 0x4c]
test esi, esi
jle 0x419497
push 0x28
mov edi, eax
pop ebx
mov dword [edi + edx*4], ecx
call fcn.00415ad9
inc edx
add ecx, ebx
cmp edx, esi
jl 0x41947c
mov ebx, dword [ebp - 0x118]
mov edi, dword [ebp - 0x104]
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebp - 0xd0]
mov dword [ebp - 0x2b0], eax
imul eax, dword [ebx + 0xc], 0x28
push 8
add eax, dword [edi + 0x4c]
mov dword [ebp - 0x280], eax
inc dword [eax + 0x18]
xor eax, eax
inc eax
mov dword [ebp - 0x298], ecx
mov ecx, dword [ebp - 0x2b0]
mov word [ebp - 0x28c], ax
xor eax, eax
mov dword [ebp - 0x294], eax
mov dword [ebp - 0x284], eax
mov dword [ebp - 0x288], eax
mov dword [ebp - 0x27c], eax
mov dword [ebp - 0x278], eax
pop eax
test byte [ecx + 3], al
je 0x4194fd
mov eax, dword [ebx - 4]
mov dword [ebp - 0x278], eax
push dword [ebp - 0xec]
lea eax, [ebp - 0x2b0]
push esi
push eax
call dword [ecx + 0x10]
add esp, 0xc
cmp dword [ebp - 0x27c], 0
je 0x41954e
mov dl, 1
lea ecx, [ebp - 0x2a8]
call fcn.004128d3
push eax
push 0x51ef44
push dword [ebp - 0xd0]
lea eax, [edi + 0x80]
push eax
call fcn.0040428e
mov eax, dword [ebp - 0x27c]
add esp, 0x10
mov dword [ebp - 0xcc], eax
lea ecx, [ebp - 0x2a8]
call fcn.004120ba
jmp 0x41600e
imul esi, dword [ebx + 4], 0x28
mov edx, dword [ebx + 0x10]
add esi, dword [edi + 0x4c]
mov ecx, esi
call fcn.00412013
xor ecx, ecx
mov dword [ebp - 0xcc], eax
inc ecx
cmp eax, ecx
jne 0x4195a0
mov dl, cl
mov ecx, esi
call fcn.004128d3
push eax
push 0x51ef44
push dword [ebp - 0xd0]
lea eax, [edi + 0x80]
push eax
call fcn.0040428e
add esp, 0x10
movzx edx, byte [ebp - 0x128]
mov ecx, esi
call fcn.00411dba
mov ecx, esi
jmp 0x4166a1
mov eax, dword [ebp - 0xd0]
cmp byte [eax + 0x1c], 0
jne 0x4195cc
push str.cannot_VACUUM_from_within_a_transaction
push eax
jmp 0x4178c8
mov ecx, eax
call fcn.00431d9d
jmp 0x4171b9
imul ecx, dword [ebx + 4], 0x18
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 8]
mov ecx, dword [ecx + eax + 4]
call fcn.0040cf45
mov esi, dword [ebp - 0xd0]
mov dword [ebp - 0xcc], eax
push 4
pop edx
cmp eax, 0x65
jne 0x41676b
mov ebx, dword [ebx + 8]
dec ebx
mov dword [ebp - 0xd4], ebx
xor ebx, ebx
mov dword [ebp - 0xcc], ebx
jmp 0x416771
cmp dword [ebx + 4], 0
jne 0x419639
mov ecx, dword [ebp - 0xd0]
call fcn.00414ac7
mov ebx, dword [ebp - 0xcc]
jmp 0x417aa2
mov byte [edi + 0x8a], 1
jmp case.0x415e81.13
mov al, byte [ebx + 0xc]
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ebx + 8]
mov byte [ebp - 0x1ac], al
imul eax, dword [ebx + 4], 0x18
mov ecx, dword [ecx + 8]
push dword [ebp - 0x1ac]
mov ecx, dword [eax + ecx + 4]
call fcn.00411692
mov dword [ebp - 0xcc], eax
pop ecx
cmp eax, 6
jne 0x41600e
push dword [ebx + 0x10]
lea eax, [edi + 0x80]
push str.database_table_is_locked:__s
push dword [ebp - 0xd0]
push eax
call fcn.0040428e
add esp, 0x10
jmp 0x41600e
mov esi, dword [ebx + 0x10]
mov edx, esi
mov ecx, dword [ebp - 0xd0]
call fcn.00432aa2
mov ebx, eax
mov dword [ebp - 0xcc], ebx
test esi, esi
je 0x416014
push dword [edi + 0x80]
push dword [ebp - 0xd0]
call fcn.00403f63
mov eax, dword [esi + 8]
pop ecx
mov dword [edi + 0x80], eax
and dword [esi + 8], 0
pop ecx
jmp 0x416014
mov edx, dword [ebx + 4]
lea eax, [edi + 0x80]
mov ecx, dword [ebp - 0xd0]
push eax
push dword [ebx + 0x10]
call fcn.004327fd
pop ecx
pop ecx
jmp 0x4171b9
mov ecx, dword [ebp - 0xd0]
push 2
pop eax
mov byte [edi + 0x8c], al
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
call fcn.004329a9
mov ebx, eax
mov byte [edi + 0x8c], 0
pop ecx
mov dword [ebp - 0xcc], ebx
jmp 0x416014
mov esi, dword [ebx + 0x10]
lea ecx, [ebp - 0xf4]
and dword [ebp - 0xf4], 0
push ecx
push esi
mov eax, dword [esi]
mov dword [ebp - 0x10c], eax
call dword [eax + 0x18]
push dword [edi + 0x80]
mov dword [ebp - 0xcc], eax
push dword [ebp - 0xd0]
call fcn.00403f63
mov eax, dword [esi + 8]
xor edx, edx
mov dword [edi + 0x80], eax
add esp, 0x10
mov eax, dword [ebp - 0xcc]
mov dword [esi + 8], edx
test eax, eax
jne 0x41600e
mov eax, dword [ebp - 0xf4]
mov ecx, edi
push edx
push 0xffffffffffffffff
mov dword [eax], esi
lea eax, [ebx - 0x14]
mov edx, dword [ebx + 4]
push eax
call fcn.00415b04
add esp, 0xc
test eax, eax
je 0x4197c0
mov ecx, dword [ebp - 0xf4]
mov dword [eax + 0x58], ecx
mov ecx, dword [ebp - 0xf4]
mov ecx, dword [ecx]
mov ecx, dword [ecx]
mov dword [eax + 0x5c], ecx
jmp 0x41600e
mov eax, dword [ebp - 0xd0]
push dword [ebp - 0xf4]
mov byte [eax + 0x1e], 1
mov eax, dword [ebp - 0x10c]
call dword [eax + 0x1c]
jmp 0x4160c1
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
imul edx, dword [ebx + 0xc], 0x28
and dword [ebp - 0x10c], 0
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x13c], eax
add edx, dword [edi + 0x4c]
mov eax, dword [eax + 0x58]
mov dword [ebp - 0xe4], eax
mov ecx, dword [edx]
mov dword [ebp - 0x130], ecx
mov esi, dword [eax]
mov ecx, dword [edi + 0x24]
mov dword [ebp - 0xf4], esi
mov dword [ebp - 0xfc], ecx
mov eax, dword [esi]
mov dword [ebp - 0x11c], eax
mov eax, dword [edx + 0x28]
mov dword [ebp - 0xec], eax
test eax, eax
jle 0x419873
mov edi, dword [ebp - 0x10c]
lea ecx, [edx + 0x50]
mov edx, dword [ebp - 0xfc]
mov ebx, eax
push 0x28
pop esi
mov dword [edx + edi*4], ecx
call fcn.00415ad9
inc edi
add ecx, esi
cmp edi, ebx
jl 0x419846
mov ebx, dword [ebp - 0x118]
mov edi, dword [ebp - 0x104]
mov esi, dword [ebp - 0xf4]
mov eax, dword [ebp - 0xec]
mov ecx, dword [ebp - 0xfc]
inc dword [esi + 4]
push ecx
push eax
mov eax, dword [ebp - 0x11c]
mov byte [edi + 0x8c], 1
push dword [ebx + 0x10]
push dword [ebp - 0x130]
push dword [ebp - 0xe4]
call dword [eax + 0x20]
add esp, 0x14
mov dword [ebp - 0xcc], eax
mov byte [edi + 0x8c], 0
push dword [edi + 0x80]
push dword [ebp - 0xd0]
call fcn.00403f63
mov eax, dword [esi + 8]
mov dword [edi + 0x80], eax
and dword [esi + 8], 0
dec dword [esi + 4]
pop ecx
pop ecx
jne 0x4198e0
mov eax, dword [ebp - 0xd0]
push esi
cmp dword [eax + 0x40], 0xf03b7906
mov eax, dword [esi]
call dword [eax + 0x10]
pop ecx
cmp dword [ebp - 0xcc], 0
jne 0x419907
mov eax, dword [ebp - 0x11c]
push dword [ebp - 0xe4]
call dword [eax + 0x28]
pop ecx
test eax, eax
je 0x419907
mov eax, dword [ebx + 8]
dec eax
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x13c]
mov byte [eax + 0x1c], 0
jmp 0x41600e
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx + 0x1c], 0
jne case.0x415e81.13
mov ecx, dword [ecx + 0x58]
lea edx, [ebp - 0x1e8]
push edx
push ecx
mov esi, dword [ecx]
mov eax, dword [esi]
call dword [eax + 0x30]
push dword [edi + 0x80]
mov dword [ebp - 0xcc], eax
push dword [ebp - 0xd0]
call fcn.00403f63
mov eax, dword [esi + 8]
add esp, 0x10
mov ecx, dword [ebp - 0xd8]
mov edx, 0xbf04
mov dword [edi + 0x80], eax
and dword [esi + 8], 0
push 4
mov ax, word [ecx + 0x1c]
and ax, dx
pop edx
or ax, dx
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0x1e8]
mov dword [ecx], eax
mov eax, dword [ebp - 0x1e4]
mov dword [ecx + 4], eax
jmp 0x416765
mov eax, dword [edi + 0x30]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
imul eax, dword [ebx + 0xc], 0x28
mov dword [ebp - 0x10c], ecx
add eax, dword [edi + 0x4c]
cmp byte [ecx + 0x1c], 0
mov dword [ebp - 0xec], eax
jne 0x416c72
mov eax, dword [ecx + 0x58]
push 0x40
push 0
mov edi, dword [eax]
lea eax, [ebp - 0x2f0]
push eax
mov esi, dword [edi]
call fcn.004d9060
mov edx, dword [ebp - 0xec]
lea ecx, [ebp - 0x2e8]
add esp, 0xc
call fcn.00412484
mov eax, dword [ebp - 0x2cc]
mov ecx, 0xbf01
push dword [ebx + 8]
and eax, ecx
or eax, 1
mov word [ebp - 0x2cc], ax
lea eax, [ebp - 0x2f0]
push eax
mov eax, dword [ebp - 0x10c]
push dword [eax + 0x58]
call dword [esi + 0x2c]
mov ebx, dword [ebp - 0x104]
add esp, 0xc
mov dword [ebp - 0xcc], eax
push dword [ebx + 0x80]
push dword [ebp - 0xd0]
call fcn.00403f63
mov eax, dword [edi + 8]
movzx edx, byte [ebp - 0x128]
pop ecx
pop ecx
mov dword [ebx + 0x80], eax
lea ecx, [ebp - 0x2e8]
and dword [edi + 8], 0
call fcn.00411dba
mov ecx, dword [ebp - 0xec]
lea edx, [ebp - 0x2e8]
call fcn.00412484
mov ecx, dword [ebp - 0xec]
call fcn.004123ad
mov edi, ebx
jmp 0x4166a6
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0x10c], ecx
cmp byte [ecx + 0x1c], 0
jne case.0x415e81.13
mov eax, dword [ecx + 0x58]
mov esi, dword [eax]
mov eax, dword [esi]
inc dword [esi + 4]
mov byte [edi + 0x8c], 1
push dword [ecx + 0x58]
mov dword [ebp - 0xec], eax
call dword [eax + 0x24]
pop ecx
push dword [edi + 0x80]
mov dword [ebp - 0xcc], eax
push dword [ebp - 0xd0]
mov byte [edi + 0x8c], 0
call fcn.00403f63
mov eax, dword [esi + 8]
mov dword [edi + 0x80], eax
and dword [esi + 8], 0
dec dword [esi + 4]
pop ecx
pop ecx
jne 0x419af3
mov eax, dword [ebp - 0xd0]
push esi
cmp dword [eax + 0x40], 0xf03b7906
mov eax, dword [esi]
call dword [eax + 0x10]
pop ecx
mov eax, dword [ebp - 0xcc]
test eax, eax
jne 0x417def
mov eax, dword [ebp - 0x10c]
push dword [eax + 0x58]
mov eax, dword [ebp - 0xec]
call dword [eax + 0x28]
pop ecx
test eax, eax
jne 0x41600e
jmp 0x417def
mov esi, dword [ebx + 0x10]
imul ebx, dword [ebx + 4], 0x28
add ebx, dword [edi + 0x4c]
test byte [ebx + 0x1c], 0x12
jne 0x419b47
movzx edx, byte [ebp - 0x128]
mov ecx, ebx
call fcn.00411f94
test eax, eax
jne 0x419d33
inc dword [esi + 4]
push dword [ebx + 0x14]
mov eax, dword [esi]
push esi
call dword [eax + 0x4c]
push dword [edi + 0x80]
mov ebx, dword [ebp - 0xd0]
push ebx
mov dword [ebp - 0xcc], eax
call fcn.00403f63
mov eax, dword [esi + 8]
add esp, 0x10
mov dword [edi + 0x80], eax
and dword [esi + 8], 0
dec dword [esi + 4]
jne 0x41600e
mov eax, dword [esi]
push esi
call dword [eax + 0x10]
jmp 0x4160c1
mov esi, dword [ebx + 0x10]
xor edx, edx
mov eax, dword [ebx + 8]
mov dword [ebp - 0x10c], esi
mov dword [ebp - 0xec], eax
mov ecx, dword [esi]
mov dword [ebp - 0xe4], ecx
cmp dword [ecx + 0x34], edx
jne 0x419bc0
push str.read_only_table
push dword [ebp - 0xd0]
jmp 0x4178c8
mov ecx, dword [edi + 0x24]
mov dword [ebp - 0xfc], ecx
imul ecx, dword [ebx + 0xc], 0x28
add ecx, dword [edi + 0x4c]
test eax, eax
jle 0x419c0a
mov ebx, dword [ebp - 0xec]
mov edi, dword [ebp - 0xfc]
push 0x28
pop esi
call fcn.00415ad9
mov dword [edi + edx*4], ecx
add ecx, esi
inc edx
cmp edx, ebx
jl 0x419be3
mov ebx, dword [ebp - 0x118]
mov esi, dword [ebp - 0x10c]
mov edi, dword [ebp - 0x104]
mov eax, dword [ebp - 0xec]
inc dword [esi + 4]
lea ecx, [ebp - 0x1f0]
push ecx
push dword [ebp - 0xfc]
push eax
mov eax, dword [ebp - 0xe4]
push esi
call dword [eax + 0x34]
push dword [edi + 0x80]
mov dword [ebp - 0xcc], eax
push dword [ebp - 0xd0]
call fcn.00403f63
mov eax, dword [esi + 8]
xor edx, edx
mov dword [edi + 0x80], eax
add esp, 0x18
dec dword [esi + 4]
mov dword [esi + 8], edx
jne 0x419c68
mov eax, dword [ebp - 0xd0]
push esi
cmp dword [eax + 0x40], 0xf03b7906
mov eax, dword [esi]
call dword [eax + 0x10]
xor edx, edx
pop ecx
cmp dword [ebx + 4], edx
mov ebx, dword [ebp - 0xcc]
mov esi, dword [ebp - 0xd0]
je 0x419c8f
test ebx, ebx
jne 0x419c8f
mov eax, dword [ebp - 0x1f0]
mov dword [esi + 0x30], eax
mov eax, dword [ebp - 0x1ec]
mov dword [esi + 0x34], eax
inc dword [edi + 0x90]
jmp 0x41601a
imul ecx, dword [ebx + 4], 0x18
lea edx, [ebp - 0x184]
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 8]
mov eax, dword [ecx + eax + 4]
mov eax, dword [eax + 4]
mov ecx, dword [eax]
call fcn.00409a34
mov esi, dword [ebp - 0xd0]
mov ebx, eax
mov dword [ebp - 0xcc], ebx
push 4
test ebx, ebx
jne 0x416c31
mov ecx, dword [ebp - 0xd8]
pop eax
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0x184]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x41601a
cmp dword [ebx + 0x10], 0
je case.0x415e81.13
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 0x98]
test eax, eax
je 0x41600e
mov ecx, dword [ebp - 0xd0]
push dword [ebx + 0x10]
push dword [ecx + 0x9c]
call eax
jmp 0x4192a9
push 9
pop ebx
jmp 0x419d57
lea ecx, [ebp - 0x238]
call fcn.004120ba
mov esi, dword [ebp - 0xd0]
push 0x51f5b4
lea eax, [edi + 0x80]
mov byte [esi + 0x1e], 1
push esi
push eax
call fcn.0040428e
add esp, 0xc
push 7
pop eax
mov ebx, eax
mov dword [ebp - 0xcc], ebx
mov ecx, edi
mov dword [edi + 0x68], ebx
call fcn.00413dcb
cmp dword [ebp - 0xcc], 0xc0a
jne 0x419d7d
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x1e], 1
xor eax, eax
inc eax
mov dword [ebp - 0xe0], eax
mov ecx, dword [ebp - 0x188]
call fcn.0040b254
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0xe0]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.004d89fb
mov esp, ebp
pop ebp
ret
push 0x14
pop ebx
jmp 0x419e3a
mov eax, dword [ebp - 0xd4]
mov dword [edi + 0x64], eax
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x1c], bl
mov dword [ebp - 0xe0], ecx
mov dword [edi + 0x68], ecx
jmp 0x419d86
test esi, esi
je 0x419df2
mov ecx, ebx
call fcn.00439294
mov byte [ebx + 0x1c], 1
mov ecx, ebx
call fcn.0043900f
cmp dword [edi + 0x68], 0
push 1
pop eax
push 0x65
pop ecx
cmove eax, ecx
jmp 0x419d80
mov byte [ebx + 0x1c], cl
mov ecx, edi
call fcn.00413dcb
push 5
pop ecx
cmp eax, ecx
jne 0x419ddc
mov eax, dword [ebp - 0xd4]
mov dword [edi + 0x64], eax
xor eax, eax
inc eax
sub al, byte [ebp - 0x10c]
mov byte [ebx + 0x1c], al
mov eax, ecx
mov dword [edi + 0x68], ecx
jmp 0x419d80
mov eax, dword [ebp - 0xd4]
mov dword [edi + 0x64], eax
jmp 0x419dc2
mov ecx, esi
call fcn.00414771
mov ebx, dword [ebp - 0xcc]
mov edx, dword [ebp - 0xd0]
push 7
pop eax
cmp byte [edx + 0x1e], 0
cmovne ebx, eax
mov dword [ebp - 0xcc], ebx
cmp ebx, 0xc0a
je 0x419d5d
movzx ecx, bl
cmp ecx, 0x65
jg 0x419e76
call fcn.00439335
jmp 0x419e7b
mov edi, dword [ebp - 0x104]
push 0xd
pop ebx
jmp 0x419e3a
mov eax, str.unknown_error
push eax
push 0x51ef44
push edx
lea eax, [edi + 0x80]
push eax
call fcn.0040428e
add esp, 0x10
jmp 0x419d5d
mov edi, dword [ebp - 0x104]
jmp 0x4166ae
mov eax, ebx
jmp 0x4166b4
mov eax, dword [ebx + 4]
mov dword [edi + 0x68], eax
mov eax, dword [ebp - 0xd4]
mov dword [edi + 0x64], eax
mov eax, dword [ebx + 8]
mov dword [edi + 0x70], eax
cmp dword [ebx + 0x10], 0
je 0x419ee0
push dword [ebx + 0x10]
lea eax, [edi + 0x80]
push 0x51ef44
push dword [ebp - 0xd0]
push eax
call fcn.0040428e
add esp, 0x10
mov ecx, edi
call fcn.00413dcb
push 5
pop ecx
cmp eax, ecx
je 0x419dc2
cmp dword [edi + 0x68], 0
push 1
pop eax
push 0x65
pop ecx
cmovne ecx, eax
mov eax, ecx
jmp 0x419d80
mov eax, dword [edi + 0x54]
push 2
pop ecx
add eax, ecx
or eax, 1
mov dword [edi + 0x54], eax
imul esi, dword [ebx + 4], 0x28
add esi, dword [edi + 0x4c]
mov dword [edi + 0x84], esi
cmp dword [ebx + 8], 0
jle 0x419f52
push 0x28
pop edi
mov ecx, esi
call fcn.00411f4a
mov ecx, esi
call fcn.00415ad9
mov eax, dword [ebp - 0x178]
add esi, edi
inc eax
mov dword [ebp - 0x178], eax
cmp eax, dword [ebx + 8]
jl 0x419f2a
mov edi, dword [ebp - 0x104]
mov esi, dword [ebp - 0xd0]
cmp byte [esi + 0x1e], 0
jne 0x419d39
mov eax, dword [ebp - 0xd4]
inc dword [edi + 0x50]
inc eax
mov dword [edi + 0x64], eax
mov dword [ebp - 0xe0], 0x64
jmp 0x419d86
push 9
pop esi
mov ecx, esi
mov dword [ebp - 0xcc], esi
mov dword [edi + 0x68], esi
call fcn.00439335
push eax
push 0x51ef44
push dword [ebp - 0xd0]
lea eax, [edi + 0x80]
push eax
call fcn.0040428e
add esp, 0x10
mov ebx, esi
jmp 0x419d5d