Function at 0x6124e0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x8c
mov eax, dword [0x857060]
xor eax, esp
mov dword [esp + 0x88], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ecx + 8]
mov dword [esp + 0x38], eax
mov eax, dword [ecx]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x28], ebx
mov dword [esp + 8], eax
mov dword [esp + 0x44], esi
push edi
mov edi, edx
test esi, esi
jne 0x612548
cmp dword [ecx + 0x74], esi
jne 0x612531
test byte [eax + 0x4c], 8
jne 0x612531
mov byte [ecx + 0x17], 1
call fcn.005d64e0
mov ecx, dword [esp + 0x10]
mov esi, eax
mov dword [esp + 0x48], esi
test esi, esi
je 0x6169d6
or dword [esi + 0x98], 0x20
lea eax, [ecx + 0x2c]
mov dword [esp + 0x54], eax
mov edx, edi
mov dword [eax], 2
lea eax, [esp + 0x30]
push eax
push ebx
call fcn.005fb770
mov ecx, eax
add esp, 8
mov dword [esp + 0x1c], ecx
test ecx, ecx
js 0x6169d6
mov edx, dword [esp + 0xc]
shl eax, 4
mov dword [esp + 0x28], eax
mov edi, dword [edx + 0x10]
add edi, eax
mov dword [esp + 0x68], edi
cmp ecx, 1
jne 0x6125a8
mov ecx, dword [esp + 0x10]
call fcn.006020d0
test eax, eax
jne 0x6169d6
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x30]
test eax, eax
je 0x6169d6
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x58], eax
test eax, eax
jne 0x6125cb
mov dword [esp + 0x60], eax
jmp 0x612605
xor eax, eax
add ecx, 1
adc eax, eax
push eax
push ecx
mov ecx, edx
call fcn.005b5d30
add esp, 8
mov dword [esp + 0x60], eax
test eax, eax
je 0x612605
push dword [esp + 0x18]
push dword [esp + 0x5c]
push eax
call fcn.006e8ef0
mov eax, dword [esp + 0x24]
add esp, 0xc
mov ecx, dword [esp + 0x60]
mov byte [eax + ecx], 0
mov eax, ecx
mov ecx, eax
call fcn.005b9170
cmp dword [esp + 0x60], 0
je 0x6169d6
cmp dword [ebp + 0x10], 0
je 0x612634
push dword [esp + 0x3c]
push 0x804004
push dword [esp + 0x14]
call fcn.005b8350
add esp, 0xc
jmp 0x6126a9
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x6126a7
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x58], eax
test eax, eax
jne 0x61265e
mov ecx, eax
mov dword [esp + 0x20], eax
call fcn.005b9170
mov eax, dword [esp + 0x20]
jmp 0x6126ad
xor eax, eax
add ecx, 1
adc eax, eax
push eax
push ecx
mov ecx, dword [esp + 0x14]
call fcn.005b5d30
add esp, 8
mov dword [esp + 0x20], eax
test eax, eax
je 0x61269a
push dword [esp + 0x18]
push dword [esp + 0x5c]
push eax
call fcn.006e8ef0
mov eax, dword [esp + 0x24]
add esp, 0xc
mov ecx, dword [esp + 0x20]
mov byte [eax + ecx], 0
mov eax, ecx
mov ecx, eax
call fcn.005b9170
mov eax, dword [esp + 0x20]
jmp 0x6126ad
xor eax, eax
mov dword [esp + 0x20], eax
cmp dword [ebx + 4], 0
jbe 0x6126b7
mov ebx, dword [edi]
jmp 0x6126b9
xor ebx, ebx
mov ecx, dword [esp + 0x10]
mov edx, 0x13
push ebx
push eax
push dword [esp + 0x68]
mov dword [esp + 0x50], ebx
call fcn.005fa470
add esp, 0xc
test eax, eax
jne 0x6169b6
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x88], eax
mov dword [esp + 0x90], 0
mov eax, dword [ecx + 0xc]
mov dword [ecx + 0x1ac], 0
mov dword [esp + 0x14], 1
test eax, eax
je 0x61272f
push eax
call dword [0x857d20]
mov ecx, dword [esp + 0x10]
add esp, 4
test ebx, ebx
je 0x612742
mov edx, ebx
call fcn.005fb660
mov ebx, eax
test ebx, ebx
js 0x6127ad
jmp 0x612744
xor ebx, ebx
mov eax, dword [esp + 0xc]
add ebx, ebx
mov eax, dword [eax + 0x10]
mov ebx, dword [eax + ebx*8 + 4]
test ebx, ebx
je 0x6127ad
cmp byte [ebx + 9], 0
je 0x61276b
inc dword [ebx + 0xc]
cmp byte [ebx + 0xa], 0
jne 0x61276b
mov ecx, ebx
call fcn.005c8270
mov eax, dword [ebx + 4]
mov eax, dword [eax]
mov eax, dword [eax + 0x3c]
mov ecx, dword [eax]
test ecx, ecx
jne 0x612783
mov dword [esp + 0x14], 0xc
jmp 0x61279a
lea edx, [esp + 0x84]
push edx
push 0xe
push eax
mov eax, dword [ecx + 0x28]
call eax
add esp, 0xc
mov dword [esp + 0x14], eax
cmp byte [ebx + 9], 0
je 0x6127ad
add dword [ebx + 0xc], 0xffffffff
jne 0x6127ad
mov ecx, ebx
call fcn.005c8250
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x6127c2
push eax
call dword [0x857d28]
add esp, 4
mov ebx, dword [esp + 0x14]
test ebx, ebx
jne 0x612815
lea edx, [ebx + 1]
mov ecx, esi
call fcn.005d8500
mov eax, dword [esi]
cmp byte [eax + 0x51], bl
jne 0x6127f3
mov edx, dword [esp + 0x84]
mov ecx, dword [esi + 0x74]
push 0xffffffffffffffff
push 1
push 0xffffffffffffffff
call fcn.005d5a20
add esp, 0xc
mov edx, dword [esp + 0x84]
mov ecx, esi
call fcn.00612190
push dword [esp + 0x84]
call fcn.005b5980
add esp, 4
jmp 0x6169b6
cmp ebx, 0xc
je 0x612855
mov eax, dword [esp + 0x84]
test eax, eax
je 0x612846
push eax
push 0x7a2300
push dword [esp + 0x18]
call fcn.005b9110
add esp, 0xc
push dword [esp + 0x84]
call fcn.005b5980
add esp, 4
mov eax, dword [esp + 0x10]
inc dword [eax + 0x24]
mov dword [eax + 0xc], ebx
jmp 0x6169b6
mov ecx, dword [esp + 0x60]
call fcn.006122c0
mov ebx, eax
mov dword [esp + 0x58], ebx
test ebx, ebx
je 0x6169b6
test byte [ebx + 5], 1
je 0x612883
mov ecx, dword [esp + 0x10]
call fcn.00617d90
test eax, eax
jne 0x6169b6
mov al, byte [ebx + 5]
test al, 2
jne 0x61289f
test al, 4
je 0x612896
mov ecx, dword [esp + 0x20]
test ecx, ecx
jne 0x6128a3
mov edx, ebx
mov ecx, esi
call fcn.006120f0
mov ecx, dword [esp + 0x20]
movzx eax, byte [ebx + 4]
dec eax
cmp eax, 0x29
ja case.0x6128b1.5
jmp dword [eax*4 + 0x616a64]
mov eax, dword [esi + 0x9c]
mov ebx, dword [esp + 0x1c]
bts eax, ebx
mov dword [esi + 0x9c], eax
cmp ebx, 1
je 0x6128f2
mov eax, dword [esi]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx + 4]
cmp byte [eax + 9], 0
je 0x6128f2
mov eax, dword [esi + 0xa0]
bts eax, ebx
mov dword [esi + 0xa0], eax
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x612928
mov eax, dword [esp + 0x54]
mov edx, 9
push ecx
push 0x791ea0
mov ecx, esi
add dword [eax], 2
call fcn.005d6e10
add esp, 8
mov dword [eax + 4], ebx
mov dword [eax + 0x18], ebx
mov dword [eax + 0x7c], 0xfffff830
jmp 0x6169b6
lea edx, [esp + 0x18]
mov dword [esp + 0x18], 0
mov ecx, eax
call fcn.005b9b60
mov ebx, dword [esp + 0x18]
test ebx, ebx
jns 0x612954
cmp ebx, 0x80000000
jne 0x612952
mov ebx, SysReAllocString
jmp 0x612954
neg ebx
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x74]
test eax, eax
cmovne ecx, eax
mov eax, 1
mov dword [esp + 0x10], ecx
mov edx, dword [ecx + 0x54]
mov ecx, dword [esp + 0x1c]
shl eax, cl
mov ecx, dword [esp + 0x10]
test edx, eax
jne 0x612992
mov eax, dword [esp + 0x1c]
bts edx, eax
mov dword [ecx + 0x54], edx
cmp eax, 1
jne 0x612992
call fcn.006020d0
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x50]
mov edx, dword [esp + 0x1c]
bts eax, edx
mov dword [ecx + 0x50], eax
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x6129bc
push ebx
push 3
push edx
mov edx, 0x5e
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x6129e7
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x5e
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi + 0xc]
mov dword [eax + 0x50], ebx
mov edx, dword [edi + 0xc]
mov ecx, dword [edi + 4]
mov edx, dword [edx + 0x50]
call fcn.005ca6d0
jmp 0x6169b6
mov edi, dword [edi + 4]
test ecx, ecx
jne 0x612a1a
test edi, edi
je 0x6134d6
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x24]
jmp 0x616a1a
lea edx, [esp + 0x18]
mov dword [esp + 0x18], 0
call fcn.005b9b60
mov eax, dword [esp + 0xc]
mov ecx, edi
mov edx, dword [esp + 0x18]
push 0
push 0
mov dword [eax + 0x5c], edx
call fcn.005ca8c0
add esp, 8
cmp eax, 7
jne 0x6169b6
mov edx, dword [esp + 0xc]
cmp byte [edx + 0x51], 0
jne 0x6169b6
cmp byte [edx + 0x52], 0
jne 0x6169b6
cmp dword [edx + 0xbc], 0
mov byte [edx + 0x51], 1
jle 0x612a7c
mov dword [edx + 0x110], 1
inc dword [edx + 0x118]
xor eax, eax
mov word [edx + 0x11c], ax
mov eax, dword [edx + 0xf4]
test eax, eax
je 0x6169b6
mov dword [eax + 0xc], 7
jmp 0x6169b6
mov eax, dword [esp + 0x20]
or ecx, 0xffffffff
mov ebx, dword [edi + 4]
mov dword [esp + 0x58], ebx
mov dword [esp + 0x14], ecx
test eax, eax
je 0x612b1b
mov ecx, str.fast
mov edx, eax
sub ecx, eax
mov dword [esp + 0x30], ecx
nop dword [eax + eax]
movzx eax, byte [edx]
movzx edi, byte [ecx + edx]
cmp eax, edi
jne 0x612ae4
test eax, eax
jne 0x612afa
lea ecx, [eax + 2]
jmp 0x612b17
movzx ecx, byte [eax + 0x792808]
movzx eax, byte [edi + 0x792808]
sub ecx, eax
jne 0x612afd
mov ecx, dword [esp + 0x30]
inc edx
jmp 0x612ad0
mov ecx, dword [esp + 0x20]
mov edx, 1
push 0
call fcn.00612040
xor ecx, ecx
add esp, 4
test al, al
setne cl
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x2c]
mov edi, 0xfff3
cmp dword [eax + 4], 0
jne 0x612bc4
test ecx, ecx
js 0x612bc4
mov eax, dword [esp + 0xc]
xor edx, edx
mov dword [esp + 0x24], edx
cmp dword [eax + 0x14], edx
jle 0x612bc4
mov ebx, dword [esp + 0x14]
xor esi, esi
nop dword [eax + eax]
mov eax, dword [eax + 0x10]
mov edi, dword [eax + esi + 4]
test edi, edi
je 0x612ba6
cmp byte [edi + 9], 0
je 0x612b75
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x612b75
mov ecx, edi
call fcn.005c8270
mov edx, dword [esp + 0x24]
mov eax, dword [edi + 4]
mov ecx, 0xfff3
and word [eax + 0x18], cx
lea eax, [ebx*4]
mov ecx, dword [edi + 4]
or word [ecx + 0x18], ax
cmp byte [edi + 9], 0
je 0x612ba6
add dword [edi + 0xc], 0xffffffff
jne 0x612ba6
mov ecx, edi
call fcn.005c8250
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0xc]
inc edx
add esi, 0x10
mov dword [esp + 0x24], edx
cmp edx, dword [eax + 0x14]
jl 0x612b50
mov esi, dword [esp + 0x48]
mov edi, 0xfff3
mov ebx, dword [esp + 0x58]
test ebx, ebx
jne 0x612bd7
xor edi, edi
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], edi
jmp 0x616a23
cmp byte [ebx + 9], 0
je 0x612bed
inc dword [ebx + 0xc]
cmp byte [ebx + 0xa], 0
jne 0x612bed
mov ecx, ebx
call fcn.005c8270
mov edx, dword [esp + 0x14]
test edx, edx
js 0x612c0a
mov eax, dword [ebx + 4]
and word [eax + 0x18], di
lea eax, [edx*4]
mov ecx, dword [ebx + 4]
or word [ecx + 0x18], ax
mov eax, dword [ebx + 4]
movzx edi, word [eax + 0x18]
shr edi, 2
and edi, 3
cmp byte [ebx + 9], 0
je 0x612c2a
add dword [ebx + 0xc], 0xffffffff
jne 0x612c2a
mov ecx, ebx
call fcn.005c8250
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], 0
jmp 0x616a23
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov eax, dword [ebx + 0x74]
test eax, eax
cmovne ebx, eax
mov eax, 1
shl eax, cl
mov edx, dword [ebx + 0x54]
test edx, eax
jne 0x612c6b
bts edx, ecx
mov dword [ebx + 0x54], edx
cmp ecx, 1
jne 0x612c6b
mov ecx, ebx
call fcn.006020d0
mov eax, dword [esp + 0x54]
inc dword [eax]
mov edi, dword [eax]
mov eax, dword [esp + 0x60]
movzx eax, byte [eax]
cmp byte [eax + 0x792808], 0x70
jne 0x612ccb
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x612ca6
push 0
push edi
push dword [esp + 0x24]
mov edx, 0xa8
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x612d47
mov edx, dword [esp + 0x1c]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0xa8
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 0xc], 0
jmp 0x612d3b
mov eax, dword [esp + 0x20]
xor edx, edx
mov dword [esp + 0x18], edx
test eax, eax
je 0x612cfd
lea edx, [esp + 0x18]
mov ecx, eax
call fcn.005b9b60
mov edx, dword [esp + 0x18]
test edx, edx
jns 0x612cfd
cmp edx, 0x80000000
jne 0x612cfb
mov edx, SysReAllocString
jmp 0x612cfd
neg edx
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x612d1c
push edx
push edi
push dword [esp + 0x24]
mov edx, 0xa9
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x612d47
mov ebx, dword [esp + 0x1c]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0xa9
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov dword [eax + ecx*4 + 8], edi
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x612d68
push 0
push 1
push edi
mov edx, 0x50
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x6169b6
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x6169af
test ecx, ecx
je 0x612e0c
mov edx, str.exclusive
mov ebx, ecx
sub ebx, edx
movzx ecx, byte [edx + ebx]
movzx eax, byte [edx]
cmp ecx, eax
jne 0x612db8
test ecx, ecx
jne 0x612dca
mov ecx, 1
jmp 0x612e0f
movzx eax, byte [eax + 0x792808]
movzx ecx, byte [ecx + 0x792808]
sub ecx, eax
jne 0x612dcd
inc edx
jmp 0x612da2
mov edx, dword [esp + 0x20]
mov ecx, str.normal
sub ecx, edx
mov dword [esp + 0x30], ecx
nop dword [eax]
movzx eax, byte [edx]
movzx ebx, byte [edx + ecx]
cmp eax, ebx
jne 0x612df3
test eax, eax
jne 0x612e09
xor ecx, ecx
jmp 0x612e0f
movzx ecx, byte [eax + 0x792808]
movzx eax, byte [ebx + 0x792808]
sub ecx, eax
jne 0x612e0c
mov ecx, dword [esp + 0x30]
inc edx
jmp 0x612de0
or ecx, 0xffffffff
mov eax, dword [esp + 0x2c]
cmp dword [eax + 4], 0
jne 0x612e81
cmp ecx, 0xffffffff
jne 0x612e2a
mov eax, dword [esp + 0xc]
mov al, byte [eax + 0x53]
jmp 0x612eab
mov ebx, dword [esp + 0xc]
mov edx, 2
cmp dword [ebx + 0x14], edx
jle 0x612e7a
mov edi, dword [esp + 0xc]
lea ebx, [edx + 0x1e]
nop
test ecx, ecx
js 0x612e69
mov eax, dword [edi + 0x10]
mov eax, dword [eax + ebx + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax]
cmp byte [eax + 0xc], 0
jne 0x612e69
mov esi, dword [eax + 0xd8]
test esi, esi
je 0x612e66
cmp byte [esi + 0x2b], 2
je 0x612e69
mov byte [eax + 4], cl
inc edx
add ebx, 0x10
cmp edx, dword [edi + 0x14]
jl 0x612e40
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x68]
mov edx, dword [esp + 0xc]
mov byte [edx + 0x53], cl
mov eax, dword [edi + 4]
mov dl, cl
mov eax, dword [eax + 4]
mov eax, dword [eax]
test ecx, ecx
js 0x612ea8
cmp byte [eax + 0xc], 0
jne 0x612ea8
mov ecx, dword [eax + 0xd8]
test ecx, ecx
je 0x612ea5
cmp byte [ecx + 0x2b], 2
je 0x612ea8
mov byte [eax + 4], dl
mov al, byte [eax + 4]
cmp al, 1
mov ecx, str.exclusive
mov edx, str.normal
cmove edx, ecx
mov ecx, esi
call fcn.00612190
jmp 0x6169b6
test ecx, ecx
je 0x612f1c
mov edi, ecx
lea ecx, [edi + 1]
nop
mov al, byte [edi]
inc edi
test al, al
jne 0x612ed0
sub edi, ecx
and edi, 0x3fffffff
xor ebx, ebx
cmp ebx, 6
je 0x612f1c
mov eax, dword [ebx*4 + 0x7919e4]
test eax, eax
je 0x612f1c
push edi
push eax
push dword [esp + 0x28]
call fcn.005b9250
add esp, 0xc
test eax, eax
je 0x612f06
inc ebx
jmp 0x612ee1
cmp ebx, 2
jne 0x612f3a
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x20]
and eax, 0x10000000
or eax, 0
je 0x612f3f
or ebx, 0xffffffff
mov ecx, dword [esp + 0x2c]
cmp dword [ecx + 4], 0
jne 0x612f43
mov dword [esp + 0x1c], 0
mov dword [ecx + 4], 1
jmp 0x612f43
cmp ebx, 0xffffffff
je 0x612f1f
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0x14]
sub edi, 1
js 0x616a3d
mov edx, edi
shl edx, 4
mov dword [esp + 0x18], edx
nop dword [eax]
mov eax, dword [eax + 0x10]
cmp dword [eax + edx + 4], 0
je 0x613000
cmp edi, dword [esp + 0x1c]
je 0x612f7e
cmp dword [ecx + 4], 0
jne 0x613000
mov eax, dword [esi + 0x9c]
bts eax, edi
mov dword [esi + 0x9c], eax
cmp edi, 1
je 0x612fb0
mov eax, dword [esi]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + edx + 4]
cmp byte [eax + 9], 0
je 0x612fb0
mov eax, dword [esi + 0xa0]
bts eax, edi
mov dword [esi + 0xa0], eax
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x612fd1
push ebx
push 1
push edi
mov edx, 7
mov ecx, esi
call fcn.005d6700
mov edx, dword [esp + 0x24]
add esp, 0xc
jmp 0x613000
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x48]
mov dword [eax + ecx*4], 7
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x2c]
sub edx, 0x10
sub edi, 1
mov eax, dword [esp + 0xc]
mov dword [esp + 0x18], edx
jns 0x612f60
jmp 0x616a3d
mov eax, dword [edi + 4]
mov dword [esp + 0x70], 0xfffffffe
mov dword [esp + 0x74], 0xffffffff
mov eax, dword [eax + 4]
mov edi, dword [eax]
test ecx, ecx
je 0x61307d
lea edx, [esp + 0x70]
call fcn.005b9a50
mov ecx, dword [esp + 0x74]
cmp ecx, 0xffffffff
jg 0x61305d
jl 0x613056
mov eax, dword [esp + 0x70]
cmp eax, 0xffffffff
jae 0x613061
or eax, 0xffffffff
or ecx, eax
jmp 0x613061
mov eax, dword [esp + 0x70]
mov edx, dword [edi + 0xd8]
mov dword [edi + 0xa0], eax
mov dword [edi + 0xa4], ecx
test edx, edx
je 0x61307d
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], ecx
mov eax, dword [edi + 0xa0]
mov dword [esp + 0x70], eax
mov eax, dword [edi + 0xa4]
mov dword [esp + 0x74], eax
jmp 0x616a23
mov ebx, dword [edi + 4]
test ecx, ecx
jne 0x6130df
mov cl, byte [ebx + 9]
test cl, cl
je 0x6130b7
inc dword [ebx + 0xc]
cmp byte [ebx + 0xa], 0
jne 0x6130b7
mov ecx, ebx
call fcn.005c8270
mov cl, byte [ebx + 9]
mov edx, dword [ebx + 4]
cmp byte [edx + 0x11], 0
jne 0x6130c9
xor edi, edi
test cl, cl
jmp 0x612c1b
xor eax, eax
cmp byte [edx + 0x12], al
setne al
inc eax
test cl, cl
mov dword [esp + 0x30], eax
mov edi, eax
jmp 0x612c1b
mov edx, ecx
mov ecx, str.none
sub ecx, dword [esp + 0x20]
mov dword [esp + 0x30], ecx
nop
movzx eax, byte [edx]
movzx edi, byte [edx + ecx]
cmp eax, edi
jne 0x613104
test eax, eax
jne 0x61311a
jmp 0x6131c4
movzx ecx, byte [eax + 0x792808]
movzx eax, byte [edi + 0x792808]
sub ecx, eax
jne 0x61311d
mov ecx, dword [esp + 0x30]
inc edx
jmp 0x6130f0
mov edx, dword [esp + 0x20]
mov ecx, str.full
sub ecx, edx
mov dword [esp + 0x30], ecx
nop dword [eax]
movzx eax, byte [edx]
movzx edi, byte [edx + ecx]
cmp eax, edi
jne 0x613149
test eax, eax
jne 0x61315f
mov eax, 1
jmp 0x6131c4
movzx ecx, byte [eax + 0x792808]
movzx eax, byte [edi + 0x792808]
sub ecx, eax
jne 0x613162
mov ecx, dword [esp + 0x30]
inc edx
jmp 0x613130
mov edx, dword [esp + 0x20]
mov ecx, str.incremental
sub ecx, edx
mov dword [esp + 0x30], ecx
movzx eax, byte [edx]
movzx edi, byte [edx + ecx]
cmp eax, edi
jne 0x613187
test eax, eax
jne 0x61319d
mov eax, 2
jmp 0x6131c4
movzx ecx, byte [eax + 0x792808]
movzx eax, byte [edi + 0x792808]
sub ecx, eax
jne 0x6131a0
mov ecx, dword [esp + 0x30]
inc edx
jmp 0x613171
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x18]
mov dword [esp + 0x18], 0
call fcn.005b9b60
xor ecx, ecx
cmp dword [esp + 0x18], 2
cmovbe ecx, dword [esp + 0x18]
movzx eax, cl
mov ecx, dword [esp + 0xc]
mov edx, eax
mov dword [esp + 0x14], eax
mov byte [ecx + 0x54], al
mov ecx, ebx
call fcn.005ca9e0
test eax, eax
jne 0x6169b6
mov ebx, dword [esp + 0x14]
cmp ebx, 1
je 0x6131f2
cmp ebx, 2
jne 0x6169b6
mov edi, dword [esi + 0x6c]
mov edx, 5
push ecx
push 0x7956e8
mov ecx, esi
call fcn.005d6e10
mov edx, dword [esp + 0x24]
lea ecx, [edi + 4]
add esp, 8
mov dword [eax + 0x30], ecx
lea ecx, [ebx - 1]
mov dword [eax + 4], edx
mov dword [eax + 0x18], edx
mov dword [eax + 0x54], edx
mov dword [eax + 0x5c], ecx
mov eax, dword [esi + 0x9c]
bts eax, edx
mov dword [esi + 0x9c], eax
cmp edx, 1
je 0x6169b6
mov eax, dword [esi]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx + 4]
cmp byte [eax + 9], 0
je 0x6169b6
mov eax, dword [esi + 0xa0]
bts eax, edx
mov dword [esi + 0xa0], eax
jmp 0x6169b6
test ecx, ecx
je 0x61327f
lea edx, [esp + 0x30]
call fcn.005b9b60
test eax, eax
je 0x61327f
mov edi, dword [esp + 0x30]
test edi, edi
jg 0x613284
mov edi, SysReAllocString
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov eax, dword [ebx + 0x74]
test eax, eax
cmovne ebx, eax
mov eax, 1
shl eax, cl
mov edx, dword [ebx + 0x54]
test edx, eax
jne 0x6132b8
bts edx, ecx
mov dword [ebx + 0x54], edx
cmp ecx, 1
jne 0x6132b8
mov ecx, ebx
call fcn.006020d0
mov ecx, dword [esp + 0x1c]
mov eax, dword [ebx + 0x50]
bts eax, ecx
mov dword [ebx + 0x50], eax
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x6132df
push 0
push 1
push edi
mov edx, 0x45
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x61330e
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x45
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esi + 0x6c]
cmp dword [esi + 0x70], edi
jg 0x613331
push 0
push 0
push dword [esp + 0x24]
mov edx, 0x3c
mov ecx, esi
call fcn.005d6700
add esp, 0xc
mov edi, eax
jmp 0x613364
mov edx, dword [esp + 0x1c]
lea eax, [edi + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x3c
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x613383
push 0
push 0
push 1
mov edx, 0x50
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x6133b6
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x50
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x6133d5
push 0
push 0xffffffffffffffff
push 1
mov edx, 0x52
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x613408
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x52
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 0xffffffff
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x613426
push 0
push edi
push 1
mov edx, 0x30
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x613455
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x30
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x51], 0
je 0x61346d
mov eax, 0x87e714
mov dword [eax + 8], edx
jmp 0x6169b6
test edi, edi
lea eax, [edx - 1]
cmovns eax, edi
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 8], edx
lea eax, [eax + ecx*4]
jmp 0x6169b6
test ecx, ecx
jne 0x613496
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x50]
jmp 0x616a1a
lea edx, [esp + 0x18]
mov dword [esp + 0x18], 0
call fcn.005b9b60
mov ecx, dword [edi + 0xc]
mov eax, dword [esp + 0x18]
mov dword [ecx + 0x50], eax
mov edx, dword [edi + 0xc]
mov ecx, dword [edi + 4]
mov edx, dword [edx + 0x50]
call fcn.005ca6d0
jmp 0x6169b6
test ecx, ecx
jne 0x6134ec
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x20]
and eax, 0x20
or eax, ecx
jne 0x6134dd
xor eax, eax
jmp 0x616a1a
mov ecx, dword [edi + 4]
xor edx, edx
call fcn.005ca750
jmp 0x616a1a
lea edx, [esp + 0x18]
mov dword [esp + 0x18], 1
call fcn.005b9b60
mov esi, dword [esp + 0x18]
test eax, eax
je 0x61350f
mov ecx, dword [edi + 4]
mov edx, esi
call fcn.005ca750
mov ecx, dword [esp + 0x20]
test esi, esi
mov edx, 1
setne al
movzx eax, al
push eax
call fcn.00612040
mov edx, dword [esp + 0x10]
add esp, 4
mov ecx, dword [edx + 0x20]
mov edx, dword [edx + 0x24]
test al, al
je 0x61353c
or ecx, 0x20
jmp 0x61353f
and ecx, 0xffffffdf
mov eax, dword [esp + 0xc]
mov dword [eax + 0x20], ecx
mov ecx, eax
mov dword [eax + 0x24], edx
call fcn.00612270
jmp 0x6169b6
test ecx, ecx
je 0x613643
lea edx, [esp + 0x70]
call fcn.005b9a50
cmp dword [esp + 0x74], 0
jg 0x613588
jl 0x613576
cmp dword [esp + 0x70], 0
jae 0x613588
mov eax, dword [0x857d78]
mov dword [esp + 0x70], eax
mov eax, dword [0x857d7c]
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0xc]
cmp dword [ecx + 4], 0
jne 0x6135a4
mov eax, dword [esp + 0x70]
mov dword [edx + 0x30], eax
mov eax, dword [esp + 0x74]
mov dword [edx + 0x34], eax
mov ebx, dword [edx + 0x14]
sub ebx, 1
js 0x613643
mov esi, ebx
shl esi, 4
mov eax, dword [edx + 0x10]
mov edi, dword [esi + eax + 4]
test edi, edi
je 0x613633
cmp ebx, dword [esp + 0x1c]
je 0x6135cc
cmp dword [ecx + 4], 0
jne 0x613633
cmp byte [edi + 9], 0
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
mov dword [esp + 0x68], ecx
mov ecx, dword [edi + 4]
mov dword [esp + 0x30], eax
mov dword [esp + 0x58], ecx
je 0x613601
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x613601
mov ecx, edi
call fcn.005c8270
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x58]
mov ecx, dword [ecx]
mov dword [ecx + 0x80], eax
mov eax, dword [esp + 0x68]
mov dword [ecx + 0x84], eax
call fcn.005c24b0
cmp byte [edi + 9], 0
je 0x61362b
add dword [edi + 0xc], 0xffffffff
jne 0x61362b
mov ecx, edi
call fcn.005c8250
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0xc]
sub esi, 0x10
sub ebx, 1
jns 0x6135b5
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0xc]
mov ebx, 1
mov dword [esp + 0x70], 0xffffffff
mov dword [esp + 0x74], 0xffffffff
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x613671
push eax
call dword [0x857d20]
mov ecx, dword [esp + 0x10]
add esp, 4
mov eax, dword [esp + 0x44]
test eax, eax
je 0x613688
mov edx, eax
call fcn.005fb660
mov edi, eax
test edi, edi
js 0x6136e9
jmp 0x61368a
xor edi, edi
mov eax, dword [esp + 0xc]
add edi, edi
mov eax, dword [eax + 0x10]
mov edi, dword [eax + edi*8 + 4]
test edi, edi
je 0x6136e9
cmp byte [edi + 9], 0
je 0x6136b1
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x6136b1
mov ecx, edi
call fcn.005c8270
mov eax, dword [edi + 4]
mov eax, dword [eax]
mov eax, dword [eax + 0x3c]
mov ecx, dword [eax]
test ecx, ecx
jne 0x6136c4
lea ebx, [ecx + 0xc]
jmp 0x6136d6
lea edx, [esp + 0x70]
push edx
push 0x12
push eax
mov eax, dword [ecx + 0x28]
call eax
add esp, 0xc
mov ebx, eax
cmp byte [edi + 9], 0
je 0x6136e9
add dword [edi + 0xc], 0xffffffff
jne 0x6136e9
mov ecx, edi
call fcn.005c8250
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x6136fe
push eax
call dword [0x857d28]
add esp, 4
test ebx, ebx
jne 0x61371b
mov eax, dword [esp + 0x70]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x34], eax
lea eax, [esp + 0x30]
jmp 0x616a27
cmp ebx, 0xc
je 0x6169b6
mov eax, dword [esp + 0x10]
inc dword [eax + 0x24]
mov dword [eax + 0xc], ebx
jmp 0x6169b6
test ecx, ecx
jne 0x613744
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + 0x50]
jmp 0x616a1a
mov cl, byte [ecx]
mov al, cl
sub al, 0x30
cmp al, 2
ja 0x613756
movsx ebx, cl
sub ebx, 0x30
jmp 0x6137c1
mov ebx, dword [esp + 0x20]
mov esi, str.file
mov edx, ebx
movzx eax, byte [esi]
movzx ecx, cl
cmp ecx, eax
jne 0x613774
test ecx, ecx
jne 0x613786
lea ebx, [ecx + 1]
jmp 0x6137c1
movzx eax, byte [eax + 0x792808]
movzx ecx, byte [ecx + 0x792808]
sub ecx, eax
jne 0x61378d
mov cl, byte [edx + 1]
inc edx
inc esi
jmp 0x613761
mov edi, str.memory
mov edx, ebx
sub edi, ebx
movzx eax, byte [edx]
movzx esi, byte [edx + edi]
cmp eax, esi
jne 0x6137aa
test eax, eax
jne 0x6137bc
lea ebx, [eax + 2]
jmp 0x6137c1
movzx ecx, byte [eax + 0x792808]
movzx eax, byte [esi + 0x792808]
sub ecx, eax
jne 0x6137bf
inc edx
jmp 0x613796
xor ebx, ebx
mov edx, dword [esp + 0x10]
mov esi, dword [edx]
movzx eax, byte [esi + 0x50]
cmp eax, ebx
je 0x6169b6
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x6137ff
cmp byte [esi + 0x4f], 0
je 0x613807
cmp byte [ecx + 8], 0
jne 0x613807
call fcn.005ca550
mov eax, dword [esi + 0x10]
mov ecx, esi
mov dword [eax + 0x14], 0
call fcn.005fb300
mov byte [esi + 0x50], bl
jmp 0x6169b6
push str.temporary_storage_cannot_be_changed_from_within_a_transaction
push edx
call fcn.005b9110
add esp, 8
jmp 0x6169b6
test ecx, ecx
jne 0x613830
mov edx, dword [0x87d0cc]
mov ecx, esi
call fcn.00612190
jmp 0x6169b6
cmp byte [ecx], 0
je 0x61386c
mov eax, dword [esp + 0xc]
lea edx, [esp + 0x30]
push edx
push 1
push ecx
mov eax, dword [eax]
push eax
mov eax, dword [eax + 0x20]
call eax
add esp, 0x10
test eax, eax
jne 0x613856
cmp dword [esp + 0x30], eax
jne 0x61386c
push str.not_a_writable_directory
push dword [esp + 0x14]
call fcn.005b9110
add esp, 8
jmp 0x6169b6
mov eax, dword [esp + 0xc]
cmp byte [eax + 0x50], 1
ja 0x6138b8
mov edx, dword [esp + 0x10]
mov esi, dword [edx]
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x6138b8
cmp byte [esi + 0x4f], 0
je 0x6138aa
cmp byte [ecx + 8], 0
jne 0x6138aa
call fcn.005ca550
mov eax, dword [esi + 0x10]
mov ecx, esi
mov dword [eax + 0x14], 0
call fcn.005fb300
jmp 0x6138b8
push str.temporary_storage_cannot_be_changed_from_within_a_transaction
push edx
call fcn.005b9110
add esp, 8
push dword [0x87d0cc]
call fcn.005b5980
mov eax, dword [esp + 0x24]
add esp, 4
cmp byte [eax], 0
je 0x6138e7
push eax
push 0x7a2300
call fcn.005b8440
add esp, 8
mov dword [0x87d0cc], eax
jmp 0x6169b6
mov dword [0x87d0cc], 0
jmp 0x6169b6
test ecx, ecx
jne 0x61390c
mov edx, dword [0x87d0c8]
mov ecx, esi
call fcn.00612190
jmp 0x6169b6
cmp byte [ecx], 0
je 0x61393a
mov eax, dword [esp + 0xc]
lea edx, [esp + 0x30]
push edx
push 1
push ecx
mov eax, dword [eax]
push eax
mov eax, dword [eax + 0x20]
call eax
add esp, 0x10
test eax, eax
jne 0x613856
cmp dword [esp + 0x30], eax
je 0x613856
push dword [0x87d0c8]
call fcn.005b5980
mov eax, dword [esp + 0x24]
add esp, 4
cmp byte [eax], 0
je 0x613969
push eax
push 0x7a2300
call fcn.005b8440
add esp, 8
mov dword [0x87d0c8], eax
jmp 0x6169b6
mov dword [0x87d0c8], 0
jmp 0x6169b6
test ecx, ecx
jne 0x61398b
movzx eax, byte [edi + 8]
cdq
sub eax, 1
sbb edx, ecx
jmp 0x616a1b
mov edx, dword [esp + 0xc]
cmp byte [edx + 0x4f], 0
jne 0x6139ab
push str.Safety_level_may_not_be_changed_inside_a_transaction
push dword [esp + 0x14]
call fcn.005b9110
add esp, 8
jmp 0x6169b6
cmp dword [esp + 0x1c], 1
je 0x6169b6
push 1
xor edx, edx
call fcn.00612040
inc eax
add esp, 4
and eax, 7
mov ecx, 1
mov byte [edi + 9], cl
cmove eax, ecx
mov ecx, dword [esp + 0xc]
mov byte [edi + 8], al
call fcn.00612270
jmp 0x6169b6
test ecx, ecx
jne 0x613a2d
mov edx, ebx
mov ecx, esi
call fcn.006120f0
mov edx, dword [esp + 0xc]
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
and ecx, dword [edx + 0x20]
and eax, dword [edx + 0x24]
or ecx, eax
je 0x613a13
xor ecx, ecx
mov eax, 1
mov dword [esp + 0x74], ecx
jmp 0x616a1f
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
mov dword [esp + 0x74], ecx
jmp 0x616a1f
mov eax, dword [ebx + 8]
mov edi, dword [ebx + 0xc]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x18]
cmp byte [eax + 0x4f], 0
jne 0x613a4b
and ebx, 0xffffbfff
push 0
mov edx, 1
call fcn.00612040
mov ecx, dword [esp + 0x10]
add esp, 4
mov edx, dword [ecx + 0x20]
mov ecx, dword [ecx + 0x24]
mov dword [esp + 0x30], ecx
test al, al
je 0x613a7c
mov eax, dword [esp + 0xc]
or edx, ebx
or ecx, edi
mov dword [eax + 0x20], edx
mov dword [eax + 0x24], ecx
jmp 0x613aac
mov ecx, ebx
mov eax, edi
not ecx
not eax
and eax, dword [esp + 0x30]
and ecx, edx
mov edx, dword [esp + 0xc]
mov dword [edx + 0x20], ecx
mov dword [edx + 0x24], eax
cmp ebx, 0x80000
jne 0x613aac
test edi, edi
jne 0x613aac
mov dword [edx + 0x1f0], edi
mov dword [edx + 0x1f4], edi
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x613ad7
push 0
push 0
push 0
mov edx, 0x9e
mov ecx, esi
call fcn.005d6700
mov ecx, dword [esp + 0x18]
add esp, 0xc
call fcn.00612270
jmp 0x6169b6
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x9e
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0xc]
call fcn.00612270
jmp 0x6169b6
test ecx, ecx
je 0x6169b6
push dword [esp + 0x44]
mov edx, 2
push ecx
mov ecx, dword [esp + 0x18]
call fcn.005faf20
mov edi, eax
add esp, 8
mov dword [esp + 0x28], edi
test edi, edi
je 0x6169b6
mov ecx, dword [edi + 0x48]
mov edx, 0xfff0bdc0
test ecx, ecx
je 0x613b68
mov eax, dword [esp + 0xc]
xor edx, edx
mov eax, dword [eax + 0x10]
add eax, 0xc
cmp dword [eax], ecx
je 0x613b68
lea eax, [eax + 0x10]
inc edx
cmp dword [eax], ecx
jne 0x613b60
mov ecx, dword [edi + 8]
mov dword [esp + 0x50], 0
mov dword [esp + 0x18], ecx
test ecx, ecx
je 0x613b94
nop dword [eax + eax]
mov eax, dword [ecx + 0x38]
and al, 3
cmp al, 2
je 0x613b90
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x613b80
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x10]
mov edi, ecx
mov dword [eax], 7
mov eax, dword [ecx + 0x74]
test eax, eax
mov ecx, edx
cmovne edi, eax
mov eax, 1
shl eax, cl
mov ecx, dword [edi + 0x54]
test ecx, eax
jne 0x613bce
bts ecx, edx
mov dword [edi + 0x54], ecx
cmp edx, 1
jne 0x613bce
mov ecx, edi
call fcn.006020d0
mov edi, dword [esp + 0x28]
mov edx, edi
mov ecx, dword [esp + 0x10]
call fcn.005fe590
mov edx, dword [edi + 4]
xor ecx, ecx
movzx eax, word [edi + 0x2a]
xor edi, edi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x24], edx
cmp di, ax
jge 0x6169b6
mov dword [esp + 0x40], eax
nop dword [eax]
movzx edx, word [edx + 0x10]
xor edi, edi
test dl, 0x62
je 0x613c3f
mov eax, dword [ebx + 8]
or eax, dword [ebx + 0xc]
jne 0x613c23
mov edi, dword [esp + 0x40]
inc dword [esp + 0x50]
movzx eax, di
jmp 0x613d28
mov eax, dword [esp + 0x40]
test dl, 0x20
je 0x613c33
mov edi, 2
jmp 0x613c3f
movzx edi, dl
and edi, 0x40
or edi, 0x20
shr edi, 5
test dl, 1
jne 0x613c48
xor edx, edx
jmp 0x613c78
mov ecx, dword [esp + 0x18]
mov edx, 1
test ecx, ecx
je 0x613c78
cwde
mov dword [esp + 0x30], eax
cmp eax, edx
jl 0x613c78
mov ecx, dword [ecx + 4]
mov esi, eax
movsx eax, word [ecx]
cmp eax, dword [esp + 0x14]
je 0x613c74
inc edx
add ecx, 2
cmp edx, esi
jle 0x613c63
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 4]
test eax, eax
je 0x613c91
cmp edi, 2
jae 0x613c91
mov eax, dword [eax + 8]
mov dword [esp + 0x40], eax
jmp 0x613c99
mov dword [esp + 0x40], 0
mov eax, dword [ebx + 8]
or eax, dword [ebx + 0xc]
mov dword [esp + 0x38], str.issisii
jne 0x613cb1
mov dword [esp + 0x38], str.issisi
mov eax, dword [ecx]
mov dword [esp + 0x3c], eax
movzx eax, word [ecx + 0x10]
test al, 4
jne 0x613cc9
mov dword [esp + 0x3c], 0x798f50
jmp 0x613cee
mov ecx, dword [esp + 0x3c]
lea eax, [ecx + 1]
mov dword [esp + 0x30], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x613cd4
mov eax, dword [esp + 0x3c]
sub ecx, dword [esp + 0x30]
inc eax
add eax, ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x3c], eax
push edi
push edx
push dword [esp + 0x48]
xor eax, eax
cmp byte [ecx + 0xc], al
setne al
push eax
push dword [esp + 0x4c]
mov eax, dword [ecx]
push eax
mov eax, dword [esp + 0x2c]
sub eax, dword [esp + 0x68]
push eax
push dword [esp + 0x54]
push 1
push esi
call fcn.005d67b0
mov eax, dword [esp + 0x50]
add esp, 0x28
mov ecx, dword [esp + 0x14]
movzx eax, word [eax + 0x2a]
mov edx, dword [esp + 0x24]
inc ecx
movzx edi, ax
add edx, 0x14
cwde
cmp ecx, eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x24], edx
mov eax, edi
mov dword [esp + 0x40], edi
jl 0x613c00
jmp 0x6169b6
test ecx, ecx
je 0x6169b6
push dword [esp + 0x44]
mov edx, ecx
mov ecx, dword [esp + 0x10]
call fcn.005fb0d0
mov edi, eax
add esp, 4
test edi, edi
jne 0x613dbb
push dword [esp + 0x44]
mov ecx, dword [esp + 0x14]
lea edx, [eax + 2]
push dword [esp + 0x24]
call fcn.005faf20
add esp, 8
test eax, eax
je 0x6169b6
test byte [eax + 0x24], 0x80
je 0x6169b6
mov edi, dword [eax + 8]
test edi, edi
je 0x6169b6
mov eax, dword [edi + 0x38]
and al, 3
cmp al, 2
je 0x613db3
mov edi, dword [edi + 0x14]
test edi, edi
jne 0x613da3
test edi, edi
je 0x6169b6
mov edx, dword [edi + 0x18]
mov ecx, 0xfff0bdc0
test edx, edx
je 0x613ddf
mov eax, dword [esp + 0xc]
xor ecx, ecx
mov eax, dword [eax + 0x10]
add eax, 0xc
cmp dword [eax], edx
je 0x613ddf
lea eax, [eax + 0x10]
inc ecx
cmp dword [eax], edx
jne 0x613dd7
mov eax, dword [ebx + 8]
or eax, dword [ebx + 0xc]
je 0x613df2
movzx eax, word [edi + 0x34]
mov edx, 6
jmp 0x613dfb
movzx eax, word [edi + 0x32]
mov edx, 3
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x14], eax
mov dword [ebx + 0x2c], edx
mov eax, dword [edi + 0xc]
mov dword [esp + 0x30], eax
mov eax, dword [ebx + 0x74]
test eax, eax
cmovne ebx, eax
mov eax, 1
shl eax, cl
mov edx, dword [ebx + 0x54]
test edx, eax
jne 0x613e35
bts edx, ecx
mov dword [ebx + 0x54], edx
cmp ecx, 1
jne 0x613e35
mov ecx, ebx
call fcn.006020d0
xor ebx, ebx
cmp word [esp + 0x14], bx
je 0x6169b6
mov eax, dword [edi + 4]
movzx eax, word [eax + ebx*2]
movsx edx, ax
test ax, ax
jns 0x613e55
xor eax, eax
jmp 0x613e62
mov eax, dword [esp + 0x30]
lea ecx, [edx + edx*4]
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*4]
push eax
push edx
push ebx
push str.iisX
push 1
push esi
call fcn.005d67b0
mov ecx, dword [esp + 0x70]
add esp, 0x18
mov eax, dword [ecx + 8]
or eax, dword [ecx + 0xc]
je 0x613eab
movzx eax, word [edi + 0x32]
xor ecx, ecx
cmp ebx, eax
mov eax, dword [edi + 0x20]
setl cl
push ecx
push dword [eax + ebx*4]
mov eax, dword [edi + 0x1c]
movzx eax, byte [eax + ebx]
push eax
push str.isiX
push 4
push esi
call fcn.005d67b0
add esp, 0x18
mov eax, dword [esp + 0x54]
mov ecx, dword [esi + 0x6c]
mov edx, dword [eax]
cmp dword [esi + 0x70], ecx
jg 0x613ecf
push 0
push edx
push 1
mov edx, 0x50
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x613f02
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x48]
mov dword [eax + ecx*4], 0x50
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x14]
inc ebx
movzx eax, cx
cmp ebx, eax
jl 0x613e42
jmp 0x6169b6
test ecx, ecx
je 0x6169b6
push dword [esp + 0x44]
mov edx, ecx
mov ecx, dword [esp + 0x10]
call fcn.005fad30
mov edi, eax
add esp, 4
test edi, edi
je 0x6169b6
mov edx, dword [edi + 0x48]
mov ecx, 0xfff0bdc0
test edx, edx
je 0x613f5f
mov eax, dword [esp + 0xc]
xor ecx, ecx
mov eax, dword [eax + 0x10]
add eax, 0xc
cmp dword [eax], edx
je 0x613f5f
lea eax, [eax + 0x10]
inc ecx
cmp dword [eax], edx
jne 0x613f57
mov eax, dword [esp + 0x54]
mov ebx, dword [esp + 0x10]
mov dword [eax], 5
mov eax, dword [ebx + 0x74]
test eax, eax
cmovne ebx, eax
mov eax, 1
shl eax, cl
mov edx, dword [ebx + 0x54]
test edx, eax
jne 0x613f95
bts edx, ecx
mov dword [ebx + 0x54], edx
cmp ecx, 1
jne 0x613f95
mov ecx, ebx
call fcn.006020d0
mov edi, dword [edi + 8]
xor ebx, ebx
test edi, edi
je 0x6169b6
mov dword [esp + 0x70], 0x80404c
mov dword [esp + 0x74], 0x804060
mov dword [esp + 0x78], 0x8039fc
nop word [eax + eax]
xor eax, eax
cmp dword [edi + 0x24], eax
setne al
push eax
mov eax, dword [edi + 0x38]
and eax, 3
push dword [esp + eax*4 + 0x74]
xor eax, eax
cmp byte [edi + 0x36], al
setne al
push eax
push dword [edi]
push ebx
push str.isisi
push 1
push esi
call fcn.005d67b0
mov edi, dword [edi + 0x14]
add esp, 0x20
inc ebx
test edi, edi
jne 0x613fc0
jmp 0x6169b6
mov eax, dword [esp + 0x54]
xor edi, edi
mov edx, dword [esp + 0xc]
mov dword [eax], 3
cmp dword [edx + 0x14], edi
jle 0x6169b6
xor ebx, ebx
mov ecx, dword [edx + 0x10]
mov eax, dword [ecx + ebx + 4]
test eax, eax
je 0x614053
mov eax, dword [eax + 4]
mov eax, dword [eax]
cmp byte [eax + 0xf], 0
je 0x614034
mov eax, 0x7911fc
jmp 0x61403a
mov eax, dword [eax + 0xa8]
push eax
push dword [ecx + ebx]
push edi
push 0x804038
push 1
push esi
call fcn.005d67b0
mov edx, dword [esp + 0x24]
add esp, 0x18
inc edi
add ebx, 0x10
cmp edi, dword [edx + 0x14]
jl 0x614017
jmp 0x6169b6
mov eax, dword [esp + 0x54]
xor ebx, ebx
mov edx, dword [esp + 0xc]
mov dword [eax], 2
mov edi, dword [edx + 0x19c]
test edi, edi
je 0x6169b6
nop
mov eax, dword [edi + 8]
push dword [eax]
push ebx
push 0x804034
push 1
push esi
call fcn.005d67b0
mov edi, dword [edi]
add esp, 0x14
inc ebx
test edi, edi
jne 0x614080
jmp 0x6169b6
mov eax, dword [esp + 0xc]
mov ebx, dword [eax + 0x18]
mov eax, dword [esp + 0x54]
shr ebx, 5
and ebx, 1
mov dword [eax], 6
mov eax, 0x87e788
mov dword [esp + 0x18], eax
mov edi, dword [eax]
test edi, edi
je 0x6140e2
push ebx
push 1
mov edx, edi
mov ecx, esi
call fcn.00612330
mov edi, dword [edi + 0x24]
add esp, 8
test edi, edi
jne 0x6140c8
mov eax, dword [esp + 0x18]
add eax, 4
mov dword [esp + 0x18], eax
cmp eax, 0x87e7e4
jl 0x6140c2
mov edx, dword [esp + 0xc]
mov edi, dword [edx + 0x18c]
test edi, edi
je 0x6169b6
mov edx, dword [edi + 8]
mov ecx, esi
push ebx
push 0
call fcn.00612330
mov edi, dword [edi]
add esp, 8
test edi, edi
jne 0x614102
jmp 0x6169b6
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0xc]
mov dword [eax], 1
mov edi, dword [edx + 0x170]
test edi, edi
je 0x6169b6
nop dword [eax]
mov eax, dword [edi + 8]
push dword [eax + 4]
push 0x79f63c
push 1
push esi
call fcn.005d67b0
mov edi, dword [edi]
add esp, 0x10
test edi, edi
jne 0x614140
jmp 0x6169b6
mov edi, 0x792958
push dword [edi]
push 0x79f63c
push 1
push esi
call fcn.005d67b0
add edi, 0x10
add esp, 0x10
cmp edi, str.first_value
jl 0x614166
jmp 0x6169b6
test ecx, ecx
je 0x6169b6
push dword [esp + 0x44]
mov edx, ecx
mov ecx, dword [esp + 0x10]
call fcn.005fad30
add esp, 4
mov dword [esp + 0x30], eax
test eax, eax
je 0x6169b6
mov edi, dword [eax + 0x10]
test edi, edi
je 0x6169b6
mov edx, dword [eax + 0x48]
mov ecx, 0xfff0bdc0
test edx, edx
je 0x6141dd
mov eax, dword [esp + 0xc]
xor ecx, ecx
mov eax, dword [eax + 0x10]
add eax, 0xc
cmp dword [eax], edx
je 0x6141dd
lea eax, [eax + 0x10]
inc ecx
cmp dword [eax], edx
jne 0x6141d5
mov eax, dword [esp + 0x54]
xor edx, edx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x14], edx
mov dword [eax], 8
mov eax, dword [ebx + 0x74]
test eax, eax
cmovne ebx, eax
mov eax, 1
mov dword [esp + 0x10], ebx
shl eax, cl
mov ebx, dword [ebx + 0x54]
test ebx, eax
jne 0x614223
mov eax, dword [esp + 0x10]
bts ebx, ecx
mov dword [eax + 0x54], ebx
cmp ecx, 1
jne 0x614223
mov ecx, eax
call fcn.006020d0
xor edx, edx
xor ebx, ebx
cmp dword [edi + 0x14], ebx
jle 0x6142e7
lea edx, [edi + 0x24]
mov dword [esp + 0x18], edx
movzx eax, byte [edi + 0x19]
add eax, 0xfffffff9
cmp eax, 3
ja case.default.0x614241
jmp dword [eax*4 + 0x616b0c]
mov ecx, str.SET_NULL
jmp 0x614269
mov ecx, str.SET_DEFAULT
jmp 0x614269
mov ecx, str.CASCADE
jmp 0x614269
mov ecx, str.RESTRICT
jmp 0x614269
mov ecx, str.NO_ACTION
movzx eax, byte [edi + 0x1a]
add eax, 0xfffffff9
cmp eax, 3
ja case.default.0x614275
jmp dword [eax*4 + 0x616b1c]
mov eax, str.SET_NULL
jmp 0x61429d
mov eax, str.SET_DEFAULT
jmp 0x61429d
mov eax, str.CASCADE
jmp 0x61429d
mov eax, str.RESTRICT
jmp 0x61429d
mov eax, str.NO_ACTION
push 0x79ba1c
push ecx
push eax
mov eax, dword [edx]
push dword [edx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 4]
push dword [eax + ecx*4]
push dword [edi + 8]
push ebx
push dword [esp + 0x30]
push str.iissssss
push 1
push esi
call fcn.005d67b0
mov edx, dword [esp + 0x44]
inc ebx
add edx, 8
add esp, 0x2c
mov dword [esp + 0x18], edx
cmp ebx, dword [edi + 0x14]
jl 0x614235
mov edx, dword [esp + 0x14]
mov edi, dword [edi + 4]
inc edx
mov dword [esp + 0x14], edx
test edi, edi
jne 0x614223
jmp 0x6169b6
mov edx, dword [esp + 0x54]
mov eax, dword [edx]
lea ecx, [eax + 1]
add eax, 5
mov dword [esp + 0x1c], eax
inc eax
mov dword [edx], eax
mov edx, dword [esp + 0xc]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + 0x10]
mov eax, dword [ecx + eax + 0xc]
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x6169b6
nop dword [eax]
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x10]
test eax, eax
je 0x614355
push dword [esp + 0x44]
xor edx, edx
mov ecx, ebx
push eax
call fcn.005faf20
mov edx, dword [esp + 0x14]
add esp, 8
xor ecx, ecx
jmp 0x61435a
mov eax, dword [ecx + 8]
mov ecx, dword [ecx]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x50], eax
test eax, eax
je 0x614ac8
cmp dword [eax + 0x10], 0
je 0x614ac8
mov ecx, dword [eax + 0x48]
mov edi, 0xfff0bdc0
test ecx, ecx
je 0x614398
mov eax, dword [edx + 0x10]
xor edi, edi
add eax, 0xc
cmp dword [eax], ecx
je 0x614398
nop dword [eax]
lea eax, [eax + 0x10]
inc edi
cmp dword [eax], ecx
jne 0x614390
mov eax, dword [ebx + 0x74]
mov edx, ebx
test eax, eax
mov ecx, edi
cmovne edx, eax
mov eax, 1
shl eax, cl
mov ebx, dword [edx + 0x54]
test ebx, eax
jne 0x6143c4
bts ebx, edi
mov dword [edx + 0x54], ebx
cmp edi, 1
jne 0x6143c4
mov ecx, edx
call fcn.006020d0
mov ebx, dword [esp + 0x50]
mov edx, edi
mov ecx, dword [esp + 0x10]
push dword [ebx]
push 0
push dword [ebx + 0x1c]
call fcn.005fa510
mov ecx, dword [esp + 0x28]
add esp, 0xc
movsx eax, word [ebx + 0x2a]
inc ecx
add eax, ecx
mov ecx, dword [esp + 0x54]
cmp eax, dword [ecx]
jle 0x6143f2
mov dword [ecx], eax
mov ecx, dword [esp + 0x10]
xor edx, edx
push 0x60
push ebx
push edi
call fcn.0060b770
mov edx, dword [esi + 0x6c]
add esp, 0xc
mov ebx, dword [ebx]
cmp dword [esi + 0x70], edx
jg 0x614429
push 0
push dword [esp + 0x30]
mov edx, 0x73
mov ecx, esi
push 0
call fcn.005d6700
add esp, 0xc
mov edx, eax
jmp 0x614460
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x2c]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x48]
mov dword [eax + ecx*4], 0x73
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push ebx
mov ecx, esi
call fcn.005d7190
mov ebx, dword [esp + 0x58]
add esp, 8
mov eax, 1
mov dword [esp + 0x38], eax
mov ecx, dword [ebx + 0x10]
mov dword [esp + 0x14], ecx
test ecx, ecx
je 0x6145b4
nop dword [eax]
mov edx, dword [ecx + 8]
push dword [esp + 0x44]
mov ecx, dword [esp + 0x10]
call fcn.005fad30
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x614594
push dword [ebx]
mov ecx, dword [esp + 0x14]
mov edx, edi
push 0
push dword [ebx + 0x1c]
mov dword [esp + 0x4c], 0
call fcn.005fa510
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x4c]
add esp, 0xc
mov edx, ebx
push 0
push eax
push dword [esp + 0x1c]
call fcn.006090e0
add esp, 0xc
test eax, eax
jne 0x6169b6
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x38]
test eax, eax
jne 0x61450c
mov ecx, dword [esp + 0x10]
push 0x60
push ebx
push edi
call fcn.0060b770
add esp, 0xc
jmp 0x614594
mov ecx, dword [esi + 0x6c]
mov ebx, dword [eax + 0x2c]
cmp dword [esi + 0x70], ecx
jg 0x61452b
push edi
push ebx
push edx
mov edx, 0x60
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x614552
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x60
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x10]
mov ecx, eax
mov edx, dword [esp + 0x40]
mov ebx, dword [eax + 8]
call fcn.006029a0
mov edx, eax
test edx, edx
je 0x614594
mov ecx, dword [ebx]
cmp byte [ecx + 0x51], 0
je 0x614582
push edx
mov edx, 0xfffffff7
call fcn.005d6f20
add esp, 4
jmp 0x614594
mov eax, dword [ebx + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x68]
mov byte [eax + ecx*4 - 0x13], 0xf7
mov dword [eax + ecx*4 - 4], edx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x38]
inc eax
mov dword [esp + 0x38], eax
mov ecx, dword [ecx + 4]
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x614490
mov ebx, dword [esp + 0x50]
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0x28], eax
jge 0x6145c0
mov dword [ecx + 0x28], eax
mov edx, dword [esi + 0x6c]
mov dword [esp + 0x64], edx
cmp dword [esi + 0x70], edx
jg 0x6145e7
push 0
push 0
push 0
mov edx, 0x25
mov ecx, esi
call fcn.005d6700
add esp, 0xc
mov dword [esp + 0x64], eax
jmp 0x61461a
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x25
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [ebx + 0x10]
mov dword [esp + 0x38], 1
mov dword [esp + 0x24], edi
test edi, edi
je 0x614a4a
push dword [esp + 0x44]
mov edx, dword [edi + 8]
mov ecx, dword [esp + 0x10]
call fcn.005fad30
xor edx, edx
mov dword [esp + 0x34], eax
add esp, 4
mov dword [esp + 0x40], 0
mov dword [esp + 0x14], edx
test eax, eax
je 0x614677
lea ecx, [esp + 0x14]
mov edx, eax
push ecx
lea ecx, [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x18]
push edi
call fcn.006090e0
mov edx, dword [esp + 0x20]
add esp, 0xc
mov eax, dword [esp + 0x10]
xor ebx, ebx
dec dword [eax + 0x38]
mov edi, dword [edi + 0x14]
mov eax, dword [eax + 0x38]
mov dword [esp + 0x28], eax
mov dword [esp + 0x3c], edi
test edi, edi
jle 0x614738
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
inc edi
add ecx, 0x24
mov dword [esp + 0x18], ecx
lea eax, [edx + ebx*4]
test edx, edx
jne 0x6146af
mov eax, ecx
mov eax, dword [eax]
mov ecx, esi
mov edx, dword [esp + 0x50]
push edi
push eax
push 0
call fcn.005f06a0
mov ecx, dword [esi + 0x6c]
add esp, 0xc
cmp dword [esi + 0x70], ecx
jg 0x6146e3
push 0
push dword [esp + 0x2c]
mov edx, 0x32
mov ecx, esi
push edi
call fcn.005d6700
add esp, 0xc
jmp 0x614712
mov edx, dword [esp + 0x28]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x32
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x24]
inc ebx
mov ecx, dword [esp + 0x18]
inc edi
mov edx, dword [esp + 0x14]
add ecx, 8
mov dword [esp + 0x18], ecx
mov eax, dword [eax + 0x14]
mov dword [esp + 0x3c], eax
cmp ebx, eax
jl 0x6146a6
mov edi, eax
mov edx, dword [esp + 0x40]
test edx, edx
je 0x61483f
mov ecx, dword [esp + 0xc]
call fcn.0060b920
mov edx, dword [esi + 0x6c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + 0x14]
cmp dword [esi + 0x70], edx
jg 0x614780
push dword [esp + 0x1c]
mov edx, 0x5b
mov ecx, esi
push ebx
mov ebx, dword [esp + 0x24]
lea eax, [ebx + 1]
push eax
call fcn.005d6700
add esp, 0xc
mov edx, eax
jmp 0x6147b8
mov edi, dword [esp + 0x3c]
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x1c]
inc esi
mov dword [eax + ecx*4 + 8], ebx
mov ebx, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x48]
mov dword [eax + ecx*4], 0x5b
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], 0
push edi
push dword [esp + 0x34]
mov ecx, esi
call fcn.005d7190
mov edx, dword [esi + 0x6c]
add esp, 8
mov edi, dword [esp + 0x38]
cmp dword [esi + 0x70], edx
jg 0x6147ec
push ebx
push dword [esp + 0x2c]
mov edx, 0x1e
mov ecx, esi
push edi
call fcn.005d6700
add esp, 0xc
mov edx, eax
jmp 0x614817
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x28]
mov dword [eax + ecx*4], 0x1e
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
mov ebx, dword [esp + 0x28]
cmp byte [eax + 0x51], 0
jne 0x6148f5
mov eax, dword [esi + 0x68]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x6148f5
cmp dword [esp + 0x30], 0
je 0x6148f1
mov ecx, dword [esi + 0x6c]
mov edi, dword [esp + 0x38]
lea edx, [ecx + 2]
cmp dword [esi + 0x70], ecx
jg 0x614872
mov eax, dword [esp + 0x1c]
mov ecx, esi
inc eax
push eax
push edx
push edi
mov edx, 0x1f
call fcn.005d6700
add esp, 0xc
jmp 0x61489e
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x1c]
inc edx
mov dword [eax + ecx*4], 0x1f
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x6c]
mov ebx, dword [esp + 0x28]
cmp dword [esi + 0x70], ecx
jg 0x6148c0
push 0
push ebx
push 0
mov edx, 0xb
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x6148f5
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x6148f5
mov ebx, dword [esp + 0x28]
mov edx, dword [esp + 0x50]
mov ecx, dword [esi + 0x6c]
mov eax, dword [esi + 0x70]
test byte [edx + 0x24], 0x80
jne 0x614939
cmp eax, ecx
jg 0x614924
mov eax, dword [esp + 0x2c]
mov edx, 0x7f
push 0
inc eax
mov ecx, esi
push eax
push 0
call fcn.005d6700
add esp, 0xc
jmp 0x61498c
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x7f
jmp 0x61496b
cmp eax, ecx
jg 0x614958
mov eax, dword [esp + 0x2c]
mov edx, 0x48
push 0
inc eax
mov ecx, esi
push eax
push 0
call fcn.005d6700
add esp, 0xc
jmp 0x61498c
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x48
mov edx, dword [esp + 0x2c]
mov dword [eax + ecx*4 + 0x10], 0
inc edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 4], 0
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x24]
dec eax
push eax
mov eax, dword [esp + 0x30]
add eax, 2
push dword [edi + 8]
push 0x80403c
push eax
push esi
call fcn.005d67b0
mov ecx, dword [esi + 0x6c]
add esp, 0x14
cmp dword [esi + 0x70], ecx
jg 0x6149d0
push 0
push 4
push dword [esp + 0x34]
mov edx, 0x50
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x614a03
mov edx, dword [esp + 0x2c]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x50
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 4
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0xc]
not ebx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x614a1d
push ebx
mov edx, esi
call fcn.005d6c70
add esp, 4
jmp 0x614a26
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x6c]
mov dword [ecx + ebx*4], eax
mov edx, dword [esp + 0x14]
test edx, edx
je 0x614a37
mov ecx, dword [esp + 0xc]
call fcn.005b5a40
mov edi, dword [edi + 4]
inc dword [esp + 0x38]
mov dword [esp + 0x24], edi
test edi, edi
jne 0x614631
mov ebx, dword [esp + 0x64]
mov ecx, dword [esi + 0x6c]
lea edx, [ebx + 1]
cmp dword [esi + 0x70], ecx
jg 0x614a6f
push 0
push edx
push 0
mov edx, 5
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x614a9e
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 5
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x51], 0
je 0x614ab0
mov eax, 0x87e714
jmp 0x614ac1
test ebx, ebx
lea eax, [edx - 1]
cmovns eax, ebx
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x5c]
mov dword [eax + 8], edx
test ecx, ecx
je 0x6169b6
mov edx, dword [esp + 0xc]
jmp 0x614330
test ecx, ecx
je 0x6169b6
push 0
mov edx, 1
call fcn.00612040
add esp, 4
test al, al
je 0x614b00
mov esi, 0x791f1c
mov edi, 0xc
jmp 0x614b0a
mov esi, 0x790dd4
mov edi, 4
mov ebx, dword [esp + 0xc]
mov edx, str.like
push 0
push 0
push 0
push 0
push 0
push 0x606d30
push esi
push 1
push 2
mov ecx, ebx
call fcn.00647970
add esp, 0x24
mov edx, str.like
mov ecx, ebx
push 0
push 0
push 0
push 0
push 0
push 0x606d30
push esi
push 1
push 3
call fcn.00647970
add esp, 0x24
mov edx, str.like
mov ecx, ebx
push 0
push 1
push 2
call fcn.00603150
add esp, 0xc
mov edx, str.like
mov ecx, ebx
or dword [eax + 4], edi
push 0
push 1
push 3
call fcn.00603150
add esp, 0xc
or dword [eax + 4], edi
jmp 0x6169b6
mov eax, dword [esp + 0x60]
or edx, 0xffffffff
mov ebx, dword [esp + 0x1c]
mov edi, 0x64
mov dword [esp + 0x30], edi
mov dword [esp + 0x5c], edi
movzx eax, byte [eax]
mov al, byte [eax + 0x792808]
mov byte [esp + 0x4f], al
mov eax, dword [esp + 0x2c]
cmp dword [eax], 0
mov eax, dword [esp + 0x54]
cmove ebx, edx
mov dword [esp + 0x1c], ebx
mov dword [eax], 6
test ecx, ecx
je 0x614be5
lea edx, [esp + 0x5c]
call fcn.005b9b60
mov edi, dword [esp + 0x5c]
mov eax, 0x64
test edi, edi
cmovle edi, eax
mov dword [esp + 0x30], edi
mov ecx, dword [esi + 0x6c]
lea edx, [edi - 1]
cmp dword [esi + 0x70], ecx
jg 0x614c06
push 0
push 1
push edx
mov edx, 0x45
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x614c39
mov ebx, dword [esp + 0x1c]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x45
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0xc]
xor ecx, ecx
mov dword [esp + 0x14], ecx
cmp dword [eax + 0x14], ecx
jle 0x615edd
nop dword [eax]
mov dword [esp + 0x24], 0
test ebx, ebx
js 0x614c64
cmp ecx, ebx
jne 0x615ecb
mov ecx, dword [esp + 0x10]
mov edx, ecx
mov ebx, dword [esp + 0x14]
mov eax, dword [ecx + 0x74]
test eax, eax
mov ecx, ebx
cmovne edx, eax
mov eax, 1
shl eax, cl
mov edi, dword [edx + 0x54]
test edi, eax
jne 0x614c98
bts edi, ebx
mov dword [edx + 0x54], edi
cmp ebx, 1
jne 0x614c98
mov ecx, edx
call fcn.006020d0
mov eax, dword [esp + 0xc]
mov ecx, ebx
shl ecx, 4
xor edx, edx
mov dword [esp + 0x58], ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx + 0xc]
mov dword [esp + 0x5c], eax
mov ebx, dword [eax + 0x10]
test ebx, ebx
je 0x614cfc
mov esi, edx
nop dword [eax + eax]
mov ecx, dword [ebx + 8]
lea eax, [edx + 1]
test byte [ecx + 0x24], 0x80
cmovne eax, edx
xor edi, edi
mov edx, eax
mov eax, dword [ecx + 8]
test eax, eax
je 0x614ce1
mov eax, dword [eax + 0x14]
inc edx
inc edi
test eax, eax
jne 0x614cd8
mov ebx, dword [ebx]
cmp edi, esi
cmovle edi, esi
mov esi, edi
test ebx, ebx
jne 0x614cc0
mov dword [esp + 0x24], esi
mov eax, edi
mov esi, dword [esp + 0x48]
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0xc]
lea eax, [edx*4 + 4]
push 0
push eax
call fcn.005b5d30
mov edi, eax
add esp, 8
test edi, edi
je 0x615ed9
mov ebx, dword [esp + 0x5c]
xor edx, edx
mov ebx, dword [ebx + 0x10]
test ebx, ebx
je 0x614d5b
nop dword [eax]
mov ecx, dword [ebx + 8]
test byte [ecx + 0x24], 0x80
jne 0x614d40
mov eax, dword [ecx + 0x1c]
inc edx
mov dword [edi + edx*4], eax
mov ecx, dword [ecx + 8]
test ecx, ecx
je 0x614d55
mov eax, dword [ecx + 0x2c]
inc edx
mov dword [edi + edx*4], eax
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x614d47
mov ebx, dword [ebx]
test ebx, ebx
jne 0x614d30
mov ebx, dword [esp + 0x54]
mov eax, dword [esp + 0x24]
mov dword [edi], edx
add eax, 8
mov ecx, dword [ebx]
cmp ecx, eax
cmovle ecx, eax
mov eax, dword [esp + 0x10]
mov dword [ebx], ecx
mov byte [eax + 0x13], 0
mov dword [eax + 0x1c], 0
mov ebx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ebx
jg 0x614da0
push 1
push edx
push 2
mov edx, 0x92
mov ecx, esi
call fcn.005d6700
add esp, 0xc
mov ebx, eax
jmp 0x614dd3
lea eax, [ebx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x48]
mov dword [eax + ecx*4], 0x92
mov dword [eax + ecx*4 + 4], 2
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 1
mov dword [eax + ecx*4 + 0x10], 0
push 0xfffffffffffffff1
push edi
mov edx, ebx
mov ecx, esi
call fcn.005d7190
mov edi, dword [esi + 0x6c]
add esp, 8
test edi, edi
jle 0x614dfe
mov eax, dword [esp + 0x14]
lea ecx, [edi + edi*4]
movzx edx, al
mov eax, dword [esi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
mov edi, dword [esi + 0x6c]
cmp dword [esi + 0x70], edi
jg 0x614e1c
push 0
push 0
push 2
mov edx, 0x32
mov ecx, esi
call fcn.005d6700
add esp, 0xc
mov edi, eax
jmp 0x614e4f
lea eax, [edi + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x32
mov dword [eax + ecx*4 + 4], 2
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x58]
mov eax, dword [edx + 0x10]
push dword [eax + ecx]
push str._in_database__s__n
push edx
call fcn.005b8350
mov edx, dword [esi + 0x6c]
add esp, 0xc
mov ebx, eax
cmp dword [esi + 0x70], edx
jg 0x614e8e
push 0
push 3
push 0
mov edx, 0x73
mov ecx, esi
call fcn.005d6700
add esp, 0xc
mov edx, eax
jmp 0x614ec5
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x48]
mov dword [eax + ecx*4], 0x73
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0xfffffffffffffff9
push ebx
mov ecx, esi
call fcn.005d7190
mov ecx, dword [esi + 0x6c]
add esp, 8
cmp dword [esi + 0x70], ecx
jg 0x614ef1
push 3
push 3
push 2
mov edx, 0x6e
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x614f24
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x6e
mov dword [eax + ecx*4 + 4], 2
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, esi
call fcn.006123c0
mov eax, dword [esi]
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x51], 0
je 0x614f3d
mov eax, 0x87e714
jmp 0x614f4e
test edi, edi
lea eax, [edx - 1]
cmovns eax, edi
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x5c]
mov edi, dword [eax + 0x10]
mov dword [esp + 0x58], edi
test edi, edi
je 0x615ebf
nop dword [eax]
nop dword [eax + eax]
mov edi, dword [edi + 8]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x6c], 0
mov dword [esp + 0x50], 0xffffffff
cmp dword [edi + 0x1c], 1
jl 0x615ead
test byte [edi + 0x24], 0x80
jne 0x614fa1
mov dword [esp + 0x38], 0
jmp 0x614fc4
mov ebx, dword [edi + 8]
mov dword [esp + 0x38], ebx
test ebx, ebx
je 0x614fc4
nop dword [eax]
mov eax, dword [ebx + 0x38]
and al, 3
cmp al, 2
je 0x614fc0
mov ebx, dword [ebx + 0x14]
test ebx, ebx
jne 0x614fb0
mov dword [esp + 0x38], ebx
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x68]
push eax
lea eax, [esp + 0x44]
mov edx, edi
push eax
push 0
push 1
push 0
push 0x60
call fcn.00610030
mov ecx, dword [esi + 0x6c]
add esp, 0x18
cmp dword [esi + 0x70], ecx
jg 0x615003
push 0
push 7
push 0
mov edx, 0x45
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x615036
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x45
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 7
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ebx, dword [edi + 8]
test ebx, ebx
je 0x61509b
mov edi, 8
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x615060
push 0
push edi
push 0
mov edx, 0x45
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x61508f
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x45
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ebx, dword [ebx + 0x14]
inc edi
test ebx, ebx
jne 0x615042
mov edi, dword [esp + 0x2c]
mov ecx, dword [esi + 0x6c]
mov ebx, dword [esp + 0x40]
cmp dword [esi + 0x70], ecx
jg 0x6150bd
push 0
push 0
push ebx
mov edx, 0x25
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x6150ec
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x25
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esi + 0x6c]
mov dword [esp + 0x18], edx
cmp dword [esi + 0x70], edx
jg 0x615113
push 0
push 1
push 7
mov edx, 0x52
mov ecx, esi
call fcn.005d6700
add esp, 0xc
mov dword [esp + 0x18], eax
jmp 0x615146
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x52
mov dword [eax + ecx*4 + 4], 7
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
cmp byte [esp + 0x4f], 0x71
je 0x6151b5
movsx edx, word [edi + 0x2c]
mov ecx, dword [esi + 0x6c]
dec edx
cmp dword [esi + 0x70], ecx
jg 0x61516f
push 3
push edx
push ebx
mov edx, 0x59
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x61519e
mov edi, dword [esp + 0x2c]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x59
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x6c]
test eax, eax
jle 0x6151b5
lea ecx, [eax + eax*4]
mov edx, 0x80
mov eax, dword [esi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x5c], ecx
cmp ax, word [edi + 0x2a]
jge 0x61534c
xor ebx, ebx
mov dword [esp + 0x64], ebx
nop dword [eax]
movsx eax, word [edi + 0x28]
cmp ecx, eax
je 0x615334
mov eax, dword [edi + 4]
cmp byte [ebx + eax + 0xc], 0
je 0x615334
push 3
push ecx
push dword [esp + 0x48]
mov edx, edi
mov ecx, esi
call fcn.005f06a0
add esp, 0xc
or edx, 0xffffffff
mov ecx, esi
call fcn.005d7220
cmp byte [eax], 0x59
jne 0x615223
mov eax, dword [esi + 0x6c]
test eax, eax
jle 0x615223
lea ecx, [eax + eax*4]
mov edx, 0x80
mov eax, dword [esi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
mov edi, dword [esi + 0x6c]
cmp dword [esi + 0x70], edi
jg 0x615244
push 0
push 0
push 3
mov edx, 0x33
mov ecx, esi
call fcn.005d6700
add esp, 0xc
mov edi, eax
jmp 0x615277
lea eax, [edi + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x33
mov dword [eax + ecx*4 + 4], 3
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 4]
push dword [ebx + eax]
push dword [ecx]
push str.NULL_value_in__s._s
push dword [esp + 0x18]
call fcn.005b8350
mov edx, dword [esi + 0x6c]
add esp, 0x10
mov ebx, eax
cmp dword [esi + 0x70], edx
jg 0x6152b7
push 0
push 3
push 0
mov edx, 0x73
mov ecx, esi
call fcn.005d6700
add esp, 0xc
mov edx, eax
jmp 0x6152ee
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x48]
mov dword [eax + ecx*4], 0x73
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0xfffffffffffffff9
push ebx
mov ecx, esi
call fcn.005d7190
add esp, 8
mov ecx, esi
call fcn.006123c0
mov eax, dword [esi]
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x51], 0
je 0x615314
mov eax, 0x87e714
jmp 0x615325
test edi, edi
lea eax, [edx - 1]
cmovns eax, edi
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x64]
mov edi, dword [esp + 0x2c]
mov dword [eax + 8], edx
movsx eax, word [edi + 0x2a]
inc ecx
add ebx, 0x14
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x64], ebx
cmp ecx, eax
jl 0x6151d0
mov edx, dword [edi + 0x18]
test edx, edx
je 0x6154e6
mov ebx, dword [esp + 0xc]
mov eax, dword [ebx + 0x20]
and eax, 0x200
or eax, 0
jne 0x6154e6
push eax
mov ecx, ebx
call fcn.005ec9c0
add esp, 4
mov edx, eax
cmp byte [ebx + 0x51], 0
mov dword [esp + 0x3c], edx
jne 0x6154db
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x38]
dec ebx
mov dword [esp + 0x5c], ebx
lea ecx, [ebx - 1]
mov dword [eax + 0x38], ecx
mov eax, dword [esp + 0x40]
mov dword [esp + 0x64], ecx
inc eax
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x34], eax
mov edi, dword [edx]
dec edi
test edi, edi
jle 0x6153e6
mov esi, dword [esp + 0x5c]
lea ebx, [edi*4 + 1]
add ebx, edi
lea ebx, [edx + ebx*4]
push 0
push esi
push dword [ebx]
push ecx
call fcn.005f3480
mov ecx, dword [esp + 0x20]
lea ebx, [ebx - 0x14]
dec edi
add esp, 0x10
test edi, edi
jg 0x6153c0
mov esi, dword [esp + 0x48]
mov ebx, dword [esp + 0x5c]
mov edx, dword [esp + 0x3c]
mov edi, dword [esp + 0x64]
push 0x10
push edi
push dword [edx + 4]
push ecx
call fcn.005f2f50
mov ecx, dword [esi + 0xc]
add esp, 0x10
not ebx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x615413
push ebx
mov edx, esi
call fcn.005d6c70
add esp, 4
jmp 0x61541c
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x6c]
mov dword [ecx + ebx*4], eax
mov eax, dword [esp + 0x10]
mov dword [eax + 0x34], 0
mov eax, dword [esp + 0x2c]
push dword [eax]
push str.CHECK_constraint_failed_in__s
push dword [esp + 0x14]
call fcn.005b8350
mov edx, dword [esi + 0x6c]
add esp, 0xc
mov ebx, eax
cmp dword [esi + 0x70], edx
jg 0x615461
push 0
push 3
push 0
mov edx, 0x73
mov ecx, esi
call fcn.005d6700
add esp, 0xc
mov edx, eax
jmp 0x615498
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x48]
mov dword [eax + ecx*4], 0x73
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0xfffffffffffffff9
push ebx
mov ecx, esi
call fcn.005d7190
add esp, 8
mov ecx, esi
call fcn.006123c0
mov ecx, dword [esi + 0xc]
not edi
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x6154c6
push edi
mov edx, esi
call fcn.005d6c70
add esp, 4
jmp 0x6154cf
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x6c]
mov dword [ecx + edi*4], eax
mov ebx, dword [esp + 0xc]
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x6154e6
mov ecx, ebx
call fcn.005ed500
mov bl, byte [esp + 0x4f]
cmp bl, 0x71
je 0x615bd8
mov ebx, dword [edi + 8]
mov dword [esp + 0x44], ebx
test ebx, ebx
je 0x615bd4
mov eax, dword [esp + 0x68]
mov ecx, 8
sub ecx, eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x38]
nop dword [eax]
dec dword [eax + 0x38]
mov edi, dword [eax + 0x38]
cmp ecx, ebx
je 0x615bc1
push dword [esp + 0x50]
lea ecx, [esp + 0x74]
mov edx, ebx
push dword [esp + 0x70]
push ecx
push 0
push 0
push dword [esp + 0x54]
mov ecx, eax
call fcn.00605120
mov edx, dword [esp + 0x74]
add esp, 0x18
mov ecx, dword [esi + 0x6c]
add edx, dword [esp + 0x28]
mov dword [esp + 0x50], eax
mov dword [esp + 0x6c], ebx
cmp dword [esi + 0x70], ecx
jg 0x61557d
push 0
push 1
push edx
mov edx, 0x52
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x6155b0
mov ebx, dword [esp + 0x44]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x52
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esi + 0x6c]
movzx ebx, word [ebx + 0x34]
mov dword [esp + 0x3c], edx
cmp dword [esi + 0x70], edx
jg 0x6155e0
push dword [esp + 0x50]
mov edx, 0x1e
mov ecx, esi
push edi
push dword [esp + 0x30]
call fcn.005d6700
mov edx, eax
add esp, 0xc
mov dword [esp + 0x3c], edx
jmp 0x615613
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov edx, dword [esp + 0x28]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x50]
mov dword [eax + ecx*4 + 0xc], edx
mov edx, dword [esp + 0x3c]
mov dword [eax + ecx*4], 0x1e
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x51], 0
jne 0x61562a
mov eax, dword [esi + 0x68]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], ebx
mov edx, dword [esi + 0x6c]
cmp dword [esi + 0x70], edx
jg 0x61564b
push 0
push 3
push 0
mov edx, 0x73
mov ecx, esi
call fcn.005d6700
add esp, 0xc
mov edx, eax
jmp 0x61567e
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x73
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push str.row
mov ecx, esi
call fcn.005d7190
mov ecx, dword [esi + 0x6c]
add esp, 8
cmp dword [esi + 0x70], ecx
jg 0x6156ae
push 3
push 3
push 7
mov edx, 0x6e
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x6156e1
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x6e
mov dword [eax + ecx*4 + 4], 7
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esi + 0x6c]
cmp dword [esi + 0x70], edx
jg 0x615702
push 0
push 4
push 0
mov edx, 0x73
mov ecx, esi
call fcn.005d6700
add esp, 0xc
mov edx, eax
jmp 0x615735
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x73
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 4
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push str._missing_from_index
mov ecx, esi
call fcn.005d7190
mov ecx, dword [esi + 0x6c]
add esp, 8
cmp dword [esi + 0x70], ecx
jg 0x615765
push 3
push 3
push 4
mov edx, 0x6e
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x615798
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x6e
mov dword [eax + ecx*4 + 4], 4
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
mov ebx, dword [esp + 0x44]
mov edx, dword [esi + 0x6c]
mov dword [esp + 0x24], edx
mov edi, dword [ebx]
cmp dword [esi + 0x70], edx
jg 0x6157c7
push 0
push 4
push 0
mov edx, 0x73
mov ecx, esi
call fcn.005d6700
mov edx, eax
add esp, 0xc
mov dword [esp + 0x24], edx
jmp 0x6157fe
mov ebx, dword [esp + 0x44]
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x73
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 4
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push edi
mov ecx, esi
call fcn.005d7190
mov ecx, dword [esi + 0x6c]
add esp, 8
cmp dword [esi + 0x70], ecx
jg 0x61582a
push 3
push 3
push 4
mov edx, 0x6e
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x61585d
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x6e
mov dword [eax + ecx*4 + 4], 4
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, esi
call fcn.006123c0
mov ecx, dword [esi]
mov edx, dword [esi + 0x6c]
mov dword [esp + 0x64], eax
cmp byte [ecx + 0x51], 0
je 0x61587a
mov ecx, 0x87e714
jmp 0x61588f
mov ecx, dword [esp + 0x3c]
lea eax, [edx - 1]
test ecx, ecx
cmovns eax, ecx
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
lea ecx, [eax + ecx*4]
mov dword [ecx + 8], edx
cmp byte [ebx + 0x36], 0
je 0x615b60
mov eax, dword [esp + 0x10]
xor ecx, ecx
xor ebx, ebx
dec dword [eax + 0x38]
mov edx, dword [eax + 0x38]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x3c], edx
cmp cx, word [eax + 0x32]
jae 0x615940
mov edi, dword [esp + 0x50]
jmp 0x6158c6
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 4]
movsx eax, word [eax + ebx*2]
test eax, eax
js 0x6158e2
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 4]
cmp byte [eax + ecx*4 + 0xc], 0
jne 0x615932
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x615903
push 0
push edx
push edi
mov edx, 0x32
mov ecx, esi
call fcn.005d6700
mov edx, dword [esp + 0x48]
add esp, 0xc
jmp 0x615932
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x48]
mov dword [eax + ecx*4], 0x32
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x44]
inc ebx
inc edi
movzx eax, word [eax + 0x32]
cmp ebx, eax
jl 0x6158c2
mov edi, dword [esi + 0x6c]
cmp dword [esi + 0x70], edi
jg 0x615963
push 0
push 0
push dword [esp + 0x30]
mov edx, 5
mov ecx, esi
call fcn.005d6700
add esp, 0xc
mov edi, eax
jmp 0x615996
mov edx, dword [esp + 0x28]
lea eax, [edi + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 5
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x6c]
mov ebx, dword [esp + 0x3c]
cmp dword [esi + 0x70], ecx
jg 0x6159b8
push 0
push ebx
push 0
mov edx, 0xb
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x6159e7
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x51], 0
je 0x6159f9
mov eax, 0x87e714
jmp 0x615a0a
test edi, edi
lea eax, [edx - 1]
cmovns eax, edi
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x44]
mov edx, dword [esi + 0x6c]
movzx edi, word [eax + 0x32]
cmp dword [esi + 0x70], edx
jg 0x615a39
push dword [esp + 0x50]
mov edx, 0x27
mov ecx, esi
push ebx
push dword [esp + 0x30]
call fcn.005d6700
add esp, 0xc
mov edx, eax
jmp 0x615a6c
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x28]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x50]
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 0x48]
mov dword [eax + ecx*4], 0x27
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x51], 0
jne 0x615a83
mov eax, dword [esi + 0x68]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edi
mov edx, dword [esi + 0x6c]
cmp dword [esi + 0x70], edx
jg 0x615aa4
push 0
push 3
push 0
mov edx, 0x73
mov ecx, esi
call fcn.005d6700
add esp, 0xc
mov edx, eax
jmp 0x615ad7
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x73
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push str.non_unique_entry_in_index
mov ecx, esi
call fcn.005d7190
mov ecx, dword [esi + 0x6c]
add esp, 8
mov edx, dword [esp + 0x24]
cmp dword [esi + 0x70], ecx
jg 0x615b0a
push 0
push edx
push 0
mov edx, 0xb
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x615b39
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0xc]
not ebx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x615b53
push ebx
mov edx, esi
call fcn.005d6c70
add esp, 4
jmp 0x615b5c
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x6c]
mov dword [ecx + ebx*4], eax
mov ebx, dword [esp + 0x44]
mov ecx, dword [esp + 0x64]
mov edx, dword [esi + 0x6c]
test ecx, ecx
jns 0x615b6e
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x51], 0
je 0x615b7d
mov eax, 0x87e714
jmp 0x615b86
mov eax, dword [esi + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov edi, dword [esp + 0x70]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x10]
test edi, edi
je 0x615bbd
mov edx, dword [eax + 8]
not edi
mov ecx, dword [edx + 0xc]
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x615bb0
push edi
call fcn.005d6c70
add esp, 4
jmp 0x615bb9
mov ecx, dword [ecx + 0x40]
mov eax, dword [edx + 0x6c]
mov dword [ecx + edi*4], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x38]
mov ebx, dword [ebx + 0x14]
inc dword [esp + 0x28]
mov dword [esp + 0x44], ebx
test ebx, ebx
jne 0x615520
mov bl, byte [esp + 0x4f]
mov ecx, dword [esi + 0x6c]
mov edi, dword [esp + 0x18]
cmp dword [esi + 0x70], ecx
jg 0x615bfc
push 0
push edi
push dword [esp + 0x48]
mov edx, 5
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x615c2b
mov edx, dword [esp + 0x40]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 5
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
lea ecx, [edi - 1]
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x51], 0
je 0x615c40
mov eax, 0x87e71c
jmp 0x615c53
test ecx, ecx
mov eax, edx
cmovns eax, edi
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
lea eax, [eax + ecx*4]
add eax, 0xfffffff4
mov dword [eax], edx
cmp bl, 0x71
je 0x615ead
mov edx, dword [esi + 0x6c]
cmp dword [esi + 0x70], edx
jg 0x615c7f
push 0
push 2
push 0
mov edx, 0x73
mov ecx, esi
call fcn.005d6700
add esp, 0xc
mov edx, eax
jmp 0x615cb2
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x73
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 2
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push str.wrong__of_entries_in_index
mov ecx, esi
call fcn.005d7190
mov eax, dword [esp + 0x34]
add esp, 8
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x615ead
mov ecx, dword [esp + 0x38]
mov eax, 8
mov dword [esp + 0x24], eax
nop
cmp ecx, ebx
je 0x615e9d
mov edx, dword [esp + 0x68]
mov ecx, dword [esi + 0x6c]
add edx, 0xfffffff8
add edx, eax
cmp dword [esi + 0x70], ecx
jg 0x615d0f
push 0
push 3
push edx
mov edx, 0x5c
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x615d3e
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x5c
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esi + 0x6c]
mov edx, dword [esp + 0x24]
cmp dword [esi + 0x70], edi
jg 0x615d62
push 3
push 0
push edx
mov edx, 0x35
mov ecx, esi
call fcn.005d6700
add esp, 0xc
mov edi, eax
jmp 0x615d91
lea eax, [edi + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x35
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esi + 0x6c]
test edx, edx
jle 0x615dab
mov eax, dword [esi + 0x68]
lea ecx, [edx + edx*4]
mov edx, 0x90
mov word [eax + ecx*4 - 0x12], dx
mov edx, dword [esi + 0x6c]
mov eax, dword [ebx]
mov dword [esp + 0x6c], eax
cmp dword [esi + 0x70], edx
jg 0x615dcf
push 0
push 4
push 0
mov edx, 0x73
mov ecx, esi
call fcn.005d6700
add esp, 0xc
mov edx, eax
jmp 0x615e06
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x48]
mov dword [eax + ecx*4], 0x73
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 4
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push dword [esp + 0x70]
mov ecx, esi
call fcn.005d7190
mov ecx, dword [esi + 0x6c]
add esp, 8
cmp dword [esi + 0x70], ecx
jg 0x615e35
push 3
push 2
push 4
mov edx, 0x6e
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x615e68
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x6e
mov dword [eax + ecx*4 + 4], 4
mov dword [eax + ecx*4 + 8], 2
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, esi
call fcn.006123c0
mov edx, dword [esi + 0x6c]
test edi, edi
mov eax, dword [esi]
lea ecx, [edx - 1]
cmovns ecx, edi
cmp byte [eax + 0x51], 0
je 0x615e89
mov eax, 0x87e714
jmp 0x615e92
mov eax, dword [esi + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x38]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x24]
mov ebx, dword [ebx + 0x14]
inc eax
mov dword [esp + 0x24], eax
test ebx, ebx
jne 0x615ce0
mov edi, dword [esp + 0x58]
mov edi, dword [edi]
mov dword [esp + 0x58], edi
test edi, edi
jne 0x614f70
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0xc]
inc ecx
mov dword [esp + 0x14], ecx
cmp ecx, dword [eax + 0x14]
jl 0x614c50
mov edi, dword [esp + 0x30]
push ecx
push 0x7959a4
mov edx, 7
mov ecx, esi
call fcn.005d6e10
mov edx, eax
add esp, 8
test edx, edx
je 0x615f23
mov eax, 1
mov byte [edx + 0x29], 0xff
sub eax, edi
mov dword [edx + 0x38], 0x804098
mov dword [edx + 8], eax
mov ecx, str.unknown_error
mov eax, dword [str.database_disk_image_is_malformed]
test eax, eax
mov byte [edx + 0x65], 0xff
cmovne ecx, eax
mov dword [edx + 0x74], ecx
mov eax, dword [esi]
mov ecx, 0x87e714
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x51], 0
jne 0x615f36
mov ecx, dword [esi + 0x68]
lea eax, [edx - 2]
mov dword [ecx + 0xc], eax
jmp 0x6169b6
test ecx, ecx
jne 0x615f71
mov ebx, dword [esp + 0x10]
mov ecx, ebx
call fcn.00617d90
test eax, eax
jne 0x6169b6
mov eax, dword [ebx]
mov ecx, esi
movzx edx, byte [eax + 0x4e]
mov edx, dword [edx*8 + 0x790cc8]
call fcn.00612190
jmp 0x6169b6
mov edx, dword [esp + 0xc]
test byte [edx + 0x18], 0x40
jne 0x6169b6
mov esi, dword [str.UTF8]
mov edi, 0x790cc8
test esi, esi
je 0x616009
mov edx, ecx
sub esi, ecx
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x616020
test ecx, ecx
jne 0x616032
mov cl, byte [edi + 4]
mov ebx, 2
movzx eax, cl
test cl, cl
mov ecx, dword [esp + 0xc]
mov edx, 0x792254
cmovne ebx, eax
push 0
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + 0xc]
mov byte [eax + 0x4d], bl
mov byte [ecx + 0x4e], bl
add ecx, 0x194
call fcn.005ba5d0
add esp, 4
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x615ff5
movzx eax, bl
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*4]
add ecx, 0xffffffec
mov edx, dword [esp + 0xc]
mov dword [edx + 8], ecx
cmp dword [edi], 0
jne 0x6169b6
mov ecx, dword [esp + 0x20]
push ecx
push str.unsupported_encoding:__s
push dword [esp + 0x18]
call fcn.005b9110
add esp, 0xc
jmp 0x6169b6
movzx eax, byte [eax + 0x792808]
movzx ecx, byte [ecx + 0x792808]
sub ecx, eax
jne 0x616038
inc edx
jmp 0x615f96
mov esi, dword [edi + 8]
add edi, 8
mov ecx, dword [esp + 0x20]
jmp 0x615f8a
mov eax, dword [esi + 0x9c]
mov edx, dword [esp + 0x1c]
bts eax, edx
mov edi, dword [ebx + 8]
mov dword [esi + 0x9c], eax
cmp edx, 1
je 0x616084
mov eax, dword [esi]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx + 4]
cmp byte [eax + 9], 0
je 0x616084
mov eax, dword [esi + 0xa0]
bts eax, edx
mov dword [esi + 0xa0], eax
cmp dword [esp + 0x20], 0
je 0x6160d6
test byte [ebx + 5], 8
jne 0x6160d6
push ecx
push 0x7923c8
mov edx, 2
mov ecx, esi
call fcn.005d6e10
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0x38]
mov esi, eax
mov dword [esp + 0x38], 0
mov eax, dword [esp + 0x24]
add esp, 8
mov dword [esi + 4], eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], edi
call fcn.005b9b60
mov ecx, dword [esp + 0x30]
mov dword [esi + 0x20], ecx
jmp 0x6169b6
push ecx
push 0x7930bc
mov edx, 3
mov ecx, esi
call fcn.005d6e10
mov ecx, dword [esp + 0x24]
add esp, 8
mov dword [eax + 4], ecx
mov dword [eax + 0x18], ecx
mov dword [eax + 0x20], edi
and dword [esi + 0x98], 0xffffffdf
jmp 0x6169b6
mov eax, dword [esp + 0x54]
xor edi, edi
mov dword [eax], 1
cmp edi, 1
ja 0x61611e
mov ebx, dword [edi*4 + 0x794118]
jmp 0x616120
xor ebx, ebx
inc edi
test ebx, ebx
je 0x6160f8
mov edx, dword [esi + 0x6c]
cmp dword [esi + 0x70], edx
jg 0x616146
push 0
push 1
push 0
mov edx, 0x73
mov ecx, esi
call fcn.005d6700
add esp, 0xc
mov edx, eax
jmp 0x61617d
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x48]
mov dword [eax + ecx*4], 0x73
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push ebx
mov ecx, esi
call fcn.005d7190
mov ecx, dword [esi + 0x6c]
add esp, 8
cmp dword [esi + 0x70], ecx
jg 0x6161ac
push 0
push 1
push 1
mov edx, 0x50
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x616110
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x50
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x616110
mov eax, dword [esp + 0x2c]
mov ebx, 0xa
cmp dword [eax], 0
cmovne ebx, dword [esp + 0x1c]
xor edx, edx
mov dword [esp + 0x14], ebx
test ecx, ecx
je 0x6162af
mov ebx, str.full
mov edx, ecx
sub ebx, ecx
nop dword [eax]
movzx eax, byte [edx]
movzx edi, byte [edx + ebx]
cmp eax, edi
jne 0x616227
test eax, eax
jne 0x616239
lea edx, [eax + 1]
jmp 0x6162ab
movzx ecx, byte [eax + 0x792808]
movzx eax, byte [edi + 0x792808]
sub ecx, eax
jne 0x61623c
inc edx
jmp 0x616210
mov ebx, dword [esp + 0x20]
mov edx, str.restart
sub ebx, edx
movzx eax, byte [edx + ebx]
movzx edi, byte [edx]
cmp eax, edi
jne 0x61625b
test eax, eax
jne 0x61626d
lea edx, [eax + 2]
jmp 0x6162ab
movzx ecx, byte [eax + 0x792808]
movzx eax, byte [edi + 0x792808]
sub ecx, eax
jne 0x616270
inc edx
jmp 0x616247
mov ebx, dword [esp + 0x20]
mov edx, str.truncate
sub ebx, edx
nop dword [eax + eax]
movzx eax, byte [edx + ebx]
movzx edi, byte [edx]
cmp eax, edi
jne 0x616294
test eax, eax
jne 0x6162a6
lea edx, [eax + 3]
jmp 0x6162ab
movzx ecx, byte [eax + 0x792808]
movzx eax, byte [edi + 0x792808]
sub ecx, eax
jne 0x6162a9
inc edx
jmp 0x616280
xor edx, edx
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x54]
mov dword [eax], 3
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x6162d6
push 1
push edx
push ebx
mov edx, 6
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x616301
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 6
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 1
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x616312
push 0
push 3
jmp 0x616a4d
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x6169a7
test ecx, ecx
je 0x616360
lea edx, [esp + 0x30]
mov dword [esp + 0x30], 0
call fcn.005b9b60
push dword [esp + 0x30]
push dword [esp + 0x10]
call fcn.00648210
add esp, 8
mov eax, dword [esp + 0xc]
cmp dword [eax + 0xf8], 0x648120
jne 0x6134d6
mov eax, dword [eax + 0xfc]
jmp 0x616a1a
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0xc]
test eax, eax
je 0x616398
push eax
call dword [0x857d20]
mov edx, dword [esp + 0x10]
add esp, 4
cmp byte [edx + 0x59], 0
jne 0x6163a9
mov ecx, edx
call fcn.005c8310
mov edx, dword [esp + 0xc]
xor esi, esi
cmp dword [edx + 0x14], esi
jle 0x6163e1
xor edi, edi
mov eax, dword [edx + 0x10]
mov eax, dword [eax + edi + 4]
test eax, eax
je 0x6163d8
mov eax, dword [eax + 4]
mov eax, dword [eax]
mov eax, dword [eax + 0xd4]
push dword [eax + 0x2c]
call dword [0x857d64]
mov edx, dword [esp + 0x10]
add esp, 4
inc esi
add edi, 0x10
cmp esi, dword [edx + 0x14]
jl 0x6163b2
cmp byte [edx + 0x59], 0
jne 0x6163f2
mov ecx, edx
call fcn.005c8360
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0xc]
test eax, eax
je 0x6169b6
push eax
call dword [0x857d28]
add esp, 4
jmp 0x6169b6
test ecx, ecx
je 0x616434
lea edx, [esp + 0x30]
mov dword [esp + 0x30], 0
call fcn.005b9b60
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x18], ecx
test cl, 2
je 0x6169b6
jmp 0x61643c
mov dword [esp + 0x18], 0xfffe
cmp dword [esp + 0x44], 0
mov ebx, dword [esp + 0x10]
mov edx, dword [ebx + 0x28]
mov dword [esp + 0x14], edx
lea eax, [edx + 1]
mov dword [ebx + 0x28], eax
je 0x61645e
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], eax
jmp 0x616478
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x14]
dec eax
mov dword [esp + 0x24], eax
cmp dword [esp + 0x1c], eax
jg 0x616732
mov eax, dword [esp + 0x1c]
mov ecx, eax
mov edi, 1
mov eax, dword [esp + 0x28]
rol edi, cl
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x58], edi
nop dword [eax]
cmp dword [esp + 0x1c], 1
je 0x616717
mov eax, dword [ebx + 0x74]
mov ecx, ebx
test eax, eax
cmovne ecx, eax
mov eax, dword [ecx + 0x54]
test eax, edi
jne 0x6164b6
mov ebx, dword [esp + 0x1c]
bts eax, ebx
mov dword [ecx + 0x54], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx + 0xc]
mov ebx, dword [eax + 0x10]
test ebx, ebx
je 0x61670b
mov edi, dword [ebx + 8]
test dword [edi + 0x24], 0x100
je 0x6166fd
mov ax, word [edi + 0x2e]
add ax, 0x2e
movzx ecx, ax
mov eax, dword [edi + 8]
mov dword [esp + 0x70], ecx
test eax, eax
je 0x616507
test byte [eax + 0x38], 0x80
je 0x61658c
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x6164f6
test cx, cx
je 0x61658c
mov ecx, dword [esp + 0x10]
push 0x60
push edi
push dword [esp + 0x24]
call fcn.0060b770
mov eax, dword [esp + 0x7c]
add esp, 0xc
mov ecx, dword [esi + 0x6c]
movsx edx, ax
mov eax, dword [esp + 0x18]
and eax, 1
add eax, 2
add eax, ecx
mov dword [esp + 0x70], eax
cmp dword [esi + 0x70], ecx
jg 0x616559
push edx
push eax
push dword [esp + 0x1c]
mov edx, 0x22
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x61658c
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x14]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x70]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x48]
mov dword [eax + ecx*4], 0x22
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0xc]
push dword [edi]
mov ecx, dword [esp + 0x2c]
mov eax, dword [edx + 0x10]
push dword [eax + ecx]
push str.ANALYZE___w_.__w_
push edx
call fcn.005b8350
add esp, 0x10
mov edi, eax
test byte [esp + 0x18], 1
mov dword [esp + 0x30], edi
je 0x616694
mov edx, dword [esp + 0x10]
mov cl, byte [edx + 0x13]
test cl, cl
jne 0x6165d0
mov eax, dword [esp + 0x54]
inc dword [eax]
mov edi, dword [eax]
jmp 0x6165df
dec cl
movzx eax, cl
mov byte [edx + 0x13], cl
mov edi, dword [edx + eax*4 + 0x98]
mov edx, dword [esi + 0x6c]
cmp dword [esi + 0x70], edx
jg 0x6165ff
push 0
push edi
push 0
mov edx, 0x73
mov ecx, esi
call fcn.005d6700
add esp, 0xc
mov edx, eax
jmp 0x616632
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x48]
mov dword [eax + ecx*4], 0x73
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0xfffffffffffffff9
push dword [esp + 0x34]
mov ecx, esi
call fcn.005d7190
mov ecx, dword [esi + 0x6c]
add esp, 8
cmp dword [esi + 0x70], ecx
jg 0x616663
push 0
push 1
push edi
mov edx, 0x50
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x6166f9
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x50
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x6166f9
mov edx, dword [esi + 0x6c]
cmp dword [esi + 0x70], edx
jg 0x6166b5
push 0
push 0
push 0
mov edx, 0x8c
mov ecx, esi
call fcn.005d6700
add esp, 0xc
mov edx, eax
jmp 0x6166ec
mov edi, dword [esp + 0x30]
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x8c
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0xfffffffffffffff9
push edi
mov ecx, esi
call fcn.005d7190
add esp, 8
mov edx, dword [esp + 0x14]
mov ebx, dword [ebx]
test ebx, ebx
jne 0x6164d0
mov edi, dword [esp + 0x58]
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
inc dword [esp + 0x1c]
add eax, 0x10
rol edi, 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x58], edi
cmp dword [esp + 0x1c], ecx
jle 0x616490
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x616754
push 0
push 0
push 0
mov edx, 0x9e
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x6169b6
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x9e
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x6169b6
test ecx, ecx
je 0x6167ad
lea edx, [esp + 0x70]
call fcn.005b9a50
test eax, eax
jne 0x6167ad
push dword [esp + 0x74]
push dword [esp + 0x74]
call fcn.005b54d0
add esp, 8
call fcn.006462a0
test eax, eax
je 0x6167c8
or edi, 0xffffffff
or ebx, edi
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], ebx
jmp 0x616a23
mov eax, dword [0x87e940]
test eax, eax
je 0x6167e0
push eax
call dword [0x857d20]
mov eax, dword [0x87e940]
add esp, 4
mov edi, dword [0x87e948]
mov ebx, dword [0x87e94c]
test eax, eax
je 0x6167fa
push eax
call dword [0x857d28]
add esp, 4
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], ebx
jmp 0x616a23
test ecx, ecx
je 0x61688a
lea edx, [esp + 0x70]
call fcn.005b9a50
test eax, eax
jne 0x61688a
call fcn.006462a0
test eax, eax
je 0x61682c
or ebx, 0xffffffff
or edi, ebx
jmp 0x61685e
mov eax, dword [0x87e940]
test eax, eax
je 0x616844
push eax
call dword [0x857d20]
mov eax, dword [0x87e940]
add esp, 4
mov ebx, dword [0x87e950]
mov edi, dword [0x87e954]
test eax, eax
je 0x61685e
push eax
call dword [0x857d28]
add esp, 4
mov edx, dword [esp + 0x74]
test edx, edx
jl 0x61688a
mov ecx, dword [esp + 0x70]
jg 0x616870
test ecx, ecx
je 0x61688a
mov eax, ebx
or eax, edi
je 0x616880
cmp edi, edx
jl 0x61688a
jg 0x616880
cmp ebx, ecx
jbe 0x61688a
push edx
push ecx
call fcn.005b5610
add esp, 8
call fcn.006462a0
test eax, eax
je 0x6168a5
or edi, 0xffffffff
or ebx, edi
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], ebx
jmp 0x616a23
mov eax, dword [0x87e940]
test eax, eax
je 0x6168bd
push eax
call dword [0x857d20]
mov eax, dword [0x87e940]
add esp, 4
mov edi, dword [0x87e950]
mov ebx, dword [0x87e954]
jmp 0x6167ec
test ecx, ecx
je 0x616908
lea edx, [esp + 0x70]
call fcn.005b9a50
test eax, eax
jne 0x616908
cmp dword [esp + 0x74], eax
jl 0x616908
mov eax, dword [esp + 0x70]
jg 0x6168ef
test eax, eax
jb 0x616908
mov ecx, 8
and eax, 0x7fffffff
cmp eax, ecx
cmova eax, ecx
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x98], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x98]
jmp 0x616a1a
test ecx, ecx
je 0x616947
lea edx, [esp + 0x70]
call fcn.005b9a50
test eax, eax
jne 0x616947
cmp dword [esp + 0x74], eax
jl 0x616947
mov eax, dword [esp + 0x70]
jg 0x616938
test eax, eax
jb 0x616947
mov ecx, dword [esp + 0xc]
and eax, 0x7fffffff
mov dword [ecx + 0x1d4], eax
mov eax, dword [esp + 0xc]
push 0xfffffffffffffff2
mov eax, dword [eax + 0x1d4]
cdq
mov dword [esp + 0x74], eax
lea eax, [esp + 0x74]
push eax
push ecx
push 1
mov dword [esp + 0x84], edx
mov edx, 0x46
push ecx
mov ecx, esi
call fcn.005d6a50
mov ecx, dword [esi + 0x6c]
add esp, 0x14
cmp dword [esi + 0x70], ecx
jle 0x616a49
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 0x10], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4], 0x50
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0xc]
call fcn.005b5a40
mov eax, dword [esp + 0x20]
test eax, eax
je 0x6169d6
mov ecx, dword [esp + 0xc]
mov edx, eax
call fcn.005b5a40
mov ecx, dword [esp + 0x94]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.006d0965
mov esp, ebp
pop ebp
ret
test ecx, ecx
je 0x616a10
lea edx, [esp + 0x30]
mov dword [esp + 0x30], 0
call fcn.005b9b60
push dword [esp + 0x30]
push dword [esp + 0x10]
call fcn.006478a0
add esp, 8
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x1d8]
cdq
mov dword [esp + 0x74], edx
mov dword [esp + 0x70], eax
lea eax, [esp + 0x70]
push 0xfffffffffffffff2
push eax
push ecx
push 1
push ecx
mov edx, 0x46
mov ecx, esi
call fcn.005d6a50
add esp, 0x14
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x616983
push 0
push 1
push 1
mov edx, 0x50
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x6169b6