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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push ebx
push esi
push edi
mov edi, ecx
mov ebx, edx
mov eax, dword [edi]
mov ecx, eax
mov dword [ebp - 8], eax
call fcn.004a1540
mov esi, eax
mov dword [ebp - 0x10], esi
mov dword [edi + 0xc], esi
test esi, esi
je 0x4c56d1
lea eax, [ebp - 0x20]
mov dword [edi + 0x48], 2
push eax
push dword [ebp + 8]
mov edx, ebx
mov ecx, edi
call fcn.004b6800
add esp, 8
mov dword [ebp - 0x18], eax
test eax, eax
js 0x4c56d1
mov edx, dword [ebp - 8]
mov ecx, eax
shl ecx, 4
add ecx, dword [edx + 8]
mov dword [ebp - 0x14], ecx
cmp eax, 1
jne 0x4c2fb3
mov ecx, edi
call fcn.004baa20
test eax, eax
jne 0x4c56d1
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x4c56d1
mov ebx, dword [eax + 4]
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x4c2fd1
xor ecx, ecx
mov dword [ebp - 0xc], ecx
jmp 0x4c303f
cmp byte [edx + 0x1e], 0
lea ecx, [ebx + 1]
je 0x4c2fe1
xor ecx, ecx
mov dword [ebp - 0xc], ecx
jmp 0x4c303f
cmp byte [edx + 0xe2], 0
je 0x4c3070
movzx eax, word [edx + 0xe0]
cmp ecx, eax
jg 0x4c3070
mov eax, dword [edx + 0xec]
mov dword [ebp - 0xc], eax
test eax, eax
je 0x4c3070
mov ecx, eax
mov eax, dword [ecx]
mov dword [edx + 0xec], eax
mov eax, dword [edx + 0xe4]
inc eax
mov dword [edx + 0xe4], eax
cmp eax, dword [edx + 0xe8]
jle 0x4c302b
mov dword [edx + 0xe8], eax
push ebx
push dword [ebp - 0x20]
push ecx
call fcn.004e1370
mov ecx, dword [ebp - 0xc]
add esp, 0xc
mov byte [ecx + ebx], 0
call fcn.004937a0
mov ebx, dword [ebp - 0xc]
test ebx, ebx
je 0x4c56d1
cmp dword [ebp + 0x10], 0
je 0x4c308b
push dword [ebp + 0xc]
push 0x52a46c
push dword [ebp - 8]
call fcn.00492bb0
add esp, 0xc
mov dword [ebp - 4], eax
jmp 0x4c3160
push ecx
call fcn.00491390
mov ecx, eax
add esp, 4
mov dword [ebp - 0xc], ecx
test ecx, ecx
jne 0x4c302b
mov eax, dword [ebp - 8]
mov byte [eax + 0x1e], 1
jmp 0x4c303f
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x4c3159
mov ebx, dword [eax + 4]
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x4c30b4
xor ecx, ecx
mov dword [ebp - 4], ecx
call fcn.004937a0
mov ebx, dword [ebp - 0xc]
jmp 0x4c3160
mov edx, dword [ebp - 8]
lea ecx, [ebx + 1]
cmp byte [edx + 0x1e], 0
je 0x4c30d2
xor ecx, ecx
mov dword [ebp - 4], ecx
call fcn.004937a0
mov ebx, dword [ebp - 0xc]
jmp 0x4c3160
cmp byte [edx + 0xe2], 0
je 0x4c3136
movzx eax, word [edx + 0xe0]
cmp ecx, eax
jg 0x4c3136
mov eax, dword [edx + 0xec]
mov dword [ebp - 4], eax
test eax, eax
je 0x4c3136
mov ecx, eax
mov eax, dword [ecx]
mov dword [edx + 0xec], eax
mov eax, dword [edx + 0xe4]
inc eax
mov dword [edx + 0xe4], eax
cmp eax, dword [edx + 0xe8]
jle 0x4c3118
mov dword [edx + 0xe8], eax
push ebx
push dword [ebp - 0x20]
push ecx
call fcn.004e1370
mov ecx, dword [ebp - 4]
add esp, 0xc
mov byte [ecx + ebx], 0
call fcn.004937a0
mov ebx, dword [ebp - 0xc]
jmp 0x4c3160
push ecx
call fcn.00491390
mov ecx, eax
add esp, 4
mov dword [ebp - 4], ecx
test ecx, ecx
jne 0x4c3118
mov eax, dword [ebp - 8]
mov byte [eax + 0x1e], 1
call fcn.004937a0
mov ebx, dword [ebp - 0xc]
jmp 0x4c3160
mov dword [ebp - 4], 0
mov eax, dword [ebp + 8]
cmp dword [eax + 4], 0
jbe 0x4c3173
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
mov dword [ebp - 0x1c], eax
jmp 0x4c317a
mov dword [ebp - 0x1c], 0
mov bl, byte [ebx]
mov edx, str.default_cache_size
test bl, bl
je 0x4c31ba
mov al, bl
mov ebx, dword [ebp - 0xc]
mov ecx, ebx
mov dword [ebp - 0xc], ebx
sub ecx, edx
mov dword [ebp - 0x20], ecx
mov esi, ecx
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x5265d8]
cmp al, byte [ecx + 0x5265d8]
jne 0x4c31b7
mov al, byte [edx + esi + 1]
inc edx
mov bl, al
test al, al
jne 0x4c3196
mov esi, dword [ebp - 0x10]
movzx eax, bl
movzx ecx, byte [eax + 0x5265d8]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x5265d8]
sub ecx, eax
jne 0x4c349c
mov ecx, dword [edi]
cmp byte [ecx + 0x7c], 0
jne 0x4c31f8
lea edx, [edi + 8]
call fcn.004c5d70
test eax, eax
je 0x4c31f8
inc dword [edi + 0x40]
mov esi, dword [ebp - 8]
mov dword [edi + 4], eax
jmp 0x4c565b
mov ebx, dword [ebp - 0x18]
mov edx, 1
mov eax, dword [esi + 0x78]
mov ecx, ebx
shl edx, cl
test edx, eax
jne 0x4c3210
or eax, edx
mov dword [esi + 0x78], eax
mov eax, dword [ebp - 4]
test eax, eax
jne 0x4c32a0
lea edx, [eax + 1]
mov ecx, esi
call fcn.004a2290
mov eax, dword [esi]
cmp byte [eax + 0x1e], 0
jne 0x4c3243
mov ecx, dword [esi + 0x28]
mov edx, str.cache_size
push 0
push 1
push 0xffffffffffffffff
call fcn.004a0a60
add esp, 0xc
add dword [edi + 0x48], 2
mov edx, 8
push 0x52630c
mov ecx, esi
call fcn.004a1850
mov edi, eax
add esp, 4
cmp dword [esi + 0xc], edi
jle 0x4c326c
mov ecx, dword [esi + 0x14]
lea edx, [edi + edi*4]
mov dword [ecx + edx*4 + 4], ebx
lea eax, [edi + 1]
cmp dword [esi + 0xc], eax
jle 0x4c327e
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x14]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [ebp - 4]
add edi, 6
cmp dword [esi + 0xc], edi
jle 0x4c55b9
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4 + 4], 0x7d0
jmp 0x4c55b9
push eax
call fcn.004ed3b7
mov ebx, eax
add esp, 4
test ebx, ebx
jns 0x4c32b1
neg ebx
mov edx, dword [ebp - 0x18]
mov ecx, edi
call fcn.004bab00
mov eax, dword [edi + 0x150]
mov ecx, dword [ebp - 0x18]
bts eax, ecx
mov dword [edi + 0x150], eax
mov edi, dword [esi + 0xc]
mov eax, edi
cmp dword [esi + 0x10], edi
jg 0x4c32e5
mov ecx, esi
call fcn.004a1610
test eax, eax
jne 0x4c331a
mov eax, dword [esi + 0xc]
inc eax
lea ecx, [edi + edi*4]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x14]
mov word [eax + ecx*4], 7
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0x4c332d
mov ecx, esi
call fcn.004a1610
test eax, eax
jne 0x4c3364
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [ebp - 0x18]
mov word [eax + ecx*4], 0x23
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 2
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0x4c337e
mov ecx, esi
call fcn.004a1610
test eax, eax
je 0x4c337e
mov edi, 1
jmp 0x4c33b6
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov word [eax + ecx*4], 0x70
mov byte [eax + ecx*4 + 3], 0
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 byte [esi + 0x6e], 0
mov ecx, dword [esi + 0xc]
mov dword [ebp - 0x20], ecx
cmp dword [esi + 0x10], ecx
jg 0x4c33cf
mov ecx, esi
call fcn.004a1610
test eax, eax
jne 0x4c3406
mov ecx, dword [ebp - 0x20]
mov eax, dword [esi + 0x14]
lea ecx, [ecx + ecx*4]
inc dword [esi + 0xc]
mov word [eax + ecx*4], 7
mov byte [eax + ecx*4 + 3], 0
lea ecx, [eax + ecx*4]
mov eax, ebx
neg eax
mov dword [ecx + 8], 1
mov dword [ecx + 4], eax
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov byte [esi + 0x6e], 0
mov edx, dword [esi + 0xc]
cmp edx, edi
jle 0x4c3417
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4 + 8], edx
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0x4c342a
mov ecx, esi
call fcn.004a1610
test eax, eax
jne 0x4c3461
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [ebp - 0x18]
mov word [eax + ecx*4], 0x24
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 1
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0xc]
mov dword [eax + 0x4c], ebx
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0x4c]
mov eax, dword [edx + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax]
mov eax, dword [eax + 0xa8]
mov dword [eax + 0x10], ecx
mov eax, dword [eax + 0x28]
test eax, eax
je 0x4c55b6
push ecx
push eax
call dword [0x541f34]
add esp, 8
jmp 0x4c55b6
mov ecx, dword [ebp - 0xc]
mov edx, str.page_size
mov bl, byte [ecx]
test bl, bl
je 0x4c34d7
sub ecx, edx
mov al, bl
mov dword [ebp - 0x20], ecx
mov esi, ecx
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x5265d8]
cmp al, byte [ecx + 0x5265d8]
jne 0x4c34d4
mov al, byte [edx + esi + 1]
inc edx
mov bl, al
test al, al
jne 0x4c34b3
mov esi, dword [ebp - 0x10]
movzx eax, bl
movzx ecx, byte [eax + 0x5265d8]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x5265d8]
sub ecx, eax
jne 0x4c3552
mov eax, dword [ebp - 0x14]
mov ebx, dword [eax + 4]
mov eax, dword [ebp - 4]
test eax, eax
jne 0x4c3524
test ebx, ebx
je 0x4c350a
mov eax, dword [ebx + 4]
movzx eax, word [eax + 0x12]
cdq
jmp 0x4c350e
xor eax, eax
xor edx, edx
push edx
push eax
mov edx, str.page_size
mov ecx, edi
call fcn.004c2c60
add esp, 8
jmp 0x4c55b6
push eax
call fcn.004ed3b7
mov edi, dword [ebp - 8]
mov edx, eax
push ecx
mov ecx, ebx
mov dword [edi + 0x24], eax
call fcn.0049bc30
mov ebx, dword [ebp - 4]
add esp, 8
cmp eax, 7
jne 0x4c55b9
mov byte [edi + 0x1e], 1
jmp 0x4c55b9
mov ecx, dword [ebp - 0xc]
mov edx, str.max_page_count
mov bl, byte [ecx]
test bl, bl
je 0x4c3594
sub ecx, edx
mov al, bl
mov dword [ebp - 0x20], ecx
mov esi, ecx
lea esp, [esp]
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x5265d8]
cmp al, byte [ecx + 0x5265d8]
jne 0x4c3591
mov al, byte [edx + esi + 1]
inc edx
mov bl, al
test al, al
jne 0x4c3570
mov esi, dword [ebp - 0x10]
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x5265d8]
movzx eax, bl
movzx eax, byte [eax + 0x5265d8]
sub eax, ecx
jne 0x4c35f9
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 4]
mov ebx, dword [eax + 4]
xor eax, eax
test ecx, ecx
je 0x4c35c4
push ecx
call fcn.004ed3b7
add esp, 4
test ebx, ebx
je 0x4c35e2
mov ecx, dword [ebx + 4]
mov ecx, dword [ecx]
lea ebx, [ecx + 0x80]
test eax, eax
jle 0x4c35d9
mov dword [ebx], eax
xor edx, edx
call fcn.004990c0
mov eax, dword [ebx]
cdq
mov ecx, edi
push edx
push eax
mov edx, str.max_page_count
call fcn.004c2c60
add esp, 8
jmp 0x4c55b6
mov ecx, dword [ebp - 0xc]
mov edx, str.page_count
mov bl, byte [ecx]
test bl, bl
je 0x4c3634
sub ecx, edx
mov al, bl
mov dword [ebp - 0x20], ecx
mov esi, ecx
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x5265d8]
cmp al, byte [ecx + 0x5265d8]
jne 0x4c3631
mov al, byte [edx + esi + 1]
inc edx
mov bl, al
test al, al
jne 0x4c3610
mov esi, dword [ebp - 0x10]
movzx eax, bl
movzx ecx, byte [eax + 0x5265d8]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x5265d8]
sub ecx, eax
jne 0x4c373a
mov ecx, dword [edi]
cmp byte [ecx + 0x7c], 0
jne 0x4c3672
lea edx, [edi + 8]
call fcn.004c5d70
test eax, eax
je 0x4c3672
inc dword [edi + 0x40]
mov esi, dword [ebp - 8]
mov dword [edi + 4], eax
jmp 0x4c565b
mov edx, dword [ebp - 0x18]
mov ecx, edi
call fcn.004bab00
mov ebx, dword [edi + 0x48]
inc ebx
mov dword [edi + 0x48], ebx
mov edi, dword [esi + 0xc]
mov eax, edi
cmp dword [esi + 0x10], edi
jg 0x4c369b
mov ecx, esi
call fcn.004a1610
test eax, eax
jne 0x4c36cf
mov eax, dword [esi + 0xc]
mov edx, dword [ebp - 0x18]
lea ecx, [edi + edi*4]
inc eax
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x14]
mov word [eax + ecx*4], 0x83
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0x4c36e2
mov ecx, esi
call fcn.004a1610
test eax, eax
jne 0x4c3716
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov word [eax + ecx*4], 0x10
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov edx, 1
mov ecx, esi
call fcn.004a2290
mov eax, dword [esi]
cmp byte [eax + 0x1e], 0
jne 0x4c55b6
push 0
mov edx, str.page_count
jmp 0x4c55a7
mov ecx, dword [ebp - 0xc]
mov edx, str.locking_mode
mov bl, byte [ecx]
test bl, bl
je 0x4c3775
sub ecx, edx
mov al, bl
mov dword [ebp - 0x20], ecx
mov esi, ecx
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x5265d8]
cmp al, byte [ecx + 0x5265d8]
jne 0x4c3772
mov al, byte [edx + esi + 1]
inc edx
mov bl, al
test al, al
jne 0x4c3751
mov esi, dword [ebp - 0x10]
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x5265d8]
movzx eax, bl
movzx eax, byte [eax + 0x5265d8]
sub eax, ecx
jne 0x4c399b
mov edi, dword [ebp - 4]
test edi, edi
je 0x4c383d
mov bl, byte [edi]
mov edx, str.exclusive
test bl, bl
je 0x4c37d4
mov al, bl
sub edi, edx
jmp 0x4c37b0
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x5265d8]
cmp al, byte [ecx + 0x5265d8]
jne 0x4c37d1
mov al, byte [edx + edi + 1]
inc edx
mov bl, al
test al, al
jne 0x4c37b0
mov edi, dword [ebp - 4]
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x5265d8]
movzx eax, bl
movzx eax, byte [eax + 0x5265d8]
sub eax, ecx
jne 0x4c37f1
lea ecx, [eax + 1]
jmp 0x4c3840
mov bl, byte [edi]
mov edx, str.normal
test bl, bl
je 0x4c3821
mov al, bl
sub edi, edx
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x5265d8]
cmp al, byte [ecx + 0x5265d8]
jne 0x4c3821
mov al, byte [edx + edi + 1]
inc edx
mov bl, al
test al, al
jne 0x4c3800
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x5265d8]
movzx eax, bl
movzx eax, byte [eax + 0x5265d8]
sub eax, ecx
jne 0x4c383d
xor ecx, ecx
jmp 0x4c3840
or ecx, 0xffffffff
mov eax, dword [ebp + 8]
cmp dword [eax + 4], 0
jne 0x4c388b
cmp ecx, 0xffffffff
jne 0x4c3856
mov eax, dword [ebp - 8]
mov al, byte [eax + 0x1f]
jmp 0x4c38a8
mov ebx, dword [ebp - 8]
mov edx, 2
cmp dword [ebx + 4], edx
jle 0x4c3888
lea edi, [edx + 0x1e]
test ecx, ecx
js 0x4c387f
mov eax, dword [ebx + 8]
mov eax, dword [edi + eax + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax]
cmp byte [eax + 0xb], 0
jne 0x4c387f
mov byte [eax + 4], cl
inc edx
add edi, 0x10
cmp edx, dword [ebx + 4]
jl 0x4c3866
mov byte [ebx + 0x1f], cl
mov eax, dword [ebp - 0x14]
mov dl, cl
mov eax, dword [eax + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax]
test ecx, ecx
js 0x4c38a5
cmp byte [eax + 0xb], 0
jne 0x4c38a5
mov byte [eax + 4], dl
mov al, byte [eax + 4]
mov ebx, str.exclusive
cmp al, 1
je 0x4c38b6
mov ebx, str.normal
mov edx, 1
mov ecx, esi
call fcn.004a2290
mov eax, dword [esi]
cmp byte [eax + 0x1e], 0
jne 0x4c38e0
mov ecx, dword [esi + 0x28]
mov edx, str.locking_mode
push 0
push 1
push 0xffffffffffffffff
call fcn.004a0a60
add esp, 0xc
mov edi, dword [esi + 0xc]
mov eax, edi
cmp dword [esi + 0x10], edi
jg 0x4c38ff
mov ecx, esi
call fcn.004a1610
test eax, eax
je 0x4c38fc
mov edi, 1
jmp 0x4c3938
mov eax, dword [esi + 0xc]
inc eax
lea ecx, [edi + edi*4]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x14]
mov word [eax + ecx*4], 0x5e
mov byte [eax + ecx*4 + 3], 0
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
mov byte [esi + 0x6e], 0
push 0
push ebx
mov edx, edi
mov ecx, esi
call fcn.004a1c70
add esp, 8
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0x4c395e
mov ecx, esi
call fcn.004a1610
test eax, eax
jne 0x4c55b6
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov word [eax + ecx*4], 0x10
mov byte [eax + ecx*4 + 3], 0
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
mov byte [esi + 0x6e], 0
jmp 0x4c55b6
mov ecx, dword [ebp - 0xc]
mov edx, str.journal_mode
mov bl, byte [ecx]
test bl, bl
je 0x4c39d6
sub ecx, edx
mov al, bl
mov dword [ebp - 0x20], ecx
mov esi, ecx
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x5265d8]
cmp al, byte [ecx + 0x5265d8]
jne 0x4c39d3
mov al, byte [edx + esi + 1]
inc edx
mov bl, al
test al, al
jne 0x4c39b2
mov esi, dword [ebp - 0x10]
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x5265d8]
movzx eax, bl
movzx eax, byte [eax + 0x5265d8]
sub eax, ecx
jne 0x4c3c03
mov ecx, dword [ebp - 4]
test ecx, ecx
jne 0x4c3a01
or ebx, 0xffffffff
jmp 0x4c3a86
cmp byte [ecx], 0
mov eax, ecx
je 0x4c3a0e
inc eax
cmp byte [eax], 0
jne 0x4c3a08
mov esi, dword [ebp - 4]
mov ebx, 4
sub eax, esi
mov dword [ebp - 0x18], ebx
and eax, 0x3fffffff
mov dword [ebp - 0x20], eax
mov ebx, dword [ebx*4 + 0x525468]
mov edx, eax
mov edi, esi
test eax, eax
je 0x4c3a53
mov al, byte [edi]
dec edx
test al, al
je 0x4c3a54
movzx ecx, byte [ebx]
movzx eax, al
mov al, byte [eax + 0x5265d8]
cmp al, byte [ecx + 0x5265d8]
jne 0x4c3a54
inc edi
inc ebx
test edx, edx
jg 0x4c3a32
dec edx
test edx, edx
js 0x4c3a80
movzx eax, byte [ebx]
mov ebx, dword [ebp - 0x18]
movzx ecx, byte [eax + 0x5265d8]
movzx eax, byte [edi]
movzx eax, byte [eax + 0x5265d8]
sub eax, ecx
je 0x4c3a83
mov eax, dword [ebp - 0x20]
sub ebx, 1
mov dword [ebp - 0x18], ebx
jns 0x4c3a23
jmp 0x4c3a83
mov ebx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
cmp dword [eax + 4], 0
jne 0x4c3b26
mov eax, dword [ebp - 8]
cmp ebx, 0xffffffff
jne 0x4c3aa3
mov al, byte [eax + 0x20]
jmp 0x4c3b6b
mov ecx, 1
mov dword [ebp - 0x1c], ecx
cmp dword [eax + 4], ecx
jle 0x4c3b23
mov edx, 0x10
mov dword [ebp - 0x18], edx
jmp 0x4c3ac0
mov eax, dword [eax + 8]
mov eax, dword [edx + eax + 4]
test eax, eax
je 0x4c3b0e
mov eax, dword [eax + 4]
mov edi, dword [eax]
test ebx, ebx
js 0x4c3b0e
cmp byte [edi + 0xf], 0
jne 0x4c3b0e
mov eax, dword [edi + 0x3c]
mov dword [ebp - 0x24], eax
cmp dword [eax], 0
je 0x4c3b0b
cmp dword [edi + 0x48], 0
jne 0x4c3b0e
cmp dword [edi + 0x4c], 0
jne 0x4c3b0e
push eax
mov eax, dword [eax]
mov eax, dword [eax + 4]
call eax
mov eax, dword [ebp - 0x24]
add esp, 4
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
mov dword [eax], 0
mov byte [edi + 5], bl
mov eax, dword [ebp - 8]
inc ecx
add edx, 0x10
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], edx
cmp ecx, dword [eax + 4]
jl 0x4c3ac0
mov esi, dword [ebp - 0x10]
mov byte [eax + 0x20], bl
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 4]
mov eax, dword [eax + 4]
mov edi, dword [eax]
test ebx, ebx
js 0x4c3b68
cmp byte [edi + 0xf], 0
jne 0x4c3b68
mov eax, dword [edi + 0x3c]
mov dword [ebp - 0x24], eax
mov ecx, dword [eax]
test ecx, ecx
je 0x4c3b65
cmp dword [edi + 0x48], 0
jne 0x4c3b68
cmp dword [edi + 0x4c], 0
jne 0x4c3b68
push eax
mov eax, dword [ecx + 4]
call eax
mov eax, dword [ebp - 0x24]
add esp, 4
mov dword [eax], 0
mov byte [edi + 5], bl
mov al, byte [edi + 5]
mov edx, 1
movzx edi, al
mov ecx, esi
call fcn.004a2290
mov eax, dword [esi]
cmp byte [eax + 0x1e], 0
jne 0x4c3b98
mov ecx, dword [esi + 0x28]
mov edx, str.journal_mode
push 0
push 1
push 0xffffffffffffffff
call fcn.004a0a60
add esp, 0xc
mov ebx, dword [edi*4 + 0x525468]
mov edi, dword [esi + 0xc]
mov eax, edi
cmp dword [esi + 0x10], edi
jg 0x4c3bc3
mov ecx, esi
call fcn.004a1610
test eax, eax
je 0x4c3bc0
mov edi, 1
push 0xfffffffffffffffe
jmp 0x4c393a
mov eax, dword [esi + 0xc]
inc eax
lea ecx, [edi + edi*4]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x14]
push 0xfffffffffffffffe
mov word [eax + ecx*4], 0x5e
mov byte [eax + ecx*4 + 3], 0
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
mov byte [esi + 0x6e], 0
jmp 0x4c393a
mov ecx, dword [ebp - 0xc]
mov edx, str.journal_size_limit
mov bl, byte [ecx]
test bl, bl
je 0x4c3c44
sub ecx, edx
mov al, bl
mov dword [ebp - 0x24], ecx
mov esi, ecx
lea ebx, [ebx]
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x5265d8]
cmp al, byte [ecx + 0x5265d8]
jne 0x4c3c41
mov al, byte [edx + esi + 1]
inc edx
mov bl, al
test al, al
jne 0x4c3c20
mov esi, dword [ebp - 0x10]
movzx eax, bl
movzx ecx, byte [eax + 0x5265d8]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x5265d8]
sub ecx, eax
jne 0x4c3cda
mov eax, dword [ebp - 0x14]
or ecx, 0xffffffff
cmp dword [ebp - 4], 0
mov dword [ebp - 0x24], ecx
mov eax, dword [eax + 4]
mov eax, dword [eax + 4]
mov ebx, dword [eax]
mov eax, 0xfffffffe
mov dword [ebp - 0x28], eax
je 0x4c3ca2
mov ecx, dword [ebp - 4]
lea edx, [ebp - 0x28]
call fcn.00493d80
mov ecx, dword [ebp - 0x24]
cmp ecx, 0xffffffff
jg 0x4c3c9f
jl 0x4c3c98
mov eax, dword [ebp - 0x28]
cmp eax, 0xffffffff
jae 0x4c3ca2
or eax, 0xffffffff
or ecx, eax
jmp 0x4c3ca2
mov eax, dword [ebp - 0x28]
cmp ecx, 0xffffffff
jl 0x4c3cba
jg 0x4c3cae
cmp eax, 0xffffffff
jb 0x4c3cba
mov dword [ebx + 0xa0], eax
mov dword [ebx + 0xa4], ecx
push dword [ebx + 0xa4]
mov edx, str.journal_size_limit
mov ecx, edi
push dword [ebx + 0xa0]
call fcn.004c2c60
add esp, 8
jmp 0x4c55b6
mov ecx, dword [ebp - 0xc]
mov edx, str.cache_size
mov bl, byte [ecx]
test bl, bl
je 0x4c3d15
sub ecx, edx
mov al, bl
mov dword [ebp - 0x24], ecx
mov esi, ecx
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x5265d8]
cmp al, byte [ecx + 0x5265d8]
jne 0x4c3d12
mov al, byte [edx + esi + 1]
inc edx
mov bl, al
test al, al
jne 0x4c3cf1
mov esi, dword [ebp - 0x10]
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x5265d8]
movzx eax, bl
movzx eax, byte [eax + 0x5265d8]
sub eax, ecx
jne 0x4c3dc5
mov ecx, dword [edi]
cmp byte [ecx + 0x7c], al
jne 0x4c3d52
lea edx, [edi + 8]
call fcn.004c5d70
test eax, eax
je 0x4c3d52
inc dword [edi + 0x40]
mov esi, dword [ebp - 8]
mov dword [edi + 4], eax
jmp 0x4c565b
mov ebx, dword [ebp - 4]
test ebx, ebx
jne 0x4c3d79
mov eax, dword [ebp - 0x14]
mov ecx, edi
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x4c]
cdq
push edx
push eax
mov edx, str.cache_size
call fcn.004c2c60
add esp, 8
jmp 0x4c55b9
push ebx
call fcn.004ed3b7
mov ecx, eax
add esp, 4
test ecx, ecx
jns 0x4c3d8a
neg ecx
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0xc]
mov dword [eax + 0x4c], ecx
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0x4c]
mov eax, dword [edx + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax]
mov eax, dword [eax + 0xa8]
mov dword [eax + 0x10], ecx
mov eax, dword [eax + 0x28]
test eax, eax
je 0x4c55b9
push ecx
push eax
call dword [0x541f34]
add esp, 8
jmp 0x4c55b9
mov ecx, dword [ebp - 0xc]
mov edx, str.temp_store
mov bl, byte [ecx]
test bl, bl
je 0x4c3e04
sub ecx, edx
mov al, bl
mov dword [ebp - 0x24], ecx
mov esi, ecx
lea esp, [esp]
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x5265d8]
cmp al, byte [ecx + 0x5265d8]
jne 0x4c3e01
mov al, byte [edx + esi + 1]
inc edx
mov bl, al
test al, al
jne 0x4c3de0
mov esi, dword [ebp - 0x10]
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x5265d8]
movzx eax, bl
movzx eax, byte [eax + 0x5265d8]
sub eax, ecx
jne 0x4c3f72
mov ebx, dword [ebp - 4]
test ebx, ebx
jne 0x4c3e45
mov eax, dword [ebp - 8]
mov ecx, edi
movzx eax, byte [eax + 0x1d]
cdq
push edx
push eax
mov edx, str.temp_store
call fcn.004c2c60
add esp, 8
jmp 0x4c55b9
mov bl, byte [ebx]
mov al, bl
sub al, 0x30
cmp al, 2
ja 0x4c3e5a
movsx ebx, bl
sub ebx, 0x30
jmp 0x4c3f0c
mov edx, str.file
test bl, bl
je 0x4c3e94
mov ecx, dword [ebp - 4]
mov al, bl
sub ecx, edx
mov dword [ebp - 0x24], ecx
mov esi, ecx
nop
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x5265d8]
cmp al, byte [ecx + 0x5265d8]
jne 0x4c3e91
mov al, byte [edx + esi + 1]
inc edx
mov bl, al
test al, al
jne 0x4c3e70
mov esi, dword [ebp - 0x10]
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x5265d8]
movzx eax, bl
movzx eax, byte [eax + 0x5265d8]
sub eax, ecx
jne 0x4c3eb1
lea ebx, [eax + 1]
jmp 0x4c3f0c
mov ecx, dword [ebp - 4]
mov edx, str.memory
mov bl, byte [ecx]
test bl, bl
je 0x4c3eec
sub ecx, edx
mov al, bl
mov dword [ebp - 0x24], ecx
mov esi, ecx
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x5265d8]
cmp al, byte [ecx + 0x5265d8]
jne 0x4c3ee9
mov al, byte [edx + esi + 1]
inc edx
mov bl, al
test al, al
jne 0x4c3ec8
mov esi, dword [ebp - 0x10]
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x5265d8]
movzx eax, bl
movzx ebx, byte [eax + 0x5265d8]
sub ebx, ecx
neg ebx
sbb ebx, ebx
and ebx, 0xfffffffe
add ebx, 2
mov ecx, dword [edi]
mov dword [ebp - 0x1c], ecx
movzx eax, byte [ecx + 0x1d]
cmp eax, ebx
je 0x4c55b6
mov eax, dword [ecx + 8]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x4c3f51
cmp byte [ecx + 0x1c], 0
je 0x4c3f5f
cmp byte [eax + 8], 0
jne 0x4c3f5f
mov ecx, eax
call fcn.0049bbb0
mov ecx, dword [ebp - 0x1c]
xor edx, edx
mov eax, dword [ecx + 8]
mov dword [eax + 0x14], 0
call fcn.004b6140
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xc]
mov byte [ecx + 0x1d], bl
mov dword [ebp - 0xc], eax
jmp 0x4c55b6
push str.temporary_storage_cannot_be_changed_from_within_a_transaction
push edi
call fcn.004936e0
add esp, 8
jmp 0x4c55b6
mov ecx, dword [ebp - 0xc]
mov edx, str.temp_store_directory
mov bl, byte [ecx]
test bl, bl
je 0x4c3fb4
sub ecx, edx
mov al, bl
mov dword [ebp - 0x24], ecx
mov esi, ecx
lea esp, [esp]
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x5265d8]
cmp al, byte [ecx + 0x5265d8]
jne 0x4c3fb1
mov al, byte [edx + esi + 1]
inc edx
mov bl, al
test al, al
jne 0x4c3f90
mov esi, dword [ebp - 0x10]
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x5265d8]
movzx eax, bl
movzx eax, byte [eax + 0x5265d8]
sub eax, ecx
jne 0x4c4105
mov ebx, dword [ebp - 4]
test ebx, ebx
jne 0x4c4014
cmp dword [0x5441c4], ebx
je 0x4c55b9
lea edx, [eax + 1]
mov ecx, esi
call fcn.004a2290
mov eax, dword [esi]
cmp byte [eax + 0x1e], bl
jne 0x4c4009
mov ecx, dword [esi + 0x28]
mov edx, str.temp_store_directory
push ebx
push 1
push 0xffffffffffffffff
call fcn.004a0a60
add esp, 0xc
mov ebx, dword [0x5441c4]
jmp 0x4c38e0
cmp byte [ebx], 0
je 0x4c404d
mov eax, dword [ebp - 8]
lea ecx, [ebp - 0x24]
push ecx
push 1
push ebx
mov eax, dword [eax]
push eax
mov eax, dword [eax + 0x20]
call eax
add esp, 0x10
test eax, eax
jne 0x4c4037
cmp dword [ebp - 0x24], eax
jne 0x4c404d
push str.not_a_writable_directory
push edi
call fcn.004936e0
mov esi, dword [ebp - 8]
add esp, 8
jmp 0x4c565e
mov eax, dword [ebp - 8]
cmp byte [eax + 0x1d], 1
ja 0x4c4099
mov ebx, dword [edi]
mov eax, dword [ebx + 8]
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x4c4096
cmp byte [ebx + 0x1c], 0
je 0x4c4088
cmp byte [ecx + 8], 0
jne 0x4c4088
call fcn.0049bbb0
mov eax, dword [ebx + 8]
xor edx, edx
mov ecx, ebx
mov dword [eax + 0x14], 0
call fcn.004b6140
jmp 0x4c4096
push str.temporary_storage_cannot_be_changed_from_within_a_transaction
push edi
call fcn.004936e0
add esp, 8
mov ebx, dword [ebp - 4]
push dword [0x5441c4]
call fcn.00491400
add esp, 4
cmp byte [ebx], 0
je 0x4c40f6
mov eax, ebx
mov edi, edi
inc eax
cmp byte [eax], 0
jne 0x4c40b0
sub eax, ebx
and eax, 0x3fffffff
lea ebx, [eax + 1]
push ebx
call fcn.00491390
mov edi, eax
add esp, 4
test edi, edi
je 0x4c40e8
push ebx
mov ebx, dword [ebp - 4]
push ebx
push edi
call fcn.004e1370
add esp, 0xc
mov dword [0x5441c4], edi
jmp 0x4c55b9
mov ebx, dword [ebp - 4]
mov dword [0x5441c4], edi
jmp 0x4c55b9
mov dword [0x5441c4], 0
jmp 0x4c55b9
mov ecx, dword [ebp - 0xc]
mov edx, str.synchronous
mov bl, byte [ecx]
test bl, bl
je 0x4c4144
sub ecx, edx
mov al, bl
mov dword [ebp - 0x24], ecx
mov esi, ecx
lea esp, [esp]
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x5265d8]
cmp al, byte [ecx + 0x5265d8]
jne 0x4c4141
mov al, byte [edx + esi + 1]
inc edx
mov bl, al
test al, al
jne 0x4c4120
mov esi, dword [ebp - 0x10]
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x5265d8]
movzx eax, bl
movzx eax, byte [eax + 0x5265d8]
sub eax, ecx
jne 0x4c41d7
mov ecx, dword [edi]
cmp byte [ecx + 0x7c], al
jne 0x4c417d
lea edx, [edi + 8]
call fcn.004c5d70
test eax, eax
je 0x4c417d
inc dword [edi + 0x40]
mov esi, dword [ebp - 8]
mov dword [edi + 4], eax
jmp 0x4c565b
mov ebx, dword [ebp - 4]
test ebx, ebx
jne 0x4c41a7
mov eax, dword [ebp - 0x14]
mov ecx, edi
movzx eax, byte [eax + 9]
cdq
sub eax, 1
sbb edx, ebx
push edx
push eax
mov edx, str.synchronous
call fcn.004c2c60
add esp, 8
jmp 0x4c55b9
mov eax, dword [ebp - 8]
cmp byte [eax + 0x1c], 0
jne 0x4c41c3
push str.Safety_level_may_not_be_changed_inside_a_transaction
push edi
call fcn.004936e0
add esp, 8
jmp 0x4c55b9
mov ecx, ebx
call fcn.004c2b90
mov ecx, dword [ebp - 0x14]
inc al
mov byte [ecx + 9], al
jmp 0x4c55b9
mov ebx, dword [ebp - 4]
mov ecx, edi
mov edx, dword [ebp - 0xc]
push ebx
call fcn.004c2de0
add esp, 4
test eax, eax
jne 0x4c55b9
mov ecx, dword [ebp - 0xc]
mov edx, str.table_info
mov bl, byte [ecx]
test bl, bl
je 0x4c422b
sub ecx, edx
mov al, bl
mov dword [ebp - 0x24], ecx
mov esi, ecx
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x5265d8]
cmp al, byte [ecx + 0x5265d8]
jne 0x4c4228
mov al, byte [esi + edx + 1]
inc edx
mov bl, al
test al, al
jne 0x4c4207
mov esi, dword [ebp - 0x10]
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x5265d8]
movzx eax, bl
movzx eax, byte [eax + 0x5265d8]
sub eax, ecx
jne 0x4c4691
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x4c4691
mov ecx, dword [edi]
cmp byte [ecx + 0x7c], al
jne 0x4c4273
lea edx, [edi + 8]
call fcn.004c5d70
test eax, eax
je 0x4c4273
inc dword [edi + 0x40]
mov esi, dword [ebp - 8]
mov dword [edi + 4], eax
jmp 0x4c565e
push dword [ebp - 0x1c]
mov ecx, dword [ebp - 8]
mov edx, ebx
call fcn.004b5e90
mov ebx, eax
add esp, 4
mov dword [ebp - 0x10], ebx
test ebx, ebx
je 0x4c55b6
mov edx, 6
mov dword [ebp - 0x1c], 0
mov ecx, esi
call fcn.004a2290
mov dword [edi + 0x48], 6
mov ecx, dword [esi]
cmp byte [ecx + 0x1e], 0
jne 0x4c42c8
mov ecx, dword [esi + 0x28]
mov edx, 0x52a59c
push 0
push 1
push 0xffffffffffffffff
call fcn.004a0a60
add esp, 0xc
mov eax, dword [esi]
cmp byte [eax + 0x1e], 0
jne 0x4c42e9
mov ecx, dword [esi + 0x28]
mov edx, str.name
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x28
call fcn.004a0a60
add esp, 0xc
mov eax, dword [esi]
cmp byte [eax + 0x1e], 0
jne 0x4c430a
mov ecx, dword [esi + 0x28]
mov edx, str.type
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x50
call fcn.004a0a60
add esp, 0xc
mov eax, dword [esi]
cmp byte [eax + 0x1e], 0
jne 0x4c432b
mov ecx, dword [esi + 0x28]
mov edx, str.notnull
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x78
call fcn.004a0a60
add esp, 0xc
mov eax, dword [esi]
cmp byte [eax + 0x1e], 0
jne 0x4c434f
mov ecx, dword [esi + 0x28]
mov edx, str.dflt_value
push 0
push 1
push 0xffffffffffffffff
add ecx, 0xa0
call fcn.004a0a60
add esp, 0xc
mov eax, dword [esi]
cmp byte [eax + 0x1e], 0
jne 0x4c4373
mov ecx, dword [esi + 0x28]
mov edx, 0x52a5bc
push 0
push 1
push 0xffffffffffffffff
add ecx, 0xc8
call fcn.004a0a60
add esp, 0xc
mov edx, ebx
mov ecx, edi
call fcn.004b82d0
mov ecx, dword [ebp - 0x10]
xor eax, eax
mov ebx, dword [ebx + 0x10]
mov dword [ebp - 0x18], eax
cmp dword [ecx + 0xc], eax
jle 0x4c55b6
cmp byte [ebx + 0x17], 0
je 0x4c439e
inc dword [ebp - 0x1c]
jmp 0x4c467c
mov edi, dword [esi + 0xc]
mov eax, edi
cmp dword [esi + 0x10], edi
jg 0x4c43b6
mov ecx, esi
call fcn.004a1610
test eax, eax
jne 0x4c43f1
mov eax, dword [esi + 0xc]
inc eax
lea ecx, [edi + edi*4]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x14]
mov word [eax + ecx*4], 7
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], 1
lea ecx, [eax + ecx*4]
mov eax, dword [ebp - 0x18]
mov dword [ecx + 0xc], 0
sub eax, dword [ebp - 0x1c]
mov dword [ecx + 4], eax
mov dword [ecx + 0x10], 0
mov byte [esi + 0x6e], 0
mov edi, dword [esi + 0xc]
mov eax, dword [ebx]
mov dword [ebp - 0x24], eax
cmp dword [esi + 0x10], edi
jg 0x4c4410
mov ecx, esi
call fcn.004a1610
test eax, eax
je 0x4c4410
mov edi, 1
jmp 0x4c4448
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov word [eax + ecx*4], 0x5e
mov byte [eax + ecx*4 + 3], 0
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
mov byte [esi + 0x6e], 0
push 0
push dword [ebp - 0x24]
mov edx, edi
mov ecx, esi
call fcn.004a1c70
mov eax, dword [ebx + 0xc]
add esp, 8
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x4c446a
mov dword [ebp - 0x20], 0x51f88a
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0x4c4484
mov ecx, esi
call fcn.004a1610
test eax, eax
je 0x4c4484
mov edi, 1
jmp 0x4c44bc
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov word [eax + ecx*4], 0x5e
mov byte [eax + ecx*4 + 3], 0
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
mov byte [esi + 0x6e], 0
push 0
push dword [ebp - 0x20]
mov edx, edi
mov ecx, esi
call fcn.004a1c70
mov edi, dword [esi + 0xc]
xor eax, eax
add esp, 8
cmp byte [ebx + 0x14], al
setne al
mov dword [ebp - 0x24], eax
cmp dword [esi + 0x10], edi
jg 0x4c44eb
mov ecx, esi
call fcn.004a1610
test eax, eax
jne 0x4c4522
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [ebp - 0x24]
mov word [eax + ecx*4], 7
mov byte [eax + ecx*4 + 3], 0
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 byte [esi + 0x6e], 0
mov ecx, dword [ebx + 8]
mov edi, dword [esi + 0xc]
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x24], ecx
test ecx, ecx
je 0x4c4593
cmp eax, edi
jg 0x4c4548
mov ecx, esi
call fcn.004a1610
test eax, eax
je 0x4c4548
mov edi, 1
jmp 0x4c4580
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov word [eax + ecx*4], 0x5e
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 5
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
push 0
push dword [ebp - 0x24]
mov edx, edi
mov ecx, esi
call fcn.004a1c70
add esp, 8
jmp 0x4c45da
cmp eax, edi
jg 0x4c45a2
mov ecx, esi
call fcn.004a1610
test eax, eax
jne 0x4c45da
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov word [eax + ecx*4], 0xa
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 5
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
movzx eax, byte [ebx + 0x15]
mov edi, dword [esi + 0xc]
mov dword [ebp - 0x24], eax
cmp dword [esi + 0x10], edi
jg 0x4c45f4
mov ecx, esi
call fcn.004a1610
test eax, eax
jne 0x4c462b
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [ebp - 0x24]
mov word [eax + ecx*4], 7
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 6
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0x4c463e
mov ecx, esi
call fcn.004a1610
test eax, eax
jne 0x4c4676
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov word [eax + ecx*4], 0x10
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 6
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
inc eax
add ebx, 0x18
mov dword [ebp - 0x18], eax
cmp eax, dword [ecx + 0xc]
jl 0x4c4390
jmp 0x4c55b6
mov ecx, dword [ebp - 0xc]
mov edx, str.index_info
mov bl, byte [ecx]
test bl, bl
je 0x4c46cc
sub ecx, edx
mov al, bl
mov dword [ebp - 0x24], ecx
mov esi, ecx
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x5265d8]
cmp al, byte [ecx + 0x5265d8]
jne 0x4c46c9
mov al, byte [esi + edx + 1]
inc edx
mov bl, al
test al, al
jne 0x4c46a8
mov esi, dword [ebp - 0x10]
movzx eax, bl
movzx ecx, byte [eax + 0x5265d8]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x5265d8]
sub ecx, eax
jne 0x4c4923
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x4c4923
mov ecx, dword [edi]
cmp byte [ecx + 0x7c], 0
jne 0x4c4715
lea edx, [edi + 8]
call fcn.004c5d70
test eax, eax
je 0x4c4715
inc dword [edi + 0x40]
mov esi, dword [ebp - 8]
mov dword [edi + 4], eax
jmp 0x4c565e
push dword [ebp - 0x1c]
mov ecx, dword [ebp - 8]
mov edx, ebx
call fcn.004b5fa0
add esp, 4
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x4c55b9
mov eax, dword [eax + 0x10]
mov edx, 3
mov ecx, esi
mov dword [ebp - 0x24], eax
call fcn.004a2290
mov dword [edi + 0x48], 3
mov ecx, dword [esi]
cmp byte [ecx + 0x1e], 0
jne 0x4c4767
mov ecx, dword [esi + 0x28]
mov edx, str.seqno
push 0
push 1
push 0xffffffffffffffff
call fcn.004a0a60
add esp, 0xc
mov eax, dword [esi]
cmp byte [eax + 0x1e], 0
jne 0x4c4788
mov ecx, dword [esi + 0x28]
mov edx, 0x52a59c
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x28
call fcn.004a0a60
add esp, 0xc
mov eax, dword [esi]
cmp byte [eax + 0x1e], 0
jne 0x4c47a9
mov ecx, dword [esi + 0x28]
mov edx, str.name
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x50
call fcn.004a0a60
add esp, 0xc
mov eax, dword [ebp - 0x1c]
xor ebx, ebx
cmp dword [eax + 4], ebx
jle 0x4c55b6
mov eax, dword [eax + 8]
mov edi, dword [esi + 0xc]
mov eax, dword [eax + ebx*4]
mov dword [ebp - 0x20], eax
cmp dword [esi + 0x10], edi
jg 0x4c47d3
mov ecx, esi
call fcn.004a1610
test eax, eax
jne 0x4c4807
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov word [eax + ecx*4], 7
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0x4c481a
mov ecx, esi
call fcn.004a1610
test eax, eax
jne 0x4c4851
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [ebp - 0x20]
mov word [eax + ecx*4], 7
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 2
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov eax, dword [ebp - 0x20]
mov edi, dword [esi + 0xc]
lea ecx, [eax + eax*2]
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8]
mov dword [ebp - 0x20], eax
cmp dword [esi + 0x10], edi
jg 0x4c487d
mov ecx, esi
call fcn.004a1610
test eax, eax
je 0x4c487d
mov edi, 1
jmp 0x4c48b5
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov word [eax + ecx*4], 0x5e
mov byte [eax + ecx*4 + 3], 0
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
mov byte [esi + 0x6e], 0
push 0
push dword [ebp - 0x20]
mov edx, edi
mov ecx, esi
call fcn.004a1c70
mov edi, dword [esi + 0xc]
add esp, 8
cmp dword [esi + 0x10], edi
jg 0x4c48d9
mov ecx, esi
call fcn.004a1610
test eax, eax
jne 0x4c4911
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov word [eax + ecx*4], 0x10
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov eax, dword [ebp - 0x1c]
inc ebx
cmp ebx, dword [eax + 4]
jl 0x4c47b7
jmp 0x4c55b6
mov ecx, dword [ebp - 0xc]
mov edx, str.index_list
mov bl, byte [ecx]
test bl, bl
je 0x4c4964
sub ecx, edx
mov al, bl
mov dword [ebp - 0x24], ecx
mov esi, ecx
lea ebx, [ebx]
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x5265d8]
cmp al, byte [ecx + 0x5265d8]
jne 0x4c4961
mov al, byte [esi + edx + 1]
inc edx
mov bl, al
test al, al
jne 0x4c4940
mov esi, dword [ebp - 0x10]
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x5265d8]
movzx eax, bl
movzx eax, byte [eax + 0x5265d8]
sub eax, ecx
jne 0x4c4bc5
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x4c4bc5
mov ecx, dword [edi]
cmp byte [ecx + 0x7c], al
jne 0x4c49ac
lea edx, [edi + 8]
call fcn.004c5d70
test eax, eax
je 0x4c49ac
inc dword [edi + 0x40]
mov esi, dword [ebp - 8]
mov dword [edi + 4], eax
jmp 0x4c565e
push dword [ebp - 0x1c]
mov ecx, dword [ebp - 8]
mov edx, ebx
call fcn.004b5e90
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x4c55b6
mov esi, dword [edi + 0xc]
test esi, esi
jne 0x4c49d9
mov ecx, dword [edi]
call fcn.004a1540
mov esi, eax
mov dword [edi + 0xc], esi
mov ebx, dword [ebx + 0x14]
test ebx, ebx
je 0x4c55b6
mov edx, 3
mov dword [ebp - 0x1c], 0
mov ecx, esi
call fcn.004a2290
mov dword [edi + 0x48], 3
mov eax, dword [esi]
cmp byte [eax + 0x1e], 0
jne 0x4c4a1c
mov ecx, dword [esi + 0x28]
mov edx, 0x52a5e0
push 0
push 1
push 0xffffffffffffffff
call fcn.004a0a60
add esp, 0xc
mov eax, dword [esi]
cmp byte [eax + 0x1e], 0
jne 0x4c4a3d
mov ecx, dword [esi + 0x28]
mov edx, str.name
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x28
call fcn.004a0a60
add esp, 0xc
mov eax, dword [esi]
cmp byte [eax + 0x1e], 0
jne 0x4c4a60
mov ecx, dword [esi + 0x28]
mov edx, str.unique
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x50
call fcn.004a0a60
add esp, 0xc
mov edi, edi
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0x4c4a73
mov ecx, esi
call fcn.004a1610
test eax, eax
jne 0x4c4aaa
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [ebp - 0x1c]
mov word [eax + ecx*4], 7
mov byte [eax + ecx*4 + 3], 0
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 byte [esi + 0x6e], 0
mov edi, dword [esi + 0xc]
mov eax, dword [ebx]
mov dword [ebp - 0x24], eax
cmp dword [esi + 0x10], edi
jg 0x4c4ac9
mov ecx, esi
call fcn.004a1610
test eax, eax
je 0x4c4ac9
mov edi, 1
jmp 0x4c4b01
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov word [eax + ecx*4], 0x5e
mov byte [eax + ecx*4 + 3], 0
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
mov byte [esi + 0x6e], 0
push 0
push dword [ebp - 0x24]
mov edx, edi
mov ecx, esi
call fcn.004a1c70
mov edi, dword [esi + 0xc]
xor eax, eax
add esp, 8
cmp byte [ebx + 0x18], al
setne al
mov dword [ebp - 0x24], eax
cmp dword [esi + 0x10], edi
jg 0x4c4b30
mov ecx, esi
call fcn.004a1610
test eax, eax
jne 0x4c4b67
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [ebp - 0x24]
mov word [eax + ecx*4], 7
mov byte [eax + ecx*4 + 3], 0
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 byte [esi + 0x6e], 0
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0x4c4b7a
mov ecx, esi
call fcn.004a1610
test eax, eax
jne 0x4c4bb2
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov word [eax + ecx*4], 0x10
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
inc dword [ebp - 0x1c]
mov ebx, dword [ebx + 0x20]
test ebx, ebx
jne 0x4c4a60
jmp 0x4c55b6
mov ecx, dword [ebp - 0xc]
mov edx, str.database_list
mov bl, byte [ecx]
test bl, bl
je 0x4c4c04
sub ecx, edx
mov al, bl
mov dword [ebp - 0x24], ecx
mov esi, ecx
lea esp, [esp]
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x5265d8]
cmp al, byte [ecx + 0x5265d8]
jne 0x4c4c01
mov al, byte [esi + edx + 1]
inc edx
mov bl, al
test al, al
jne 0x4c4be0
mov esi, dword [ebp - 0x10]
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x5265d8]
movzx eax, bl
movzx eax, byte [eax + 0x5265d8]
sub eax, ecx
jne 0x4c4e80
mov ecx, dword [edi]
cmp byte [ecx + 0x7c], al
jne 0x4c4c41
lea edx, [edi + 8]
call fcn.004c5d70
test eax, eax
je 0x4c4c41
inc dword [edi + 0x40]
mov esi, dword [ebp - 8]
mov dword [edi + 4], eax
jmp 0x4c565b
mov edx, 3
mov ecx, esi
call fcn.004a2290
mov dword [edi + 0x48], 3
mov eax, dword [esi]
cmp byte [eax + 0x1e], 0
jne 0x4c4c72
mov ecx, dword [esi + 0x28]
mov edx, 0x52a5e0
push 0
push 1
push 0xffffffffffffffff
call fcn.004a0a60
add esp, 0xc
mov eax, dword [esi]
cmp byte [eax + 0x1e], 0
jne 0x4c4c93
mov ecx, dword [esi + 0x28]
mov edx, str.name
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x28
call fcn.004a0a60
add esp, 0xc
mov eax, dword [esi]
cmp byte [eax + 0x1e], 0
jne 0x4c4cb4
mov ecx, dword [esi + 0x28]
mov edx, str.file
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x50
call fcn.004a0a60
add esp, 0xc
mov eax, dword [ebp - 8]
mov dword [ebp - 0x1c], 0
cmp dword [eax + 4], 0
jle 0x4c55b6
xor ebx, ebx
jmp 0x4c4cd2
mov eax, ecx
mov eax, dword [eax + 8]
cmp dword [ebx + eax + 4], 0
je 0x4c4e65
mov edi, dword [esi + 0xc]
mov eax, edi
cmp dword [esi + 0x10], edi
jg 0x4c4cf8
mov ecx, esi
call fcn.004a1610
test eax, eax
jne 0x4c4d30
mov eax, dword [esi + 0xc]
mov edx, dword [ebp - 0x1c]
lea ecx, [edi + edi*4]
inc eax
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x14]
mov word [eax + ecx*4], 7
mov byte [eax + ecx*4 + 3], 0
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 byte [esi + 0x6e], 0
mov eax, dword [ebp - 8]
mov edi, dword [esi + 0xc]
mov eax, dword [eax + 8]
mov eax, dword [ebx + eax]
mov dword [ebp - 0x24], eax
cmp dword [esi + 0x10], edi
jg 0x4c4d56
mov ecx, esi
call fcn.004a1610
test eax, eax
je 0x4c4d56
mov edi, 1
jmp 0x4c4d8e
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov word [eax + ecx*4], 0x5e
mov byte [eax + ecx*4 + 3], 0
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
mov byte [esi + 0x6e], 0
push 0
push dword [ebp - 0x24]
mov edx, edi
mov ecx, esi
call fcn.004a1c70
mov eax, dword [ebp - 8]
add esp, 8
mov edi, dword [esi + 0xc]
mov eax, dword [eax + 8]
mov eax, dword [ebx + eax + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax]
mov eax, dword [eax + 0x84]
mov dword [ebp - 0x24], eax
cmp dword [esi + 0x10], edi
jg 0x4c4dd1
mov ecx, esi
call fcn.004a1610
test eax, eax
je 0x4c4dd1
mov edi, 1
jmp 0x4c4e09
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov word [eax + ecx*4], 0x5e
mov byte [eax + ecx*4 + 3], 0
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
mov byte [esi + 0x6e], 0
push 0
push dword [ebp - 0x24]
mov edx, edi
mov ecx, esi
call fcn.004a1c70
mov edi, dword [esi + 0xc]
add esp, 8
cmp dword [esi + 0x10], edi
jg 0x4c4e2d
mov ecx, esi
call fcn.004a1610
test eax, eax
jne 0x4c4e65
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov word [eax + ecx*4], 0x10
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov eax, dword [ebp - 0x1c]
add ebx, 0x10
mov ecx, dword [ebp - 8]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, dword [ecx + 4]
jl 0x4c4cd0
jmp 0x4c55b6
mov ecx, dword [ebp - 0xc]
mov edx, str.collation_list
mov bl, byte [ecx]
test bl, bl
je 0x4c4ebb
sub ecx, edx
mov al, bl
mov dword [ebp - 0x24], ecx
mov esi, ecx
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x5265d8]
cmp al, byte [ecx + 0x5265d8]
jne 0x4c4eb8
mov al, byte [esi + edx + 1]
inc edx
mov bl, al
test al, al
jne 0x4c4e97
mov esi, dword [ebp - 0x10]
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x5265d8]
movzx eax, bl
movzx eax, byte [eax + 0x5265d8]
sub eax, ecx
jne 0x4c5058
lea edx, [eax + 2]
mov dword [ebp - 0x1c], eax
mov ecx, esi
call fcn.004a2290
mov dword [edi + 0x48], 2
mov eax, dword [esi]
cmp byte [eax + 0x1e], 0
jne 0x4c4f09
mov ecx, dword [esi + 0x28]
mov edx, 0x52a5e0
push 0
push 1
push 0xffffffffffffffff
call fcn.004a0a60
add esp, 0xc
mov eax, dword [esi]
cmp byte [eax + 0x1e], 0
jne 0x4c4f2a
mov ecx, dword [esi + 0x28]
mov edx, str.name
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x28
call fcn.004a0a60
add esp, 0xc
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 0x188]
test ebx, ebx
je 0x4c55b6
jmp 0x4c4f40
mov edi, dword [esi + 0xc]
mov eax, dword [ebx + 8]
mov dword [ebp - 0x24], eax
cmp dword [esi + 0x10], edi
jg 0x4c4f59
mov ecx, esi
call fcn.004a1610
test eax, eax
jne 0x4c4f90
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov edx, dword [ebp - 0x1c]
mov word [eax + ecx*4], 7
mov byte [eax + ecx*4 + 3], 0
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 byte [esi + 0x6e], 0
mov eax, dword [ebp - 0x24]
inc dword [ebp - 0x1c]
mov edi, dword [esi + 0xc]
mov eax, dword [eax]
mov dword [ebp - 0x24], eax
cmp dword [esi + 0x10], edi
jg 0x4c4fb5
mov ecx, esi
call fcn.004a1610
test eax, eax
je 0x4c4fb5
mov edi, 1
jmp 0x4c4fed
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov word [eax + ecx*4], 0x5e
mov byte [eax + ecx*4 + 3], 0
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
mov byte [esi + 0x6e], 0
push 0
push dword [ebp - 0x24]
mov edx, edi
mov ecx, esi
call fcn.004a1c70
mov edi, dword [esi + 0xc]
add esp, 8
cmp dword [esi + 0x10], edi
jg 0x4c5011
mov ecx, esi
call fcn.004a1610
test eax, eax
jne 0x4c5049
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov word [eax + ecx*4], 0x10
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 2
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [esi + 0x6e], 0
mov ebx, dword [ebx]
test ebx, ebx
jne 0x4c4f40
jmp 0x4c55b6
mov ecx, dword [ebp - 0xc]
mov edx, str.case_sensitive_like
mov bl, byte [ecx]
test bl, bl
je 0x4c5094
sub ecx, edx
mov al, bl
mov dword [ebp - 0x24], ecx
mov esi, ecx
nop
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x5265d8]
cmp al, byte [ecx + 0x5265d8]
jne 0x4c5091
mov al, byte [esi + edx + 1]
inc edx
mov bl, al
test al, al
jne 0x4c5070
mov esi, dword [ebp - 0x10]
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x5265d8]
movzx eax, bl
movzx eax, byte [eax + 0x5265d8]
sub eax, ecx
jne 0x4c5158
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x4c55b9
mov ecx, ebx
call fcn.004c2b90
mov edi, eax
mov ebx, 0x526000
and edi, 1
jne 0x4c50d3
mov ebx, 0x525384
mov ecx, dword [ebp - 8]
sub esp, 8
mov edx, str.like
push 0x4bd3f0
push ebx
push 5
push 2
call fcn.004dd300
add esp, 0x10
mov edx, str.like
push 0x4bd3f0
push ebx
mov ebx, dword [ebp - 8]
mov ecx, ebx
push 5
push 3
call fcn.004dd300
add esp, 0x10
mov edx, str.glob
mov ecx, ebx
push 0x4bd3f0
push 0x526358
push 5
push 2
call fcn.004dd300
push 3
mov edx, str.glob
mov ecx, ebx
call fcn.004be830
add esp, 0x1c
mov edx, str.like
test edi, edi
mov ecx, ebx
setne al
lea eax, [eax*2 + 1]
push eax
call fcn.004be830
add esp, 4
jmp 0x4c55b6
mov ecx, dword [ebp - 0xc]
mov edx, str.encoding
mov bl, byte [ecx]
test bl, bl
je 0x4c5194
sub ecx, edx
mov al, bl
mov dword [ebp - 0x24], ecx
mov esi, ecx
nop
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x5265d8]
cmp al, byte [ecx + 0x5265d8]
jne 0x4c5191
mov al, byte [esi + edx + 1]
inc edx
mov bl, al
test al, al
jne 0x4c5170
mov esi, dword [ebp - 0x10]
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x5265d8]
movzx eax, bl
movzx eax, byte [eax + 0x5265d8]
sub eax, ecx
jne 0x4c539c
mov ebx, dword [ebp - 4]
test ebx, ebx
jne 0x4c52c1
mov ecx, dword [edi]
cmp byte [ecx + 0x7c], bl
jne 0x4c51dc
lea edx, [edi + 8]
call fcn.004c5d70
test eax, eax
je 0x4c51dc
inc dword [edi + 0x40]
mov esi, dword [ebp - 8]
mov dword [edi + 4], eax
jmp 0x4c565e
mov edx, 1
mov ecx, esi
call fcn.004a2290
mov eax, dword [esi]
cmp byte [eax + 0x1e], 0
jne 0x4c5206
mov ecx, dword [esi + 0x28]
mov edx, str.encoding
push 0
push 1
push 0xffffffffffffffff
call fcn.004a0a60
add esp, 0xc
mov ebx, dword [esi + 0xc]
mov eax, ebx
cmp dword [esi + 0x10], ebx
jg 0x4c521e
mov ecx, esi
call fcn.004a1610
test eax, eax
jne 0x4c5257
mov eax, dword [esi + 0xc]
inc eax
lea ecx, [ebx + ebx*4]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x14]
mov word [eax + ecx*4], 0x5e
mov byte [eax + ecx*4 + 3], 0
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
mov byte [esi + 0x6e], 0
mov eax, dword [edi]
mov edx, dword [esi + 0x14]
mov ecx, dword [esi]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0xc]
movzx eax, byte [eax + 0x49]
mov ebx, dword [eax*8 + 0x525588]
test edx, edx
je 0x4c52ae
cmp byte [ecx + 0x1e], 0
jne 0x4c52ae
mov eax, dword [esi + 0xc]
dec eax
lea eax, [eax + eax*4]
push dword [edx + eax*4 + 0x10]
lea edi, [edx + eax*4]
movsx edx, byte [edi + 1]
call fcn.004a1910
add esp, 4
test ebx, ebx
jne 0x4c52a2
mov dword [edi + 0x10], ebx
mov byte [edi + 1], bl
jmp 0x4c3947
mov dword [edi + 0x10], ebx
mov byte [edi + 1], 0xfe
jmp 0x4c3947
push ebx
mov edx, 0xfffffffe
call fcn.004a1910
add esp, 4
jmp 0x4c3947
mov eax, dword [ebp - 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x4a]
and al, 5
cmp al, 1
je 0x4c55b9
mov edx, dword [str.UTF8]
mov eax, 0x525588
mov dword [ebp - 0x1c], eax
test edx, edx
je 0x4c537f
mov bh, byte [ebx]
nop
mov bl, bh
test bh, bh
je 0x4c5326
mov ecx, dword [ebp - 4]
mov al, bh
sub ecx, edx
mov dword [ebp - 0x24], ecx
mov esi, ecx
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x5265d8]
cmp al, byte [ecx + 0x5265d8]
jne 0x4c5323
mov al, byte [esi + edx + 1]
inc edx
mov bl, al
test al, al
jne 0x4c5302
mov esi, dword [ebp - 0x10]
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x5265d8]
movzx eax, bl
movzx eax, byte [eax + 0x5265d8]
sub eax, ecx
mov eax, dword [ebp - 0x1c]
je 0x4c5365
mov edx, dword [eax + 8]
add eax, 8
mov dword [ebp - 0x1c], eax
test edx, edx
jne 0x4c52f0
mov ebx, dword [ebp - 4]
push ebx
push str.unsupported_encoding:__s
push edi
call fcn.004936e0
add esp, 0xc
jmp 0x4c55b9
mov cl, byte [eax + 4]
test cl, cl
jne 0x4c536e
mov cl, 2
mov eax, dword [edi]
mov ebx, dword [ebp - 4]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov byte [eax + 0x49], cl
mov eax, dword [ebp - 0x1c]
cmp dword [eax], 0
jne 0x4c55b9
push ebx
push str.unsupported_encoding:__s
push edi
call fcn.004936e0
add esp, 0xc
jmp 0x4c55b9
mov edi, dword [ebp - 0xc]
mov edx, str.schema_version
mov bl, byte [edi]
test bl, bl
je 0x4c53d4
mov al, bl
sub edi, edx
mov edi, edi
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x5265d8]
cmp al, byte [ecx + 0x5265d8]
jne 0x4c53d1
mov al, byte [edi + edx + 1]
inc edx
mov bl, al
test al, al
jne 0x4c53b0
mov edi, dword [ebp - 0xc]
movzx eax, bl
movzx ecx, byte [eax + 0x5265d8]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x5265d8]
sub ecx, eax
je 0x4c5490
mov bl, byte [edi]
mov edx, str.user_version
test bl, bl
je 0x4c5424
mov al, bl
sub edi, edx
nop
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x5265d8]
cmp al, byte [ecx + 0x5265d8]
jne 0x4c5421
mov al, byte [edx + edi + 1]
inc edx
mov bl, al
test al, al
jne 0x4c5400
mov edi, dword [ebp - 0xc]
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x5265d8]
movzx eax, bl
movzx eax, byte [eax + 0x5265d8]
sub eax, ecx
je 0x4c5490
mov bl, byte [edi]
mov edx, str.freelist_count
test bl, bl
je 0x4c5474
mov al, bl
sub edi, edx
jmp 0x4c5450
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x5265d8]
cmp al, byte [ecx + 0x5265d8]
jne 0x4c5471
mov al, byte [edi + edx + 1]
inc edx
mov bl, al
test al, al
jne 0x4c5450
mov edi, dword [ebp - 0xc]
movzx eax, bl
movzx ecx, byte [eax + 0x5265d8]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x5265d8]
sub ecx, eax
jne 0x4c55b6
mov ebx, dword [ebp - 0x18]
mov edx, 1
mov eax, dword [esi + 0x78]
mov ecx, ebx
shl edx, cl
test edx, eax
jne 0x4c54a8
or eax, edx
mov dword [esi + 0x78], eax
movsx eax, byte [edi]
add eax, 0xffffffba
cmp eax, 0x2d
ja case.0x4c54ba.71
movzx eax, byte [eax + 0x4c56e4]
jmp dword [eax*4 + 0x4c56d8]
xor edi, edi
jmp 0x4c54d1
mov edi, 1
jmp 0x4c54d1
mov edi, 6
cmp dword [ebp - 4], 0
je 0x4c554a
test edi, edi
je 0x4c554a
push 0x526300
mov edx, 3
mov ecx, esi
call fcn.004a1850
mov ebx, eax
add esp, 4
cmp dword [esi + 0xc], ebx
jle 0x4c5503
mov ecx, dword [esi + 0x14]
lea edx, [ebx + ebx*4]
mov eax, dword [ebp - 0x18]
mov dword [ecx + edx*4 + 4], eax
push dword [ebp - 4]
call fcn.004ed3b7
lea ecx, [ebx + 1]
add esp, 4
cmp dword [esi + 0xc], ecx
jle 0x4c5520
lea edx, [ecx + ecx*4]
mov ecx, dword [esi + 0x14]
mov dword [ecx + edx*4 + 4], eax
lea edx, [ebx + 2]
cmp dword [esi + 0xc], edx
jle 0x4c55b6
mov eax, dword [esi + 0x14]
lea ecx, [edx + edx*4]
mov ebx, dword [ebp - 0x18]
mov dword [eax + ecx*4 + 4], ebx
cmp dword [esi + 0xc], edx
jle 0x4c55b6
mov eax, dword [esi + 0x14]
lea ecx, [edx + edx*4]
mov dword [eax + ecx*4 + 8], edi
jmp 0x4c55b6
push str._
mov edx, 3
mov ecx, esi
call fcn.004a1850
add esp, 4
cmp dword [esi + 0xc], eax
jle 0x4c556d
mov ecx, dword [esi + 0x14]
lea edx, [eax + eax*4]
mov dword [ecx + edx*4 + 4], ebx
lea edx, [eax + 1]
cmp dword [esi + 0xc], edx
jle 0x4c558e
mov eax, dword [esi + 0x14]
lea ecx, [edx + edx*4]
mov dword [eax + ecx*4 + 4], ebx
cmp dword [esi + 0xc], edx
jle 0x4c558e
mov eax, dword [esi + 0x14]
lea ecx, [edx + edx*4]
mov dword [eax + ecx*4 + 0xc], edi
mov edx, 1
mov ecx, esi
call fcn.004a2290
mov eax, dword [esi]
cmp byte [eax + 0x1e], 0
jne 0x4c55b6
mov edx, dword [ebp - 0xc]
push 0xffffffffffffffff
mov ecx, dword [esi + 0x28]
push 1
push 0xffffffffffffffff
call fcn.004a0a60
add esp, 0xc
mov ebx, dword [ebp - 4]
mov edi, dword [esi + 0xc]
cmp dword [esi + 0x10], edi
jg 0x4c55cc
mov ecx, esi
call fcn.004a1610
test eax, eax
jne 0x4c5604
mov eax, dword [esi + 0x14]
lea ecx, [edi + edi*4]
inc dword [esi + 0xc]
mov word [eax + ecx*4], 0x77
mov byte [eax + ecx*4 + 3], 0
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 byte [esi + 0x6e], 0
mov esi, dword [ebp - 8]
cmp byte [esi + 0x1c], 0
je 0x4c565e
mov eax, dword [ebp - 0x14]
mov ecx, dword [esi + 0xc]
mov bh, byte [eax + 9]
mov eax, dword [eax + 4]
mov eax, dword [eax + 4]
mov edx, dword [eax]
lea eax, [edx + 0xb]
cmp bh, 1
je 0x4c562f
cmp byte [eax], 0
jne 0x4c562f
xor bl, bl
jmp 0x4c5631
mov bl, 1
mov byte [edx + 8], bl
cmp bh, 3
jne 0x4c5642
cmp byte [eax], 0
jne 0x4c5642
mov al, 1
jmp 0x4c5644
xor al, al
shr ecx, 0x10
and cl, 1
mov byte [edx + 9], al
or cl, 2
mov byte [edx + 0xa], cl
test bl, bl
je 0x4c565b
mov byte [edx + 0x10], 0
mov ebx, dword [ebp - 4]
mov ecx, dword [ebp - 0xc]
cmp ecx, dword [esi + 0xf0]
jb 0x4c568a
cmp ecx, dword [esi + 0xf4]
jae 0x4c568a
mov eax, dword [esi + 0xec]
mov dword [ecx], eax
mov eax, dword [ebp - 8]
dec dword [eax + 0xe4]
mov dword [eax + 0xec], ecx
jmp 0x4c5696
push ecx
call fcn.00491400
mov eax, dword [ebp - 8]
add esp, 4
test ebx, ebx
je 0x4c56c8
cmp ebx, dword [eax + 0xf0]
jb 0x4c56c8
cmp ebx, dword [eax + 0xf4]
jae 0x4c56c8
mov eax, dword [eax + 0xec]
mov dword [ebx], eax
mov eax, dword [ebp - 8]
dec dword [eax + 0xe4]
mov dword [eax + 0xec], ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push ebx
call fcn.00491400
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret