Function at 0x46ea66
Capabilities:
Encrypt data using speck
Execute anti-debugging instructions
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x1ac
mov dword [ebp - 0xfc], eax
mov eax, dword [eax + 0x68]
mov dword [ebp - 0x10c], eax
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax]
mov dword [ebp - 0x100], eax
mov al, byte [eax + 0x54]
mov byte [ebp - 0x11d], al
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x58]
mov dword [ebp - 0x108], eax
mov eax, dword [ebp - 0x100]
mov ebx, dword [eax + 0x20]
mov eax, dword [ebp - 0xfc]
cmp dword [eax + 0xa0], 0
je 0x46eac4
call fcn.0040394d
mov eax, dword [ebp - 0x100]
mov dword [ebp - 0x150], 0xffffffff
mov dword [ebp - 0x14c], 0xffffffff
cmp dword [eax + 0x184], 0
je 0x46eb0f
mov ecx, dword [eax + 0x18c]
mov eax, dword [ebp - 0xfc]
xor edx, edx
mov dword [ebp - 0x14c], 0
mov eax, dword [eax + 0xb4]
div ecx
sub ecx, edx
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0xfc]
cmp dword [eax + 0x24], 7
je 0x477152
mov dword [eax + 0x24], 0
mov dword [eax + 0x38], 0
mov dword [eax + 0x3c], 0
mov eax, dword [ebp - 0x100]
mov dword [eax + 0x1d8], 0
add eax, 0x138
mov dword [ebp - 0x168], eax
mov eax, dword [ebp - 0x100]
mov eax, dword [eax + 0x138]
test eax, eax
jne 0x476e0f
mov eax, dword [ebp - 0xfc]
and ebx, 0x400
mov dword [ebp - 0x140], 0
mov dword [ebp - 0x13c], 0
mov dword [ebp - 0x110], 0
mov byte [ebp - 0x11e], 0
mov dword [ebp - 0xf8], 0
imul eax, dword [eax + 0x20], 0x28
mov dword [ebp - 0x194], ebx
add eax, dword [ebp - 0x10c]
mov dword [ebp - 0xf4], eax
movzx eax, byte [ebp - 0x11d]
mov dword [ebp - 0x11c], eax
add dword [ebp - 0x140], 1
mov dword [ebp - 0x144], 0
adc dword [ebp - 0x13c], 0
cmp dword [ebp - 0x194], 0
je 0x46ec1f
mov eax, dword [ebp - 0xf4]
add dword [eax + 0x18], 1
adc dword [eax + 0x1c], 0
add eax, 0x20
mov dword [ebp - 0x144], eax
rdtsc
mov edi, dword [ebp - 0xf4]
mov dword [ebp - 0x170], eax
mov eax, dword [ebp - 0x170]
mov dword [ebp - 0x16c], edx
mov edx, dword [ebp - 0x16c]
sub dword [edi + 0x20], eax
sbb dword [edi + 0x24], edx
mov eax, dword [ebp - 0xf4]
movzx ecx, byte [eax]
cmp cl, 0xb5
ja case.0x46ec3a.89
movzx eax, cl
mov dword [ebp - 0x128], eax
jmp dword [eax*4 + 0x4f5ba0]
mov eax, dword [ebp - 0xf4]
imul edx, dword [eax + 4], 0x28
sub eax, dword [ebp - 0x10c]
add edx, dword [ebp - 0x108]
sar eax, 3
imul eax, eax, 0xcccccccd
mov word [edx + 0x10], 4
mov dword [edx], eax
sar eax, 0x1f
mov dword [edx + 4], eax
mov eax, dword [ebp - 0xf4]
mov edi, dword [ebp - 0x10c]
imul eax, dword [eax + 8], 0x28
lea eax, [edi + eax - 0x28]
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0x168]
mov eax, dword [eax]
test eax, eax
jne 0x476e4c
mov eax, dword [ebp - 0x13c]
cmp dword [ebp - 0x14c], eax
ja case.0x46ec3a.89
jb 0x46ecbe
mov eax, dword [ebp - 0x140]
cmp dword [ebp - 0x150], eax
ja case.0x46ec3a.89
mov eax, dword [ebp - 0x100]
mov eax, dword [eax + 0x184]
test eax, eax
je case.0x46ec3a.89
mov edi, dword [ebp - 0x100]
xor ebx, ebx
mov edx, dword [edi + 0x188]
mov ecx, dword [edi + 0x18c]
add dword [ebp - 0x150], ecx
adc dword [ebp - 0x14c], ebx
mov dword [esp], edx
call eax
test eax, eax
je 0x46ec98
mov dword [ebp - 0x150], 0xffffffff
mov dword [ebp - 0x14c], 0xffffffff
mov dword [ebp - 0xf8], 9
jmp 0x476e92
mov eax, dword [ebp - 0xf4]
imul eax, dword [eax + 4], 0x28
add eax, dword [ebp - 0x108]
test byte [eax + 0x10], 4
je case.0x46ec3a.89
imul eax, dword [eax], 0x28
add eax, dword [ebp - 0x10c]
mov dword [ebp - 0xf4], eax
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edi, dword [ebp - 0xf4]
imul eax, dword [eax + 4], 0x28
mov edi, dword [edi + 0xc]
add eax, dword [ebp - 0x108]
lea edx, [edi - 1]
mov dword [ebp - 0x118], edi
mov dword [eax], edx
sar edx, 0x1f
mov word [eax + 0x10], 4
mov dword [eax + 4], edx
mov eax, dword [ebp - 0xf4]
cmp dword [eax + 8], 0
jmp 0x470528
mov eax, dword [ebp - 0xf4]
mov edi, dword [ebp - 0x10c]
imul eax, dword [eax + 4], 0x28
add eax, dword [ebp - 0x108]
imul edx, dword [eax], 0x28
imul edx, dword [edi + edx + 8], 0x28
mov word [eax + 0x10], 0
lea edi, [edi + edx - 0x28]
mov dword [ebp - 0xf4], edi
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0xf4]
sub ecx, dword [ebp - 0x10c]
imul edx, dword [eax + 4], 0x28
sar ecx, 3
add edx, dword [ebp - 0x108]
imul ecx, ecx, 0xcccccccd
mov eax, dword [edx]
mov dword [edx], ecx
sar ecx, 0x1f
mov word [edx + 0x10], 4
mov dword [edx + 4], ecx
imul eax, eax, 0x28
add eax, dword [ebp - 0x10c]
mov dword [ebp - 0xf4], eax
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edi, dword [ebp - 0x108]
imul eax, dword [eax + 0xc], 0x28
test byte [edi + eax + 0x10], 1
je case.0x46ec3a.89
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0xd0]
test eax, eax
je 0x46eeb6
mov edi, dword [ebp - 0xf4]
cmp dword [edi + 4], 0
jne 0x46eeb6
mov edx, dword [eax + 4]
mov edi, dword [ebp - 0xfc]
mov ecx, dword [edi + 0x28]
mov ebx, dword [edi + 0x2c]
mov dword [edi + 0xd0], edx
dec dword [edi + 0xd8]
mov edi, dword [ebp - 0x100]
add dword [edi + 0x70], ecx
adc dword [edi + 0x74], ebx
mov dword [edi + 0x68], ecx
mov dword [edi + 0x6c], ebx
call fcn.00457e8c
mov edi, dword [ebp - 0xf4]
cmp dword [edi + 8], 4
mov edi, dword [ebp - 0xfc]
mov edx, dword [edi + 0x68]
jne 0x46ee91
imul eax, eax, 0x28
mov eax, dword [edx + eax + 8]
dec eax
mov edi, dword [ebp - 0xfc]
mov dword [ebp - 0x10c], edx
imul eax, eax, 0x28
mov edi, dword [edi + 0x58]
add eax, edx
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0x108], edi
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edi, dword [ebp - 0xfc]
mov eax, dword [eax + 4]
mov dword [edi + 0x24], eax
mov edi, dword [ebp - 0xf4]
test eax, eax
mov edx, dword [edi + 8]
mov edi, dword [ebp - 0xfc]
mov byte [edi + 0x92], dl
je 0x46efc0
mov eax, dword [ebp - 0xf4]
movzx eax, word [eax + 2]
test ax, ax
je 0x46ef4e
mov eax, dword [eax*4 + 0x4fcfc8]
mov dword [esp + 4], str._s_constraint_failed
mov dword [esp], edi
mov dword [esp + 8], eax
call fcn.00429ba8
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x46ef71
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x7c]
mov dword [esp + 4], str._z:__s
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x100]
mov dword [esp], eax
call fcn.00429c52
mov edi, dword [ebp - 0xfc]
mov dword [edi + 0x7c], eax
jmp 0x46ef71
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 0x10]
mov dword [esp + 4], 0x4f3149
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xfc]
mov dword [esp], eax
call fcn.00429ba8
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x7c]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0xc8]
mov dword [esp + 4], str.abort_at__d_in___s_:__s
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0xf4]
sub eax, dword [ebp - 0x10c]
sar eax, 3
imul eax, eax, 0xcccccccd
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 4]
mov dword [esp], eax
call fcn.0042ac7c
mov eax, dword [ebp - 0xfc]
call fcn.00458162
mov esi, eax
mov eax, dword [ebp - 0xfc]
cmp esi, 5
jne 0x4717f1
mov dword [eax + 0x24], 5
jmp 0x47704d
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x58]
call fcn.00411de9
mov edi, dword [ebp - 0xf4]
mov edx, dword [edi + 4]
mov dword [eax], edx
sar edx, 0x1f
mov dword [eax + 4], edx
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x58]
call fcn.00411de9
mov edi, dword [ebp - 0xf4]
mov edx, dword [edi + 0x10]
mov ecx, dword [edx]
mov ebx, dword [edx + 4]
mov dword [eax], ecx
mov dword [eax + 4], ebx
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x58]
call fcn.00411de9
mov edi, dword [ebp - 0xf4]
mov word [eax + 0x10], 8
mov edx, dword [edi + 0x10]
fld qword [edx]
fstp qword [eax]
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x58]
call fcn.00411de9
mov ebx, eax
mov eax, dword [ebp - 0xf4]
mov esi, dword [eax + 0x10]
mov eax, esi
call fcn.00409dfb
cmp byte [ebp - 0x11d], 1
mov edi, dword [ebp - 0xf4]
mov dword [edi + 4], eax
je 0x46f147
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov edx, esi
mov dword [esp], 0xffffffff
mov dword [esp + 4], 0xffffffff
mov eax, ebx
call fcn.0041ea9a
test eax, eax
mov dword [ebp - 0xf8], eax
jne 0x47712d
mov edx, dword [ebp - 0x11c]
mov eax, ebx
call fcn.0041e888
test eax, eax
jne 0x477183
mov eax, dword [ebp - 0xf4]
or word [ebx + 0x10], 0x2000
mov dword [ebx + 0x18], 0
cmp byte [eax + 1], 0xfa
jne 0x46f12b
mov eax, dword [eax + 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x100]
mov dword [esp], eax
call fcn.0040b317
mov eax, dword [ebp - 0xf4]
mov edi, dword [ebp - 0xf4]
mov byte [eax + 1], 0xfa
mov eax, dword [ebx + 8]
mov dword [edi + 0x10], eax
mov eax, dword [ebx + 0xc]
mov dword [edi + 4], eax
mov eax, dword [ebp - 0xf4]
mov edi, dword [ebp - 0x100]
mov edi, dword [edi + 0x78]
cmp dword [eax + 4], edi
jg 0x47712d
mov byte [eax], 0x49
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x58]
call fcn.00411de9
mov edi, dword [ebp - 0xf4]
mov word [eax + 0x10], 0x2202
mov cl, byte [ebp - 0x11d]
mov edx, dword [edi + 0x10]
mov dword [eax + 8], edx
mov edx, dword [edi + 4]
mov byte [eax + 0x12], cl
mov dword [eax + 0xc], edx
mov edx, dword [edi + 0xc]
test edx, edx
jle case.0x46ec3a.89
imul edx, edx, 0x28
add edx, dword [ebp - 0x108]
movzx ecx, word [edi + 2]
cmp dword [edx + 4], 0
jne case.0x46ec3a.89
cmp dword [edx], ecx
jne case.0x46ec3a.89
mov word [eax + 0x10], 0x2210
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x58]
call fcn.00411de9
mov ebx, eax
mov eax, dword [ebp - 0xf4]
mov edi, dword [eax + 0xc]
sub edi, dword [eax + 8]
cmp dword [eax + 4], 1
mov dword [ebx + 0xc], 0
sbb esi, esi
and si, 0xff00
add si, 0x101
mov word [ebx + 0x10], si
test edi, edi
jle case.0x46ec3a.89
add ebx, 0x28
dec edi
mov eax, ebx
call fcn.0040b56e
mov word [ebx + 0x10], si
mov dword [ebx + 0xc], 0
jmp 0x46f20f
mov eax, dword [ebp - 0xf4]
imul edx, dword [eax + 4], 0x28
add edx, dword [ebp - 0x108]
mov eax, dword [edx + 0x10]
and eax, 0xffffffc0
or eax, 1
mov word [edx + 0x10], ax
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x58]
call fcn.00411de9
mov ebx, eax
mov eax, dword [ebp - 0xf4]
mov edi, dword [eax + 0x10]
test edi, edi
jne 0x46f2b0
mov esi, dword [eax + 4]
mov eax, ebx
call fcn.0040b6b8
mov word [ebx + 0x10], 0x410
mov dword [ebx + 0xc], 0
mov eax, ebx
test esi, esi
mov byte [ebx + 0x12], 1
mov dword [ebx + 8], 0
cmovs esi, edi
mov dword [ebx], esi
call fcn.0041e2ee
test eax, eax
je 0x46f2dc
jmp 0x477183
mov eax, dword [ebp - 0xf4]
mov dword [esp + 0xc], 0
mov edx, edi
mov dword [esp + 8], 0
mov eax, dword [eax + 4]
mov dword [esp], eax
sar eax, 0x1f
mov dword [esp + 4], eax
mov eax, ebx
call fcn.0041ea9a
mov al, byte [ebp - 0x11d]
mov byte [ebx + 0x12], al
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edi, dword [ebp - 0xfc]
imul eax, dword [eax + 4], 0x28
mov edx, dword [edi + 0x64]
lea esi, [edx + eax - 0x28]
mov eax, esi
call fcn.0040386e
test eax, eax
jne 0x47712d
mov eax, dword [ebp - 0xf4]
imul ebx, dword [eax + 8], 0x28
add ebx, dword [ebp - 0x108]
test word [ebx + 0x10], 0x9000
je 0x46f32f
mov eax, ebx
call fcn.0040b56e
mov ecx, 5
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0x10]
and ah, 0xaf
or ax, 0x2040
mov word [ebx + 0x10], ax
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x128], eax
mov eax, dword [ebp - 0xf4]
imul eax, dword [eax + 4], 0x28
add eax, dword [ebp - 0x108]
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0xf4]
imul ebx, dword [eax + 8], 0x28
add ebx, dword [ebp - 0x108]
mov eax, ebx
mov edi, ebx
call fcn.0040b6b8
mov eax, dword [ebp - 0x118]
mov ecx, 0xa
mov esi, dword [ebp - 0x118]
rep movsd dword es:[edi], dword [esi]
mov word [eax + 0x10], 1
mov dword [eax + 0x18], 0
test byte [ebx + 0x11], 0x40
jne 0x46f3c6
add dword [ebp - 0x118], 0x28
add ebx, 0x28
dec dword [ebp - 0x128]
jne 0x46f380
jmp case.0x46ec3a.89
mov eax, ebx
call fcn.0041e397
test eax, eax
je 0x46f3af
jmp 0x477183
mov eax, dword [ebp - 0xf4]
xor esi, esi
imul edi, dword [eax + 4], 0x28
imul ebx, dword [eax + 8], 0x28
mov eax, dword [eax + 0xc]
add edi, dword [ebp - 0x108]
add ebx, dword [ebp - 0x108]
mov dword [ebp - 0x118], eax
mov ecx, 0x4000
mov edx, edi
mov eax, ebx
call fcn.00411eab
test byte [ebx + 0x11], 0x40
jne 0x46f41a
mov ax, word [ebx + 0x10]
test ah, 8
jne 0x46f42a
jmp 0x46f43d
mov eax, ebx
call fcn.0041e397
test eax, eax
je 0x46f40f
jmp 0x477183
mov ecx, dword [ebp - 0xf4]
test byte [ecx + 2], 2
je 0x46f43d
and ah, 0xf7
mov word [ebx + 0x10], ax
cmp dword [ebp - 0x118], esi
je case.0x46ec3a.89
add ebx, 0x28
add edi, 0x28
inc esi
jmp 0x46f3fb
mov eax, dword [ebp - 0xf4]
mov ecx, 0x4000
imul edx, dword [eax + 4], 0x28
imul eax, dword [eax + 8], 0x28
add edx, dword [ebp - 0x108]
add eax, dword [ebp - 0x108]
call fcn.00411eab
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edi, dword [ebp - 0x108]
imul eax, dword [eax + 4], 0x28
mov edx, dword [edi + eax]
mov ecx, dword [edi + eax + 4]
mov eax, dword [ebp - 0xf4]
imul eax, dword [eax + 8], 0x28
add eax, edi
call fcn.0040b5af
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xfc]
xor edx, edx
call fcn.00429bd9
test eax, eax
mov dword [ebp - 0xf8], eax
je case.0x46ec3a.89
jmp 0x476e92
mov eax, dword [ebp - 0xfc]
mov edi, dword [ebp - 0xfc]
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0xf8], eax
add eax, 2
or eax, 1
mov dword [edi + 0x1c], eax
mov eax, dword [ebp - 0xf4]
imul esi, dword [eax + 4], 0x28
mov eax, dword [ebp - 0x100]
add esi, dword [ebp - 0x108]
mov dword [edi + 0x78], esi
cmp byte [eax + 0x57], 0
jne 0x477183
test byte [eax + 0x5e], 4
je 0x46f53e
mov eax, dword [ebp - 0x100]
mov dword [esp + 0xc], 0
mov dword [esp + 8], edi
mov eax, dword [eax + 0xdc]
mov dword [esp], 4
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x100]
call dword [eax + 0xd8]
mov eax, dword [ebp - 0xf4]
sub eax, dword [ebp - 0x10c]
mov esi, 0x64
mov edi, dword [ebp - 0xfc]
sar eax, 3
imul eax, eax, 0xcccccccd
inc eax
mov dword [edi + 0x20], eax
jmp 0x47704d
mov eax, dword [ebp - 0xf4]
imul eax, dword [eax + 4], 0x28
add eax, dword [ebp - 0x108]
mov dword [ebp - 0x128], eax
mov eax, dword [ebp - 0xf4]
imul ebx, dword [eax + 8], 0x28
imul eax, dword [eax + 0xc], 0x28
add ebx, dword [ebp - 0x108]
add eax, dword [ebp - 0x108]
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x128]
mov eax, dword [eax + 0x10]
mov word [ebp - 0x130], ax
or eax, dword [ebx + 0x10]
test al, 1
je 0x46f5c4
mov eax, dword [ebp - 0x118]
call fcn.0040b56e
jmp case.0x46ec3a.89
test byte [ebp - 0x130], 0x12
jne 0x46f5e2
mov edx, dword [ebp - 0x11c]
mov eax, dword [ebp - 0x128]
xor ecx, ecx
call fcn.0041e8ab
jmp 0x46f5f8
test word [ebp - 0x130], 0x400
je 0x46f613
mov eax, dword [ebp - 0x128]
call fcn.0041e2ee
test eax, eax
jne 0x477183
mov eax, dword [ebp - 0x128]
mov eax, dword [eax + 0x10]
and eax, 0xfffffffd
mov word [ebp - 0x130], ax
mov eax, dword [ebx + 0x10]
test al, 0x12
mov word [ebp - 0x138], ax
jne 0x46f632
mov edx, dword [ebp - 0x11c]
xor ecx, ecx
mov eax, ebx
call fcn.0041e8ab
jmp 0x46f644
test word [ebp - 0x138], 0x400
je 0x46f659
mov eax, ebx
call fcn.0041e2ee
test eax, eax
jne 0x477183
mov eax, dword [ebx + 0x10]
and eax, 0xfffffffd
mov word [ebp - 0x138], ax
mov edi, dword [ebp - 0x128]
mov eax, dword [ebx + 0xc]
add eax, dword [edi + 0xc]
mov dword [ebp - 0x160], eax
mov dword [ebp - 0x158], eax
sar eax, 0x1f
mov dword [ebp - 0x154], eax
mov eax, dword [ebp - 0x100]
mov eax, dword [eax + 0x78]
mov edi, eax
sar edi, 0x1f
cmp dword [ebp - 0x154], edi
jg 0x47712d
jl 0x46f6a2
cmp dword [ebp - 0x160], eax
ja 0x47712d
mov eax, dword [ebp - 0x160]
xor ecx, ecx
cmp ebx, dword [ebp - 0x118]
lea edx, [eax + 2]
mov eax, dword [ebp - 0x118]
sete cl
call fcn.0041db23
test eax, eax
jne 0x477183
mov eax, dword [ebp - 0x118]
mov edi, dword [ebp - 0x118]
mov eax, dword [eax + 0x10]
mov word [ebp - 0x148], ax
and ax, 0xf240
or eax, 2
cmp ebx, edi
mov word [edi + 0x10], ax
je 0x46f705
mov eax, dword [edi + 8]
mov esi, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
mov edi, eax
mov eax, dword [ebp - 0x138]
rep movsb byte es:[edi], byte [esi]
mov word [ebx + 0x10], ax
mov edi, dword [ebp - 0x118]
mov eax, dword [ebx + 0xc]
add eax, dword [edi + 8]
mov edi, dword [ebp - 0x128]
cmp byte [ebp - 0x11d], 1
mov esi, dword [edi + 8]
mov ecx, dword [edi + 0xc]
mov edi, eax
mov eax, dword [ebp - 0x128]
rep movsb byte es:[edi], byte [esi]
mov edi, dword [ebp - 0x130]
mov word [eax + 0x10], di
jbe 0x46f752
mov eax, dword [ebp - 0x160]
and eax, 0xfffffffe
mov dword [ebp - 0x158], eax
sar eax, 0x1f
mov dword [ebp - 0x154], eax
mov edi, dword [ebp - 0x118]
mov eax, dword [ebp - 0x158]
mov edx, dword [edi + 8]
mov byte [edx + eax], 0
mov edx, dword [edi + 8]
mov byte [edx + eax + 1], 0
mov eax, edi
or word [edi + 0x10], 0x200
mov edi, dword [ebp - 0x158]
mov dword [eax + 0xc], edi
mov edi, eax
mov al, byte [ebp - 0x11d]
mov byte [edi + 0x12], al
jmp case.0x46ec3a.89
mov edi, dword [ebp - 0xf4]
mov eax, dword [ebp - 0xf4]
imul edx, dword [edi + 8], 0x28
imul eax, dword [eax + 4], 0x28
mov edi, dword [ebp - 0xf4]
add edx, dword [ebp - 0x108]
add eax, dword [ebp - 0x108]
imul ecx, dword [edi + 0xc], 0x28
mov dword [ebp - 0x130], edx
mov edx, dword [edx + 0x10]
add ecx, dword [ebp - 0x108]
mov dword [ebp - 0x138], eax
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x128], ecx
mov ecx, eax
and ecx, edx
and cl, 4
je 0x46fb73
mov eax, dword [ebp - 0x138]
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x130]
mov dword [ebp - 0x114], edx
mov esi, dword [eax]
mov edi, dword [eax + 4]
mov eax, dword [ebp - 0xf4]
mov dword [ebp - 0x80], esi
mov dword [ebp - 0x7c], edi
mov al, byte [eax]
cmp al, 0x6b
je 0x46f844
ja 0x46f82f
cmp al, 0x6a
jne 0x46faee
mov edx, dword [ebp - 0x118]
mov ecx, dword [ebp - 0x114]
jmp 0x46f872
cmp al, 0x6c
je 0x46f8f4
cmp al, 0x6d
je 0x46fa89
jmp 0x46faee
mov eax, dword [ebp - 0x114]
add eax, 0x80000000
or eax, dword [ebp - 0x118]
je 0x46f8de
mov ecx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x114]
neg ecx
adc ebx, 0
mov edx, ecx
neg ebx
mov ecx, ebx
lea eax, [ebp - 0x80]
call fcn.00401ecb
test eax, eax
je 0x46fb48
mov eax, dword [ebp - 0x138]
call fcn.00419136
mov eax, dword [ebp - 0x130]
fstp qword [ebp - 0x118]
call fcn.00419136
mov eax, dword [ebp - 0xf4]
fld qword [ebp - 0x118]
mov al, byte [eax]
cmp al, 0x6b
je 0x46fbc5
ja 0x46f8c5
cmp al, 0x6a
jne 0x46fbf0
faddp st(1)
jmp 0x46fbcb
cmp al, 0x6c
je 0x46fbc9
cmp al, 0x6d
je 0x46fbd6
fstp st(0)
fstp st(0)
jmp 0x46fbf4
test edi, edi
jns 0x46f882
mov eax, esi
mov edx, edi
add eax, 0
adc edx, 0x80000000
jmp 0x46fb42
cmp dword [ebp - 0x114], 0
jl 0x46f97c
jg 0x46f908
cmp dword [ebp - 0x118], 0
jbe 0x46f97c
mov eax, dword [ebp - 0x118]
mov edx, dword [ebp - 0x114]
mov dword [esp], 0xffffffff
mov dword [esp + 4], 0x7fffffff
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
call fcn.004e9fbc
cmp edi, edx
jg 0x46f882
jl 0x46f942
cmp esi, eax
ja 0x46f882
mov eax, dword [ebp - 0x118]
mov edx, dword [ebp - 0x114]
mov dword [esp], 0
mov dword [esp + 4], 0x80000000
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
call fcn.004e9fbc
cmp edi, edx
jl 0x46f882
jg 0x46fa66
cmp esi, eax
jmp 0x46f9ce
mov eax, dword [ebp - 0x114]
or eax, dword [ebp - 0x118]
je 0x46fa66
cmp edi, 0
jl 0x46f9d9
jg 0x46f99a
cmp esi, 0
jbe 0x46f9d9
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
mov dword [esp], 0
mov dword [esp + 4], 0x80000000
call fcn.004e9fbc
cmp dword [ebp - 0x114], edx
jl 0x46f882
jg 0x46fa66
cmp dword [ebp - 0x118], eax
jb 0x46f882
jmp 0x46fa66
mov eax, edi
or eax, esi
je 0x46fa66
lea edx, [edi - 0x80000000]
mov eax, esi
or eax, edx
je 0x46f882
mov ecx, dword [ebp - 0x114]
mov eax, dword [ebp - 0x118]
lea edx, [ecx - 0x80000000]
or eax, edx
je 0x46f882
mov eax, esi
mov edx, edi
mov dword [esp], 1
neg eax
mov dword [esp + 4], 0x80000000
adc edx, 0
mov dword [ebp - 0x158], eax
mov eax, dword [ebp - 0x118]
neg edx
mov dword [ebp - 0x154], edx
mov edx, dword [ebp - 0x114]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
call fcn.004e9fbc
cmp dword [ebp - 0x154], edx
jg 0x46f882
jl 0x46fa66
cmp dword [ebp - 0x158], eax
ja 0x46f882
mov eax, dword [ebp - 0x114]
mov ebx, dword [ebp - 0x118]
imul eax, esi
imul ebx, edi
add ebx, eax
mov eax, dword [ebp - 0x118]
mul esi
add edx, ebx
jmp 0x46fb42
mov eax, dword [ebp - 0x114]
or eax, dword [ebp - 0x118]
jne 0x46faad
jmp 0x46fa9d
fstp st(0)
fstp st(0)
mov eax, dword [ebp - 0x128]
call fcn.0040b56e
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0x118]
and eax, dword [ebp - 0x114]
inc eax
jne 0x46facc
lea edx, [edi - 0x80000000]
mov eax, esi
or eax, edx
je 0x46f882
mov eax, dword [ebp - 0x118]
mov edx, dword [ebp - 0x114]
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
call fcn.004e9fbc
jmp 0x46fb42
mov eax, dword [ebp - 0x114]
or eax, dword [ebp - 0x118]
je 0x46fa9d
cmp dword [ebp - 0x114], 0xffffffff
jne 0x46fb22
cmp dword [ebp - 0x118], 0xffffffff
jne 0x46fb22
mov dword [ebp - 0x118], 1
mov dword [ebp - 0x114], 0
mov eax, dword [ebp - 0x118]
mov edx, dword [ebp - 0x114]
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
call fcn.004ea0f8
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
mov eax, dword [ebp - 0x80]
mov edi, dword [ebp - 0x128]
mov edx, dword [ebp - 0x7c]
mov dword [edi], eax
mov eax, dword [edi + 0x10]
mov dword [edi + 4], edx
mov word [ebp - 0x118], ax
and ax, 0xf240
or eax, 4
mov word [edi + 0x10], ax
jmp case.0x46ec3a.89
or edx, eax
and dl, 1
jne 0x46fa9d
and ax, 0x2d
mov ebx, eax
jne 0x46fb93
mov eax, dword [ebp - 0x138]
call fcn.0042efaf
mov ebx, eax
mov eax, dword [ebp - 0x130]
mov eax, dword [eax + 0x10]
mov word [ebp - 0x118], ax
and ax, 0x2d
jne 0x46fbb4
mov eax, dword [ebp - 0x130]
call fcn.0042efaf
and ebx, 4
test bx, ax
jne 0x46f7e3
jmp 0x46f882
fsubp st(1)
jmp 0x46fbe8
fmulp st(1)
fstp qword [ebp - 0x118]
jmp 0x46fc5b
fldz
fxch st(1)
fucomi st(1)
fstp st(1)
jp 0x46fbe6
je 0x46fa99
fdivp st(1)
fstp qword [ebp - 0x118]
jmp 0x46fc5b
fstp st(0)
fstp st(0)
mov eax, dword [ebp - 0x138]
call fcn.0040cd52
mov esi, eax
mov eax, dword [ebp - 0x130]
mov ebx, edx
mov edi, ebx
call fcn.0040cd52
or edi, esi
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
je 0x46fa9d
cmp ebx, 0xffffffff
jne 0x46fc2f
cmp esi, 0xffffffff
jne 0x46fc2f
mov esi, 1
xor ebx, ebx
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebx
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.004ea0f8
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x114], edx
fild qword [ebp - 0x118]
fstp qword [ebp - 0x118]
mov eax, dword [ebp - 0x114]
mov edx, dword [ebp - 0x118]
mov ecx, eax
and ecx, 0x7ff00000
cmp ecx, 0x7ff00000
jne 0x4771b3
and eax, 0xfffff
or eax, edx
je 0x4771b3
jmp 0x46fa9d
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 4]
test eax, eax
je case.0x46ec3a.89
imul eax, eax, 0x28
add eax, dword [ebp - 0x108]
xor edx, edx
xor ecx, ecx
call fcn.0040b5af
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edi, dword [ebp - 0xf4]
imul ebx, dword [eax + 4], 0x28
imul edx, dword [edi + 0xc], 0x28
imul eax, dword [eax + 8], 0x28
add ebx, dword [ebp - 0x108]
add edx, dword [ebp - 0x108]
add eax, dword [ebp - 0x108]
mov dword [ebp - 0x128], edx
mov edx, dword [ebx + 0x10]
or edx, dword [eax + 0x10]
and dl, 1
je 0x46fd00
mov eax, dword [ebp - 0x128]
call fcn.0040b56e
jmp case.0x46ec3a.89
call fcn.0040cd52
mov dword [ebp - 0x118], eax
mov eax, ebx
mov dword [ebp - 0x114], edx
call fcn.0040cd52
mov edi, dword [ebp - 0xf4]
mov cl, byte [edi]
cmp cl, 0x66
jne 0x46fd37
mov ecx, dword [ebp - 0x118]
mov edi, dword [ebp - 0x114]
and ecx, eax
and edi, edx
jmp 0x46fd4c
cmp cl, 0x67
jne 0x46fd5d
mov ecx, dword [ebp - 0x118]
mov edi, dword [ebp - 0x114]
or ecx, eax
or edi, edx
mov dword [ebp - 0x118], ecx
mov dword [ebp - 0x114], edi
jmp 0x46fe3d
mov edi, edx
or edi, eax
je 0x46fe3d
cmp edx, 0
jge 0x46fd80
mov bl, 0xd1
sub ebx, ecx
inc edx
mov cl, bl
jl 0x46fd87
jg 0x46fd7c
cmp eax, 0xffffffc1
jb 0x46fd87
neg eax
jmp 0x46fdbc
jg 0x46fd87
cmp eax, 0x3f
jbe 0x46fdbc
mov esi, dword [ebp - 0x114]
not esi
shr esi, 0x1f
cmp cl, 0x68
sete al
xor edi, edi
or esi, eax
mov eax, esi
xor eax, 1
movzx esi, al
neg esi
adc edi, 0
mov dword [ebp - 0x118], esi
neg edi
mov dword [ebp - 0x114], edi
jmp 0x46fe3d
cmp cl, 0x68
jne 0x46fde4
mov esi, dword [ebp - 0x118]
mov edi, dword [ebp - 0x114]
mov cl, al
xor ebx, ebx
shld edi, esi, cl
shl esi, cl
test al, 0x20
cmovne edi, esi
cmovne esi, ebx
mov ebx, esi
mov esi, edi
jmp 0x46fe31
mov esi, dword [ebp - 0x114]
mov ebx, dword [ebp - 0x118]
mov cl, al
xor edx, edx
shrd ebx, esi, cl
shr esi, cl
test al, 0x20
cmovne ebx, esi
cmovne esi, edx
cmp dword [ebp - 0x114], 0
jns 0x46fe31
mov ecx, 0x40
xor edi, edi
sub ecx, eax
mov eax, 0xffffffff
mov edx, eax
shl eax, cl
test cl, 0x20
cmovne edx, eax
cmovne eax, edi
mov ecx, edx
or eax, ebx
mov edx, ecx
mov ebx, eax
or edx, esi
mov esi, edx
mov dword [ebp - 0x118], ebx
mov dword [ebp - 0x114], esi
mov eax, dword [ebp - 0x128]
mov esi, dword [ebp - 0x118]
mov edi, dword [ebp - 0x114]
mov dword [eax], esi
mov dword [eax + 4], edi
mov eax, dword [eax + 0x10]
mov edi, dword [ebp - 0x128]
mov word [ebp - 0x118], ax
and ax, 0xf240
or eax, 4
mov word [edi + 0x10], ax
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
imul ebx, dword [eax + 4], 0x28
add ebx, dword [ebp - 0x108]
mov eax, ebx
call fcn.0040cd8c
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 8]
cdq
add dword [ebx], eax
adc dword [ebx + 4], edx
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
imul ebx, dword [eax + 4], 0x28
add ebx, dword [ebp - 0x108]
test byte [ebx + 0x10], 4
jne 0x46fefc
mov ecx, dword [ebp - 0x11c]
mov edx, 0x43
mov eax, ebx
call fcn.0042f3f6
test byte [ebx + 0x10], 4
jne 0x46fefc
mov eax, dword [ebp - 0xf4]
cmp dword [eax + 8], 0
je 0x476e58
mov eax, dword [ebp - 0xf4]
mov edi, dword [ebp - 0x10c]
imul eax, dword [eax + 8], 0x28
lea eax, [edi + eax - 0x28]
mov dword [ebp - 0xf4], eax
jmp case.0x46ec3a.89
mov eax, dword [ebx + 0x10]
and ax, 0xf240
or eax, 4
mov word [ebx + 0x10], ax
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
imul eax, dword [eax + 4], 0x28
add eax, dword [ebp - 0x108]
test byte [eax + 0x10], 0x24
je case.0x46ec3a.89
call fcn.004191a0
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
imul ebx, dword [eax + 4], 0x28
add ebx, dword [ebp - 0x108]
test byte [ebx + 0x11], 4
jne 0x46ff73
mov eax, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0x11c]
movzx edx, byte [eax + 8]
mov eax, ebx
call fcn.0042f44d
test eax, eax
mov dword [ebp - 0xf8], eax
je case.0x46ec3a.89
jmp 0x476e92
mov eax, ebx
call fcn.0041e2ee
test eax, eax
mov dword [ebp - 0xf8], eax
je 0x46ff49
jmp 0x476e92
mov eax, dword [ebp - 0xf4]
imul edi, dword [eax + 4], 0x28
imul esi, dword [eax + 0xc], 0x28
add edi, dword [ebp - 0x108]
add esi, dword [ebp - 0x108]
mov eax, dword [edi + 0x10]
mov ebx, dword [esi + 0x10]
mov word [ebp - 0x118], ax
and eax, ebx
test al, 4
je 0x47002c
mov ebx, dword [esi + 4]
mov edx, dword [esi]
mov esi, dword [edi + 4]
mov eax, dword [edi]
cmp ebx, esi
jl 0x46ffee
jg 0x46ffca
cmp edx, eax
jbe 0x46ffe6
cmp byte [ecx + 0x506538], 0
jne 0x46fedd
mov dword [ebp - 0x110], 1
jmp case.0x46ec3a.89
cmp ebx, esi
jl 0x46ffee
cmp edx, eax
jae 0x47000a
cmp byte [ecx + 0x50652c], 0
jne 0x46fedd
mov dword [ebp - 0x110], 0xffffffff
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0x128]
cmp byte [eax + 0x506532], 0
jne 0x46fedd
mov dword [ebp - 0x110], 0
jmp case.0x46ec3a.89
mov ecx, dword [ebp - 0x118]
mov edx, dword [ebp - 0xf4]
or ecx, ebx
mov dx, word [edx + 2]
test cl, 1
je 0x470085
test dl, 0x80
je 0x47006d
test al, 1
je 0x470055
test bh, 1
je 0x47017f
test bl, 1
jne 0x470161
mov dword [ebp - 0x110], 1
jmp 0x47019b
and dl, 0x10
jne 0x46fedd
mov dword [ebp - 0x110], 1
jmp case.0x46ec3a.89
and edx, 0x47
cmp dl, 0x42
jle 0x4700cb
and cl, 2
je 0x470143
mov eax, dword [ebp - 0x118]
and eax, 0x2e
cmp ax, 2
jne 0x4700b1
xor edx, edx
mov eax, edi
call fcn.0042f2e3
mov ebx, dword [esi + 0x10]
mov eax, ebx
and eax, 0x2e
cmp ax, 2
jne 0x470143
xor edx, edx
mov eax, esi
call fcn.0042f2e3
jmp 0x470143
jne 0x470143
and cl, 2
je 0x470143
test byte [ebp - 0x118], 2
jne 0x470119
test byte [ebp - 0x118], 0x2c
je 0x470119
mov edx, dword [ebp - 0x11c]
mov ecx, 1
mov eax, edi
call fcn.0041e8ab
mov edx, dword [ebp - 0x118]
mov eax, dword [edi + 0x10]
and dx, 0xdbf
and ax, 0xf240
or eax, edx
mov word [ebp - 0x118], ax
or eax, 2
cmp edi, esi
cmove ebx, eax
test bl, 2
jne 0x470143
test bl, 0x2c
je 0x470143
mov edx, dword [ebp - 0x11c]
mov ecx, 1
mov eax, esi
and bx, 0xdbf
call fcn.0041e8ab
mov eax, dword [esi + 0x10]
and ax, 0xf240
or ebx, eax
mov eax, dword [ebp - 0xf4]
mov edx, edi
mov ecx, dword [eax + 0x10]
mov eax, esi
call fcn.004204b1
test eax, eax
mov dword [ebp - 0x110], eax
jns 0x47017d
jmp 0x47016b
mov dword [ebp - 0x110], 0xffffffff
mov eax, dword [ebp - 0xf4]
movzx eax, byte [eax]
movzx eax, byte [eax + 0x50652c]
jmp 0x4701ab
jne 0x47019b
mov eax, dword [ebp - 0xf4]
mov dword [ebp - 0x110], 0
movzx eax, byte [eax]
movzx eax, byte [eax + 0x506532]
jmp 0x4701ab
mov eax, dword [ebp - 0xf4]
movzx eax, byte [eax]
movzx eax, byte [eax + 0x506538]
mov word [esi + 0x10], bx
mov esi, dword [ebp - 0x118]
mov word [edi + 0x10], si
jmp 0x470526
cmp dword [ebp - 0x110], 0
jmp 0x470553
mov eax, dword [ebp - 0xf4]
mov dword [ebp - 0x118], 0
test byte [eax + 2], 1
je 0x4701ec
mov eax, dword [eax - 0x18]
add eax, 4
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0xf4]
xor esi, esi
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0xf4]
mov edi, dword [eax + 0x10]
mov eax, dword [eax + 4]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 8]
mov dword [ebp - 0x158], eax
cmp esi, dword [ebp - 0x130]
jge case.0x46ec3a.89
cmp dword [ebp - 0x118], 0
mov ebx, esi
je 0x47023e
mov eax, dword [ebp - 0x118]
mov ebx, dword [eax + esi*4]
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + esi*4 + 0x14]
mov al, byte [eax + esi]
mov byte [ebp - 0x160], al
mov eax, dword [ebp - 0x158]
add eax, ebx
add ebx, dword [ebp - 0x138]
imul eax, eax, 0x28
add eax, dword [ebp - 0x108]
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0x108]
mov dword [ebp - 0x128], eax
mov edx, eax
mov eax, ebx
call fcn.004204b1
test eax, eax
mov dword [ebp - 0x110], eax
je 0x4702c9
mov eax, dword [edi + 0x10]
test byte [eax + esi], 2
je 0x4702a8
test byte [ebx + 0x10], 1
jne 0x4702a2
mov eax, dword [ebp - 0x128]
test byte [eax + 0x10], 1
je 0x4702a8
neg dword [ebp - 0x110]
mov eax, dword [ebp - 0x110]
neg eax
test byte [ebp - 0x160], 1
cmove eax, dword [ebp - 0x110]
mov dword [ebp - 0x110], eax
jmp case.0x46ec3a.89
inc esi
jmp 0x47021e
cmp dword [ebp - 0x110], 0
mov eax, dword [ebp - 0xf4]
jns 0x4702f7
imul eax, dword [eax + 4], 0x28
mov edi, dword [ebp - 0x10c]
lea eax, [edi + eax - 0x28]
mov dword [ebp - 0xf4], eax
jmp case.0x46ec3a.89
jne 0x470312
imul eax, dword [eax + 8], 0x28
mov edi, dword [ebp - 0x10c]
lea eax, [edi + eax - 0x28]
mov dword [ebp - 0xf4], eax
jmp case.0x46ec3a.89
imul eax, dword [eax + 0xc], 0x28
mov edi, dword [ebp - 0x10c]
lea eax, [edi + eax - 0x28]
mov dword [ebp - 0xf4], eax
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edx, 2
imul eax, dword [eax + 4], 0x28
add eax, dword [ebp - 0x108]
call fcn.00419163
mov ebx, eax
mov eax, dword [ebp - 0xf4]
mov edx, 2
lea ebx, [ebx + ebx*2]
imul eax, dword [eax + 8], 0x28
add eax, dword [ebp - 0x108]
call fcn.00419163
mov edi, dword [ebp - 0xf4]
cmp byte [edi], 0x2c
jne 0x470379
movzx ecx, byte [eax + ebx + 0x4fcfa8]
jmp 0x470381
movzx ecx, byte [eax + ebx + 0x4fcf9c]
mov eax, dword [ebp - 0xf4]
imul edx, dword [eax + 0xc], 0x28
add edx, dword [ebp - 0x108]
cmp ecx, 2
mov eax, dword [edx + 0x10]
jne 0x4703a9
and ax, 0xf240
or eax, 1
mov word [edx + 0x10], ax
jmp case.0x46ec3a.89
and ax, 0xf240
mov dword [edx], ecx
sar ecx, 0x1f
or eax, 4
mov dword [edx + 4], ecx
mov word [edx + 0x10], ax
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 0xc]
imul eax, dword [eax + 4], 0x28
add eax, dword [ebp - 0x108]
call fcn.00419163
mov edi, dword [ebp - 0xf4]
xor eax, dword [edi + 0x10]
mov edx, eax
mov ecx, eax
imul eax, dword [edi + 8], 0x28
sar ecx, 0x1f
add eax, dword [ebp - 0x108]
call fcn.0040b5af
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edi, dword [ebp - 0xf4]
imul eax, dword [eax + 4], 0x28
imul ebx, dword [edi + 8], 0x28
add eax, dword [ebp - 0x108]
add ebx, dword [ebp - 0x108]
test byte [eax + 0x10], 1
jne 0x47043f
xor edx, edx
call fcn.00419163
xor edx, edx
test eax, eax
mov eax, ebx
sete dl
xor ecx, ecx
call fcn.0040b5af
jmp case.0x46ec3a.89
mov eax, ebx
call fcn.0040b56e
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
imul ebx, dword [eax + 8], 0x28
imul esi, dword [eax + 4], 0x28
add ebx, dword [ebp - 0x108]
add esi, dword [ebp - 0x108]
mov eax, ebx
call fcn.0040b56e
test byte [esi + 0x10], 1
jne case.0x46ec3a.89
mov word [ebx + 0x10], 4
mov eax, esi
call fcn.0040cd52
not eax
not edx
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xfc]
mov edx, dword [eax + 0xd0]
test edx, edx
je 0x4704d9
mov ecx, dword [ebp - 0xf4]
sub ecx, dword [eax + 0x68]
sar ecx, 3
imul ecx, ecx, 0xcccccccd
mov eax, ecx
and ecx, 7
shr eax, 3
add eax, dword [edx + 0x14]
movzx ebx, byte [eax]
bt ebx, ecx
mov edx, ebx
jb 0x46fedd
mov ebx, 1
shl ebx, cl
or edx, ebx
mov byte [eax], dl
jmp 0x4704f4
mov eax, dword [ebp - 0xfc]
mov edi, dword [ebp - 0xf4]
mov eax, dword [eax + 0x68]
mov edi, dword [edi + 4]
cmp dword [eax + 4], edi
je 0x46fedd
mov eax, dword [ebp - 0xfc]
mov edi, dword [ebp - 0xf4]
mov eax, dword [eax + 0x68]
mov eax, dword [eax + 4]
mov dword [edi + 4], eax
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 0xc]
imul eax, dword [eax + 4], 0x28
add eax, dword [ebp - 0x108]
call fcn.00419163
test eax, eax
jne 0x46fedd
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
xor edx, edx
cmp dword [eax + 0xc], 0
sete dl
imul eax, dword [eax + 4], 0x28
add eax, dword [ebp - 0x108]
call fcn.00419163
test eax, eax
je 0x46fedd
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edi, dword [ebp - 0x108]
imul eax, dword [eax + 4], 0x28
test byte [edi + eax + 0x10], 1
jmp 0x470528
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [eax + 0xc]
test edx, edx
js 0x4705cf
mov edi, dword [ebp - 0xfc]
mov ecx, dword [edi + 0x60]
mov edx, dword [ecx + edx*4]
movzx ecx, word [edx + 0x36]
cmp eax, ecx
jge 0x4705bb
mov eax, dword [edx + eax*4 + 0x50]
cmp eax, 0xb
jbe 0x4705b2
and eax, 1
cmp eax, 1
sbb eax, eax
and eax, 4
add eax, 4
jmp 0x4705ee
movzx eax, byte [eax + 0x4fcf90]
jmp 0x4705ee
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x118], eax
lea ecx, [eax - 1]
jmp 0x4705e7
imul eax, eax, 0x28
mov edi, dword [ebp - 0x108]
mov eax, dword [edi + eax + 0x10]
and eax, 0x3f
movzx ecx, byte [eax + 0x4fe9a0]
dec ecx
mov eax, 1
shl eax, cl
mov edi, dword [ebp - 0xf4]
test word [edi + 2], ax
jmp 0x470528
mov eax, dword [ebp - 0xf4]
mov edi, dword [ebp - 0x108]
imul eax, dword [eax + 4], 0x28
test byte [edi + eax + 0x10], 1
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 8]
jne 0x470634
mov edi, dword [ebp - 0xf4]
imul edx, dword [edi + 0xc], 0x28
mov edi, dword [ebp - 0x108]
test byte [edi + edx + 0x10], 1
je 0x470647
imul eax, eax, 0x28
add eax, dword [ebp - 0x108]
call fcn.0040b56e
jmp case.0x46ec3a.89
imul eax, eax, 0x28
add eax, dword [ebp - 0x108]
xor edx, edx
xor ecx, ecx
call fcn.0040b5af
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edi, dword [ebp - 0x108]
imul eax, dword [eax + 4], 0x28
test byte [edi + eax + 0x10], 1
jmp 0x470553
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + edx*4]
test eax, eax
je case.0x46ec3a.89
cmp byte [eax + 2], 0
je case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
imul eax, dword [eax + 0xc], 0x28
add eax, dword [ebp - 0x108]
call fcn.0040b56e
jmp 0x46fedd
mov eax, dword [ebp - 0xf4]
mov edi, dword [ebp - 0xfc]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov ebx, dword [eax + edx*4]
mov eax, dword [ebp - 0xf4]
imul eax, dword [eax + 0xc], 0x28
add eax, dword [edi + 0x58]
test ebx, ebx
mov dword [ebp - 0x118], eax
je 0x4706f0
cmp byte [ebx], 0
je 0x470700
mov eax, dword [ebp - 0x118]
call fcn.0040b56e
jmp case.0x46ec3a.89
cmp byte [ebx + 3], 0
je 0x47071b
mov eax, ebx
call fcn.004526f6
test eax, eax
mov dword [ebp - 0xf8], eax
jne 0x476e92
mov esi, dword [ebx + 0x24]
cmp byte [esi], 0
je 0x470733
mov eax, dword [ebp - 0x118]
call fcn.0040b56e
jmp case.0x46ec3a.89
mov eax, esi
xor ebx, ebx
call fcn.0040a2dd
mov edi, dword [esi + 0x74]
mov eax, dword [esi + 0x14]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0x24]
add ecx, 0xffffffff
adc ebx, 0xffffffff
mov dword [ebp - 0x128], ecx
mov dword [ebp - 0x124], ebx
mov ecx, dword [ebp - 0x124]
imul ecx, eax
mul dword [ebp - 0x128]
add edx, ecx
mov ecx, dword [esi + 0x28]
sub ecx, dword [edi + 0x38]
mov ebx, ecx
sar ebx, 0x1f
add eax, ecx
adc edx, ebx
mov ecx, edx
mov edx, eax
mov eax, dword [ebp - 0x118]
call fcn.0040b5af
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + edx*4]
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 8]
mov dword [ebp - 0x128], eax
mov eax, dword [esi + 0x40]
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x1c]
cmp dword [esi + 0x18], eax
je 0x47091f
cmp byte [esi + 2], 0
je 0x470816
cmp byte [esi], 3
jne 0x4707fc
mov eax, dword [esi + 0x1c]
test eax, eax
jle 0x4707fc
imul eax, eax, 0x28
add eax, dword [ebp - 0x108]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [esi + 0x4c], edx
mov dword [esi + 0x48], edx
mov dword [esi + 0x44], eax
jmp 0x4708a2
mov eax, dword [ebp - 0xf4]
imul eax, dword [eax + 0xc], 0x28
add eax, dword [ebp - 0x108]
call fcn.0040b56e
jmp case.0x46ec3a.89
cmp byte [esi + 3], 0
mov ebx, dword [esi + 0x24]
je 0x470853
mov eax, dword [esi + 0xc]
test eax, eax
je 0x47083d
mov edi, dword [ebp - 0x128]
mov eax, dword [eax + edi*4 + 4]
test eax, eax
je 0x47083d
mov esi, dword [esi + 0x20]
dec eax
jmp 0x4707ac
mov eax, esi
call fcn.004526f6
test eax, eax
mov dword [ebp - 0xf8], eax
je 0x470872
jmp 0x476e92
cmp byte [ebx], 0
je 0x470872
mov eax, esi
call fcn.00452289
test eax, eax
mov dword [ebp - 0xf8], eax
je 0x4707b2
jmp 0x476e92
mov eax, ebx
call fcn.0040a2dd
mov eax, dword [ebx + 0x2c]
movzx edx, word [ebx + 0x30]
mov ecx, dword [ebx + 0x28]
mov dword [esi + 0x48], eax
mov eax, dword [ebx + 0x74]
mov eax, dword [eax + 0x3c]
sub eax, ecx
cmp edx, eax
jle 0x47089c
test eax, eax
mov edx, 0
cmovns edx, eax
mov dword [esi + 0x4c], edx
mov dword [esi + 0x44], ecx
mov eax, dword [ebp - 0xfc]
mov edi, dword [ebp - 0x118]
mov eax, dword [eax + 0x1c]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x44]
movzx edx, byte [eax]
cmp edx, 0x7f
mov dword [edi], edx
ja 0x4708ca
mov dword [esi + 0x2c], 1
jmp 0x4708db
mov edx, dword [ebp - 0x118]
call fcn.0040c53c
movzx eax, al
mov dword [esi + 0x2c], eax
mov eax, dword [ebp - 0x118]
mov word [esi + 0x36], 0
mov eax, dword [eax]
cmp dword [esi + 0x4c], eax
jae 0x47091a
mov eax, dword [ebp - 0x118]
mov dword [esi + 0x4c], 0
mov dword [esi + 0x44], 0
mov eax, dword [eax]
cmp eax, 0x18003
ja 0x470cc4
cmp eax, dword [esi + 0x48]
ja 0x470cc4
jmp 0x470941
mov eax, dword [esi + 0x44]
jmp 0x47099e
mov eax, dword [esi + 0x24]
cmp byte [eax], 0
je 0x470941
mov eax, esi
call fcn.00452289
test eax, eax
mov dword [ebp - 0xf8], eax
je 0x4707b2
jmp 0x476e92
movzx eax, word [esi + 0x36]
cmp dword [ebp - 0x128], eax
jb 0x470b1a
mov eax, dword [ebp - 0x118]
mov eax, dword [eax]
cmp dword [esi + 0x2c], eax
jae 0x470acc
mov eax, dword [esi + 0x44]
test eax, eax
mov dword [ebp - 0x130], eax
jne 0x4709a4
lea edx, [ebp - 0x80]
mov ecx, 0xa
mov edi, edx
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x118]
mov ecx, edx
mov eax, dword [esi + 0x24]
mov edx, dword [edi]
call fcn.00452860
test eax, eax
mov dword [ebp - 0xf8], eax
jne 0x476e92
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x130], eax
movzx ebx, word [esi + 0x36]
mov eax, dword [ebp - 0x118]
xor edx, edx
mov edi, dword [ebp - 0x130]
mov ecx, dword [ebp - 0x130]
add edi, dword [esi + 0x2c]
mov dword [ebp - 0x134], edx
mov eax, dword [eax + ebx*4]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x118]
add ecx, dword [eax]
movzx eax, byte [edi]
cmp eax, 0x7f
mov dword [ebp - 0xd0], eax
mov dword [esi + ebx*4 + 0x50], eax
ja 0x470a00
movzx eax, byte [eax + 0x505a00]
xor edx, edx
inc edi
add dword [ebp - 0x138], eax
adc dword [ebp - 0x134], edx
jmp 0x470a3b
lea edx, [ebp - 0xd0]
mov eax, edi
mov dword [ebp - 0x158], ecx
call fcn.0040c53c
movzx eax, al
add edi, eax
mov eax, dword [ebp - 0xd0]
mov dword [esi + ebx*4 + 0x50], eax
call fcn.004039b9
xor edx, edx
add dword [ebp - 0x138], eax
mov ecx, dword [ebp - 0x158]
adc dword [ebp - 0x134], edx
inc ebx
cmp dword [ebp - 0x128], ebx
mov eax, dword [ebp - 0x118]
mov edx, dword [ebp - 0x138]
mov dword [eax + ebx*4], edx
jb 0x470a5b
cmp edi, ecx
jb 0x4709d6
cmp edi, ecx
jb 0x470a75
ja 0x470a89
cmp dword [ebp - 0x134], 0
mov eax, dword [esi + 0x48]
jne 0x470a89
cmp dword [ebp - 0x138], eax
jne 0x470a89
cmp dword [ebp - 0x134], 0
mov eax, dword [esi + 0x48]
ja 0x470a89
cmp dword [ebp - 0x138], eax
jbe 0x470aaf
mov eax, dword [ebp - 0x118]
cmp dword [eax], 0
je 0x470aab
cmp dword [esi + 0x44], 0
jne 0x470cc4
lea eax, [ebp - 0x80]
call fcn.0040b6b8
jmp 0x470cc4
mov edi, ecx
xor ebx, ebx
sub edi, dword [ebp - 0x130]
cmp dword [esi + 0x44], 0
mov word [esi + 0x36], bx
mov dword [esi + 0x2c], edi
jne 0x470ad6
lea eax, [ebp - 0x80]
call fcn.0040b6b8
jmp 0x470ad6
mov dword [ebp - 0xd0], 0
movzx eax, word [esi + 0x36]
cmp dword [ebp - 0x128], eax
jb 0x470b2a
mov eax, dword [ebp - 0xf4]
mov edi, dword [ebp - 0xf4]
imul eax, dword [eax + 0xc], 0x28
add eax, dword [ebp - 0x108]
cmp byte [edi + 1], 0xf6
jne 0x470b10
mov edx, dword [edi + 0x10]
mov ecx, 0x2000
call fcn.00411eab
jmp case.0x46ec3a.89
call fcn.0040b56e
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0x128]
mov eax, dword [esi + eax*4 + 0x50]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xf4]
imul ebx, dword [eax + 0xc], 0x28
add ebx, dword [ebp - 0x108]
test word [ebx + 0x10], 0x9000
je 0x470b49
mov eax, ebx
call fcn.0040b56e
mov eax, dword [ebp - 0x128]
inc eax
lea edi, [eax*4]
mov dword [ebp - 0x128], edi
mov edi, dword [ebp - 0x118]
mov eax, dword [edi + eax*4]
cmp dword [esi + 0x4c], eax
jb 0x470c1e
mov ecx, dword [ebp - 0x128]
mov edx, dword [ebp - 0xd0]
mov eax, dword [edi + ecx - 4]
add eax, dword [esi + 0x44]
cmp edx, 0xb
mov esi, eax
ja 0x470b95
mov ecx, ebx
call fcn.004039d1
jmp case.0x46ec3a.89
mov al, byte [ebp - 0x11d]
sub edx, 0xc
shr edx, 1
mov dword [ebp - 0x118], edx
mov dword [ebx + 0xc], edx
mov byte [ebx + 0x12], al
mov eax, edx
inc eax
cmp eax, dword [ebx + 0x18]
jl 0x470bde
mov eax, dword [ebp - 0x100]
cmp edx, dword [eax + 0x78]
jg 0x47712d
lea edx, [edx + 2]
xor ecx, ecx
mov word [ebx + 0x10], 1
mov eax, ebx
call fcn.0041db23
test eax, eax
je 0x470be4
jmp 0x477183
mov eax, dword [ebx + 0x20]
mov dword [ebx + 8], eax
mov edi, dword [ebx + 8]
mov ecx, dword [ebp - 0x118]
rep movsb byte es:[edi], byte [esi]
mov edi, dword [ebp - 0x118]
mov eax, dword [ebx + 8]
mov byte [eax + edi], 0
mov eax, dword [ebx + 8]
mov byte [eax + edi + 1], 0
mov eax, dword [ebp - 0xd0]
and eax, 1
mov ax, word [eax + eax + 0x4fcf8c]
mov word [ebx + 0x10], ax
jmp case.0x46ec3a.89
mov al, byte [ebp - 0x11d]
mov byte [ebx + 0x12], al
mov eax, dword [ebp - 0xf4]
mov ax, word [eax + 2]
test al, 0xc0
je 0x470c49
mov ecx, dword [ebp - 0xd0]
cmp ecx, 0xb
jbe 0x470c45
and cl, 1
je 0x470c5a
test al, 0x80
jne 0x470c5a
mov eax, dword [ebp - 0xd0]
call fcn.004039b9
test eax, eax
mov ecx, eax
jne 0x470c71
mov edx, dword [ebp - 0xd0]
mov ecx, ebx
mov eax, 0x506360
call fcn.004039d1
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0x100]
cmp ecx, dword [eax + 0x78]
jg 0x47712d
mov eax, dword [ebp - 0x118]
mov edi, dword [ebp - 0x128]
mov edx, dword [eax + edi - 4]
mov eax, dword [esi + 0x24]
mov dword [esp], ebx
call fcn.004527b6
test eax, eax
mov dword [ebp - 0xf8], eax
jne 0x476e92
mov eax, dword [ebx + 8]
mov edx, dword [ebp - 0xd0]
mov ecx, ebx
call fcn.004039d1
and word [ebx + 0x10], 0xbfff
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0x10c]
mov eax, dword [eax + 0xc]
test eax, eax
jle 0x470ce9
imul eax, eax, 0x28
mov edi, dword [ebp - 0x10c]
lea eax, [edi + eax - 0x28]
mov dword [ebp - 0xf4], eax
jmp case.0x46ec3a.89
mov eax, 0x16e90
call fcn.0042aea7
mov dword [ebp - 0xf8], eax
jmp 0x476e92
mov eax, dword [ebp - 0xf4]
mov dword [ebp - 0x130], 0
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x128], eax
mov eax, dword [ebp - 0xf4]
imul esi, dword [eax + 4], 0x28
mov eax, dword [ebp - 0x128]
add esi, dword [ebp - 0x108]
mov eax, dword [eax + 4]
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x128]
movsx eax, word [eax + 0x22]
cmp dword [ebp - 0x130], eax
jge case.0x46ec3a.89
mov eax, dword [ebp - 0x118]
mov ax, word [eax + 0xe]
test al, 0x60
je 0x470d72
test al, 0x20
jne 0x470e20
mov eax, dword [ebp - 0xf4]
cmp dword [eax + 0xc], 0
jne case.default.0x470db1
mov eax, dword [ebp - 0x118]
mov ecx, dword [ebp - 0x11c]
movsx edx, byte [eax + 8]
mov eax, esi
call fcn.0042f3f6
mov edi, dword [esi + 0x10]
test di, 1
jne case.default.0x470db1
mov eax, dword [ebp - 0x118]
mov al, byte [eax + 4]
shr al, 4
lea edx, [eax + 0xe]
and edx, 0xf
cmp dl, 4
ja case.default.0x470db1
movzx edx, dl
jmp dword [edx*4 + 0x4f5e78]
test di, 0x10
jmp 0x470e1b
test di, 4
jmp 0x470e1b
test di, 2
jmp 0x470e1b
test di, 4
je 0x470e16
mov eax, dword [esi]
mov edx, dword [esi + 4]
mov ecx, eax
mov ebx, edx
add ecx, 0
adc ebx, 0x8000
cmp ebx, 0xffff
ja 0x470df6
and edi, 0xfffffffb
or edi, 0x20
jmp 0x470e10
mov dword [ebp - 0x138], eax
mov dword [ebp - 0x134], edx
and edi, 0xfffffffb
fild qword [ebp - 0x138]
or edi, 8
fstp qword [esi]
mov word [esi + 0x10], di
jmp case.default.0x470db1
test di, 0x28
je 0x470e32
add esi, 0x28
inc dword [ebp - 0x130]
add dword [ebp - 0x118], 0x10
jmp 0x470d36
mov esi, dword [ebp - 0x118]
movzx eax, al
and edi, 0x3f
mov eax, dword [eax*4 + 0x4f1614]
mov edx, dword [esi]
mov esi, dword [ebp - 0x128]
mov dword [esp + 0x14], edx
mov edx, dword [esi]
mov dword [esp + 0xc], eax
movzx eax, byte [edi + 0x4fe9a0]
mov dword [esp + 4], str.cannot_store__s_value_in__s_column__s._s
mov dword [esp + 0x10], edx
mov eax, dword [eax*4 + 0x4fcf70]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xfc]
mov dword [esp], eax
call fcn.00429ba8
mov dword [ebp - 0xf8], 0xc13
jmp 0x476e92
mov eax, dword [ebp - 0xf4]
imul ebx, dword [eax + 4], 0x28
mov esi, dword [eax + 0x10]
add ebx, dword [ebp - 0x108]
movsx edx, byte [esi]
mov ecx, dword [ebp - 0x11c]
mov eax, ebx
call fcn.0042f3f6
cmp byte [esi], 0x45
jne 0x470eff
mov cx, word [ebx + 0x10]
test cl, 4
je 0x470eff
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
mov dword [ebp - 0x118], eax
add eax, 0
mov dword [ebp - 0x114], edx
adc edx, 0x8000
cmp edx, 0xffff
ja 0x470eed
and ecx, 0xfffffffb
or ecx, 0x20
jmp 0x470efb
fild qword [ebp - 0x118]
and ecx, 0xfffffff9
or ecx, 8
fstp qword [ebx]
mov word [ebx + 0x10], cx
inc esi
cmp byte [esi], 0
je case.0x46ec3a.89
add ebx, 0x28
jmp 0x470ea5
mov eax, dword [ebp - 0xf4]
mov ebx, dword [eax + 0x10]
imul eax, dword [eax + 4], 0x28
add eax, dword [ebp - 0x108]
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0xf4]
mov edi, dword [ebp - 0x118]
imul eax, dword [eax + 8], 0x28
mov esi, edi
lea eax, [edi + eax - 0x28]
mov dword [ebp - 0x160], eax
mov eax, dword [ebp - 0xf4]
imul eax, dword [eax + 0xc], 0x28
add eax, dword [ebp - 0x108]
test ebx, ebx
mov dword [ebp - 0x130], eax
jne 0x470f92
mov ebx, dword [ebp - 0x160]
mov dword [ebp - 0x158], 0
xor ecx, ecx
mov dword [ebp - 0x154], 0
mov dword [ebp - 0x128], 0
mov dword [ebp - 0x124], 0
jmp 0x471041
movsx edx, byte [ebx]
mov ecx, dword [ebp - 0x11c]
mov eax, esi
call fcn.0042f3f6
cmp byte [ebx], 0x45
jne 0x470fb9
mov ax, word [esi + 0x10]
test al, 4
je 0x470fb9
and eax, 0xfffffffb
or eax, 0x20
mov word [esi + 0x10], ax
inc ebx
add esi, 0x28
cmp byte [ebx], 0
jmp 0x470f5b
test al, 0x24
je 0x471132
mov edi, dword [ebx + 4]
mov esi, dword [ebx]
mov dword [ebp - 0x134], edi
cmp dword [ebp - 0x134], 0
mov dword [ebp - 0x138], esi
mov edx, dword [ebp - 0x138]
jns 0x47105c
mov edi, dword [ebp - 0x134]
not edx
not edi
inc ecx
cmp edi, 0
ja 0x4710de
cmp edx, 0x7f
ja 0x47107b
mov eax, dword [ebp - 0x138]
and eax, 1
cmp dword [ebp - 0x134], 0
jne 0x471064
cmp dword [ebp - 0x138], eax
jne 0x471064
mov eax, dword [ebp - 0xfc]
cmp byte [eax + 0x93], 3
jbe 0x471064
add edx, 8
mov dword [ebx + 0x1c], edx
cmp ebx, dword [ebp - 0x118]
je 0x4711fb
sub ebx, 0x28
mov ax, word [ebx + 0x10]
test al, 1
je 0x470fc2
shl eax, 0x15
inc ecx
sar eax, 0x1f
and eax, 0xa
mov dword [ebx + 0x1c], eax
jmp 0x471032
mov edi, dword [ebp - 0x134]
jmp 0x470ff4
add dword [ebp - 0x128], 1
mov dword [ebx + 0x1c], 1
adc dword [ebp - 0x124], 0
jmp 0x471032
cmp edx, 0x7fff
ja 0x47109a
add dword [ebp - 0x128], 2
mov dword [ebx + 0x1c], 2
adc dword [ebp - 0x124], 0
jmp 0x471032
cmp edx, 0x7fffff
ja 0x4710bc
add dword [ebp - 0x128], 3
mov dword [ebx + 0x1c], 3
adc dword [ebp - 0x124], 0
jmp 0x471032
cmp edx, 0x7fffffff
ja 0x4710de
add dword [ebp - 0x128], 4
mov dword [ebx + 0x1c], 4
adc dword [ebp - 0x124], 0
jmp 0x471032
cmp edi, 0x7fff
ja 0x471100
add dword [ebp - 0x128], 6
mov dword [ebx + 0x1c], 5
adc dword [ebp - 0x124], 0
jmp 0x471032
add dword [ebp - 0x128], 8
adc dword [ebp - 0x124], 0
test al, 0x20
je 0x471126
and eax, 0xffffffdf
or eax, 8
mov word [ebx + 0x10], ax
fild qword [ebp - 0x138]
fstp qword [ebx]
jmp 0x471145
mov dword [ebx + 0x1c], 6
jmp 0x471032
test al, 8
je 0x471151
inc ecx
add dword [ebp - 0x128], 8
adc dword [ebp - 0x124], 0
mov dword [ebx + 0x1c], 7
jmp 0x471032
mov edi, dword [ebx + 0xc]
mov edx, eax
shr dx, 1
and edx, 1
test ah, 4
mov dword [ebp - 0x138], edi
lea edi, [edx + edi*2 + 0xc]
mov esi, edi
je 0x4711b6
mov eax, dword [ebx]
lea edx, [eax + eax]
add edi, edx
mov esi, edi
mov edi, dword [ebp - 0x124]
or edi, dword [ebp - 0x128]
je 0x4711a9
mov eax, ebx
mov dword [ebp - 0x148], ecx
call fcn.0041e2ee
test eax, eax
jne 0x477183
mov edi, dword [ebx]
mov ecx, dword [ebp - 0x148]
add dword [ebp - 0x138], edi
jmp 0x4711b6
cdq
add dword [ebp - 0x158], eax
adc dword [ebp - 0x154], edx
mov eax, dword [ebp - 0x138]
xor edx, edx
add dword [ebp - 0x128], eax
adc dword [ebp - 0x124], edx
mov eax, esi
xor edx, edx
mov dword [ebp - 0x138], 1
shrd eax, edx, 7
shr edx, 7
mov edi, edx
or edi, eax
je 0x4711ed
inc dword [ebp - 0x138]
jmp 0x4711d8
add ecx, dword [ebp - 0x138]
mov dword [ebx + 0x1c], esi
jmp 0x471032
cmp ecx, 0x7e
jg 0x471203
inc ecx
jmp 0x471243
mov eax, ecx
mov ebx, 1
cdq
shrd eax, edx, 7
shr edx, 7
mov edi, edx
or edi, eax
je 0x47121b
inc ebx
jmp 0x47120b
add ecx, ebx
mov esi, 1
mov eax, ecx
cdq
shrd eax, edx, 7
shr edx, 7
mov edi, edx
or edi, eax
je 0x471239
mov edi, esi
inc edi
mov esi, edi
jmp 0x471225
cmp ebx, esi
setl al
movzx eax, al
add ecx, eax
mov eax, ecx
mov esi, dword [ebp - 0x128]
mov dword [ebp - 0x138], ecx
sar eax, 0x1f
add esi, dword [ebp - 0x138]
mov edi, dword [ebp - 0x124]
mov dword [ebp - 0x134], eax
mov eax, dword [ebp - 0x158]
adc edi, dword [ebp - 0x134]
mov edx, dword [ebp - 0x154]
add eax, esi
mov dword [ebp - 0x128], eax
mov eax, dword [ebp - 0x130]
adc edx, edi
mov dword [ebp - 0x124], edx
mov ebx, dword [eax + 0x18]
mov eax, ebx
cdq
cmp dword [ebp - 0x124], edx
jg 0x4712ba
jl 0x4712a6
cmp dword [ebp - 0x128], ebx
ja 0x4712ba
mov eax, dword [ebp - 0x130]
mov ebx, dword [ebp - 0x130]
mov eax, dword [eax + 0x20]
mov dword [ebx + 8], eax
jmp 0x471301
mov eax, dword [ebp - 0x100]
mov ebx, dword [eax + 0x78]
mov eax, ebx
cdq
cmp dword [ebp - 0x124], edx
jg 0x47712d
jl 0x4712e0
cmp dword [ebp - 0x128], ebx
ja 0x47712d
mov eax, dword [ebp - 0x130]
mov edx, esi
mov dword [ebp - 0x128], ecx
call fcn.0041dc0e
test eax, eax
mov ecx, dword [ebp - 0x128]
jne 0x477183
mov eax, dword [ebp - 0x130]
mov dword [eax + 0xc], esi
mov word [eax + 0x10], 0x10
mov eax, dword [ebp - 0x154]
or eax, dword [ebp - 0x158]
je 0x471332
mov eax, dword [ebp - 0x130]
mov edi, dword [ebp - 0x158]
mov word [eax + 0x10], 0x410
mov dword [eax], edi
mov eax, dword [ebp - 0x130]
cmp ecx, 0x7f
mov edi, dword [eax + 8]
lea ebx, [edi + ecx]
jg 0x47134a
lea esi, [edi + 1]
mov byte [edi], cl
jmp 0x471360
mov edx, dword [ebp - 0x138]
mov ecx, dword [ebp - 0x134]
mov eax, edi
call fcn.00411436
lea esi, [edi + eax]
mov eax, dword [ebp - 0x118]
mov edx, dword [eax + 0x1c]
cmp edx, 7
ja 0x4713ac
test edx, edx
lea eax, [esi + 1]
mov byte [esi], dl
je 0x4713f2
movzx ecx, byte [edx + 0x505a00]
mov edi, dword [ebp - 0x118]
mov esi, dword [edi]
mov edi, dword [edi + 4]
mov edx, ecx
mov dword [ebp - 0x128], ecx
dec edx
mov ecx, esi
test edx, edx
mov byte [ebx + edx], cl
je 0x4713a4
shrd esi, edi, 8
shr edi, 8
jmp 0x471391
add ebx, dword [ebp - 0x128]
jmp 0x4713f2
cmp edx, 0x7f
ja 0x4713ca
cmp edx, 0xd
lea eax, [esi + 1]
mov byte [esi], dl
jbe 0x4713f2
mov edi, dword [ebp - 0x118]
mov ecx, dword [edi + 0xc]
test ecx, ecx
jg 0x4713e2
jmp 0x4713f2
xor ecx, ecx
mov eax, esi
call fcn.00411436
mov edi, dword [ebp - 0x118]
add eax, esi
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x4713f2
mov esi, dword [edi + 8]
mov edi, ebx
rep movsb byte es:[edi], byte [esi]
mov edi, dword [ebp - 0x118]
add ebx, dword [edi + 0xc]
mov esi, dword [ebp - 0x160]
cmp dword [ebp - 0x118], esi
je case.0x46ec3a.89
add dword [ebp - 0x118], 0x28
mov esi, eax
jmp 0x471360
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + edx*4]
mov ebx, dword [eax + 0x24]
mov eax, dword [ebp - 0xf4]
cmp dword [eax + 0xc], 0
je 0x4714a6
or esi, 0xffffffff
cmp byte [ebx], 0
mov edi, esi
jne 0x471593
mov eax, dword [ebx + 0x74]
cmp byte [eax + 8], 0
je 0x471593
movzx eax, word [eax + 0x18]
xor edi, edi
xor ecx, ecx
mov esi, eax
movsx eax, byte [ebx + 0x44]
mov dword [ebp - 0x128], eax
movzx eax, cl
cmp eax, dword [ebp - 0x128]
jge 0x471593
mov eax, dword [ebx + eax*4 + 0x78]
inc ecx
movzx eax, word [eax + 0x18]
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x118]
imul eax, edi
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0x118]
mov edi, dword [ebp - 0x130]
mul esi
mov esi, eax
add edi, edx
jmp 0x471465
mov eax, ebx
call fcn.0042c379
cmp eax, 0x10
mov dword [ebp - 0xf8], eax
je 0x471585
xor esi, esi
xor edi, edi
cmp dword [ebp - 0xf8], 0
jne 0x476e92
mov eax, dword [ebp - 0x168]
mov eax, dword [eax]
test eax, eax
jne 0x471585
mov ecx, dword [ebx + 0x74]
mov al, byte [ecx + 8]
test al, al
mov byte [ebp - 0xf8], al
jne 0x4714f3
cmp byte [ecx + 1], 0
jne 0x471539
movzx eax, word [ecx + 0x18]
xor edx, edx
add esi, eax
adc edi, edx
cmp byte [ebp - 0xf8], 0
je 0x471539
cmp byte [ebx + 0x44], 0
mov eax, ebx
jne 0x471522
call fcn.0042c379
test eax, eax
mov dword [ebp - 0xf8], eax
je 0x471593
jmp 0x476e92
call fcn.00403687
mov ecx, dword [ebx + 0x74]
mov ax, word [ebx + 0x46]
cmp ax, word [ecx + 0x18]
jae 0x471506
inc eax
mov word [ebx + 0x46], ax
movzx edx, word [ecx + 0x18]
movzx eax, word [ebx + 0x46]
cmp eax, edx
mov edx, dword [ecx + 0x38]
mov dword [ebp - 0xf8], edx
jne 0x471558
movzx eax, byte [ecx + 9]
mov edx, dword [edx + eax + 8]
jmp 0x471571
mov edx, dword [ecx + 0x40]
movzx eax, word [edx + eax*2]
xchg al, ah
and ax, word [ecx + 0x1a]
mov ecx, dword [ebp - 0xf8]
movzx eax, ax
mov edx, dword [ecx + eax]
bswap edx
mov eax, ebx
call fcn.0042c144
mov dword [ebp - 0xf8], eax
jmp 0x4714c0
xor esi, esi
xor edi, edi
mov dword [ebp - 0xf8], 0
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x58]
call fcn.00411de9
mov dword [eax], esi
mov dword [eax + 4], edi
jmp 0x46ec88
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 4]
mov dword [ebp - 0x118], eax
cmp dword [ebp - 0x118], 0
mov eax, dword [ebp - 0xf4]
mov esi, dword [eax + 0x10]
mov eax, dword [ebp - 0x100]
jne 0x4716c1
cmp dword [eax + 0xc4], 0
jle 0x47160d
mov eax, dword [ebp - 0xfc]
mov dword [esp + 4], str.cannot_open_savepoint___SQL_statements_in_progress
mov dword [esp], eax
call fcn.00429ba8
mov dword [ebp - 0xf8], 5
jmp 0x476e92
mov eax, esi
call fcn.00409dfb
mov ebx, eax
mov eax, dword [ebp - 0x100]
xor edx, edx
mov ecx, dword [eax + 0x208]
add ecx, dword [eax + 0x20c]
call fcn.0040e387
test eax, eax
mov dword [ebp - 0xf8], eax
jne 0x476e92
mov eax, dword [ebp - 0x100]
lea edx, [ebx + 0x21]
xor ecx, ecx
call fcn.0041af2c
test eax, eax
je 0x477465
lea edx, [eax + 0x20]
lea ecx, [ebx + 1]
mov dword [eax], edx
mov edi, edx
rep movsb byte es:[edi], byte [esi]
mov edi, dword [ebp - 0x100]
cmp byte [edi + 0x55], 0
je 0x471677
mov byte [edi + 0x55], 0
mov byte [edi + 0x5d], 1
jmp 0x471683
mov edi, dword [ebp - 0x100]
inc dword [edi + 0x208]
mov edi, dword [ebp - 0x100]
mov edx, dword [edi + 0x1fc]
mov ecx, dword [edi + 0x210]
mov ebx, dword [edi + 0x214]
mov dword [eax + 0x18], edx
mov dword [edi + 0x1fc], eax
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
mov ecx, dword [edi + 0x218]
mov ebx, dword [edi + 0x21c]
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], ebx
jmp 0x477465
mov ebx, dword [eax + 0x1fc]
mov dword [ebp - 0x128], 0
test ebx, ebx
je 0x4771e1
mov eax, dword [ebx]
mov edx, esi
call fcn.004019bf
test eax, eax
je 0x476fdc
inc dword [ebp - 0x128]
mov ebx, dword [ebx + 0x18]
jmp 0x4716d1
mov eax, dword [ebp - 0xf4]
mov ebx, dword [eax + 4]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0x100]
movzx eax, byte [eax + 0x55]
cmp ebx, eax
je 0x471800
test edx, edx
je 0x471733
mov eax, dword [ebp - 0x100]
mov edx, 0x204
call fcn.00452e01
mov eax, dword [ebp - 0x100]
mov byte [eax + 0x55], 1
jmp 0x47178e
test ebx, ebx
je 0x47176b
mov eax, dword [ebp - 0x100]
cmp dword [eax + 0xc4], 0
jle 0x47176b
mov eax, dword [ebp - 0xfc]
mov dword [esp + 4], str.cannot_commit_transaction___SQL_statements_in_progress
mov dword [esp], eax
call fcn.00429ba8
mov dword [ebp - 0xf8], 5
jmp 0x476e92
mov eax, dword [ebp - 0xfc]
mov edx, 1
call fcn.00429bd9
test eax, eax
mov esi, eax
jne 0x47704d
mov eax, dword [ebp - 0x100]
mov byte [eax + 0x55], bl
mov eax, dword [ebp - 0xfc]
call fcn.00458162
cmp eax, 5
jne 0x4717e0
mov eax, dword [ebp - 0xf4]
sub eax, dword [ebp - 0x10c]
mov edi, dword [ebp - 0xfc]
sar eax, 3
imul eax, eax, 0xcccccccd
mov dword [edi + 0x20], eax
mov edi, dword [ebp - 0x100]
mov al, 1
sub eax, ebx
mov byte [edi + 0x55], al
mov eax, dword [ebp - 0xfc]
mov dword [eax + 0x24], 5
mov esi, 5
jmp 0x47704d
mov eax, dword [ebp - 0x100]
call fcn.0040b44a
mov eax, dword [ebp - 0xfc]
cmp dword [eax + 0x24], 1
sbb esi, esi
and esi, 0x64
inc esi
jmp 0x47704d
test ebx, ebx
mov eax, str.cannot_start_a_transaction_within_a_transaction
je 0x471818
test edx, edx
mov eax, str.cannot_commit___no_transaction_is_active
mov edx, str.cannot_rollback___no_transaction_is_active
cmovne eax, edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xfc]
mov dword [esp], eax
call fcn.00429ba8
mov dword [ebp - 0xf8], 1
jmp 0x476e92
mov eax, dword [ebp - 0xf4]
mov dword [ebp - 0x80], 0
mov edx, dword [eax + 8]
test edx, edx
je 0x471893
mov eax, dword [ebp - 0x100]
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x100]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x128], eax
mov eax, dword [ebp - 0x118]
mov ecx, dword [ebp - 0x128]
and eax, 0x100000
and ecx, 2
or ecx, eax
je 0x471893
cmp eax, 1
sbb esi, esi
and esi, 3
add esi, 8
jmp 0x471abe
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 4]
mov edi, eax
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x100]
shl edi, 4
add edi, dword [eax + 0x10]
mov ebx, dword [edi + 4]
test ebx, ebx
je 0x4719fb
lea ecx, [ebp - 0x80]
mov eax, ebx
call fcn.0044ddd0
test eax, eax
mov esi, eax
je 0x4718f9
cmp al, 5
jne 0x471abe
mov eax, dword [ebp - 0xf4]
sub eax, dword [ebp - 0x10c]
mov edi, dword [ebp - 0xfc]
sar eax, 3
mov dword [edi + 0x24], esi
imul eax, eax, 0xcccccccd
mov dword [edi + 0x20], eax
jmp 0x47704d
mov eax, dword [ebp - 0xfc]
test byte [eax + 0x98], 0x20
jne 0x47191e
mov eax, dword [ebp - 0xf4]
cmp word [eax + 2], 0
jne 0x471a0d
jmp 0x47748d
mov eax, dword [ebp - 0xf4]
cmp dword [eax + 8], 0
je 0x471908
mov eax, dword [ebp - 0x100]
cmp byte [eax + 0x55], 0
je 0x47193f
cmp dword [eax + 0xc0], 1
jle 0x471908
mov eax, dword [ebp - 0xfc]
cmp dword [eax + 0x30], 0
jne 0x471979
mov eax, dword [ebp - 0x100]
mov esi, dword [ebp - 0x100]
mov eax, dword [eax + 0x20c]
mov dword [ebp - 0xf8], eax
inc eax
mov dword [esi + 0x20c], eax
add eax, dword [esi + 0x208]
mov esi, dword [ebp - 0xfc]
mov dword [esi + 0x30], eax
mov eax, dword [ebp - 0xfc]
xor edx, edx
mov eax, dword [eax + 0x30]
lea ecx, [eax - 1]
mov eax, dword [ebp - 0x100]
call fcn.0040e387
test eax, eax
mov dword [ebp - 0xf8], eax
jne 0x4719c5
mov eax, dword [ebp - 0xfc]
mov ecx, dword [ebx]
mov edx, dword [eax + 0x30]
mov eax, dword [ebx + 4]
mov dword [eax + 4], ecx
mov eax, dword [eax]
cmp edx, dword [eax + 0x68]
jle 0x4719c5
cmp byte [eax + 6], 0
je 0x4719c5
call fcn.004150b0
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0x100]
mov esi, dword [ebp - 0xfc]
mov edx, dword [eax + 0x214]
mov eax, dword [eax + 0x210]
mov dword [esi + 0x48], eax
mov eax, dword [ebp - 0x100]
mov dword [esi + 0x4c], edx
mov edx, dword [eax + 0x21c]
mov eax, dword [eax + 0x218]
mov dword [esi + 0x54], edx
mov dword [esi + 0x50], eax
cmp dword [ebp - 0xf8], 0
jne 0x471ab8
jmp 0x471908
mov eax, dword [ebp - 0xf4]
mov esi, dword [ebp - 0x80]
cmp dword [eax + 0xc], esi
jne 0x471a30
mov eax, dword [edi + 0xc]
mov edi, dword [ebp - 0xf4]
mov edi, dword [edi + 0x10]
cmp dword [eax + 4], edi
je 0x47748d
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x100]
mov dword [esp], eax
call fcn.0040b317
mov eax, dword [ebp - 0x100]
mov edx, str.database_schema_has_changed
call fcn.0041b3da
mov edi, dword [ebp - 0xfc]
mov dword [edi + 0x7c], eax
mov eax, dword [ebp - 0xf4]
mov edi, dword [ebp - 0x100]
mov edx, dword [eax + 4]
mov eax, edx
shl eax, 4
add eax, dword [edi + 0x10]
mov edi, dword [ebp - 0x80]
mov eax, dword [eax + 0xc]
cmp dword [eax], edi
je 0x471a90
mov eax, dword [ebp - 0x100]
call fcn.004170d6
mov eax, dword [ebp - 0xfc]
mov edi, dword [ebp - 0xfc]
mov dword [ebp - 0xf8], 0x11
mov al, byte [eax + 0x98]
and eax, 0xffffffec
or eax, 1
mov byte [edi + 0x98], al
mov esi, dword [ebp - 0xf8]
mov dword [ebp - 0xf8], esi
jmp 0x476e92
mov eax, dword [ebp - 0xf4]
mov edi, dword [ebp - 0x100]
lea ecx, [ebp - 0x80]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 4]
mov dword [ebp - 0x118], eax
shl eax, 4
add eax, dword [edi + 0x10]
mov eax, dword [eax + 4]
call fcn.0040a3f7
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x58]
call fcn.00411de9
mov edx, dword [ebp - 0x80]
mov dword [eax], edx
sar edx, 0x1f
mov dword [eax + 4], edx
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 4]
mov dword [ebp - 0xf8], eax
mov ebx, eax
mov eax, dword [ebp - 0x100]
shl ebx, 4
add ebx, dword [eax + 0x10]
mov eax, dword [ebp - 0xf4]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 8]
mov eax, dword [ebx + 4]
call fcn.0044e421
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 8]
cmp eax, 1
jne 0x471bee
mov eax, dword [ebp - 0xf4]
mov edi, dword [ebp - 0xf4]
mov edx, dword [ebx + 0xc]
movzx eax, word [eax + 2]
mov edi, dword [edi + 0xc]
sub edi, eax
mov eax, dword [ebp - 0x100]
mov dword [edx], edi
mov edi, dword [ebp - 0x100]
or dword [eax + 0x18], 1
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 4]
mov dword [ebp - 0x118], eax
shl eax, 4
add eax, dword [edi + 0x10]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x10]
test esi, esi
je 0x471c02
mov eax, dword [esi + 8]
cmp byte [eax + 0x2b], 0
je 0x471bb8
mov esi, dword [esi]
jmp 0x471ba7
mov ebx, dword [eax + 0x30]
test ebx, ebx
je 0x471bb4
mov edx, dword [ebx + 0x1c]
mov eax, dword [ebp - 0x100]
call fcn.00416bea
mov edx, dword [ebx + 0x20]
mov eax, dword [ebp - 0x100]
mov dword [ebx + 0x1c], 0
call fcn.00416bea
mov dword [ebx + 0x20], 0
mov ebx, dword [ebx + 4]
jmp 0x471bbb
cmp eax, 2
jne 0x471c02
mov edi, dword [ebp - 0xf4]
mov eax, dword [ebx + 0xc]
mov edx, dword [edi + 0xc]
mov byte [eax + 0x4c], dl
mov eax, dword [ebp - 0xf4]
cmp dword [eax + 4], 1
jne 0x471c28
mov eax, dword [ebp - 0x100]
xor edx, edx
call fcn.00403b0d
mov eax, dword [ebp - 0xfc]
and byte [eax + 0x98], 0xfc
cmp dword [ebp - 0xf8], 0
je case.0x46ec3a.89
jmp 0x476e92
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov ebx, dword [eax + edx*4]
test ebx, ebx
je case.0x46ec3a.112
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 8]
cmp dword [ebx + 0x30], eax
jne case.0x46ec3a.112
mov esi, dword [ebx + 0x24]
mov eax, dword [esi + 0x10]
mov dword [esp], eax
call fcn.0040b268
mov dword [esi + 0x10], 0
mov byte [esi], 1
jmp 0x471dc2
mov eax, dword [ebp - 0xfc]
mov al, byte [eax + 0x98]
mov byte [ebp - 0xf8], al
and eax, 3
dec al
je 0x476e64
mov eax, dword [ebp - 0xf4]
mov dword [ebp - 0xf8], 0
mov edi, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov edx, eax
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x100]
shl edx, 4
add edx, dword [eax + 0x10]
cmp cl, 0x71
mov eax, dword [edx + 4]
mov dword [ebp - 0x128], eax
jne 0x471d06
mov eax, dword [ebp - 0xf4]
mov esi, dword [ebp - 0xfc]
mov ax, word [eax + 2]
and eax, 8
or eax, 4
movzx eax, ax
mov dword [ebp - 0xf8], eax
mov eax, dword [edx + 0xc]
mov al, byte [eax + 0x4c]
cmp al, byte [esi + 0x93]
jae 0x471d06
mov byte [esi + 0x93], al
mov eax, dword [ebp - 0xf4]
test byte [eax + 2], 0x10
je 0x471d24
imul edi, edi, 0x28
add edi, dword [ebp - 0x108]
mov eax, edi
call fcn.0040cd8c
mov edi, dword [edi]
mov eax, dword [ebp - 0xf4]
mov al, byte [eax + 1]
cmp al, 0xf8
jne 0x471d40
mov eax, dword [ebp - 0xf4]
mov esi, dword [eax + 0x10]
movzx ecx, word [esi + 8]
jmp 0x471d55
cmp al, 0xfd
jne 0x471d51
mov eax, dword [ebp - 0xf4]
xor esi, esi
mov ecx, dword [eax + 0x10]
jmp 0x471d55
xor esi, esi
xor ecx, ecx
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov dword [esp], 0
call fcn.00457f18
test eax, eax
mov ebx, eax
je 0x477183
mov al, byte [ebp - 0x118]
or byte [ebx + 8], 4
mov edx, edi
mov byte [ebx + 2], 1
mov dword [ebx + 0x30], edi
mov ecx, dword [ebp - 0xf8]
mov byte [ebx + 1], al
mov eax, dword [ebx + 0x24]
mov dword [esp], esi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x128]
call fcn.0042b15b
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0xf4]
mov dword [ebx + 0x28], esi
cmp byte [eax + 1], 0xf8
setne byte [ebx + 4]
mov eax, dword [ebp - 0xf4]
mov edx, dword [ebx + 0x24]
mov ax, word [eax + 2]
mov word [ebp - 0x118], ax
and eax, 3
cmp dword [ebp - 0xf8], 0
mov byte [edx + 3], al
je case.0x46ec3a.89
jmp 0x476e92
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + edx*4]
mov eax, dword [ebp - 0xf4]
movsx ecx, word [esi + 0x34]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov dword [esp], 0
call fcn.00457f18
test eax, eax
mov ecx, eax
je 0x477183
mov byte [eax + 2], 1
mov al, byte [eax + 8]
mov edi, dword [esi + 0x28]
or eax, 1
mov byte [ecx + 8], al
mov dword [ecx + 0x28], edi
and eax, 0xfffffffb
mov dl, byte [esi + 4]
mov byte [ecx + 4], dl
mov edx, dword [esi + 0x30]
mov dword [ecx + 0x30], edx
mov bl, byte [esi + 8]
and ebx, 4
or ebx, eax
mov byte [ecx + 8], bl
mov eax, dword [esi + 0xc]
or ebx, 8
mov byte [ecx + 8], bl
mov dword [ecx + 0xc], eax
or byte [esi + 8], 8
mov ecx, dword [ecx + 0x24]
mov dword [esp], edi
mov dword [esp + 4], ecx
mov ecx, 4
call fcn.0042b15b
mov dword [ebp - 0xf8], eax
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 0xc]
test eax, eax
jle 0x471eac
imul eax, eax, 0x28
add eax, dword [ebp - 0x108]
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0x4f222e
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov ebx, dword [eax + edx*4]
test ebx, ebx
je 0x471f0f
test byte [ebx + 8], 8
jne 0x471f0f
mov edi, dword [ebp - 0xf4]
movsx eax, word [ebx + 0x34]
cmp dword [edi + 8], eax
jg 0x471f0f
mov edx, dword [ebx + 0x30]
mov eax, dword [ebx + 0xc]
xor ecx, ecx
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x18], 0
call fcn.00453978
test eax, eax
mov dword [ebp - 0xf8], eax
je 0x472058
jmp 0x476e92
mov eax, dword [ebp - 0xf4]
mov ecx, dword [eax + 8]
mov eax, dword [ebp - 0xfc]
mov dword [esp], 0
call fcn.00457f18
test eax, eax
mov ebx, eax
je 0x477183
or byte [eax + 8], 1
mov eax, dword [ebp - 0xf4]
xor edx, edx
mov dword [esp + 8], 0x41e
mov ecx, dword [ebp - 0x100]
mov ax, word [eax + 2]
mov word [ebp - 0xf8], ax
or eax, 5
movzx eax, ax
mov dword [esp + 4], eax
lea eax, [ebx + 0xc]
mov dword [esp], eax
mov eax, dword [ecx]
call fcn.004559ec
test eax, eax
mov dword [ebp - 0xf8], eax
jne 0x476e92
mov eax, dword [ebx + 0xc]
xor ecx, ecx
mov edx, 1
call fcn.0044ddd0
test eax, eax
mov dword [ebp - 0xf8], eax
jne 0x472026
mov eax, dword [ebp - 0xf4]
mov esi, dword [eax + 0x10]
mov eax, dword [ebx + 0xc]
test esi, esi
mov dword [ebx + 0x28], esi
je 0x471ff8
mov edi, dword [ebp - 0xf4]
lea edx, [ebx + 0x30]
mov di, word [edi + 2]
mov ecx, edi
or ecx, 2
movzx ecx, cx
call fcn.004539dd
test eax, eax
mov dword [ebp - 0xf8], eax
jne 0x471ff2
mov ecx, dword [ebx + 0x24]
mov edx, dword [ebx + 0x30]
mov eax, dword [ebx + 0xc]
mov dword [esp], esi
mov dword [esp + 4], ecx
mov ecx, 4
call fcn.0042b15b
mov dword [ebp - 0xf8], eax
mov byte [ebx + 4], 0
jmp 0x472026
mov edx, dword [ebx + 0x24]
mov dword [ebx + 0x30], 1
mov ecx, 4
mov dword [esp], 0
mov dword [esp + 4], edx
mov edx, 1
call fcn.0042b15b
mov byte [ebx + 4], 1
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0xf4]
mov dl, byte [ebx + 8]
cmp word [eax + 2], 8
setne al
and edx, 0xfffffffb
shl eax, 2
or eax, edx
cmp dword [ebp - 0xf8], 0
mov byte [ebx + 8], al
je 0x472058
mov eax, dword [ebx + 0xc]
call fcn.00457914
jmp 0x476e92
mov byte [ebx + 2], 1
mov dword [ebp - 0xf8], 0
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov dword [esp], 1
call fcn.00457f18
test eax, eax
mov esi, eax
je 0x477183
mov eax, dword [ebp - 0xf4]
mov edi, dword [ebp - 0xf4]
mov eax, dword [eax + 0x10]
mov edi, dword [edi + 0xc]
mov dword [esi + 0x28], eax
movzx eax, word [eax + 6]
mov dword [ebp - 0xf8], edi
lea eax, [eax*4 + 0x14]
lea edx, [eax + 0x88]
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x100]
mov ecx, edx
sar ecx, 0x1f
call fcn.0041b0f8
test eax, eax
mov ebx, eax
mov dword [esi + 0x24], eax
je 0x476e70
mov eax, dword [ebp - 0x100]
cmp dword [ebp - 0xf8], 0
mov esi, dword [esi + 0x28]
mov ecx, dword [ebp - 0x118]
mov eax, dword [eax + 0x10]
mov edx, dword [eax + 4]
lea eax, [ebx + 0x88]
mov dword [ebx + 0x1c], eax
mov edi, eax
rep movsb byte es:[edi], byte [esi]
mov dword [ebx + 0x94], 0
je 0x472124
mov eax, dword [ebp - 0xf8]
mov word [ebx + 0x8e], ax
mov eax, dword [edx + 4]
mov ecx, dword [edx]
mov dword [eax + 4], ecx
mov eax, dword [edx + 4]
mov ecx, dword [eax + 0x24]
mov eax, dword [ebp - 0x100]
mov byte [ebx + 0x3b], 1
mov byte [ebx + 0x3a], 0xff
mov byte [ebx + 0x39], 0
mov dword [ebx + 0x48], ebx
mov dword [ebx + 0xc], ecx
mov dword [ebx + 0x18], eax
cmp byte [eax + 0x56], 2
jne 0x472162
mov dword [ebp - 0xf8], 0
jmp 0x4721ed
mov eax, dword [0x4f170c]
imul eax, ecx
mov dword [ebp - 0xf8], eax
mov dword [ebx], eax
mov eax, dword [ebp - 0x100]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x50]
mov edi, eax
mov dword [ebp - 0x118], eax
sar edi, 0x1f
imul ecx
test edi, edi
jns 0x47219d
mov eax, 0xfffffc00
imul dword [ebp - 0x118]
cmp edx, 0
mov edi, eax
jl 0x4721b2
jg 0x4721ad
cmp eax, 0x20000000
jbe 0x4721b2
mov edi, 0x20000000
cmp dword [ebp - 0xf8], edi
mov eax, dword [ebp - 0xf8]
cmovle eax, edi
mov dword [ebx + 4], eax
cmp byte [0x4f1648], 0
jne 0x472153
mov eax, ecx
mov dword [ebx + 0x34], ecx
cdq
call fcn.0041430a
test eax, eax
mov dword [ebx + 0x28], eax
jne 0x472153
mov dword [ebp - 0xf8], 7
cmp word [ebx + 0x90], 0xc
ja 0x47221b
mov eax, dword [ebx + 0x9c]
test eax, eax
je 0x47220c
mov edi, dword [ebp - 0x100]
cmp eax, dword [edi + 8]
jne 0x47221b
mov eax, dword [ebx + 0x98]
test byte [eax], 2
jne 0x47221b
mov byte [ebx + 0x3c], 3
cmp dword [ebp - 0xf8], 0
je case.0x46ec3a.89
jmp 0x476e92
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + edx*4]
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
mov ecx, eax
mov ebx, edx
mov edi, edx
add ecx, 1
adc ebx, 0
mov dword [esi + 0x10], ecx
or edi, eax
mov dword [esi + 0x14], ebx
jmp 0x470553
mov eax, dword [ebp - 0xf4]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov dword [esp], 3
call fcn.00457f18
test eax, eax
je 0x477183
mov edi, dword [ebp - 0xf4]
mov byte [eax + 2], 1
mov edx, dword [edi + 8]
mov byte [eax + 4], 1
mov dword [eax + 0x24], 0x51a028
mov dword [eax + 0x1c], edx
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov edx, dword [eax + edx*4]
test edx, edx
je 0x4722cb
mov eax, dword [ebp - 0xfc]
call fcn.00457d77
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov dword [eax + edx*4], 0
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov ebx, dword [eax + edx*4]
mov eax, dword [ebp - 0x128]
cmp byte [ebx + 4], 0
mov dword [ebp - 0x118], eax
mov byte [ebx + 2], 0
mov byte [ebx + 3], 0
mov dword [ebx + 0x18], 0
je 0x472423
mov eax, dword [ebp - 0xf4]
imul edi, dword [eax + 0xc], 0x28
add edi, dword [ebp - 0x108]
mov esi, dword [edi + 0x10]
mov eax, esi
and eax, 0x2e
cmp ax, 2
jne 0x472356
xor edx, edx
mov eax, edi
mov byte [ebp - 0x130], cl
call fcn.0042f2e3
mov cl, byte [ebp - 0x130]
mov eax, edi
mov byte [ebp - 0x138], cl
call fcn.0040cd52
mov dword [ebp - 0x130], eax
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x12c], edx
mov word [edi + 0x10], si
test al, 0x24
jne 0x4723d4
test al, 8
mov cl, byte [ebp - 0x138]
jne 0x4723b8
cmp cl, 0x16
ja 0x46fedd
test al, 1
jne 0x46fedd
mov eax, dword [ebx + 0x24]
lea edx, [ebp - 0xd0]
call fcn.0042c4eb
test eax, eax
mov dword [ebp - 0xf8], eax
jne 0x476e92
xor esi, esi
jmp 0x472538
fild qword [ebp - 0x130]
fld qword [edi]
fucomi st(1)
ja 0x477732
fxch st(1)
fucompi st(1)
fstp st(0)
ja 0x47749c
lea edx, [ebp - 0xd0]
mov eax, dword [ebx + 0x24]
mov ecx, dword [ebp - 0x12c]
mov dword [esp], 0
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x130]
call fcn.004524e8
mov dword [ebp - 0xf8], eax
cmp dword [ebp - 0xf8], 0
mov eax, dword [ebp - 0x130]
mov edx, dword [ebp - 0x12c]
mov dword [ebx + 0x38], eax
mov dword [ebx + 0x3c], edx
je 0x4724a2
jmp 0x476e92
mov edi, dword [ebp - 0xf4]
mov eax, dword [ebx + 0x24]
mov ecx, dword [ebx + 0x28]
mov edx, dword [edi + 0x10]
mov edi, dword [ebp - 0x118]
movzx esi, byte [eax + 3]
mov dword [ebp - 0x80], ecx
lea ecx, [ebp - 0xd0]
mov word [ebp - 0x6c], dx
lea edx, [edi - 0x15]
mov edi, dword [ebp - 0xf4]
and edx, 1
and esi, 2
cmp edx, 1
sbb edx, edx
and edx, 2
dec edx
mov byte [ebp - 0x6a], dl
imul edx, dword [edi + 0xc], 0x28
mov byte [ebp - 0x66], 0
add edx, dword [ebp - 0x108]
mov dword [ebp - 0x7c], edx
lea edx, [ebp - 0x80]
call fcn.00451db4
test eax, eax
mov dword [ebp - 0xf8], eax
jne 0x476e92
mov eax, esi
test al, al
je 0x4724a2
cmp byte [ebp - 0x66], 0
mov esi, 1
je 0x472538
jmp 0x4724a4
xor esi, esi
cmp dword [ebp - 0x118], 0x16
mov eax, dword [ebp - 0xd0]
jle 0x4724e4
test eax, eax
js 0x4724c4
cmp dword [ebp - 0x118], 0x18
jne 0x4724d8
test eax, eax
jne 0x4724d8
mov dword [ebp - 0xd0], 0
mov eax, dword [ebx + 0x24]
call fcn.004524a4
jmp 0x472507
mov dword [ebp - 0xd0], 0
jmp 0x472538
test eax, eax
jg 0x4724f5
cmp dword [ebp - 0x118], 0x15
jne 0x472526
test eax, eax
jne 0x472526
mov dword [ebp - 0xd0], 0
mov eax, dword [ebx + 0x24]
call fcn.0045237c
test eax, eax
mov dword [ebp - 0xf8], eax
je 0x472538
cmp eax, 0x65
jne 0x476e92
mov dword [ebp - 0xd0], 1
jmp 0x472538
mov eax, dword [ebx + 0x24]
cmp byte [eax], 0
setne al
movzx eax, al
mov dword [ebp - 0xd0], eax
cmp dword [ebp - 0xd0], 0
je 0x472550
mov dword [ebp - 0xf8], 0
jmp 0x46fedd
mov eax, dword [ebp - 0xf4]
mov dword [ebp - 0xf8], 0
add eax, 0x28
test esi, esi
cmove eax, dword [ebp - 0xf4]
mov dword [ebp - 0xf4], eax
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 0x2c]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov edi, dword [eax + edx*4]
mov eax, dword [edi + 0x24]
cmp byte [eax], 0
jne case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov esi, dword [eax + 4]
mov eax, dword [edi + 0x28]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 0x38]
mov byte [ebp - 0xba], 0
mov word [ebp - 0xbc], ax
mov eax, dword [ebp - 0xf4]
imul eax, dword [eax + 0x34], 0x28
add eax, dword [ebp - 0x108]
mov dword [ebp - 0xcc], eax
mov ebx, dword [edi + 0x24]
mov eax, ebx
call fcn.0040a2dd
mov eax, dword [ebx + 0x2c]
xor edx, edx
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0xf8]
add eax, 0xffffffff
adc edx, 0xffffffff
cmp edx, 0
ja 0x472604
cmp eax, 0x7ffffffe
jbe 0x472621
mov eax, 0x1579e
call fcn.0042aea7
test eax, eax
mov dword [ebp - 0xf8], eax
je 0x46fedd
jmp 0x4726c2
mov eax, dword [ebp - 0x100]
mov edx, dword [ebp - 0xf8]
lea ecx, [ebp - 0x80]
mov word [ebp - 0x70], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x6c], eax
mov eax, ebx
call fcn.00452860
test eax, eax
mov dword [ebp - 0xf8], eax
jne 0x4726c2
mov edx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x74]
lea ecx, [ebp - 0xd0]
mov dword [esp], 0
call fcn.0042c539
mov ebx, eax
lea eax, [ebp - 0x80]
call fcn.0040b77c
cmp ebx, 0
jle 0x472695
mov eax, dword [ebp - 0xf4]
cmp word [eax + 2], 0
jne 0x46fedd
add dword [ebp - 0xf4], 0x28
jmp 0x46fedd
je 0x46fedd
test esi, esi
jle case.0x46ec3a.89
mov eax, dword [edi + 0x24]
mov dword [edi + 0x18], 0
dec esi
call fcn.004524a4
test eax, eax
je 0x4725d7
cmp eax, 0x65
je 0x472689
jmp 0x4726c8
mov eax, dword [ebp - 0xf8]
mov dword [ebp - 0xf8], eax
jmp 0x476e92
mov eax, dword [ebp - 0xf4]
mov esi, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + edx*4]
mov edx, dword [esi + 8]
movzx ecx, word [eax + 0xa]
cmp ecx, edx
jge 0x472702
mov word [eax + 0xa], dx
jmp case.0x46ec3a.89
mov edi, dword [ebp - 0xf4]
mov edx, dword [edi + 0xc]
cmp ecx, edx
jle case.0x46ec3a.89
mov word [eax + 0xa], dx
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + edx*4]
test eax, eax
je case.0x46ec3a.9
cmp byte [eax + 2], 0
jne case.0x46ec3a.9
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov esi, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + edx*4]
movzx eax, word [eax + 0xa]
cmp eax, dword [esi + 0x10]
jge case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov esi, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov ebx, dword [eax + edx*4]
mov eax, dword [ebp - 0xf4]
imul eax, dword [eax + 0xc], 0x28
add eax, dword [ebp - 0x108]
mov dword [ebp - 0x7c], eax
mov edx, dword [esi + 0x10]
test dx, dx
mov word [ebp - 0x6c], dx
je 0x4727ca
mov eax, dword [ebx + 0x28]
mov byte [ebp - 0x6a], 0
lea ecx, [ebx + 0x1c]
lea edx, [ebp - 0x80]
mov dword [ebp - 0x80], eax
mov eax, dword [ebx + 0x24]
call fcn.00451db4
mov dword [ebp - 0xf8], eax
jmp 0x47282a
test byte [eax + 0x11], 4
jne 0x47281c
mov eax, dword [ebx + 0x28]
call fcn.0041b5ab
test eax, eax
mov esi, eax
je 0x477183
mov eax, dword [ebp - 0x7c]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov eax, dword [ebx + 0x28]
mov dword [esp], esi
call fcn.0040c60a
mov byte [esi + 0x16], 0
mov eax, dword [ebx + 0x24]
lea ecx, [ebx + 0x1c]
mov edx, esi
call fcn.00451db4
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0x100]
mov edx, esi
call fcn.0040b2bc
jmp 0x47282a
call fcn.0041e2ee
test eax, eax
je 0x4727d0
jmp 0x477183
cmp dword [ebp - 0xf8], 0
jne 0x476e92
mov edx, dword [ebx + 0x1c]
mov eax, dword [ebp - 0xf4]
mov byte [ebx + 3], 0
mov dword [ebx + 0x18], 0
test edx, edx
setne byte [ebx + 2]
mov al, byte [eax]
cmp al, 0x1d
jne 0x47285e
test edx, edx
jmp 0x470553
test edx, edx
jne 0x46fedd
cmp al, 0x1b
jne 0x47288c
movzx edx, word [ebp - 0x6c]
mov ecx, dword [ebp - 0x7c]
xor eax, eax
cmp eax, edx
jge case.0x46ec3a.89
imul ebx, eax, 0x28
test byte [ecx + ebx + 0x10], 1
jne 0x46fedd
inc eax
jmp 0x472873
cmp al, 0x1a
jne case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 0x10]
mov word [ebx + 0xa], ax
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
imul esi, dword [eax + 0xc], 0x28
add esi, dword [ebp - 0x108]
test byte [esi + 0x10], 0x24
jne case.0x46ec3a.31
lea edi, [ebp - 0x80]
mov ecx, 0xa
lea eax, [ebp - 0x80]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x11c]
mov edx, 0x43
call fcn.0042f3f6
test byte [ebp - 0x70], 4
je 0x46fedd
mov esi, dword [ebp - 0x80]
mov edi, dword [ebp - 0x7c]
jmp 0x472902
mov eax, dword [ebp - 0xf4]
mov edi, dword [ebp - 0x108]
imul eax, dword [eax + 0xc], 0x28
mov esi, dword [edi + eax]
mov edi, dword [edi + eax + 4]
mov eax, dword [ebp - 0xf4]
mov ecx, edi
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov ebx, dword [eax + edx*4]
lea edx, [ebp - 0x80]
mov eax, dword [ebx + 0x24]
mov dword [esp + 4], edx
mov edx, esi
mov dword [esp], 0
mov dword [ebp - 0x80], 0
call fcn.004524e8
mov byte [ebx + 2], 0
mov dword [ebp - 0xf8], eax
mov dword [ebx + 0x18], 0
mov byte [ebx + 3], 0
mov eax, dword [ebp - 0x80]
mov dword [ebx + 0x38], esi
mov dword [ebx + 0x3c], edi
test eax, eax
mov dword [ebx + 0x1c], eax
je 0x47297d
mov eax, dword [ebp - 0xf4]
cmp dword [eax + 8], 0
jne 0x46fedd
mov eax, 0x17754
call fcn.0042aea7
mov dword [ebp - 0xf8], eax
cmp dword [ebp - 0xf8], 0
je case.0x46ec3a.89
jmp 0x476e92
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x58]
call fcn.00411de9
mov esi, dword [ebp - 0xf4]
mov edi, dword [ebp - 0xfc]
mov ecx, dword [esi + 4]
mov edx, dword [edi + 0x60]
mov edx, dword [edx + ecx*4]
mov ecx, dword [edx + 0x10]
mov ebx, dword [edx + 0x14]
mov esi, ecx
mov edi, ebx
add esi, 1
adc edi, 0
mov dword [edx + 0x10], esi
mov dword [edx + 0x14], edi
mov dword [eax], ecx
mov dword [eax + 4], ebx
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x7c], 0
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x58]
call fcn.00411de9
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov ebx, dword [eax + edx*4]
test byte [ebx + 8], 2
jne 0x472a95
mov eax, dword [ebx + 0x24]
lea edx, [ebp - 0xd0]
call fcn.0042c4eb
test eax, eax
mov dword [ebp - 0xf8], eax
jne 0x476e92
cmp dword [ebp - 0xd0], 0
je 0x472a60
mov dword [ebp - 0x80], 1
mov dword [ebp - 0x7c], 0
jmp 0x472a95
mov esi, dword [ebx + 0x24]
mov eax, esi
call fcn.0040a2dd
mov edx, dword [esi + 0x24]
mov eax, dword [esi + 0x20]
cmp edx, 0x7fffffff
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
jne 0x472a89
cmp eax, 0xffffffff
jne 0x472a89
or byte [ebx + 8], 2
jmp 0x472a95
add eax, 1
adc edx, 0
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
mov eax, dword [ebp - 0xf4]
mov esi, dword [eax + 0xc]
test esi, esi
je 0x472b1f
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0xd0]
test eax, eax
je 0x472ac5
mov edx, dword [eax + 4]
test edx, edx
je 0x472abd
mov eax, edx
jmp 0x472ab2
imul esi, esi, 0x28
add esi, dword [eax + 0xc]
jmp 0x472ace
imul esi, esi, 0x28
add esi, dword [ebp - 0x108]
mov eax, esi
call fcn.0040cd8c
mov edx, dword [esi + 4]
mov eax, dword [esi]
cmp edx, 0x7fffffff
jne 0x472af6
cmp eax, 0xffffffff
jne 0x472af6
mov dword [ebp - 0xf8], 0xd
jmp 0x476e92
test byte [ebx + 8], 2
jne 0x472ae7
cmp edx, dword [ebp - 0x7c]
jl 0x472b14
jg 0x472b08
cmp eax, dword [ebp - 0x80]
jb 0x472b14
add eax, 1
adc edx, 0
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
mov eax, dword [ebp - 0x80]
mov edx, dword [ebp - 0x7c]
mov dword [esi], eax
mov dword [esi + 4], edx
test byte [ebx + 8], 2
je 0x472bb2
lea edi, [ebp - 0x80]
lea esi, [ebp - 0xd0]
mov dword [ebp - 0x128], 0x64
mov dword [esp + 4], edi
mov dword [esp], 8
call fcn.00449f7b
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x178], eax
mov eax, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x178]
and eax, 0x3fffffff
mov dword [ebp - 0x174], eax
mov ecx, dword [ebp - 0x174]
add edx, 1
mov dword [ebp - 0x80], edx
adc ecx, 0
mov dword [ebp - 0x7c], ecx
mov eax, dword [ebx + 0x24]
mov dword [esp + 4], esi
mov dword [esp], 0
call fcn.004524e8
test eax, eax
mov dword [ebp - 0xf8], eax
jne 0x476e92
cmp dword [ebp - 0xd0], 0
jne 0x472bb2
dec dword [ebp - 0x128]
jne 0x472b3c
jmp 0x472ae7
mov byte [ebx + 3], 0
mov esi, dword [ebp - 0x118]
mov eax, dword [ebp - 0x80]
mov edx, dword [ebp - 0x7c]
mov dword [ebx + 0x18], 0
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edi, dword [ebp - 0x108]
mov eax, dword [eax + 8]
mov dword [ebp - 0x128], eax
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + edx*4]
mov eax, dword [ebp - 0xf4]
imul eax, dword [eax + 0xc], 0x28
mov edx, dword [edi + eax + 4]
mov eax, dword [edi + eax]
mov edi, dword [ebp - 0xf4]
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], edx
cmp byte [edi + 1], 0xfb
jne 0x472cc6
mov edi, dword [ebp - 0x100]
mov ecx, dword [edi + 0x114]
test ecx, ecx
jne 0x472c41
cmp dword [edi + 0xfc], 0
je 0x472cc6
movsx ebx, byte [esi + 1]
mov edi, dword [ebp - 0x100]
shl ebx, 4
add ebx, dword [edi + 0x10]
mov edi, dword [ebx]
mov ebx, dword [ebp - 0xf4]
mov ebx, dword [ebx + 0x10]
mov dword [ebp - 0x118], edi
test ebx, ebx
je 0x472cd2
test ecx, ecx
je 0x472ca9
mov ecx, dword [ebp - 0xf4]
test byte [ecx + 2], 4
jne 0x472ca9
mov ecx, dword [ebp - 0x128]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xfc]
mov dword [esp + 0xc], edx
mov edx, esi
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 4], ebx
mov dword [esp + 0x10], ecx
mov dword [esp], edi
mov ecx, 0x12
call fcn.0040dd29
mov eax, dword [ebp - 0x100]
cmp dword [eax + 0xfc], 0
je 0x472cd0
cmp dword [ebx + 4], 0
mov eax, 0
cmove ebx, eax
jmp 0x472cd2
mov dword [ebp - 0x118], 0
xor ebx, ebx
mov eax, dword [ebp - 0xf4]
mov cx, word [eax + 2]
test cl, 0x40
jne case.0x46ec3a.89
test cl, 1
je 0x472d0f
mov eax, dword [ebp - 0xfc]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
test cl, 0x20
je 0x472d0f
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x74]
mov edi, dword [ebp - 0x100]
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], edx
imul eax, dword [ebp - 0x128], 0x28
add eax, dword [ebp - 0x108]
mov edx, dword [eax + 8]
mov dword [ebp - 0x70], edx
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x64], edx
xor edx, edx
test cl, 0x10
je 0x472d32
mov edx, dword [esi + 0x1c]
test byte [eax + 0x11], 4
je 0x472d3f
mov eax, dword [eax]
mov dword [ebp - 0x60], eax
jmp 0x472d46
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x80], 0
mov eax, dword [esi + 0x24]
and ecx, 0x8a
mov dword [esp], edx
lea edx, [ebp - 0x80]
call fcn.00452f69
test eax, eax
mov dword [ebp - 0xf8], eax
mov byte [esi + 3], 0
mov dword [esi + 0x18], 0
jne 0x476e92
test ebx, ebx
je case.0x46ec3a.89
mov eax, dword [ebp - 0x100]
mov ecx, dword [ebx]
mov esi, dword [ebp - 0x74]
mov ebx, dword [ebp - 0x78]
mov edi, dword [ebp - 0x118]
mov edx, dword [eax + 0xfc]
mov eax, dword [ebp - 0xf4]
mov ax, word [eax + 2]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], esi
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edi
mov word [ebp - 0x128], ax
and eax, 4
cmp ax, 1
sbb eax, eax
and eax, 0xfffffffb
add eax, 0x17
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x100]
mov eax, dword [eax + 0xf8]
mov dword [esp], eax
call edx
jmp case.0x46ec3a.89
mov esi, dword [ebp - 0xf4]
mov eax, dword [ebp - 0xfc]
xor edi, edi
mov eax, dword [eax + 0x60]
mov edx, dword [esi + 4]
mov ecx, dword [esi + 8]
mov edx, dword [eax + edx*4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [esi + 0xc]
xor esi, esi
test eax, eax
je 0x472e1c
imul eax, eax, 0x28
mov esi, dword [ebp - 0x108]
mov edi, dword [esi + eax + 4]
mov esi, dword [esi + eax]
mov eax, dword [ecx + 0x24]
mov ebx, dword [edx + 0x24]
mov dword [ebp - 0x138], eax
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0x118], eax
mov eax, dword [eax + 0x54]
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0x138]
call fcn.0040a2dd
mov eax, dword [ebp - 0x138]
mov edx, dword [eax + 0x2c]
cmp edx, 0x7f
ja 0x472e6a
mov eax, dword [ebp - 0xf8]
inc eax
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0xf8]
mov byte [eax], dl
jmp 0x472e83
mov eax, dword [ebp - 0xf8]
xor ecx, ecx
call fcn.00411436
add eax, dword [ebp - 0xf8]
mov dword [ebp - 0x130], eax
cmp dword [ebx + 0x70], 0
jne 0x472e9e
mov eax, dword [ebp - 0x130]
mov edx, esi
mov ecx, edi
call fcn.00411436
add dword [ebp - 0x130], eax
mov eax, dword [ebp - 0x138]
movzx eax, word [eax + 0x30]
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0x138]
mov eax, dword [eax + 0x28]
mov dword [ebp - 0x148], eax
add eax, dword [ebp - 0xf8]
mov dword [ebp - 0x158], eax
mov eax, dword [ebp - 0x138]
mov eax, dword [eax + 0x74]
mov eax, dword [eax + 0x3c]
mov esi, eax
cmp dword [ebp - 0x158], esi
mov dword [ebp - 0x164], eax
mov eax, 0x13197
ja 0x473040
mov eax, dword [ebp - 0x138]
mov eax, dword [eax + 0x2c]
cmp dword [ebp - 0xf8], eax
mov dword [ebp - 0x128], eax
jne 0x472f4f
mov eax, dword [ebx + 0x74]
movzx eax, word [eax + 0xe]
cmp dword [ebp - 0xf8], eax
jae 0x472f4f
mov ecx, dword [ebp - 0xf8]
mov edi, dword [ebp - 0x130]
mov esi, dword [ebp - 0x148]
mov eax, dword [ebp - 0x130]
rep movsb byte es:[edi], byte [esi]
mov edi, dword [ebp - 0x118]
sub eax, dword [edi + 0x54]
add eax, dword [ebp - 0xf8]
mov dword [ebp - 0xf8], 0
mov dword [edi + 0x58], eax
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0x138]
xor edi, edi
mov dword [ebp - 0xdc], 0
cmp edi, 0
mov esi, dword [ebp - 0x128]
mov eax, dword [eax + 0x14]
mov eax, dword [eax]
mov dword [ebp - 0xd8], 0
mov ecx, dword [ebx + 0x74]
mov dword [ebp - 0x18c], eax
movzx eax, word [ecx + 0xe]
mov dword [ebp - 0x160], eax
jg 0x472f9c
jl 0x472f94
cmp esi, eax
ja 0x472f9c
mov ebx, dword [ebp - 0x128]
jmp 0x472fd2
mov eax, dword [ecx + 0x34]
movzx ebx, word [ecx + 0x10]
xor edx, edx
mov eax, dword [eax + 0x28]
mov dword [esp + 0xc], 0
sub esi, ebx
sbb edi, edx
mov dword [esp], esi
sub eax, 4
mov dword [esp + 4], edi
mov dword [esp + 8], eax
call fcn.004ea0f8
add eax, ebx
cmp dword [ebp - 0x160], eax
cmovge ebx, eax
mov edi, dword [ebp - 0x118]
mov eax, dword [ebp - 0x130]
sub eax, dword [edi + 0x54]
add eax, ebx
cmp dword [ebp - 0x128], ebx
ja 0x472ffa
mov dword [edi + 0x58], eax
mov dword [ebp - 0x160], 0
jmp 0x473015
mov edi, dword [ebp - 0x130]
add eax, 4
lea esi, [edi + ebx]
mov dword [ebp - 0x160], esi
mov esi, dword [ebp - 0x118]
mov dword [esi + 0x58], eax
mov edi, dword [ebp - 0x128]
cmp dword [ebp - 0xf8], edi
jae 0x47305c
mov eax, dword [ebp - 0x148]
mov esi, dword [ebp - 0xf8]
lea eax, [eax + esi + 4]
cmp dword [ebp - 0x164], eax
jae 0x47304a
mov eax, 0x131b0
call fcn.0042aea7
jmp 0x473262
mov eax, dword [ebp - 0x158]
mov eax, dword [eax]
bswap eax
mov dword [ebp - 0x164], eax
jmp 0x473066
mov dword [ebp - 0x164], 0
mov dword [ebp - 0x158], 0
sub dword [ebp - 0x128], ebx
cmp dword [ebp - 0xf8], 0
je 0x4730b2
cmp dword [ebp - 0xf8], ebx
mov eax, dword [ebp - 0xf8]
mov edi, dword [ebp - 0x130]
mov esi, dword [ebp - 0x148]
cmova eax, ebx
sub dword [ebp - 0xf8], eax
mov ecx, eax
sub ebx, eax
rep movsb byte es:[edi], byte [esi]
mov dword [ebp - 0x130], edi
mov dword [ebp - 0x148], esi
test ebx, ebx
je 0x473124
mov eax, dword [ebp - 0xd8]
call fcn.00402bb7
mov edx, dword [ebp - 0x164]
mov eax, dword [ebp - 0x18c]
lea ecx, [ebp - 0xd8]
mov dword [esp], 2
mov dword [ebp - 0xd8], 0
call fcn.00402b31
test eax, eax
mov dword [ebp - 0xdc], eax
jne 0x473124
mov eax, dword [ebp - 0xd8]
mov esi, dword [eax + 4]
mov eax, dword [esi]
bswap eax
mov dword [ebp - 0x164], eax
lea eax, [esi + 4]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x138]
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 0x28]
sub eax, 4
mov dword [ebp - 0xf8], eax
cmp dword [ebp - 0xdc], 0
sete al
test ebx, ebx
je 0x47313a
test al, al
jne 0x473076
cmp dword [ebp - 0x128], 0
je 0x473230
test al, al
je 0x473230
cmp dword [ebp - 0x160], 0
je 0x473239
mov eax, dword [ebp - 0x118]
lea ecx, [ebp - 0xd0]
lea edx, [ebp - 0x80]
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [ebp - 0x80], 0
call fcn.0044e4e5
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0xd0]
mov edi, dword [ebp - 0x160]
bswap eax
mov dword [edi], eax
mov eax, dword [ebp - 0x118]
cmp byte [eax + 0x11], 0
je 0x4731dd
cmp dword [ebp - 0x158], 0
je 0x4731dd
lea eax, [ebp - 0xdc]
mov edx, dword [ebp - 0xd0]
mov ecx, 4
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x158]
mov eax, dword [eax + 4]
mov dword [esp], eax
mov eax, dword [ebp - 0x118]
call fcn.0044eafa
mov eax, dword [ebp - 0x158]
call fcn.004034cc
mov eax, dword [ebp - 0x80]
test eax, eax
mov dword [ebp - 0x158], eax
je 0x473239
mov eax, dword [eax + 0x38]
mov dword [eax], 0
mov dword [ebp - 0x160], eax
add eax, 4
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0x118]
mov eax, dword [eax + 0x28]
mov dword [ebp - 0x190], eax
sub eax, 4
cmp eax, dword [ebp - 0x128]
cmova eax, dword [ebp - 0x128]
mov ebx, eax
jmp 0x473239
cmp dword [ebp - 0x128], 0
je 0x473246
cmp dword [ebp - 0xdc], 0
je 0x473070
mov eax, dword [ebp - 0x158]
call fcn.004034cc
mov eax, dword [ebp - 0xd8]
call fcn.00402bb7
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0xf8], eax
cmp dword [ebp - 0xf8], 0
je case.0x46ec3a.89
jmp 0x476e92
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 8]
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov ebx, dword [eax + edx*4]
mov eax, dword [ebp - 0xf4]
cmp byte [eax + 1], 0xfb
jne 0x47330d
mov eax, dword [ebp - 0x100]
cmp dword [eax + 0x114], 0
jne 0x4732c2
cmp dword [eax + 0xfc], 0
je 0x47330d
movsx eax, byte [ebx + 1]
mov esi, dword [ebp - 0x100]
shl eax, 4
add eax, dword [esi + 0x10]
mov edi, dword [eax]
mov eax, dword [ebp - 0xf4]
test byte [eax + 2], 2
mov esi, dword [eax + 0x10]
je 0x473311
cmp byte [ebx + 4], 0
je 0x473311
mov edx, dword [ebx + 0x24]
mov eax, edx
mov dword [ebp - 0x128], edx
call fcn.0040a2dd
mov edx, dword [ebp - 0x128]
mov eax, dword [edx + 0x20]
mov edx, dword [edx + 0x24]
mov dword [ebx + 0x38], eax
mov dword [ebx + 0x3c], edx
jmp 0x473311
xor esi, esi
xor edi, edi
mov eax, dword [ebp - 0x100]
test esi, esi
setne byte [ebp - 0x128]
cmp dword [eax + 0x114], 0
je 0x47337d
cmp byte [ebp - 0x128], 0
je 0x47337d
mov edx, dword [ebx + 0x38]
mov eax, dword [ebp - 0xf4]
mov ecx, dword [ebx + 0x3c]
mov eax, dword [eax + 0xc]
mov dword [esp + 8], edx
mov edx, dword [ebp - 0x118]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 4], esi
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0xfc]
and edx, 4
mov dword [esp], edi
cmp edx, 1
mov edx, ebx
sbb ecx, ecx
and ecx, 0xfffffff2
add ecx, 0x17
call fcn.0040dd29
test byte [ebp - 0x118], 0x40
jne case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
movzx edx, byte [eax + 2]
mov eax, dword [ebx + 0x24]
call fcn.00453c20
test eax, eax
mov dword [ebp - 0xf8], eax
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x1c], 0
jne 0x476e92
test byte [ebp - 0x118], 1
je case.0x46ec3a.89
mov eax, dword [ebp - 0xfc]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
mov eax, dword [ebp - 0x100]
mov ecx, dword [eax + 0xfc]
test ecx, ecx
je case.0x46ec3a.89
cmp byte [ebp - 0x128], 0
je case.0x46ec3a.89
test byte [esi + 0x1c], 0x80
jne case.0x46ec3a.89
mov eax, dword [ebx + 0x38]
mov edx, dword [ebx + 0x3c]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov eax, dword [esi]
mov dword [esp + 8], edi
mov dword [esp + 4], 9
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x100]
mov eax, dword [eax + 0xf8]
mov dword [esp], eax
call ecx
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xfc]
mov edi, dword [ebp - 0x100]
mov edx, dword [eax + 0x2c]
mov eax, dword [eax + 0x28]
add dword [edi + 0x70], eax
adc dword [edi + 0x74], edx
mov dword [edi + 0x68], eax
mov eax, dword [ebp - 0xfc]
mov dword [edi + 0x6c], edx
mov dword [eax + 0x28], 0
mov dword [eax + 0x2c], 0
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edi, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov ecx, dword [edi + 0xc]
mov edi, dword [edi + 0x10]
mov eax, dword [eax + 0x60]
mov dword [ebp - 0xf8], ecx
mov eax, dword [eax + edx*4]
mov edx, dword [eax + 0x24]
mov esi, dword [eax + 0x28]
mov ebx, dword [edx + 0x20]
test ebx, ebx
jne 0x4734c3
mov eax, esi
mov dword [ebp - 0x118], edx
call fcn.0041b5ab
mov edx, dword [ebp - 0x118]
test eax, eax
mov ebx, eax
mov dword [edx + 0x20], eax
je 0x476e7c
mov word [eax + 0x14], di
cmp byte [edx + 0x38], 0
je 0x4734de
mov edx, dword [edx + 0x14]
mov eax, dword [edx + 8]
imul eax, dword [eax + 4], 0x38
add eax, dword [edx + 0xc]
mov edx, dword [eax + 0x14]
mov ecx, dword [eax + 0x20]
jmp 0x4734e6
mov ecx, dword [edx + 0x24]
mov edx, dword [ecx]
add ecx, 8
mov eax, esi
mov dword [esp], ebx
call fcn.0040c60a
xor eax, eax
cmp edi, eax
jle 0x473509
imul edx, eax, 0x28
add edx, dword [ebx + 4]
test byte [edx + 0x10], 1
jne 0x472541
inc eax
jmp 0x4734f2
imul eax, dword [ebp - 0xf8], 0x28
mov dword [esp + 8], ebx
add eax, dword [ebp - 0x108]
mov edx, dword [eax + 8]
mov dword [esp + 4], edx
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call fcn.0042c98e
test eax, eax
jne 0x472541
mov dword [ebp - 0xf8], 0
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
imul edi, dword [eax + 8], 0x28
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
add edi, dword [ebp - 0x108]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + edx*4]
mov eax, dword [eax + 0x24]
cmp byte [eax + 0x38], 0
je 0x473580
mov edx, dword [eax + 0x14]
mov eax, dword [edx + 8]
imul eax, dword [eax + 4], 0x38
add eax, dword [edx + 0xc]
mov ebx, dword [eax + 0x14]
mov esi, dword [eax + 0x20]
jmp 0x473588
mov esi, dword [eax + 0x24]
mov ebx, dword [esi]
add esi, 8
mov edx, ebx
mov eax, edi
call fcn.0041dc0e
test eax, eax
jne 0x476e88
mov eax, dword [edi + 0x10]
mov dword [edi + 0xc], ebx
mov ecx, ebx
mov dword [ebp - 0xf8], 0
and ax, 0xf240
or eax, 0x10
mov word [edi + 0x10], ax
mov eax, dword [edi + 8]
mov edi, eax
mov eax, dword [ebp - 0xf4]
rep movsb byte es:[edi], byte [esi]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + edx*4]
mov dword [eax + 0x18], 0
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x58]
call fcn.00411de9
mov ebx, eax
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + edx*4]
mov esi, dword [eax + 0x24]
mov eax, esi
call fcn.0040a2dd
mov eax, dword [ebp - 0x100]
mov edx, dword [esi + 0x2c]
cmp edx, dword [eax + 0x78]
ja 0x47712d
mov ecx, ebx
mov eax, esi
call fcn.00452860
test eax, eax
mov dword [ebp - 0xf8], eax
jne 0x476e92
mov eax, dword [ebp - 0xf4]
cmp dword [eax + 0xc], 0
jne case.0x46ec3a.89
test byte [ebx + 0x11], 0x40
je case.0x46ec3a.89
mov eax, ebx
call fcn.0041e397
test eax, eax
je case.0x46ec3a.89
jmp 0x477183
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x58]
call fcn.00411de9
mov esi, eax
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov ebx, dword [eax + edx*4]
cmp byte [ebx + 2], 0
je 0x4736ac
mov word [esi + 0x10], 1
jmp case.0x46ec3a.89
cmp byte [ebx + 3], 0
je 0x4736c3
mov eax, dword [ebx + 0x38]
mov edx, dword [ebx + 0x3c]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
jmp 0x473754
cmp byte [ebx], 2
mov eax, dword [ebx + 0x24]
jne 0x4736fe
mov ebx, dword [eax]
lea ecx, [ebp - 0x80]
mov edx, dword [ebx]
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0x30]
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0xfc]
lea edx, [ebx + 8]
call fcn.0041b423
cmp dword [ebp - 0xf8], 0
je 0x473754
jmp 0x476e92
cmp byte [eax], 0
jne 0x47371e
cmp byte [ebx + 2], 0
je 0x473734
mov word [esi + 0x10], 1
mov dword [ebp - 0xf8], 0
jmp case.0x46ec3a.89
mov eax, ebx
call fcn.00452289
test eax, eax
mov dword [ebp - 0xf8], eax
je 0x473703
jmp 0x476e92
mov ebx, dword [ebx + 0x24]
mov eax, ebx
call fcn.0040a2dd
mov eax, dword [ebx + 0x20]
mov edx, dword [ebx + 0x24]
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
mov eax, dword [ebp - 0x80]
mov edx, dword [ebp - 0x7c]
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + edx*4]
test eax, eax
jne 0x4737b2
mov eax, dword [ebp - 0xfc]
mov dword [esp], 3
mov ecx, 1
call fcn.00457f18
test eax, eax
je 0x477183
or byte [eax + 8], 8
mov dword [eax + 0x1c], 0
mov byte [eax + 4], 1
mov dword [eax + 0x24], 0x51a028
cmp byte [eax], 0
mov byte [eax + 2], 1
mov dword [eax + 0x18], 0
jne case.0x46ec3a.89
mov ebx, dword [eax + 0x24]
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.0040b268
mov dword [ebx + 0x10], 0
mov byte [ebx], 1
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
cmp cl, 0x89
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov ebx, dword [eax + edx*4]
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0x80], 0
je 0x473834
lea edx, [ebp - 0x80]
call fcn.0042c4eb
mov dword [ebp - 0xf8], eax
cmp dword [ebp - 0xf8], 0
mov eax, dword [ebp - 0x80]
mov byte [ebx + 3], 0
mov dword [ebx + 0x18], 0
mov byte [ebx + 2], al
je 0x473846
jmp 0x476e92
mov dword [ebx + 0x1c], 0xffffffff
cmp byte [eax], 0
je case.0x46ec3a.89
jmp 0x473807
mov esi, dword [ebp - 0xf4]
cmp dword [esi + 8], 0
jg 0x470526
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + edx*4]
lea edx, [ebp - 0x80]
mov esi, dword [eax + 0x24]
mov eax, esi
call fcn.0042c506
test eax, eax
mov dword [ebp - 0xf8], eax
jne 0x476e92
cmp dword [ebp - 0x80], 0
jne 0x4738ec
cmp byte [esi], 0
jne 0x4738ec
mov eax, dword [esi + 0x74]
cmp byte [eax + 8], 0
je 0x4738ec
movsx edi, byte [esi + 0x44]
movzx eax, word [eax + 0x18]
xor edx, edx
xor ecx, ecx
mov dword [ebp - 0x118], edi
movzx ebx, cl
cmp ebx, dword [ebp - 0x118]
jge 0x4738d0
mov ebx, dword [esi + ebx*4 + 0x78]
inc ecx
movzx edi, word [ebx + 0x18]
mov ebx, edx
imul ebx, edi
mul edi
add edx, ebx
jmp 0x4738b1
test edx, edx
js 0x4738ec
call fcn.00401f5d
mov ecx, dword [ebp - 0xf4]
cwde
cmp eax, dword [ecx + 0xc]
jge 0x4738ec
mov dword [ebp - 0x80], 1
cmp dword [ebp - 0x80], 0
jmp 0x470528
mov eax, dword [ebp - 0xfc]
inc dword [eax + 0xac]
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov edi, dword [eax + edx*4]
mov dword [ebp - 0xe0], 1
cmp byte [edi], 1
jne 0x473c9a
mov esi, dword [edi + 0x24]
cmp byte [esi + 0x38], 0
jne 0x473988
cmp dword [esi + 0x24], 0
jne 0x473968
mov eax, dword [ebp - 0xe0]
mov esi, dword [ebp - 0xf4]
mov byte [edi + 2], al
cmp dword [esi + 8], 0
jle 0x473ccf
test eax, eax
mov dword [ebp - 0xf8], 0
jne 0x46fedd
jmp 0x473ccf
lea edx, [esi + 0x24]
lea eax, [esi + 0x40]
mov dword [ebp - 0xe0], 0
call fcn.0041b5e0
mov dword [ebp - 0xf8], eax
jmp 0x473cb9
lea eax, [esi + 0x40]
lea edx, [esi + 0x24]
mov byte [esi + 0x38], 1
mov dword [ebp - 0x18c], eax
call fcn.0041b6fa
test eax, eax
mov dword [ebp - 0xf8], eax
jne 0x476e92
lea eax, [esi + 0x40]
mov dword [ebp - 0x128], 0
mov dword [ebp - 0x148], 0
mov dword [ebp - 0xf8], eax
movzx eax, byte [esi + 0x3b]
cmp eax, dword [ebp - 0x148]
jle 0x4774b2
mov eax, dword [ebp - 0xf8]
mov dword [ebp - 0xdc], 0
xor edx, edx
mov dword [ebp - 0x158], 0
mov ebx, dword [eax + 0x1c]
mov eax, 0x10
mov ecx, ebx
mov dword [ebp - 0x118], ebx
sar ecx, 0x1f
mov dword [ebp - 0x114], ecx
cmp edx, dword [ebp - 0x114]
jge 0x473a24
shld edx, eax, 4
inc dword [ebp - 0x158]
shl eax, 4
jmp 0x473a0d
jg 0x473a2a
cmp eax, ebx
jb 0x473a15
cmp ebx, 0x10
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x7c], 0
jg 0x473a5d
lea eax, [ebp - 0xdc]
lea ecx, [ebp - 0x80]
mov edx, ebx
mov dword [esp], eax
mov eax, dword [ebp - 0xf8]
call fcn.0041822f
mov ebx, eax
jmp 0x473c38
mov eax, 0x10
call fcn.00415197
cmp eax, 1
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0x118], 0
sbb ebx, ebx
mov dword [ebp - 0x138], 0
and ebx, 7
mov eax, dword [ebp - 0xf8]
mov edx, dword [eax + 0x1c]
cmp edx, dword [ebp - 0x138]
jle 0x473c38
test ebx, ebx
jne 0x473c4a
sub edx, dword [ebp - 0x138]
mov eax, 0x10
lea ecx, [ebp - 0x80]
mov dword [ebp - 0xd8], 0
cmp edx, 0x10
cmovg edx, eax
lea eax, [ebp - 0xd8]
mov dword [esp], eax
mov eax, dword [ebp - 0xf8]
call fcn.0041822f
test eax, eax
mov ebx, eax
jne 0x473c2c
mov eax, dword [ebp - 0xdc]
mov edx, dword [ebp - 0xd8]
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0x160], eax
mov eax, dword [ebp - 0x118]
inc eax
mov dword [ebp - 0x190], eax
mov eax, dword [ebp - 0xf8]
call fcn.00416430
mov dword [ebp - 0x130], 1
mov ecx, eax
mov eax, 1
cmp dword [ebp - 0x158], eax
jle 0x473b35
shl dword [ebp - 0x130], 4
inc eax
jmp 0x473b23
mov dword [ebp - 0x164], 1
mov ebx, dword [ebp - 0x164]
cmp dword [ebp - 0x158], ebx
jle 0x473bda
test ecx, ecx
jne 0x473bda
mov eax, dword [ebp - 0x118]
mov ecx, 0x10
cdq
idiv dword [ebp - 0x130]
cdq
idiv ecx
mov eax, dword [ebp - 0x160]
mov ebx, dword [eax + 0xc]
imul edx, edx, 0x38
add ebx, edx
cmp dword [ebx + 0x30], 0
je 0x473ba6
mov eax, dword [ebx + 0x30]
mov ecx, 0x10
mov eax, dword [eax + 4]
mov dword [ebp - 0x160], eax
mov eax, dword [ebp - 0x130]
cdq
idiv ecx
xor ecx, ecx
mov dword [ebp - 0x130], eax
jmp 0x473bcf
mov eax, 0x10
call fcn.00415197
test eax, eax
mov ecx, 7
je 0x473bcf
mov edx, eax
mov eax, dword [ebp - 0xf8]
lea ecx, [ebx + 0x30]
call fcn.00416430
test eax, eax
mov ecx, eax
je 0x473b82
inc dword [ebp - 0x164]
jmp 0x473b3f
test ecx, ecx
mov ebx, dword [ebp - 0xd0]
jne 0x473bfe
mov eax, dword [ebp - 0x118]
mov edx, dword [ebp - 0x160]
and eax, 0xf
imul eax, eax, 0x38
add eax, dword [edx + 0xc]
mov dword [eax + 0x30], ebx
jmp 0x473c1e
test ebx, ebx
je 0x473c1e
mov eax, dword [ebx + 4]
mov dword [ebp - 0x118], ecx
call fcn.004163ff
mov dword [esp], ebx
call fcn.0040b268
mov ecx, dword [ebp - 0x118]
mov eax, dword [ebp - 0x190]
mov ebx, ecx
mov dword [ebp - 0x118], eax
add dword [ebp - 0x138], 0x10
jmp 0x473a89
test ebx, ebx
jne 0x473c4a
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0x128], eax
jmp 0x473c55
mov eax, dword [ebp - 0xdc]
call fcn.004163ff
inc dword [ebp - 0x148]
add dword [ebp - 0xf8], 0x48
test ebx, ebx
je 0x4739c8
mov eax, dword [ebp - 0x128]
call fcn.004163ff
mov dword [ebp - 0xf8], ebx
xor eax, eax
call fcn.004163ff
cmp dword [ebp - 0xf8], 0
mov dword [ebp - 0xe0], 0
je 0x473ccb
jmp 0x476e92
mov eax, dword [edi + 0x24]
lea edx, [ebp - 0xe0]
call fcn.0042c506
mov byte [edi + 3], 0
mov dword [ebp - 0xf8], eax
mov dword [edi + 0x18], 0
cmp dword [ebp - 0xf8], 0
je 0x473938
jmp 0x476e92
mov byte [edi + 2], 0
mov dword [ebp - 0xf8], 0
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov ebx, dword [eax + edx*4]
mov edi, dword [ebx + 0x24]
cmp byte [edi + 0x38], 0
je 0x473d31
mov eax, dword [edi + 0x14]
lea edx, [ebp - 0x80]
mov dword [ebp - 0x80], 0
call fcn.004180ea
test eax, eax
mov dword [ebp - 0xf8], eax
jne 0x473dbb
cmp dword [ebp - 0x80], 0
mov eax, 0x65
cmove eax, dword [ebp - 0xf8]
jmp 0x473db5
mov eax, dword [edi + 0x24]
mov edx, dword [eax + 4]
mov dword [edi + 0x24], edx
mov dword [eax + 4], 0
cmp dword [edi + 0x28], 0
je 0x473d5c
cmp dword [edi + 0x24], 1
sbb eax, eax
mov dword [ebp - 0xf8], eax
and dword [ebp - 0xf8], 0x65
jmp 0x473dbb
mov esi, dword [eax + 4]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x100]
mov dword [esp], eax
call fcn.0040b317
test esi, esi
mov eax, esi
jne 0x473d5c
jmp 0x473d47
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov ebx, dword [eax + edx*4]
mov eax, dword [ebx + 0x24]
call fcn.0045237c
jmp 0x473db5
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov ebx, dword [eax + edx*4]
mov eax, dword [ebx + 0x24]
call fcn.004524a4
mov dword [ebp - 0xf8], eax
cmp dword [ebp - 0xf8], 0
mov dword [ebx + 0x18], 0
jne 0x473deb
mov eax, dword [ebp - 0xf4]
mov byte [ebx + 2], 0
mov edi, dword [ebp - 0xfc]
movzx eax, word [eax + 2]
inc dword [edi + eax*4 + 0xa4]
jmp case.0x46ec3a.9
cmp dword [ebp - 0xf8], 0x65
jne 0x476e92
mov byte [ebx + 2], 1
mov dword [ebp - 0xf8], 0
jmp 0x46ec88
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + edx*4]
mov eax, dword [ebp - 0xf4]
imul ebx, dword [eax + 8], 0x28
add ebx, dword [ebp - 0x108]
test byte [eax + 2], 1
je 0x473e44
mov eax, dword [ebp - 0xfc]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
test byte [ebx + 0x11], 4
jne 0x473e92
mov eax, dword [ebx + 0xc]
xor edx, edx
mov dword [ebp - 0x78], eax
sar eax, 0x1f
mov dword [ebp - 0x74], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0xf4]
imul eax, dword [eax + 0xc], 0x28
add eax, dword [ebp - 0x108]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 0x10]
mov word [ebp - 0x68], ax
mov eax, dword [ebp - 0xf4]
mov cx, word [eax + 2]
test cl, 0x10
je 0x473ea8
mov edx, dword [esi + 0x1c]
jmp 0x473ea8
mov eax, ebx
call fcn.0041e2ee
test eax, eax
mov dword [ebp - 0xf8], eax
je 0x473e4a
jmp 0x476e92
mov eax, dword [esi + 0x24]
mov dword [esp], edx
lea edx, [ebp - 0x80]
and ecx, 0x8a
call fcn.00452f69
test eax, eax
mov dword [ebp - 0xf8], eax
mov dword [esi + 0x18], 0
je case.0x46ec3a.89
jmp 0x476e92
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov ebx, dword [eax + edx*4]
mov eax, dword [ebp - 0xf4]
imul eax, dword [eax + 8], 0x28
add eax, dword [ebp - 0x108]
test byte [eax + 0x11], 4
mov dword [ebp - 0x118], eax
jne 0x473f2a
mov eax, dword [ebp - 0x118]
mov ebx, dword [ebx + 0x24]
mov eax, dword [eax + 8]
movzx edx, byte [eax + 1]
cmp edx, 0x7f
mov dword [ebp - 0x80], edx
jle 0x473f44
lea edx, [ebp - 0x80]
inc eax
call fcn.0040c53c
jmp 0x473f44
mov eax, dword [ebp - 0x118]
call fcn.0041e2ee
test eax, eax
mov dword [ebp - 0xf8], eax
je 0x473f07
jmp 0x476e92
mov eax, dword [ebp - 0x80]
lea edx, [eax - 1]
cmp edx, 8
ja 0x473f5a
cmp eax, 7
je 0x473f5a
and byte [ebx + 0x3c], 1
jmp 0x473f6d
cmp eax, 0xa
jle 0x473f69
test al, 1
je 0x473f69
and byte [ebx + 0x3c], 2
jmp 0x473f6d
mov byte [ebx + 0x3c], 0
mov eax, dword [ebp - 0x118]
mov ecx, 1
mov esi, dword [eax + 0xc]
lea eax, [esi + 8]
mov dword [ebp - 0x130], eax
mov eax, esi
cdq
shrd eax, edx, 7
shr edx, 7
mov edi, edx
or edi, eax
je 0x473f97
inc ecx
jmp 0x473f87
mov edx, dword [ebx + 4]
add esi, ecx
test edx, edx
je 0x47767e
cmp dword [ebx + 0x28], 0
je 0x473fc8
mov eax, dword [ebx + 0x30]
test eax, eax
je 0x47767e
add eax, dword [ebp - 0x130]
cmp edx, eax
jl 0x4774e4
jmp 0x47767e
mov eax, dword [ebx + 0x2c]
cmp edx, eax
jl 0x4774e4
cmp eax, dword [ebx]
jle 0x47767e
mov eax, dword [0x51a2b8]
test eax, eax
jne 0x4774e4
jmp 0x47767e
mov eax, dword [ebp - 0xf4]
lea ecx, [ebp - 0xd0]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov ebx, dword [eax + edx*4]
lea edx, [ebp - 0x80]
mov eax, dword [ebx + 0x28]
mov esi, dword [ebx + 0x24]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 0xc]
mov byte [ebp - 0x6a], 0
mov word [ebp - 0x6c], ax
mov eax, dword [ebp - 0xf4]
imul eax, dword [eax + 8], 0x28
add eax, dword [ebp - 0x108]
mov dword [ebp - 0x7c], eax
mov eax, esi
call fcn.00451db4
test eax, eax
mov dword [ebp - 0xf8], eax
jne 0x476e92
cmp dword [ebp - 0xd0], 0
jne 0x474068
mov edx, 4
mov eax, esi
call fcn.00453c20
test eax, eax
je 0x4740c7
jmp 0x4740da
mov eax, dword [ebp - 0xf4]
cmp word [eax + 2], 0
je 0x4740c7
mov eax, dword [ebp - 0x100]
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x118], eax
and eax, 0x10000001
dec eax
je 0x4740c7
mov dword [esp + 0x10], 0x4f21ae
mov dword [esp + 0xc], 0x17b87
mov dword [esp + 8], str.index_corruption
mov dword [esp + 4], str._s_at_line__d_of___.10s_
mov dword [esp], 0x30b
call fcn.0042ac7c
mov dword [ebp - 0xf8], 0x30b
jmp 0x476e92
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x1c], 0
jmp case.0x46ec3a.89
mov dword [ebp - 0xf8], eax
jmp 0x476e92
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov ebx, dword [eax + edx*4]
mov eax, dword [ebx + 0x24]
cmp byte [eax], 0
jne 0x47410d
cmp byte [ebx + 2], 0
je 0x474123
jmp 0x47429e
mov eax, ebx
call fcn.00452289
test eax, eax
mov dword [ebp - 0xf8], eax
je 0x474102
jmp 0x476e92
mov esi, dword [ebx + 0x24]
mov eax, esi
call fcn.0040a2dd
mov eax, dword [ebp - 0x100]
mov edx, dword [esi + 0x2c]
lea ecx, [ebp - 0xd0]
mov word [ebp - 0xc0], 0
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0xbc], eax
mov eax, esi
call fcn.00452860
test eax, eax
mov dword [ebp - 0xf8], eax
jne 0x474229
mov eax, dword [ebp - 0xc8]
movzx edx, byte [eax]
cmp edx, 0x7f
mov dword [ebp - 0xdc], edx
jbe 0x474189
lea edx, [ebp - 0xdc]
call fcn.0040c53c
mov eax, dword [ebp - 0xdc]
cmp eax, 2
jbe 0x47420e
cmp eax, dword [ebp - 0xc4]
ja 0x47420e
mov edx, dword [ebp - 0xc8]
lea eax, [edx + eax - 1]
movzx edx, byte [eax]
cmp edx, 0x7f
mov dword [ebp - 0xd8], edx
jbe 0x4741bf
lea edx, [ebp - 0xd8]
call fcn.0040c53c
mov edx, dword [ebp - 0xd8]
lea eax, [edx - 1]
cmp eax, 8
ja 0x47420e
cmp edx, 7
je 0x47420e
movzx ecx, byte [edx + 0x505a00]
mov esi, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xc4]
add esi, ecx
cmp eax, esi
jb 0x47420e
sub eax, ecx
add eax, dword [ebp - 0xc8]
lea ecx, [ebp - 0x80]
call fcn.004039d1
lea eax, [ebp - 0xd0]
mov esi, dword [ebp - 0x80]
mov edi, dword [ebp - 0x7c]
call fcn.0040b77c
jmp 0x47423a
lea eax, [ebp - 0xd0]
call fcn.0040b77c
mov eax, 0x1577d
call fcn.0042aea7
mov dword [ebp - 0xf8], eax
xor esi, esi
xor edi, edi
cmp dword [ebp - 0xf8], 0
jne 0x476e92
mov eax, dword [ebp - 0xf4]
cmp byte [eax], 0x8d
jne 0x47427d
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + edx*4]
mov dword [eax + 0x38], esi
mov esi, dword [ebp - 0xf4]
mov byte [eax + 2], 0
mov dword [eax + 0x3c], edi
mov byte [eax + 3], 1
mov dword [eax + 0x18], 0
mov edx, dword [esi + 0x10]
mov dword [eax + 0x20], ebx
mov dword [eax + 0xc], edx
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x58]
call fcn.00411de9
mov dword [eax], esi
mov dword [eax + 4], edi
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
imul eax, dword [eax + 8], 0x28
add eax, dword [ebp - 0x108]
call fcn.0040b56e
mov dword [ebp - 0xf8], 0
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + edx*4]
cmp byte [eax + 3], 0
je case.0x46ec3a.89
call fcn.004526f6
test eax, eax
mov dword [ebp - 0xf8], eax
je case.0x46ec3a.89
jmp 0x476e92
mov eax, dword [ebp - 0xf4]
cmp cl, 0x2a
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov edx, dword [eax + edx*4]
mov eax, dword [edx + 0x28]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 0x10]
mov word [ebp - 0xbc], ax
sbb eax, eax
mov byte [ebp - 0xba], al
mov eax, dword [ebp - 0xf4]
imul eax, dword [eax + 0xc], 0x28
add eax, dword [ebp - 0x108]
mov dword [ebp - 0xcc], eax
mov ebx, dword [edx + 0x24]
mov eax, ebx
call fcn.0040a2dd
mov esi, dword [ebx + 0x2c]
xor edx, edx
mov eax, esi
add eax, 0xffffffff
adc edx, 0xffffffff
cmp edx, 0
ja 0x47436b
cmp eax, 0x7ffffffe
jbe 0x474380
mov eax, 0x17c54
call fcn.0042aea7
mov dword [ebp - 0xf8], eax
jmp 0x476e92
mov eax, dword [ebp - 0x100]
lea ecx, [ebp - 0x80]
mov edx, esi
mov word [ebp - 0x70], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x6c], eax
mov eax, ebx
call fcn.00452860
test eax, eax
mov dword [ebp - 0xf8], eax
jne 0x476e92
mov edx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x74]
lea ecx, [ebp - 0xd0]
mov dword [esp], 0
call fcn.0042c539
mov ebx, eax
lea eax, [ebp - 0x80]
call fcn.0040b77c
mov esi, dword [ebp - 0xf4]
lea eax, [ebx + 1]
neg ebx
test byte [esi], 1
cmovne ebx, eax
test ebx, ebx
jg 0x46fedd
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x58]
call fcn.00411de9
mov dword [ebp - 0x128], eax
mov word [eax + 0x10], 1
mov eax, dword [ebp - 0x100]
mov edi, dword [ebp - 0x100]
mov eax, dword [eax + 0xcc]
mov dword [ebp - 0xf8], eax
inc eax
cmp dword [edi + 0xc0], eax
jle 0x474450
mov eax, dword [ebp - 0xfc]
mov dword [ebp - 0xf8], 6
mov byte [eax + 0x92], 2
jmp 0x476e92
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0xf4]
mov esi, dword [eax + 4]
mov eax, dword [ebp - 0x130]
shl eax, 4
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x100]
mov edi, dword [ebp - 0x138]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + edi + 4]
mov edi, dword [eax + 4]
mov dword [ebp - 0x118], eax
mov eax, dword [eax]
cmp esi, dword [edi + 0x30]
mov dword [edi + 4], eax
mov dword [ebp - 0xd8], 0
jbe 0x4744b6
mov eax, 0x133e8
call fcn.0042aea7
jmp 0x47465f
mov eax, dword [ebp - 0x118]
xor ecx, ecx
mov edx, esi
xor ebx, ebx
call fcn.00453978
test eax, eax
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0xdc], eax
jne 0x474691
lea ecx, [ebp - 0xd8]
mov dword [esp], 0
mov edx, esi
mov eax, edi
call fcn.0040348b
test eax, eax
mov dword [ebp - 0xdc], eax
jne 0x47467a
cmp byte [edi + 0x11], 0
je 0x474669
mov eax, dword [ebp - 0x118]
lea ecx, [ebp - 0xd0]
mov edx, 4
call fcn.0040a3f7
cmp esi, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xd8]
jne 0x474556
lea edx, [ebp - 0xdc]
call fcn.0044f899
mov eax, dword [ebp - 0xd8]
call fcn.004034cc
mov eax, dword [ebp - 0xdc]
test eax, eax
je 0x474608
jmp 0x47465f
call fcn.004034cc
mov edx, dword [ebp - 0xd0]
lea ecx, [ebp - 0x80]
mov dword [esp], 0
mov eax, edi
call fcn.0040348b
test eax, eax
mov dword [ebp - 0xdc], eax
jne 0x47465f
mov edx, dword [ebp - 0x80]
mov ecx, 1
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov dword [esp], 0
mov eax, edi
call fcn.0044edc9
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0x80]
call fcn.004034cc
mov eax, dword [ebp - 0xdc]
test eax, eax
jne 0x47465f
mov edx, dword [ebp - 0xd0]
lea ecx, [ebp - 0x80]
mov dword [esp], 0
mov eax, edi
mov dword [ebp - 0x80], 0
call fcn.0040348b
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0x80]
lea edx, [ebp - 0xdc]
call fcn.0044f899
mov eax, dword [ebp - 0x80]
call fcn.004034cc
mov eax, dword [ebp - 0xdc]
test eax, eax
jne 0x47465f
mov ebx, dword [ebp - 0xd0]
dec dword [ebp - 0xd0]
mov eax, dword [0x4f1630]
xor edx, edx
div dword [edi + 0x24]
lea esi, [eax + 1]
mov ecx, dword [ebp - 0xd0]
cmp ecx, esi
jne 0x47462e
dec ecx
mov dword [ebp - 0xd0], ecx
jmp 0x47461b
mov edx, ecx
mov eax, edi
mov dword [ebp - 0xf8], ecx
call fcn.00402ee4
mov ecx, dword [ebp - 0xf8]
cmp ecx, eax
je 0x474625
mov eax, dword [ebp - 0x118]
mov edx, 4
call fcn.0044e421
mov dword [ebp - 0xdc], eax
jmp 0x474685
mov dword [ebp - 0xf8], eax
xor ebx, ebx
jmp 0x474691
mov eax, dword [ebp - 0xd8]
lea edx, [ebp - 0xdc]
call fcn.0044f899
mov eax, dword [ebp - 0xd8]
call fcn.004034cc
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0xf8], eax
mov esi, ebx
mov eax, dword [ebp - 0x128]
sar esi, 0x1f
cmp dword [ebp - 0xf8], 0
mov word [eax + 0x10], 4
mov dword [eax], ebx
mov dword [eax + 4], esi
jne 0x476e92
test ebx, ebx
je case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov esi, dword [ebp - 0x138]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x100]
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + esi + 0xc]
mov eax, dword [ecx + 0x10]
test eax, eax
je 0x4746ee
mov esi, dword [eax + 8]
cmp ebx, dword [esi + 0x14]
jne 0x4746ea
mov dword [esi + 0x14], edx
mov eax, dword [eax]
jmp 0x4746db
mov eax, dword [ecx + 0x20]
test eax, eax
je 0x474704
mov ecx, dword [eax + 8]
cmp ebx, dword [ecx + 0x2c]
jne 0x474700
mov dword [ecx + 0x2c], edx
mov eax, dword [eax]
jmp 0x4746f1
mov al, byte [ebp - 0x130]
inc eax
mov byte [ebp - 0x11e], al
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov esi, dword [ebp - 0x100]
lea ecx, [ebp - 0x80]
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x7c], 0
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ebp - 0xf8], eax
shl eax, 4
add eax, dword [esi + 0x10]
mov eax, dword [eax + 4]
call fcn.00453978
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x474786
mov edi, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0x80]
mov ebx, dword [ebp - 0x7c]
add dword [edi + 0x28], ecx
adc dword [edi + 0x2c], ebx
test eax, eax
jle 0x474786
imul eax, eax, 0x28
mov esi, dword [ebp - 0x108]
add dword [esi + eax], ecx
adc dword [esi + eax + 4], ebx
cmp dword [ebp - 0xf8], 0
je case.0x46ec3a.89
jmp 0x476e92
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + edx*4]
cmp byte [eax], 1
jne 0x4747c5
mov edx, dword [eax + 0x24]
mov eax, dword [ebp - 0x100]
call fcn.00418597
jmp case.0x46ec3a.89
mov eax, dword [eax + 0x24]
xor ecx, ecx
mov edx, dword [eax + 0x40]
mov eax, dword [eax + 8]
call fcn.00453978
test eax, eax
mov dword [ebp - 0xf8], eax
je case.0x46ec3a.89
jmp 0x476e92
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x58]
call fcn.00411de9
mov ebx, eax
mov eax, dword [ebp - 0xf4]
mov dword [ebp - 0x80], 0
mov edi, dword [ebp - 0x100]
lea edx, [ebp - 0x80]
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 4]
mov dword [ebp - 0xf8], eax
shl eax, 4
add eax, dword [edi + 0x10]
mov eax, dword [eax + 4]
call fcn.004539dd
test eax, eax
mov dword [ebp - 0xf8], eax
jne 0x476e92
mov eax, dword [ebp - 0x80]
mov dword [ebx + 4], 0
mov dword [ebx], eax
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0x100]
inc byte [eax + 0x60]
mov eax, dword [ebp - 0xf4]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov eax, dword [eax + 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x100]
mov dword [esp], eax
call fcn.00477ee4
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0x100]
dec byte [eax + 0x60]
cmp dword [ebp - 0xf8], 0
je case.0x46ec3a.89
jmp 0x476e92
mov eax, dword [ebp - 0xf4]
mov ebx, dword [eax + 4]
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x474925
mov esi, dword [ebp - 0x100]
mov eax, ebx
shl eax, 4
add eax, dword [esi + 0x10]
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call fcn.00416fd7
mov eax, dword [ebp - 0x100]
mov edx, ebx
and dword [eax + 0x18], 0xffffffef
mov eax, dword [ebp - 0xfc]
lea ecx, [eax + 0x7c]
mov eax, dword [ebp - 0xf4]
movzx eax, word [eax + 2]
mov dword [esp], eax
mov eax, dword [ebp - 0x100]
call fcn.0047827f
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0x100]
or dword [eax + 0x18], 1
mov eax, dword [ebp - 0xfc]
and byte [eax + 0x98], 0xfc
jmp 0x474a0d
mov esi, dword [ebp - 0xfc]
mov edi, dword [ebp - 0x100]
mov dword [ebp - 0x78], ebx
shl ebx, 4
mov dword [ebp - 0x70], 0
lea edx, [esi + 0x7c]
mov dword [ebp - 0x80], edi
mov dword [ebp - 0x7c], edx
add ebx, dword [edi + 0x10]
mov edx, dword [ebx + 4]
mov edx, dword [edx + 4]
mov edx, dword [edx + 0x30]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0x4f20ad
mov eax, dword [ebx]
mov dword [esp + 4], str.SELECTFROM__w_._s_WHERE__s_ORDER_BY_rowid
mov dword [esp], edi
mov dword [ebp - 0x68], edx
mov dword [esp + 8], eax
call fcn.00429c52
test eax, eax
mov ebx, eax
je 0x474a1c
mov eax, dword [ebp - 0x100]
mov byte [eax + 0xb1], 1
lea eax, [ebp - 0x80]
mov dword [esp + 0x10], 0
mov dword [esp + 8], fcn.0048c112
mov dword [esp + 4], ebx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x100]
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x6c], 0
mov dword [esp], eax
call fcn.00477ee4
test eax, eax
mov dword [ebp - 0xf8], eax
jne 0x4749f3
mov eax, dword [ebp - 0x74]
test eax, eax
mov dword [ebp - 0xf8], eax
jne 0x4749f3
cmp dword [ebp - 0x6c], 0
jne 0x4749f3
mov eax, 0x17d50
call fcn.0042aea7
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0x100]
mov edx, ebx
call fcn.0040b2bc
mov eax, dword [ebp - 0x100]
mov byte [eax + 0xb1], 0
cmp dword [ebp - 0xf8], 0
je case.0x46ec3a.89
jmp 0x474a26
mov dword [ebp - 0xf8], 7
mov eax, dword [ebp - 0x100]
call fcn.0041712f
cmp dword [ebp - 0xf8], 7
jne 0x476e92
jmp 0x477183
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x100]
call fcn.0047819a
test eax, eax
mov dword [ebp - 0xf8], eax
je case.0x46ec3a.89
jmp 0x476e92
mov eax, dword [ebp - 0xf4]
mov esi, dword [ebp - 0x100]
xor ecx, ecx
mov edx, dword [eax + 0x10]
mov eax, dword [eax + 4]
mov dword [ebp - 0x118], eax
shl eax, 4
add eax, dword [esi + 0x10]
mov eax, dword [eax + 0xc]
add eax, 8
call fcn.00414bf9
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x100]
mov dword [esp], eax
call fcn.00416db4
mov eax, dword [ebp - 0x100]
or dword [eax + 0x18], 1
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edi, dword [ebp - 0x100]
xor ecx, ecx
mov edx, dword [eax + 0x10]
mov eax, dword [eax + 4]
mov dword [ebp - 0x118], eax
shl eax, 4
add eax, dword [edi + 0x10]
mov eax, dword [eax + 0xc]
add eax, 0x18
call fcn.00414bf9
test eax, eax
je 0x474b19
mov edx, dword [eax + 0xc]
mov ecx, dword [edx + 8]
cmp eax, ecx
jne 0x474b00
mov ecx, dword [eax + 0x14]
mov dword [edx + 8], ecx
jmp 0x474b0c
mov edx, dword [ecx + 0x14]
cmp eax, edx
je 0x474b06
mov ecx, edx
test ecx, ecx
jne 0x474af7
jmp 0x474b0c
mov edx, dword [eax + 0x14]
mov dword [ecx + 0x14], edx
mov edx, eax
mov eax, dword [ebp - 0x100]
call fcn.00416996
mov eax, dword [ebp - 0x100]
or dword [eax + 0x18], 1
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov esi, dword [ebp - 0x100]
xor ecx, ecx
mov edx, dword [eax + 0x10]
mov eax, dword [eax + 4]
mov dword [ebp - 0x118], eax
shl eax, 4
add eax, dword [esi + 0x10]
mov eax, dword [eax + 0xc]
add eax, 0x28
call fcn.00414bf9
test eax, eax
mov ebx, eax
je case.0x46ec3a.89
mov eax, dword [eax + 0x14]
cmp eax, dword [ebx + 0x18]
jne 0x474b91
mov edx, dword [ebx + 4]
add eax, 8
call fcn.0040211c
test eax, eax
je 0x474b91
lea edx, [eax + 0x38]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x474b91
cmp ebx, eax
jne 0x474b89
mov eax, dword [ebx + 0x20]
mov dword [edx], eax
jmp 0x474b91
lea edx, [eax + 0x20]
mov eax, dword [eax + 0x20]
jmp 0x474b7a
mov eax, dword [ebp - 0x100]
mov edx, ebx
call fcn.00416f42
mov eax, dword [ebp - 0x100]
or dword [eax + 0x18], 1
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0x100]
mov eax, dword [eax + 8]
mov dword [ebp - 0x128], eax
mov eax, dword [ebp - 0xf4]
mov esi, dword [eax + 0x10]
imul eax, dword [eax + 0xc], 0x28
add eax, dword [ebp - 0x108]
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0xf4]
imul eax, dword [eax + 4], 0x28
add eax, dword [ebp - 0x108]
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x130]
mov eax, dword [eax]
mov dword [ebp - 0xf8], eax
inc eax
mov dword [ebp - 0x158], eax
mov eax, dword [ebp - 0xf4]
movzx eax, word [eax + 2]
shl eax, 4
add eax, dword [ecx + 0x10]
cmp dword [esi + 4], 0
mov eax, dword [eax + 4]
mov ebx, dword [eax + 4]
mov ecx, dword [ebx + 4]
mov edx, dword [ecx + 0x20]
mov ecx, dword [ecx + 0x24]
mov dword [ebp - 0x160], edx
mov dword [ebp - 0x15c], ecx
jne 0x474c52
xor ecx, ecx
cmp dword [esi + 8], 1
mov dword [ebp - 0xf8], 1
sete cl
mov dword [ebp - 0x138], ecx
jmp 0x474c66
mov dword [ebp - 0x138], 1
mov dword [ebp - 0xf8], 0
mov eax, dword [eax]
lea edi, [ebp - 0xd0]
mov ecx, 0x14
lea edx, [ebp - 0x80]
mov dword [ebx + 4], eax
xor eax, eax
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x100]
mov dword [ebp - 0xd0], ebx
mov edi, dword [ebp - 0x158]
mov dword [ebp - 0x84], eax
mov eax, dword [ebx]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebx + 0x30]
mov dword [ebp - 0xc0], edi
mov dword [ebp - 0x9c], edx
mov dword [ebp - 0x98], 0x64
mov dword [ebp - 0x94], 0x3b9aca00
test eax, eax
mov dword [ebp - 0xc4], eax
mov byte [ebp - 0x8b], 1
je 0x474f64
shr eax, 3
xor edx, edx
inc eax
call fcn.00414d97
test eax, eax
mov dword [ebp - 0xc8], eax
jne 0x474cfa
lea eax, [ebp - 0xd0]
call fcn.0040370b
jmp 0x474f64
mov eax, dword [ebx + 0x24]
call fcn.004158de
test eax, eax
mov dword [ebp - 0x88], eax
je 0x474cea
mov eax, dword [0x4f1630]
xor edx, edx
div dword [ebx + 0x24]
lea ecx, [eax + 1]
cmp ecx, dword [ebp - 0xc4]
ja 0x474d38
mov eax, ecx
mov edx, 1
and ecx, 7
shr eax, 3
add eax, dword [ebp - 0xc8]
shl edx, cl
or byte [eax], dl
cmp dword [ebp - 0x138], 0
je 0x474d78
mov dword [ebp - 0xb0], str.Freelist:
mov eax, dword [ebx + 0xc]
mov edx, dword [eax + 0x38]
mov eax, dword [edx + 0x24]
mov ecx, dword [edx + 0x20]
mov edx, 1
bswap eax
bswap ecx
mov dword [esp], eax
lea eax, [ebp - 0xd0]
call fcn.0042e5f8
mov dword [ebp - 0xb0], 0
cmp dword [ebp - 0xf8], 0
jne 0x474df0
cmp byte [ebx + 0x11], 0
je 0x474dce
xor edx, edx
xor eax, eax
cmp dword [ebp - 0x128], eax
jle 0x474d9f
mov ecx, dword [esi + eax*4 + 4]
cmp edx, ecx
cmovb edx, ecx
inc eax
jmp 0x474d8b
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 0x34]
bswap eax
cmp edx, eax
je 0x474df0
mov dword [esp + 0xc], eax
lea eax, [ebp - 0xd0]
mov dword [esp + 8], edx
mov dword [esp + 4], str.max_rootpage___u__disagrees_with_header___u_
mov dword [esp], eax
call fcn.0042e464
jmp 0x474df0
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 0x38]
cmp dword [eax + 0x40], 0
je 0x474df0
lea eax, [ebp - 0xd0]
mov dword [esp + 4], str.incremental_vacuum_enabled_with_a_max_rootpage_of_zero
mov dword [esp], eax
call fcn.0042e464
mov eax, dword [ebx + 4]
xor edi, edi
and dword [eax + 0x20], 0xffdfffff
and dword [eax + 0x24], 0xffffffff
mov eax, dword [ebp - 0xf8]
xor eax, 1
and eax, 1
mov byte [ebp - 0x138], al
cmp dword [ebp - 0x128], edi
jle 0x474e7d
cmp dword [ebp - 0xc0], 0
je 0x474e7d
mov edx, dword [esi + edi*4 + 4]
test edx, edx
je 0x474e7a
cmp byte [ebx + 0x11], 0
setne al
test byte [ebp - 0x138], al
je 0x474e56
cmp edx, 1
jbe 0x474e56
lea eax, [ebp - 0xd0]
mov dword [esp], 0
mov ecx, 1
call fcn.0042e567
mov edx, dword [esi + edi*4 + 4]
lea ecx, [ebp - 0xd8]
lea eax, [ebp - 0xd0]
mov dword [esp], 0xffffffff
mov dword [esp + 4], 0x7fffffff
call fcn.0042e798
inc edi
jmp 0x474e12
cmp dword [ebp - 0xf8], 0
mov eax, dword [ebx + 4]
mov esi, dword [ebp - 0x160]
mov edi, dword [ebp - 0x15c]
mov dword [eax + 0x20], esi
mov dword [eax + 0x24], edi
jne 0x474f64
lea edi, [ebp - 0xd0]
mov esi, 1
cmp esi, dword [ebp - 0xc4]
ja 0x474f64
cmp dword [ebp - 0xc0], 0
je 0x474f64
mov eax, esi
mov ecx, esi
shr eax, 3
and ecx, 7
mov dword [ebp - 0xf8], eax
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0xf8]
mov dword [ebp - 0x128], eax
mov eax, dword [ebp - 0xc8]
movzx eax, byte [eax + ecx]
test dword [ebp - 0x128], eax
jne 0x474f1f
mov edx, esi
mov eax, ebx
call fcn.00402ee4
cmp esi, eax
jne 0x474f0b
cmp byte [ebx + 0x11], 0
jne 0x474f1f
mov dword [esp + 8], esi
mov dword [esp + 4], str.Page__u:_never_used
mov dword [esp], edi
call fcn.0042e464
mov eax, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xf8]
movzx eax, byte [eax + ecx]
test dword [ebp - 0x128], eax
je 0x474f5e
mov edx, esi
mov eax, ebx
call fcn.00402ee4
cmp esi, eax
jne 0x474f5e
cmp byte [ebx + 0x11], 0
je 0x474f5e
mov dword [esp + 8], esi
mov dword [esp + 4], str.Page__u:_pointer_map_referenced
mov dword [esp], edi
call fcn.0042e464
inc esi
jmp 0x474eaa
mov eax, dword [ebp - 0x88]
call fcn.0040c8b3
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call fcn.0040b268
mov ebx, dword [ebp - 0xbc]
lea eax, [ebp - 0xa0]
test ebx, ebx
jne 0x474f99
mov dword [esp], eax
xor esi, esi
call fcn.0040b329
jmp 0x474fa0
call fcn.0041b03f
mov esi, eax
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0x118]
call fcn.0040b56e
test ebx, ebx
je 0x47500c
cmp dword [ebp - 0xf8], 0
je 0x474fd1
mov dword [esp], esi
call fcn.0040b268
jmp 0x476e92
mov edi, dword [ebp - 0x130]
lea eax, [ebx - 1]
cdq
sub dword [edi], eax
mov eax, dword [ebp - 0x118]
sbb dword [edi + 4], edx
mov dword [esp + 0xc], fcn.0040b268
mov edx, esi
mov dword [esp + 8], 1
mov dword [esp], 0xffffffff
mov dword [esp + 4], 0xffffffff
call fcn.0041ea9a
mov edx, dword [ebp - 0x11c]
mov eax, dword [ebp - 0x118]
call fcn.0041e888
jmp 0x46ec88
mov eax, dword [ebp - 0xf4]
imul ebx, dword [eax + 4], 0x28
imul esi, dword [eax + 8], 0x28
add ebx, dword [ebp - 0x108]
add esi, dword [ebp - 0x108]
test byte [ebx + 0x10], 0x10
je 0x475054
mov edx, dword [esi]
mov ecx, dword [esi + 4]
mov eax, dword [ebx + 8]
call fcn.0041d53f
jmp case.0x46ec3a.89
mov eax, ebx
call fcn.0041d46b
test eax, eax
je 0x475042
jmp 0x477183
mov eax, dword [ebp - 0xf4]
imul ebx, dword [eax + 4], 0x28
add ebx, dword [ebp - 0x108]
test byte [ebx + 0x10], 0x10
je 0x475116
mov esi, dword [ebx + 8]
mov ax, word [esi + 0x1a]
test al, 2
jne 0x47509d
test al, 1
jne 0x475098
mov eax, dword [esi + 8]
call fcn.004090cc
mov dword [esi + 8], eax
or word [esi + 0x1a], 3
mov eax, dword [esi + 8]
test eax, eax
je 0x475116
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
test eax, eax
mov dword [esi + 8], eax
jne 0x47768d
mov eax, dword [esi]
test eax, eax
je 0x4750ea
mov ebx, dword [eax]
mov dword [esp + 4], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x118], edx
mov dword [ebp - 0x114], ecx
mov dword [esp], eax
call fcn.0040b317
mov eax, ebx
mov edx, dword [ebp - 0x118]
mov ecx, dword [ebp - 0x114]
jmp 0x4750b9
mov dword [esi], 0
mov word [esi + 0x18], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x14], 0
mov word [esi + 0x1a], 1
jmp 0x47768d
mov eax, ebx
call fcn.0040b56e
jmp case.0x46ec3a.9
mov eax, dword [ebp - 0xf4]
imul eax, dword [eax + 4], 0x28
add eax, dword [ebp - 0x108]
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0xf4]
imul eax, dword [eax + 0xc], 0x28
add eax, dword [ebp - 0x108]
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x128], eax
mov eax, dword [ebp - 0x118]
test byte [eax + 0x10], 0x10
je 0x475174
cmp dword [ebp - 0x128], 0
je 0x475195
jmp 0x4751b3
mov eax, dword [ebp - 0x118]
call fcn.0041d46b
test eax, eax
je 0x475169
jmp 0x477183
cmp dword [ebp - 0x128], 0
js case.0x46ec3a.89
mov eax, dword [ebp - 0x130]
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0x118]
mov eax, dword [eax + 8]
call fcn.0041d53f
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0x130]
mov eax, dword [eax]
mov dword [ebp - 0x158], eax
mov eax, dword [ebp - 0x130]
mov eax, dword [eax + 4]
mov dword [ebp - 0x160], eax
mov eax, dword [ebp - 0x118]
mov ebx, dword [eax + 8]
mov eax, dword [ebp - 0x128]
cmp eax, dword [ebx + 0x1c]
je 0x47529a
mov esi, dword [ebx + 8]
test esi, esi
je 0x475291
test byte [ebx + 0x1a], 1
lea eax, [ebx + 0x14]
mov dword [ebp - 0x138], eax
jne 0x47520b
mov eax, esi
call fcn.004090cc
mov esi, eax
mov edi, dword [ebx + 0x14]
test edi, edi
je 0x47524b
lea eax, [edi + 8]
mov dword [ebp - 0x138], eax
mov eax, dword [edi + 0xc]
test eax, eax
je 0x475274
lea ecx, [ebp - 0x80]
lea edx, [ebp - 0xd0]
call fcn.004028a8
mov dword [edi + 0xc], 0
mov eax, dword [ebp - 0xd0]
mov edx, esi
call fcn.00402846
mov edi, dword [edi + 8]
mov esi, eax
jmp 0x47520e
mov eax, ebx
call fcn.0041d4f7
mov edi, eax
mov eax, dword [ebp - 0x138]
test edi, edi
mov dword [eax], edi
je 0x47527e
mov dword [edi], 0
mov dword [edi + 4], 0
mov dword [edi + 8], 0
mov eax, esi
call fcn.00402949
mov dword [edi + 0xc], eax
or word [ebx + 0x1a], 1
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], 0
mov eax, dword [ebp - 0x128]
mov dword [ebx + 0x1c], eax
mov edx, dword [ebx + 0x14]
test edx, edx
je 0x475188
mov eax, dword [edx + 0xc]
test eax, eax
je 0x4752e1
mov ebx, dword [eax + 4]
cmp dword [ebp - 0x160], ebx
mov ecx, dword [eax]
jl 0x4752dc
jg 0x4752c3
cmp dword [ebp - 0x158], ecx
jbe 0x4752c8
mov eax, dword [eax + 8]
jmp 0x4752a8
cmp dword [ebp - 0x160], ebx
jl 0x4752dc
cmp dword [ebp - 0x158], ecx
jae 0x46fedd
mov eax, dword [eax + 0xc]
jmp 0x4752a8
mov edx, dword [edx + 8]
jmp 0x47529d
mov eax, dword [ebp - 0xf4]
cmp word [eax + 2], 0
mov ebx, dword [eax + 0x10]
je 0x475317
mov eax, dword [ebp - 0xfc]
mov edx, dword [ebx + 0x14]
mov eax, dword [eax + 0xd0]
test eax, eax
je 0x475317
cmp edx, dword [eax + 0x18]
je case.0x46ec3a.89
mov eax, dword [eax + 4]
jmp 0x475305
mov eax, dword [ebp - 0xfc]
mov edi, dword [ebp - 0x100]
mov esi, dword [edi + 0xa0]
cmp dword [eax + 0xd8], esi
jl 0x475350
mov dword [esp + 4], str.too_many_levels_of_trigger_recursion
mov dword [esp], eax
call fcn.00429ba8
mov dword [ebp - 0xf8], 1
jmp 0x476e92
mov eax, dword [ebp - 0xf4]
imul esi, dword [eax + 0xc], 0x28
add esi, dword [ebp - 0x108]
test byte [esi + 0x10], 0x10
jne 0x475481
mov eax, dword [ebx + 0xc]
mov edi, dword [ebx + 8]
mov ecx, 8
add edi, eax
cmp eax, 1
mov dword [ebp - 0x108], edi
adc dword [ebp - 0x108], 0
imul edx, dword [ebp - 0x108], 0xa
lea edi, [eax + edx + 0x16]
mov eax, dword [ebx + 4]
add eax, 7
cdq
idiv ecx
lea edi, [eax + edi*4]
mov eax, dword [ebp - 0x100]
mov ecx, edi
mov edx, edi
sar ecx, 0x1f
call fcn.0041b0f8
test eax, eax
mov dword [ebp - 0x118], eax
je 0x477183
mov eax, esi
call fcn.0040b6b8
mov edx, dword [ebp - 0x118]
mov eax, dword [ebp - 0xfc]
mov word [esi + 0x10], 0x1010
mov dword [esi + 0xc], edi
mov dword [esi + 0x24], 0x4039a0
mov dword [esi + 8], edx
mov dword [edx], eax
mov eax, dword [ebp - 0x108]
mov dword [edx + 0x3c], eax
mov eax, dword [ebx + 0xc]
mov dword [edx + 0x40], eax
mov eax, dword [ebp - 0xf4]
sub eax, dword [ebp - 0x10c]
sar eax, 3
imul eax, eax, 0xcccccccd
mov dword [edx + 0x30], eax
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x58]
mov dword [edx + 0xc], eax
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x14]
mov dword [edx + 0x38], eax
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov dword [edx + 0x10], eax
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x18]
mov dword [edx + 0x2c], eax
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x68]
mov dword [edx + 8], eax
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x6c]
mov dword [edx + 0x34], eax
mov eax, dword [ebx + 0x14]
mov dword [edx + 0x18], eax
imul eax, dword [ebp - 0x108], 0x28
lea ecx, [edx + eax + 0x58]
lea eax, [edx + 0x58]
cmp eax, ecx
je 0x475484
mov edi, dword [ebp - 0x100]
mov word [eax + 0x10], 0
add eax, 0x28
mov dword [eax - 0x14], edi
jmp 0x475469
mov edx, dword [esi + 8]
mov eax, dword [ebp - 0xfc]
inc dword [eax + 0xd8]
mov eax, dword [eax + 0xd0]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x100]
mov esi, dword [eax + 0x28]
mov edi, dword [eax + 0x2c]
mov eax, dword [ebp - 0xfc]
mov dword [edx + 0x20], esi
mov dword [edx + 0x24], edi
mov esi, dword [eax + 0x28]
mov edi, dword [eax + 0x2c]
mov eax, dword [eax]
mov dword [edx + 0x48], esi
mov dword [edx + 0x4c], edi
mov esi, dword [eax + 0x68]
mov edi, dword [eax + 0x6c]
mov eax, dword [ebp - 0xfc]
mov dword [edx + 0x50], esi
mov dword [edx + 0x54], edi
lea esi, [edx + 0x58]
mov eax, dword [eax + 0xe4]
mov dword [edx + 0x28], eax
mov eax, dword [ebp - 0xfc]
mov dword [eax + 0xd0], edx
mov dword [eax + 0xe4], 0
mov dword [eax + 0x28], 0
mov dword [eax + 0x2c], 0
lea eax, [edx + 0x58]
mov dword [ebp - 0x108], eax
mov eax, dword [ebp - 0xfc]
mov dword [eax + 0x58], esi
mov eax, dword [edx + 0x3c]
mov edi, dword [ebp - 0xfc]
movzx ecx, word [edx + 0x40]
mov dword [edi + 0x14], eax
imul eax, eax, 0x28
add eax, dword [ebp - 0x108]
mov dword [edi + 0x18], ecx
mov ecx, dword [ebx + 0xc]
mov dword [edi + 0x60], eax
lea esi, [eax + ecx*4]
mov eax, dword [ebx + 4]
mov ecx, 8
mov dword [edx + 0x14], esi
mov edi, esi
mov esi, dword [ebp - 0xfc]
add eax, 7
cdq
idiv ecx
mov ecx, eax
xor eax, eax
rep stosb byte es:[edi], al
mov eax, dword [ebx]
mov dword [ebp - 0x10c], eax
mov eax, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0x10c]
mov dword [eax + 0x68], ecx
mov eax, dword [ebx + 4]
mov dword [esi + 0x6c], eax
mov eax, ecx
sub eax, 0x28
jmp 0x46ec82
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x58]
call fcn.00411de9
mov edi, dword [ebp - 0xfc]
mov esi, dword [ebp - 0xf4]
mov ecx, dword [edi + 0xd0]
mov edx, dword [esi + 4]
imul ebx, dword [ecx + 0x30], 0x28
add ebx, dword [ecx + 8]
add edx, dword [ebx + 4]
imul edx, edx, 0x28
add edx, dword [ecx + 0xc]
mov ecx, 0x4000
call fcn.00411eab
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0x100]
test byte [eax + 0x22], 8
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 8]
je 0x4755fc
mov ecx, eax
mov ebx, eax
mov eax, dword [ebp - 0x100]
sar ebx, 0x1f
add dword [eax + 0x218], ecx
adc dword [eax + 0x21c], ebx
jmp case.0x46ec3a.89
mov ecx, dword [ebp - 0xf4]
cdq
cmp dword [ecx + 4], 0
je 0x475620
mov edi, dword [ebp - 0x100]
add dword [edi + 0x210], eax
adc dword [edi + 0x214], edx
jmp case.0x46ec3a.89
mov ecx, dword [ebp - 0xfc]
add dword [ecx + 0x40], eax
adc dword [ecx + 0x44], edx
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
cmp dword [eax + 4], 0
je 0x47566c
mov eax, dword [ebp - 0x100]
mov esi, dword [ebp - 0x100]
mov eax, dword [eax + 0x214]
or eax, dword [esi + 0x210]
jne case.0x46ec3a.89
mov eax, dword [esi + 0x21c]
or eax, dword [esi + 0x218]
jmp 0x470553
mov eax, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0xfc]
mov eax, dword [eax + 0x44]
or eax, dword [ecx + 0x40]
jne case.0x46ec3a.89
mov eax, dword [ebp - 0x100]
mov esi, dword [ebp - 0x100]
mov eax, dword [eax + 0x21c]
or eax, dword [esi + 0x218]
jmp 0x470553
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0xd0]
test eax, eax
je 0x4756cb
mov edx, dword [eax + 4]
test edx, edx
je 0x4756bc
mov eax, edx
jmp 0x4756b1
mov edi, dword [ebp - 0xf4]
imul ebx, dword [edi + 4], 0x28
add ebx, dword [eax + 0xc]
jmp 0x4756db
mov eax, dword [ebp - 0xf4]
imul ebx, dword [eax + 4], 0x28
add ebx, dword [ebp - 0x108]
mov eax, ebx
call fcn.0040cd8c
mov eax, dword [ebp - 0xf4]
imul esi, dword [eax + 8], 0x28
add esi, dword [ebp - 0x108]
mov eax, esi
call fcn.0040cd8c
mov eax, dword [esi + 4]
cmp dword [ebx + 4], eax
mov edx, dword [esi]
jg case.0x46ec3a.89
jl 0x475711
cmp dword [ebx], edx
jae case.0x46ec3a.89
mov dword [ebx], edx
mov dword [ebx + 4], eax
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
imul esi, dword [eax + 4], 0x28
add esi, dword [ebp - 0x108]
mov edx, dword [esi + 4]
mov eax, dword [esi]
cmp edx, 0
jl case.0x46ec3a.89
jg 0x475744
cmp eax, 0
jbe case.0x46ec3a.89
mov ecx, dword [ebp - 0xf4]
mov ecx, dword [ecx + 0xc]
mov ebx, ecx
sar ebx, 0x1f
sub eax, ecx
sbb edx, ebx
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x46fedd
mov eax, dword [ebp - 0xf4]
imul edi, dword [eax + 4], 0x28
mov edx, dword [eax + 8]
mov esi, dword [eax + 0xc]
mov eax, dword [ebp - 0xfc]
add edi, dword [ebp - 0x108]
mov eax, dword [eax + 0x58]
call fcn.00411de9
mov edx, dword [edi + 4]
mov ebx, eax
mov eax, dword [edi]
cmp edx, 0
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
jg 0x4757af
jl 0x47579d
cmp eax, 0
ja 0x4757af
mov dword [ebx], 0xffffffff
mov dword [ebx + 4], 0xffffffff
jmp case.0x46ec3a.89
imul eax, esi, 0x28
add eax, dword [ebp - 0x108]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
test ecx, ecx
jns 0x4757c5
xor edx, edx
xor ecx, ecx
lea eax, [ebp - 0x80]
call fcn.00401ecb
test eax, eax
jne 0x47579d
mov eax, dword [ebp - 0x80]
mov edx, dword [ebp - 0x7c]
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
imul ecx, dword [eax + 4], 0x28
add ecx, dword [ebp - 0x108]
mov edx, dword [ecx + 4]
mov eax, dword [ecx]
mov edi, edx
or edi, eax
je case.0x46ec3a.89
cmp edx, 0
jl 0x46fedd
jg 0x475814
cmp eax, 0
jbe 0x46fedd
add eax, 0xffffffff
adc edx, 0xffffffff
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x46fedd
mov eax, dword [ebp - 0xf4]
imul ecx, dword [eax + 4], 0x28
add ecx, dword [ebp - 0x108]
mov edx, dword [ecx + 4]
mov eax, dword [ecx]
lea ebx, [edx - 0x80000000]
or ebx, eax
je 0x47584e
add eax, 0xffffffff
adc edx, 0xffffffff
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ecx + 4]
or eax, dword [ecx]
jmp 0x470553
mov eax, dword [ebp - 0xf4]
xor ecx, ecx
movzx esi, word [eax + 2]
mov eax, dword [ebp - 0x100]
lea edx, [esi*4 + 0x44]
mov ebx, esi
call fcn.0041af2c
test eax, eax
je 0x477183
lea edx, [eax + esi*4 + 0x1c]
mov ecx, dword [ebp - 0x100]
mov esi, dword [ebp - 0xf4]
mov dword [eax + 8], 0
mov dword [eax], edx
mov word [edx + 0x10], 1
mov dword [edx + 0x14], ecx
mov dword [edx + 0x18], 0
mov edx, dword [esi + 0x10]
mov ecx, dword [ebp - 0xfc]
mov byte [eax + 0x19], 0
mov dword [eax + 0x14], 0
mov byte [eax + 0x1a], bl
mov dword [eax + 4], edx
mov edx, esi
sub edx, dword [ebp - 0x10c]
mov dword [eax + 0xc], ecx
mov cl, byte [ebp - 0x11d]
sar edx, 3
mov byte [eax + 0x18], cl
imul edx, edx, 0xcccccccd
mov dword [eax + 0x10], edx
mov byte [esi + 1], 0xf1
mov dword [esi + 0x10], eax
mov byte [esi], 0xa3
mov eax, dword [ebp - 0xf4]
imul edx, dword [eax + 0xc], 0x28
mov ebx, dword [eax + 0x10]
add edx, dword [ebp - 0x108]
cmp edx, dword [ebx + 8]
jne 0x47592e
mov eax, dword [ebp - 0xf4]
inc dword [edx + 0xc]
lea edx, [ebx + 0x1c]
cmp dword [eax + 4], 0
mov eax, dword [ebx + 4]
je 0x475955
mov dword [esp + 8], edx
movzx edx, byte [ebx + 0x1a]
mov dword [esp], ebx
mov dword [esp + 4], edx
call dword [eax + 0x1c]
jmp 0x475967
movzx eax, byte [ebx + 0x1a]
mov dword [ebx + 8], edx
dec eax
cmp eax, 0xffffffff
je 0x475905
mov esi, dword [ebp - 0xf4]
mov ecx, dword [esi + 8]
add ecx, eax
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0x108]
mov dword [ebx + eax*4 + 0x1c], ecx
jmp 0x475935
mov dword [esp + 8], edx
movzx edx, byte [ebx + 0x1a]
mov dword [esp], ebx
mov dword [esp + 4], edx
call dword [eax + 0x10]
cmp dword [ebx + 0x14], 0
je case.0x46ec3a.89
jle 0x4759a0
mov eax, dword [ebx]
mov dword [esp], eax
call fcn.0041fd1b
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xfc]
mov dword [esp + 4], 0x4f3149
mov dword [esp], eax
call fcn.00429ba8
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0xf8], eax
cmp byte [ebx + 0x19], 0
je 0x4759cc
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax - 0x24]
test eax, eax
je 0x4759c8
imul eax, eax, 0x28
add eax, dword [ebp - 0x108]
mov edx, 1
xor ecx, ecx
call fcn.0040b5af
mov byte [ebx + 0x19], 0
mov eax, dword [ebx]
call fcn.0040b6b8
cmp dword [ebp - 0xf8], 0
mov eax, dword [ebx]
mov word [eax + 0x10], 1
mov dword [ebx + 0x14], 0
je case.0x46ec3a.89
jmp 0x476e92
mov eax, dword [ebp - 0xf4]
imul ebx, dword [eax + 4], 0x28
mov esi, dword [eax + 0xc]
mov edx, dword [eax + 0x10]
add ebx, dword [ebp - 0x108]
test esi, esi
je 0x475a6c
lea edi, [ebp - 0x80]
xor eax, eax
mov ecx, 8
imul esi, esi, 0x28
add esi, dword [ebp - 0x108]
mov dword [ebp - 0xf8], edx
rep stosd dword es:[edi], eax
mov eax, esi
call fcn.0040b56e
mov edx, dword [ebp - 0xf8]
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x80], esi
mov dword [ebp - 0x7c], edx
mov eax, dword [ebx + 0x14]
mov al, byte [eax + 0x54]
mov byte [ebp - 0x68], al
lea eax, [ebp - 0x80]
mov dword [esp], eax
call dword [edx + 0x18]
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0xf4]
imul ebx, dword [eax + 0xc], 0x28
add ebx, dword [ebp - 0x108]
jmp 0x475a79
mov eax, ebx
call fcn.0040b4cd
mov dword [ebp - 0xf8], eax
cmp dword [ebp - 0xf8], 0
je 0x475aa9
mov dword [esp], ebx
call fcn.0041fd1b
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xfc]
mov dword [esp + 4], 0x4f3149
mov dword [esp], eax
call fcn.00429ba8
jmp 0x476e92
mov edx, dword [ebp - 0x11c]
mov eax, ebx
call fcn.0041e888
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x78], 0xffffffff
mov dword [ebp - 0x7c], 0xffffffff
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
lea eax, [ebp - 0x78]
mov dword [esp + 4], eax
lea eax, [ebp - 0x7c]
mov dword [esp], eax
mov eax, dword [ebp - 0x100]
call fcn.00490f4f
test eax, eax
mov dword [ebp - 0xf8], eax
je 0x475b0e
cmp eax, 5
jne 0x476e92
mov dword [ebp - 0x80], 1
mov eax, dword [ebp - 0xf4]
xor esi, esi
imul ebx, dword [eax + 0xc], 0x28
add ebx, dword [ebp - 0x108]
mov edx, dword [ebp + esi*4 - 0x80]
mov eax, ebx
inc esi
add ebx, 0x28
mov ecx, edx
sar ecx, 0x1f
call fcn.0040b5af
cmp esi, 3
jne 0x475b20
mov dword [ebp - 0xf8], 0
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x58]
call fcn.00411de9
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0x100]
mov esi, dword [eax + 0xc]
mov eax, dword [eax + 4]
shl eax, 4
add eax, dword [ecx + 0x10]
cmp esi, 0xffffffff
mov eax, dword [eax + 4]
mov dword [ebp - 0x128], eax
mov eax, dword [eax + 4]
mov ebx, dword [eax]
movzx edi, byte [ebx + 5]
cmove esi, edi
cmp byte [ebx + 0x11], 2
ja 0x475bb1
mov eax, dword [ebx + 0x44]
cmp dword [eax], 0
je 0x475bb3
cmp dword [ebx + 0x54], 0
jl 0x475bb3
jg 0x475bb1
cmp dword [ebx + 0x50], 0
jbe 0x475bb3
mov esi, edi
cmp byte [ebx + 0xf], 0
mov eax, 0x4fea0c
jne 0x475bcc
cmp dword [ebx], 0x4f11c0
je 0x475bcc
mov eax, dword [ebx + 0xb8]
cmp esi, 5
jne 0x475bf2
call fcn.00409dfb
test eax, eax
je 0x475d86
mov eax, ebx
call fcn.00402bc3
test eax, eax
je 0x475d86
jmp 0x475d7d
cmp esi, edi
je 0x475d88
cmp edi, 5
jne 0x475d88
mov eax, dword [ebp - 0x100]
cmp byte [eax + 0x55], 0
je 0x475c18
cmp dword [eax + 0xc0], 1
jle 0x475c51
cmp esi, 5
mov edx, str.into
mov eax, str.out_of
cmove eax, edx
mov dword [esp + 4], str.cannot_change__s_wal_mode_from_within_a_transaction
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xfc]
mov dword [esp], eax
call fcn.00429ba8
mov dword [ebp - 0xf8], 1
jmp 0x476e92
cmp edi, 5
jne 0x475d47
cmp dword [ebx + 0xe8], 0
je 0x475c71
cmp dword [ebx + 0xe8], 0
jne 0x475cd2
jmp 0x4776a7
mov edx, 1
mov eax, ebx
mov dword [ebp - 0x80], 0
call fcn.00417608
test eax, eax
mov dword [ebp - 0xf8], eax
jne 0x475d92
lea eax, [ebp - 0x80]
mov edx, dword [ebx + 0xec]
xor ecx, ecx
mov dword [esp], eax
mov eax, dword [ebx]
call fcn.00401742
test eax, eax
mov dword [ebp - 0xf8], eax
jne 0x475d92
cmp dword [ebp - 0x80], 0
je 0x475c63
mov eax, ebx
call fcn.004176c3
test eax, eax
mov dword [ebp - 0xf8], eax
jne 0x475d92
jmp 0x475c63
mov eax, ebx
call fcn.00417691
test eax, eax
mov dword [ebp - 0xf8], eax
jne 0x475d92
mov edx, dword [ebx + 0xe0]
movzx ecx, byte [ebx + 0xb]
mov eax, dword [ebx + 0xe8]
mov dword [esp + 4], edx
mov edx, dword [ebx + 0xa8]
mov dword [esp], edx
mov edx, dword [ebp - 0x100]
call fcn.004557df
mov dword [ebx + 0xe8], 0
mov dword [ebp - 0xf8], eax
mov eax, ebx
call fcn.00413f49
cmp dword [ebp - 0xf8], 0
je 0x4776a7
cmp byte [ebx + 4], 0
jne 0x475d92
mov edx, 1
mov eax, ebx
call fcn.00402993
jmp 0x475d92
cmp edi, 4
jne 0x475d58
mov edx, 2
mov eax, ebx
call fcn.0044d33e
cmp dword [ebp - 0xf8], 0
jne 0x475d92
xor edx, edx
mov eax, dword [ebp - 0x128]
cmp esi, 5
sete dl
inc edx
call fcn.0044e464
mov dword [ebp - 0xf8], eax
jmp 0x475d88
cmp edi, 5
jne 0x475c03
mov esi, edi
cmp dword [ebp - 0xf8], 0
cmove edi, esi
mov edx, edi
mov eax, ebx
call fcn.0044d33e
mov esi, dword [ebp - 0x118]
xor edx, edx
cmp eax, 6
mov word [esi + 0x10], 0x2202
je 0x475db5
mov edx, dword [eax*4 + 0x4fe354]
mov eax, dword [ebp - 0x118]
mov dword [eax + 8], edx
mov eax, edx
call fcn.00409dfb
mov edi, dword [ebp - 0x118]
mov edx, dword [ebp - 0x11c]
mov dword [edi + 0xc], eax
mov byte [edi + 0x12], 1
mov eax, edi
call fcn.0041e888
cmp dword [ebp - 0xf8], 0
je case.0x46ec3a.89
jmp 0x476e92
mov eax, dword [ebp - 0xf4]
xor edx, edx
mov eax, dword [eax + 8]
test eax, eax
je 0x475e0c
imul eax, eax, 0x28
mov ecx, dword [ebp - 0x108]
lea edx, [ecx + eax]
mov eax, dword [ebp - 0xf4]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov dword [esp], edx
mov edx, dword [ebp - 0x100]
add eax, 0x7c
call fcn.00491c57
test eax, eax
mov dword [ebp - 0xf8], eax
je case.0x46ec3a.89
jmp 0x476e92
mov eax, dword [ebp - 0xf4]
mov esi, dword [ebp - 0x100]
mov dword [ebp - 0xf8], 0
mov eax, dword [eax + 4]
shl eax, 4
add eax, dword [esi + 0x10]
mov eax, dword [eax + 4]
mov ebx, dword [eax + 4]
mov eax, dword [eax]
cmp byte [ebx + 0x11], 0
mov dword [ebx + 4], eax
je 0x46fedd
mov eax, dword [ebx + 0xc]
mov edi, dword [ebx + 0x30]
mov eax, dword [eax + 0x38]
mov edx, edi
mov esi, dword [eax + 0x24]
mov eax, ebx
bswap esi
mov ecx, esi
call fcn.00403606
cmp edi, eax
mov dword [ebp - 0x118], eax
jb 0x475e9a
cmp edi, esi
ja 0x475eac
mov eax, 0x11c5e
call fcn.0042aea7
mov dword [ebp - 0xf8], eax
jmp 0x475f11
test esi, esi
je 0x46fedd
mov eax, dword [ebx + 8]
xor ecx, ecx
xor edx, edx
call fcn.00452bb4
test eax, eax
mov dword [ebp - 0xf8], eax
jne 0x475f1e
mov eax, dword [ebx + 8]
call fcn.0040cd1f
mov edx, dword [ebp - 0x118]
mov dword [esp], 0
mov ecx, edi
mov eax, ebx
call fcn.0044f143
test eax, eax
mov dword [ebp - 0xf8], eax
jne 0x475f1e
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 0x48]
call fcn.0044b89f
mov dword [ebp - 0xf8], eax
mov eax, dword [ebx + 0xc]
mov edx, dword [eax + 0x38]
mov eax, dword [ebx + 0x30]
bswap eax
mov dword [edx + 0x1c], eax
cmp dword [ebp - 0xf8], 0
je case.0x46ec3a.89
cmp dword [ebp - 0xf8], 0x65
jne 0x476e92
jmp 0x472541
mov eax, dword [ebp - 0xf4]
cmp dword [eax + 4], 0
mov edx, dword [eax + 8]
jne 0x475f4f
mov eax, dword [ebp - 0x100]
call fcn.00403b0d
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xfc]
inc edx
and edx, 3
mov al, byte [eax + 0x98]
mov byte [ebp - 0x118], al
and eax, 0xfffffffc
or edx, eax
mov eax, dword [ebp - 0xfc]
mov byte [eax + 0x98], dl
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + edx*4]
mov eax, dword [eax + 0x24]
or byte [eax + 1], 0x40
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + edx*4]
mov eax, dword [eax + 0x24]
and byte [eax + 1], 0xbf
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 0xc]
test dl, dl
jne 0x475fda
mov eax, dword [ebp - 0x100]
test byte [eax + 0x24], 4
jne case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edi, dword [ebp - 0x100]
mov eax, dword [eax + 4]
mov dword [ebp - 0xf8], eax
shl eax, 4
add eax, dword [edi + 0x10]
mov ebx, dword [eax + 4]
cmp byte [ebx + 9], 0
je 0x4776f4
mov eax, dword [ebp - 0xf4]
mov edi, dword [eax + 8]
lea eax, [edx + 1]
mov edx, dword [ebx]
mov byte [ebp - 0x118], al
mov eax, dword [ebx + 4]
movzx ecx, byte [ebp - 0x118]
mov dword [eax + 4], edx
mov edx, edi
mov eax, ebx
call fcn.00402e0b
test eax, eax
mov dword [ebp - 0xf8], eax
jne 0x4776bf
mov esi, dword [ebx + 4]
mov eax, dword [esi + 0x4c]
test eax, eax
je 0x476052
cmp edi, dword [eax + 4]
jne 0x47604d
cmp ebx, dword [eax]
je 0x476074
mov eax, dword [eax + 0xc]
jmp 0x476040
xor edx, edx
mov eax, 0x10
call fcn.00414d97
test eax, eax
je 0x4776b5
mov edx, dword [esi + 0x4c]
mov dword [eax + 4], edi
mov dword [eax], ebx
mov dword [eax + 0xc], edx
mov dword [esi + 0x4c], eax
mov cl, byte [ebp - 0x118]
cmp cl, byte [eax + 8]
jbe 0x4776f4
mov byte [eax + 8], cl
jmp 0x4776f4
mov eax, dword [ebp - 0xf4]
mov ebx, dword [eax + 0x10]
mov eax, dword [ebp - 0x100]
mov edx, dword [eax + 0x190]
test edx, edx
jle 0x4760b1
cmp dword [eax + 0x1a8], 0
je 0x476172
test ebx, ebx
je 0x476dbf
mov eax, dword [ebx + 8]
mov esi, dword [eax]
xor eax, eax
cmp dword [esi + 0x38], 0
je 0x477703
cmp edx, eax
jle 0x4760e6
mov ecx, dword [ebp - 0x100]
mov ecx, dword [ecx + 0x1a8]
cmp ebx, dword [ecx + eax*4]
je 0x477703
inc eax
jmp 0x4760ca
mov eax, dword [ebp - 0x100]
call fcn.004210c8
test eax, eax
jne 0x477752
mov eax, dword [ebx + 8]
mov dword [esp], eax
call dword [esi + 0x38]
test eax, eax
jne 0x477752
mov edi, dword [ebp - 0x100]
mov eax, dword [ebp - 0x100]
mov ecx, edi
mov eax, dword [eax + 0x208]
add eax, dword [edi + 0x20c]
mov edx, dword [ecx + 0x190]
mov edi, dword [edi + 0x1a8]
mov dword [ebp - 0xf8], edi
lea edi, [edx + 1]
mov dword [ecx + 0x190], edi
mov edi, dword [ebp - 0xf8]
mov dword [edi + edx*4], ebx
inc dword [ebx + 0xc]
test eax, eax
je 0x477703
mov edx, dword [esi + 0x50]
test edx, edx
je 0x477703
mov dword [ebx + 0x14], eax
dec eax
mov dword [esp + 4], eax
mov eax, dword [ebx + 8]
mov dword [esp], eax
call edx
mov esi, eax
jmp 0x47617f
test ebx, ebx
je 0x477723
mov esi, 6
mov edx, dword [ebx + 8]
mov eax, dword [ebp - 0xfc]
add edx, 8
call fcn.0041b423
test esi, esi
je 0x476dcb
mov dword [ebp - 0xf8], esi
jmp 0x476e92
lea ebx, [ebp - 0x80]
xor eax, eax
mov ecx, 0xa
mov edi, ebx
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x100]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0xf4]
imul edx, dword [eax + 8], 0x28
mov eax, ebx
add edx, dword [ebp - 0x108]
call fcn.0041ea3b
mov dword [esp], ebx
mov dword [ebp - 0xf8], eax
call fcn.0041fd1b
test eax, eax
je 0x4762f2
mov esi, dword [ebp - 0xf4]
mov edx, eax
mov esi, dword [esi + 4]
mov dword [ebp - 0xf8], esi
mov ecx, esi
mov esi, dword [ebp - 0x100]
shl ecx, 4
add ecx, dword [esi + 0x10]
mov eax, esi
mov ecx, dword [ecx]
call fcn.004043e4
mov ebx, eax
mov eax, dword [eax + 0x30]
mov esi, dword [eax]
mov eax, dword [ebp - 0x100]
mov edx, esi
add eax, 0x194
call fcn.0040211c
test eax, eax
je 0x47623b
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
test edx, edx
je 0x47623b
cmp dword [ecx + 0x14], 0
jne 0x47626d
mov eax, dword [ebp - 0x100]
mov dword [esp + 8], esi
mov dword [esp + 4], str.no_such_module:__s
mov dword [esp], eax
call fcn.00429c52
mov ecx, dword [ebp - 0xfc]
mov dword [ebp - 0xf8], 1
mov dword [ecx + 0x7c], eax
jmp 0x4762f2
mov edi, dword [ebp - 0xfc]
mov dword [esp], edx
mov edx, ebx
lea ecx, [edi + 0x7c]
mov dword [esp + 4], ecx
mov ecx, eax
mov eax, dword [ebp - 0x100]
call fcn.00429c68
test eax, eax
mov dword [ebp - 0xf8], eax
jne 0x4762f2
mov edx, dword [ebx + 0x34]
mov eax, dword [ebp - 0x100]
call fcn.0040e594
test eax, eax
je 0x4762f2
mov eax, dword [ebp - 0x100]
call fcn.004210c8
test eax, eax
mov dword [ebp - 0xf8], eax
jne 0x4762f2
mov edx, dword [ebx + 0x34]
mov eax, dword [ebp - 0x100]
call fcn.0040e594
mov esi, dword [ebp - 0x100]
mov ecx, dword [ebp - 0x100]
mov edx, dword [esi + 0x190]
mov ecx, dword [ecx + 0x1a8]
lea ebx, [edx + 1]
mov dword [esi + 0x190], ebx
mov dword [ecx + edx*4], eax
inc dword [eax + 0xc]
lea eax, [ebp - 0x80]
call fcn.0040b6b8
cmp dword [ebp - 0xf8], 0
je case.0x46ec3a.89
jmp 0x476e92
mov eax, dword [ebp - 0x100]
mov ecx, dword [ebp - 0x100]
mov esi, dword [ebp - 0xf4]
inc dword [eax + 0xcc]
mov eax, dword [ebp - 0xf4]
mov edx, dword [esi + 0x10]
mov eax, dword [eax + 4]
mov dword [ebp - 0xf8], eax
shl eax, 4
add eax, dword [ecx + 0x10]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x100]
call fcn.004043e4
test eax, eax
mov ebx, eax
mov dword [ebp - 0xf8], 0
je 0x4763e1
cmp byte [eax + 0x2b], 1
jne 0x4763e1
mov eax, dword [eax + 0x34]
test eax, eax
je 0x4763e1
mov edx, dword [eax + 8]
cmp dword [edx + 4], 0
jg 0x4763d7
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x47636a
mov eax, dword [ebp - 0x100]
lea edx, [ebx + 0x34]
call fcn.0040e5a8
mov esi, eax
mov eax, dword [eax + 4]
mov edx, dword [eax]
mov eax, dword [edx + 0x14]
test eax, eax
jne 0x476399
mov eax, dword [edx + 0x10]
mov edx, dword [esi + 8]
inc dword [ebx + 0x18]
mov dword [esp], edx
call eax
test eax, eax
mov dword [ebp - 0xf8], eax
jne 0x4763c3
mov dword [esi + 8], 0
mov eax, esi
mov dword [ebx + 0x34], 0
call fcn.0040e267
mov eax, dword [ebp - 0x100]
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00416db4
jmp 0x4763e1
mov dword [ebp - 0xf8], 6
mov eax, dword [ebp - 0x100]
dec dword [eax + 0xcc]
cmp dword [ebp - 0xf8], 0
je case.0x46ec3a.89
jmp 0x476e92
mov eax, dword [ebp - 0xf4]
mov dword [ebp - 0x80], 0
mov eax, dword [eax + 0x10]
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x476489
mov esi, dword [ebx]
test esi, esi
je 0x476498
lea eax, [ebp - 0x80]
mov dword [esp], ebx
mov dword [esp + 4], eax
call dword [esi + 0x18]
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0xfc]
lea edx, [ebx + 8]
call fcn.0041b423
cmp dword [ebp - 0xf8], 0
jne 0x476e92
mov eax, dword [ebp - 0x80]
xor ecx, ecx
mov dword [eax], ebx
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov dword [esp], 2
call fcn.00457f18
test eax, eax
mov edx, dword [ebp - 0x80]
je 0x47647e
mov dword [eax + 0x24], edx
inc dword [ebx + 4]
jmp case.0x46ec3a.89
mov dword [esp], edx
call dword [esi + 0x1c]
jmp 0x477183
mov dword [ebp - 0xf8], 6
jmp 0x476e92
mov dword [ebp - 0xf8], 6
jmp 0x476e92
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov ebx, dword [eax + edx*4]
mov dword [esp], 8
mov dword [esp + 4], 0
call fcn.00436e2c
test eax, eax
mov esi, eax
je 0x477183
mov eax, dword [ebx + 0x24]
mov dword [esi], eax
mov eax, dword [ebp - 0xf4]
imul eax, dword [eax + 0xc], 0x28
add eax, dword [ebp - 0x108]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x58]
call fcn.00411de9
mov ebx, eax
mov word [eax + 0x10], 1
call fcn.0040b681
mov dword [ebx], str.ValueList
mov dword [ebx + 8], esi
mov word [ebx + 0x10], 0x1a01
mov byte [ebx + 0x13], 0x70
mov dword [ebx + 0x24], 0x41300a
jmp case.0x46ec3a.89
mov esi, dword [ebp - 0xf4]
mov edi, dword [ebp - 0xfc]
mov eax, dword [ebp - 0xf4]
mov ecx, dword [esi + 4]
mov edx, dword [edi + 0x60]
imul eax, dword [eax + 0xc], 0x28
mov edi, dword [edx + ecx*4]
xor edx, edx
add eax, dword [ebp - 0x108]
mov ebx, dword [edi + 0x24]
mov esi, dword [eax]
add eax, 0x50
mov ecx, dword [ebx]
mov dword [ebp - 0xf8], esi
mov esi, dword [ebp - 0xfc]
mov dword [ebp - 0x118], ecx
mov ecx, dword [ecx]
mov esi, dword [esi + 0x5c]
mov dword [ebp - 0x128], ecx
mov ecx, dword [eax - 0x28]
cmp edx, ecx
jge 0x476593
mov dword [esi + edx*4], eax
inc edx
add eax, 0x28
jmp 0x476586
mov eax, dword [ebp - 0xf4]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], esi
mov eax, dword [eax + 0x10]
mov dword [esp], ebx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xf8]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x128]
call dword [eax + 0x20]
mov edx, dword [ebp - 0x118]
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0xfc]
add edx, 8
call fcn.0041b423
cmp dword [ebp - 0xf8], 0
jne 0x476e92
mov eax, dword [ebp - 0x128]
mov dword [esp], ebx
call dword [eax + 0x28]
mov byte [edi + 2], 0
jmp 0x470526
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + edx*4]
mov eax, dword [ebp - 0xf4]
imul ebx, dword [eax + 0xc], 0x28
add ebx, dword [ebp - 0x108]
cmp byte [esi + 2], 0
je 0x476631
mov eax, ebx
call fcn.0040b56e
jmp case.0x46ec3a.89
mov eax, dword [esi + 0x24]
lea edx, [ebp - 0x80]
mov ecx, 8
mov edi, edx
mov eax, dword [eax]
mov dword [ebp - 0x118], eax
mov eax, dword [eax]
mov dword [ebp - 0xf8], eax
xor eax, eax
rep stosd dword es:[edi], eax
mov al, byte [ebp - 0x11d]
mov dword [ebp - 0x80], ebx
mov byte [ebp - 0x68], al
mov eax, dword [ebp - 0xf4]
test byte [eax + 2], 1
je 0x47667f
mov eax, ebx
call fcn.0040b56e
mov word [ebx + 0x10], 0x401
mov dword [ebx], 0
jmp 0x47668d
mov eax, dword [ebx + 0x10]
and ax, 0xf240
or eax, 1
mov word [ebx + 0x10], ax
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 8]
mov dword [esp + 8], eax
lea eax, [ebp - 0x80]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x24]
mov dword [esp], eax
mov eax, dword [ebp - 0xf8]
call dword [eax + 0x2c]
mov edx, dword [ebp - 0x118]
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0xfc]
add edx, 8
call fcn.0041b423
cmp dword [ebp - 0x6c], 0
jle 0x4766fb
mov dword [esp], ebx
call fcn.0041fd1b
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xfc]
mov dword [esp + 4], 0x4f3149
mov dword [esp], eax
call fcn.00429ba8
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0xf8], eax
mov edx, dword [ebp - 0x11c]
mov eax, ebx
call fcn.0041e888
cmp dword [ebp - 0xf8], 0
je case.0x46ec3a.89
jmp 0x476e92
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + edx*4]
cmp byte [esi + 2], 0
jne case.0x46ec3a.89
mov eax, dword [esi + 0x24]
mov ebx, dword [eax]
mov edi, dword [ebx]
mov dword [esp], eax
call dword [edi + 0x24]
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0xfc]
lea edx, [ebx + 8]
call fcn.0041b423
cmp dword [ebp - 0xf8], 0
jne 0x476e92
mov eax, dword [esi + 0x24]
mov dword [esp], eax
call dword [edi + 0x28]
test eax, eax
je case.0x46ec3a.9
jmp 0x46ec88
mov eax, dword [ebp - 0x100]
mov edi, dword [ebp - 0x100]
mov edx, 1
mov eax, dword [eax + 0x20]
mov ebx, eax
or eax, 0x4000000
mov dword [edi + 0x20], eax
mov eax, dword [ebp - 0xf4]
and ebx, 0x4000000
mov eax, dword [eax + 0x10]
mov esi, dword [eax + 8]
mov eax, dword [ebp - 0xf4]
imul edi, dword [eax + 4], 0x28
add edi, dword [ebp - 0x108]
mov eax, edi
call fcn.0041e888
test eax, eax
mov dword [ebp - 0xf8], eax
jne 0x476e92
mov eax, dword [esi]
mov edx, dword [edi + 8]
mov dword [esp], esi
mov dword [esp + 4], edx
call dword [eax + 0x4c]
test ebx, ebx
mov dword [ebp - 0xf8], eax
jne 0x4767fc
mov eax, dword [ebp - 0x100]
and dword [eax + 0x20], 0xfbffffff
and dword [eax + 0x24], 0xffffffff
mov eax, dword [ebp - 0xfc]
lea edx, [esi + 8]
call fcn.0041b423
mov eax, dword [ebp - 0xfc]
and byte [eax + 0x98], 0xfc
cmp dword [ebp - 0xf8], 0
je case.0x46ec3a.89
jmp 0x476e92
mov eax, dword [ebp - 0x100]
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x7c], 0
cmp byte [eax + 0x57], 0
jne 0x477183
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 0x10]
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x47698e
mov ecx, dword [ebx]
test ecx, ecx
je 0x47699d
cmp dword [ecx + 0x34], 0
mov eax, dword [ebp - 0xf4]
mov esi, dword [eax + 8]
je case.0x46ec3a.89
mov eax, dword [ebp - 0x100]
xor edx, edx
mov al, byte [eax + 0x5c]
mov byte [ebp - 0x118], al
mov eax, dword [ebp - 0xfc]
mov edi, dword [eax + 0x5c]
mov eax, dword [ebp - 0xf4]
imul eax, dword [eax + 0xc], 0x28
add eax, dword [ebp - 0x108]
cmp edx, esi
jge 0x4768af
mov dword [edi + edx*4], eax
add eax, 0x28
inc edx
jmp 0x4768a2
mov eax, dword [ebp - 0xf4]
mov edx, dword [ebp - 0x100]
mov ax, word [eax + 2]
mov byte [edx + 0x5c], al
lea eax, [ebp - 0x80]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], ebx
mov dword [esp + 0xc], eax
call dword [ecx + 0x34]
mov ecx, dword [ebp - 0x100]
mov dword [ebp - 0xf8], eax
lea edx, [ebx + 8]
mov al, byte [ebp - 0x118]
mov byte [ecx + 0x5c], al
mov eax, dword [ebp - 0xfc]
call fcn.0041b423
cmp dword [ebp - 0xf8], 0
jne 0x476921
mov eax, dword [ebp - 0xf4]
cmp dword [eax + 4], 0
je 0x476921
mov eax, dword [ebp - 0x80]
mov edx, dword [ebp - 0x7c]
mov edi, dword [ebp - 0x100]
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], edx
cmp byte [ebp - 0xf8], 0x13
jne 0x476972
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 0x10]
cmp byte [eax + 0x10], 0
je 0x476972
mov eax, dword [ebp - 0xf4]
mov ax, word [eax + 2]
cmp ax, 4
jne 0x476958
mov dword [ebp - 0xf8], 0
jmp case.0x46ec3a.89
mov ecx, dword [ebp - 0xfc]
cmp ax, 5
mov dl, 2
cmove eax, edx
mov byte [ecx + 0x92], al
jmp 0x476e92
mov eax, dword [ebp - 0xfc]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
cmp dword [ebp - 0xf8], 0
je 0x476949
jmp 0x476e92
mov dword [ebp - 0xf8], 6
jmp 0x476e92
mov dword [ebp - 0xf8], 6
jmp 0x476e92
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x58]
call fcn.00411de9
mov esi, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0x100]
mov edi, dword [esi + 4]
mov edx, edi
mov dword [ebp - 0x118], edi
shl edx, 4
add edx, dword [ecx + 0x10]
mov edx, dword [edx + 4]
mov edx, dword [edx + 4]
mov esi, dword [edx + 0x30]
mov dword [eax + 4], 0
mov dword [eax], esi
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x58]
call fcn.00411de9
mov edi, dword [ebp - 0xf4]
mov esi, dword [ebp - 0x100]
mov ecx, dword [edi + 4]
mov ebx, dword [edi + 0xc]
mov edx, ecx
mov dword [ebp - 0x118], ecx
shl edx, 4
add edx, dword [esi + 0x10]
mov ecx, dword [edx + 4]
xor edx, edx
test ebx, ebx
je 0x476a42
mov edx, dword [ecx + 4]
mov edx, dword [edx + 0x30]
cmp ebx, edx
cmovae edx, ebx
mov ebx, dword [ecx + 4]
mov ecx, dword [ecx]
test edx, edx
mov dword [ebx + 4], ecx
mov ecx, dword [ebx]
je 0x476a56
mov dword [ecx + 0xa0], edx
mov ecx, dword [ecx + 0xa0]
mov dword [eax + 4], 0
mov dword [eax], ecx
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
imul esi, dword [eax + 0xc], 0x28
mov ebx, dword [eax + 0x10]
add esi, dword [ebp - 0x108]
cmp esi, dword [ebx]
jne 0x476ab2
mov eax, dword [esi + 0x10]
lea edx, [ebx + 0x1c]
and ax, 0xf240
or eax, 1
mov word [esi + 0x10], ax
mov eax, dword [ebx + 4]
mov dword [esp + 8], edx
movzx edx, byte [ebx + 0x1a]
mov dword [esp], ebx
mov dword [esp + 4], edx
call dword [eax + 0x10]
cmp dword [ebx + 0x14], 0
jne 0x476aea
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xfc]
mov dword [ebx], esi
mov dword [ebx + 0xc], eax
mov al, byte [ebp - 0x11d]
mov byte [ebx + 0x18], al
movzx eax, byte [ebx + 0x1a]
dec eax
cmp eax, 0xffffffff
je 0x476a81
mov edi, dword [ebp - 0xf4]
mov edx, dword [edi + 8]
add edx, eax
imul edx, edx, 0x28
add edx, dword [ebp - 0x108]
mov dword [ebx + eax*4 + 0x1c], edx
jmp 0x476aca
jle 0x476b17
mov dword [esp], esi
call fcn.0041fd1b
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xfc]
mov dword [esp + 4], 0x4f3149
mov dword [esp], eax
call fcn.00429ba8
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0xfc]
mov ecx, dword [ebx + 0x10]
lea edx, [eax + 0xe4]
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 4]
mov dword [esp], eax
mov eax, dword [ebp - 0x100]
call fcn.0040b3a5
cmp dword [ebp - 0xf8], 0
mov dword [ebx + 0x14], 0
je case.0x46ec3a.89
jmp 0x476e92
mov eax, dword [ebp - 0xf4]
mov esi, dword [ebp - 0x108]
imul eax, dword [eax + 4], 0x28
and word [esi + eax + 0x10], 0xf7ff
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
imul ebx, dword [eax + 4], 0x28
mov edx, eax
mov eax, dword [ebp - 0x108]
add ebx, dword [ebp - 0x108]
call fcn.0040cdea
mov ecx, dword [ebx + 0xc]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
sar ecx, 0x1f
mov dword [esp + 0xc], ecx
call fcn.004ea34c
mov esi, eax
mov ecx, eax
shrd esi, edx, 3
add esi, dword [ebx + 8]
and ecx, 7
mov edx, 1
shl edx, cl
or byte [esi], dl
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xf4]
imul esi, dword [eax + 4], 0x28
mov edx, eax
mov eax, dword [ebp - 0x108]
add esi, dword [ebp - 0x108]
call fcn.0040cdea
mov ecx, dword [esi + 0xc]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
sar ecx, 0x1f
mov dword [esp + 0xc], ecx
call fcn.004ea34c
mov ecx, eax
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x114], edx
shrd ecx, edx, 3
add ecx, dword [esi + 8]
mov eax, dword [ebp - 0x118]
and eax, 7
movsx edx, byte [ecx]
bt edx, eax
mov eax, dword [ebp - 0xfc]
jb 0x476c33
inc dword [eax + 0xc4]
jmp 0x46fedd
inc dword [eax + 0xc0]
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0x100]
mov al, byte [eax + 0x5e]
test al, 0x41
je 0x476d55
mov esi, dword [ebp - 0xfc]
cmp byte [esi + 0x93], 0xfe
je 0x476d55
mov edi, dword [ebp - 0xf4]
mov edx, dword [edi + 0x10]
test edx, edx
jne 0x476c7d
mov edx, dword [esi + 0xc8]
test edx, edx
je 0x476d55
test al, 0x40
je 0x476cba
mov eax, dword [ebp - 0xfc]
call fcn.0041f7b0
mov dword [esp + 4], eax
mov ebx, eax
mov eax, dword [ebp - 0x100]
mov eax, dword [eax + 0xdc]
mov dword [esp], eax
mov eax, dword [ebp - 0x100]
call dword [eax + 0xd8]
mov dword [esp], ebx
call fcn.0040b268
jmp 0x476d55
mov eax, dword [ebp - 0x100]
cmp dword [eax + 0xc8], 1
jle 0x476d24
mov dword [esp + 8], edx
mov dword [esp + 4], str.____s
mov dword [esp], eax
call fcn.00429c52
mov dword [esp + 0xc], eax
mov ebx, eax
mov eax, dword [ebp - 0xfc]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x100]
mov eax, dword [eax + 0xdc]
mov dword [esp], 1
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x100]
call dword [eax + 0xd8]
mov eax, dword [ebp - 0x100]
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.0040b317
jmp 0x476d55
mov eax, dword [ebp - 0xfc]
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x100]
mov eax, dword [eax + 0xdc]
mov dword [esp], 1
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x100]
call dword [eax + 0xd8]
mov eax, dword [ebp - 0xf4]
mov esi, dword [0x4f174c]
cmp dword [eax + 4], esi
jl 0x476da5
cmp byte [eax], 0xb5
je case.0x46ec3a.89
mov eax, dword [ebp - 0xfc]
mov ecx, dword [eax + 0x6c]
mov eax, 1
cmp eax, ecx
jge 0x476d98
mov edi, dword [ebp - 0xfc]
imul edx, eax, 0x28
add edx, dword [edi + 0x68]
cmp byte [edx], 0xf
jne 0x476d95
mov dword [edx + 4], 0
inc eax
jmp 0x476d79
mov eax, dword [ebp - 0xf4]
mov dword [eax + 4], 0
mov eax, dword [ebp - 0xf4]
inc dword [eax + 4]
mov eax, dword [ebp - 0xfc]
inc dword [eax + 0xbc]
jmp 0x46fedd
mov dword [ebp - 0xf8], 0
jmp case.0x46ec3a.89
mov dword [ebp - 0xf8], 0
cmp dword [ebp - 0x144], 0
je 0x476e03
rdtsc
mov ecx, dword [ebp - 0x144]
mov dword [ebp - 0x180], eax
mov eax, dword [ebp - 0x180]
mov dword [ebp - 0x17c], edx
mov edx, dword [ebp - 0x17c]
add dword [ecx], eax
adc dword [ecx + 4], edx
add dword [ebp - 0xf4], 0x28
jmp 0x46ebc1
mov eax, dword [ebp - 0x10c]
mov dword [ebp - 0x144], 0
mov dword [ebp - 0x140], 0
mov dword [ebp - 0x13c], 0
mov byte [ebp - 0x11e], 0
mov dword [ebp - 0xf8], 9
mov dword [ebp - 0xf4], eax
jmp 0x476e92
mov dword [ebp - 0xf8], 9
jmp 0x476e92
mov dword [ebp - 0xf8], 0x14
jmp 0x476e92
mov dword [ebp - 0xf8], 0x204
jmp 0x476e92
mov dword [ebp - 0xf8], 7
jmp 0x476e92
mov dword [ebp - 0xf8], 7
jmp 0x476e92
mov dword [ebp - 0xf8], 7
mov eax, dword [ebp - 0x100]
cmp byte [eax + 0x57], 0
jne 0x476ebc
cmp dword [ebp - 0xf8], 0x210a
jne 0x476ec6
mov eax, 0x184e6
call fcn.0042aea7
mov dword [ebp - 0xf8], eax
jmp 0x476ec6
mov dword [ebp - 0xf8], 7
mov eax, dword [ebp - 0xfc]
cmp dword [eax + 0x7c], 0
jne 0x476f03
cmp dword [ebp - 0xf8], 0xc0a
je 0x476f03
mov eax, dword [ebp - 0xf8]
call fcn.0040ea67
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xfc]
mov dword [esp + 4], 0x4f3149
mov dword [esp], eax
call fcn.00429ba8
mov eax, dword [ebp - 0xfc]
mov esi, dword [ebp - 0xf8]
mov dword [eax + 0x24], esi
mov eax, dword [ebp - 0x100]
mov edx, esi
call fcn.0040c4b1
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x7c]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0xc8]
mov dword [esp + 4], str.statement_aborts_at__d:___s___s
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0xf4]
sub eax, dword [ebp - 0x10c]
sar eax, 3
imul eax, eax, 0xcccccccd
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xf8]
mov dword [esp], eax
call fcn.0042ac7c
mov eax, dword [ebp - 0xfc]
cmp byte [eax + 0x95], 2
jne 0x476f7f
call fcn.00458162
cmp dword [ebp - 0xf8], 0xc0a
jne 0x476f98
mov eax, dword [ebp - 0x100]
call fcn.0041ae8d
jmp 0x476fb5
cmp dword [ebp - 0xf8], 0xb
jne 0x476fb5
mov eax, dword [ebp - 0x100]
cmp byte [eax + 0x55], 0
jne 0x476fb5
or dword [eax + 0x20], 0
or dword [eax + 0x24], 2
cmp byte [ebp - 0x11e], 0
mov esi, 1
je 0x47704d
movzx edx, byte [ebp - 0x11e]
mov eax, dword [ebp - 0x100]
dec edx
call fcn.004170d6
jmp 0x47704d
cmp dword [ebp - 0x118], 1
mov ecx, dword [ebp - 0x100]
sete al
cmp dword [ecx + 0xc4], 0
jg 0x477438
cmp dword [ebx + 0x18], 0
mov dword [ebp - 0x130], 0
jne 0x47701e
mov edi, dword [ebp - 0x100]
xor ecx, ecx
cmp byte [edi + 0x5d], 0
setne cl
mov dword [ebp - 0x130], ecx
cmp dword [ebp - 0x130], 0
je 0x47727e
test al, al
je 0x47727e
mov eax, dword [ebp - 0xfc]
mov edx, 1
call fcn.00429bd9
test eax, eax
mov esi, eax
je 0x47720a
cmp dword [ebp - 0x144], 0
je 0x47707b
rdtsc
mov ecx, dword [ebp - 0x144]
mov dword [ebp - 0x188], eax
mov eax, dword [ebp - 0x188]
mov dword [ebp - 0x184], edx
mov edx, dword [ebp - 0x184]
add dword [ecx], eax
adc dword [ecx + 4], edx
mov eax, dword [ebp - 0x150]
mov edx, dword [ebp - 0x14c]
mov dword [ebp - 0x108], eax
mov dword [ebp - 0x104], edx
mov eax, dword [ebp - 0x104]
cmp dword [ebp - 0x13c], eax
jb 0x477770
ja 0x4770b9
mov eax, dword [ebp - 0x108]
cmp dword [ebp - 0x140], eax
jb 0x477770
mov eax, dword [ebp - 0x100]
mov ecx, dword [eax + 0x184]
test ecx, ecx
je 0x477770
mov eax, dword [ebp - 0x100]
xor edx, edx
mov eax, dword [eax + 0x18c]
add dword [ebp - 0x108], eax
mov eax, dword [ebp - 0x100]
adc dword [ebp - 0x104], edx
mov eax, dword [eax + 0x188]
mov dword [esp], eax
call ecx
test eax, eax
mov dword [ebp - 0xf8], 9
mov dword [ebp - 0x150], 0xffffffff
mov dword [ebp - 0x14c], 0xffffffff
mov dword [ebp - 0x144], 0
je 0x477093
jmp 0x476e92
mov eax, dword [ebp - 0xfc]
mov dword [esp + 4], str.string_or_blob_too_big
mov dword [esp], eax
call fcn.00429ba8
mov dword [ebp - 0xf8], 0x12
jmp 0x476e92
mov eax, dword [ebp - 0x10c]
mov dword [ebp - 0x144], 0
mov dword [ebp - 0x140], 0
mov dword [ebp - 0x13c], 0
mov byte [ebp - 0x11e], 0
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0x100]
call fcn.0041ae8d
mov eax, dword [ebp - 0xfc]
mov dword [esp + 4], 0x4f2628
mov dword [esp], eax
call fcn.00429ba8
mov dword [ebp - 0xf8], 7
jmp 0x476e92
mov eax, dword [ebp - 0x128]
fld qword [ebp - 0x118]
mov esi, dword [ebp - 0x128]
fstp qword [eax]
mov eax, dword [eax + 0x10]
mov word [ebp - 0x118], ax
and ax, 0xf240
or eax, 8
mov word [esi + 0x10], ax
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0xfc]
mov dword [esp + 8], esi
mov dword [esp + 4], str.no_such_savepoint:__s
mov dword [esp], eax
call fcn.00429ba8
mov dword [ebp - 0xf8], 1
jmp 0x476e92
mov eax, dword [ebp - 0x100]
mov byte [eax + 0x55], 1
mov eax, dword [ebp - 0xfc]
call fcn.00458162
cmp eax, 5
jne 0x477253
mov eax, dword [ebp - 0xf4]
sub eax, dword [ebp - 0x10c]
mov edi, dword [ebp - 0xfc]
sar eax, 3
imul eax, eax, 0xcccccccd
mov dword [edi + 0x20], eax
mov eax, dword [ebp - 0x100]
mov byte [eax + 0x55], 0
mov eax, edi
jmp 0x4717cf
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x24]
test eax, eax
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0x100]
je 0x477275
mov byte [eax + 0x55], 0
jmp 0x476e92
mov byte [eax + 0x5d], 0
jmp 0x477362
mov eax, dword [ebp - 0x128]
mov edi, dword [ebp - 0x100]
xor esi, esi
not eax
add eax, dword [edi + 0x208]
cmp dword [ebp - 0x118], 2
mov dword [ebp - 0x128], eax
jne 0x4772f5
mov eax, dword [edi + 0x18]
xor edi, edi
mov esi, eax
and esi, 1
mov eax, esi
xor eax, 1
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x100]
cmp edi, dword [eax + 0x14]
jge 0x4772f5
mov ecx, dword [ebp - 0x100]
mov eax, edi
mov edx, 0x204
shl eax, 4
add eax, dword [ecx + 0x10]
mov ecx, dword [ebp - 0x138]
mov eax, dword [eax + 4]
call fcn.00452ad1
test eax, eax
mov dword [ebp - 0xf8], eax
jne 0x476e92
inc edi
jmp 0x4772b8
xor edi, edi
mov eax, dword [ebp - 0x100]
cmp edi, dword [eax + 0x14]
jge 0x477335
mov ecx, dword [ebp - 0x100]
mov eax, edi
mov edx, dword [ebp - 0x118]
shl eax, 4
add eax, dword [ecx + 0x10]
mov ecx, dword [ebp - 0x128]
mov eax, dword [eax + 4]
call fcn.00452bdc
test eax, eax
mov dword [ebp - 0xf8], eax
jne 0x476e92
inc edi
jmp 0x4772f7
test esi, esi
je 0x477355
xor edx, edx
call fcn.00403b0d
mov eax, dword [ebp - 0x100]
call fcn.0041712f
mov eax, dword [ebp - 0x100]
or dword [eax + 0x18], 1
cmp dword [ebp - 0xf8], 0
jne 0x476e92
mov eax, dword [ebp - 0x100]
mov eax, dword [eax + 0x1fc]
cmp ebx, eax
je 0x47739b
mov edx, dword [eax + 0x18]
mov edi, dword [ebp - 0x100]
mov dword [edi + 0x1fc], edx
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.0040b317
mov eax, dword [ebp - 0x100]
dec dword [eax + 0x208]
jmp 0x477362
cmp dword [ebp - 0x118], 1
jne 0x4773d6
mov eax, dword [ebx + 0x18]
mov edi, dword [ebp - 0x100]
mov dword [edi + 0x1fc], eax
mov dword [esp + 4], ebx
mov dword [esp], edi
call fcn.0040b317
cmp dword [ebp - 0x130], 0
jne 0x477400
mov eax, dword [ebp - 0x100]
dec dword [eax + 0x208]
jmp 0x477400
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
mov edi, dword [ebp - 0x100]
mov dword [edi + 0x210], eax
mov dword [edi + 0x214], edx
mov eax, dword [ebx + 0x10]
mov edx, dword [ebx + 0x14]
mov dword [edi + 0x218], eax
mov dword [edi + 0x21c], edx
cmp dword [ebp - 0x130], 0
je 0x477412
cmp dword [ebp - 0x118], 2
jne 0x477465
mov ecx, dword [ebp - 0x128]
mov edx, dword [ebp - 0x118]
mov eax, dword [ebp - 0x100]
call fcn.0040e387
test eax, eax
mov dword [ebp - 0xf8], eax
je 0x477465
jmp 0x476e92
test al, al
je 0x476ff9
mov eax, dword [ebp - 0xfc]
mov dword [esp + 4], str.cannot_release_savepoint___SQL_statements_in_progress
mov dword [esp], eax
call fcn.00429ba8
mov dword [ebp - 0xf8], 5
jmp 0x476e92
mov eax, dword [ebp - 0xfc]
cmp byte [eax + 0x95], 3
jne 0x47747e
mov esi, 0x65
jmp 0x47704d
mov dword [ebp - 0xf8], 0
jmp case.0x46ec3a.89
mov dword [ebp - 0xf8], 0
jmp case.0x46ec3a.89
mov eax, dword [ebp - 0x128]
dec eax
and cl, 1
cmovne eax, dword [ebp - 0x128]
jmp 0x477747
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x18c]
call fcn.00418afb
mov dword [ebp - 0xf8], eax
cmp dword [ebp - 0xf8], 0
mov eax, dword [ebp - 0x128]
mov dword [esi + 0x14], eax
je 0x473c82
jmp 0x473c7b
lea edx, [ebx + 0x24]
lea eax, [ebx + 0x40]
mov byte [ebx + 0x38], 1
call fcn.0041b6fa
mov dword [ebx + 0x2c], 0
mov dword [ebp - 0xf8], eax
mov dword [ebx + 0x30], 0
add dword [ebx + 0x2c], esi
cmp esi, dword [ebx + 8]
jle 0x477512
mov dword [ebx + 8], esi
mov eax, dword [ebx + 0x28]
test eax, eax
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x130]
je 0x477633
add eax, dword [ebx + 0x30]
mov esi, dword [ebx + 0x34]
cmp eax, esi
jle 0x47760e
mov edx, dword [ebx + 0x24]
mov edi, esi
mov dword [ebp - 0x128], eax
sar edi, 0x1f
add esi, esi
adc edi, edi
mov ecx, edx
sub ecx, dword [ebp - 0x138]
test edx, edx
mov edx, 0xffffffff
cmovne edx, ecx
mov ecx, eax
sar ecx, 0x1f
mov dword [ebp - 0x148], edx
mov dword [ebp - 0x124], ecx
mov ecx, dword [ebp - 0x128]
mov dword [ebp - 0x160], ecx
mov ecx, dword [ebp - 0x124]
cmp edi, ecx
jge 0x477588
add esi, esi
adc edi, edi
jmp 0x47756c
jg 0x47758e
cmp esi, eax
jb 0x477582
mov eax, dword [ebx + 4]
cdq
mov dword [ebp - 0x158], eax
cmp edi, edx
jl 0x4775c2
jg 0x4775a6
cmp esi, dword [ebp - 0x158]
jbe 0x4775c2
cmp dword [ebp - 0x124], edx
jg 0x4775ca
jl 0x4775be
mov esi, dword [ebp - 0x158]
cmp dword [ebp - 0x128], esi
ja 0x4775ca
mov esi, eax
mov edi, edx
mov dword [ebp - 0x160], esi
mov ecx, edi
mov edx, dword [ebp - 0x160]
mov eax, dword [ebp - 0x138]
call fcn.00414415
test eax, eax
jne 0x4775ee
mov dword [ebp - 0xf8], 7
jmp 0x476e92
cmp dword [ebp - 0x148], 0
js 0x477602
mov ecx, dword [ebp - 0x148]
add ecx, eax
mov dword [ebx + 0x24], ecx
mov dword [ebx + 0x28], eax
mov eax, dword [ebp - 0x160]
mov dword [ebx + 0x34], eax
mov eax, dword [ebp - 0x130]
mov esi, dword [ebx + 0x30]
mov ecx, dword [ebx + 0x28]
add eax, 7
and eax, 0xfffffff8
lea edx, [ecx + esi]
add eax, esi
mov dword [ebx + 0x30], eax
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x477645
sub eax, ecx
jmp 0x477642
cdq
call fcn.0041430a
test eax, eax
mov edx, eax
je 0x4775df
mov eax, dword [ebx + 0x24]
mov dword [edx + 4], eax
mov edi, dword [ebp - 0x118]
mov esi, dword [ebp - 0x118]
lea eax, [edx + 8]
cmp dword [ebp - 0xf8], 0
mov ecx, dword [edi + 0xc]
mov esi, dword [esi + 8]
mov edi, eax
mov eax, dword [ebp - 0x118]
rep movsb byte es:[edi], byte [esi]
mov eax, dword [eax + 0xc]
mov dword [edx], eax
mov dword [ebx + 0x24], edx
je case.0x46ec3a.89
jmp 0x476e92
mov dword [ebp - 0xf8], 0
jmp 0x477507
mov eax, dword [ebp - 0xf4]
imul eax, dword [eax + 0xc], 0x28
add eax, dword [ebp - 0x108]
call fcn.0040b5af
jmp 0x46ec88
mov edx, esi
mov eax, ebx
call fcn.0044d33e
jmp 0x475d61
mov dword [ebp - 0xf8], 7
cmp byte [ebp - 0xf8], 6
jne 0x476e92
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 0x10]
mov dword [esp + 4], str.database_table_is_locked:__s
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xfc]
mov dword [esp], eax
call fcn.00429ba8
jmp 0x476e92
mov dword [ebp - 0xf8], 0
jmp case.0x46ec3a.89
mov edx, dword [ebx + 8]
mov eax, dword [ebp - 0xfc]
add edx, 8
call fcn.0041b423
mov dword [ebp - 0xf8], 0
jmp case.0x46ec3a.89
mov dword [ebp - 0xf8], 6
jmp 0x476e92
fstp st(0)
fstp st(0)
mov eax, dword [ebp - 0x128]
inc eax
and cl, 1
cmove eax, dword [ebp - 0x128]
mov dword [ebp - 0x118], eax
jmp 0x4723d4
mov edx, dword [ebx + 8]
mov esi, eax
mov eax, dword [ebp - 0xfc]
add edx, 8
call fcn.0041b423
mov dword [ebp - 0xf8], esi
jmp 0x476e92
mov eax, dword [ebp - 0xfc]
mov edi, dword [ebp - 0x140]
add dword [eax + 0xb4], edi
add esp, 0x1ac
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret