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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x9c
mov eax, dword [0x100ff008]
xor eax, esp
mov dword [esp + 0x98], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov dword [esp + 0x34], eax
mov ebx, edx
mov eax, dword [ecx]
push edi
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x10], eax
call fcn.10062450
mov esi, eax
mov dword [esp + 0x4c], esi
test esi, esi
je 0x1005da52
mov eax, dword [esp + 0x24]
mov edx, ebx
or dword [esi + 0x58], 0x40
lea ecx, [eax + 0x48]
mov dword [esp + 0x58], ecx
mov dword [ecx], 2
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x3c]
push ecx
mov ecx, eax
call fcn.100429d0
mov ecx, eax
add esp, 8
mov dword [esp + 0x28], ecx
test ecx, ecx
js 0x1005da52
mov edx, dword [esp + 0x10]
shl eax, 4
mov dword [esp + 0x34], eax
mov ebx, dword [edx + 0x10]
add ebx, eax
mov dword [esp + 0x30], ebx
cmp ecx, 1
jne 0x100578ad
mov ecx, dword [esp + 0x24]
call fcn.100482d0
test eax, eax
jne 0x1005da52
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x1005da52
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x100578d0
mov dword [esp + 0x18], eax
jmp 0x1005790a
xor eax, eax
add ecx, 1
adc eax, eax
push eax
push ecx
mov ecx, edx
call fcn.10005190
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
je 0x1005790a
push dword [esp + 0x20]
push dword [esp + 0x20]
push eax
call fcn.100bfbc0
mov eax, dword [esp + 0x2c]
add esp, 0xc
mov ecx, dword [esp + 0x18]
mov byte [eax + ecx], 0
mov eax, ecx
mov ecx, eax
call fcn.10007d20
cmp dword [esp + 0x18], 0
je 0x1005da52
cmp dword [ebp + 0x10], 0
je 0x1005793d
push edi
mov edi, dword [esp + 0x14]
push 0x100f37c4
push edi
call fcn.10006dc0
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x14], ecx
jmp 0x100579b5
test edi, edi
je 0x100579ab
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x40], ecx
test ecx, ecx
jne 0x10057965
xor eax, eax
mov ecx, eax
mov dword [esp + 0x14], eax
call fcn.10007d20
mov ecx, dword [esp + 0x14]
jmp 0x100579b1
mov ecx, eax
xor eax, eax
add ecx, 1
adc eax, eax
push eax
push ecx
mov ecx, dword [esp + 0x18]
call fcn.10005190
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
je 0x1005799e
mov edi, dword [esp + 0x1c]
push edi
push dword [esp + 0x44]
push eax
call fcn.100bfbc0
mov eax, dword [esp + 0x20]
add esp, 0xc
mov byte [edi + eax], 0
mov ecx, eax
call fcn.10007d20
mov ecx, dword [esp + 0x14]
jmp 0x100579b1
xor ecx, ecx
mov dword [esp + 0x14], ecx
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x38]
cmp dword [eax + 4], 0
jbe 0x100579c3
mov ebx, dword [ebx]
jmp 0x100579c5
xor ebx, ebx
push ebx
push ecx
push dword [esp + 0x20]
mov ecx, dword [esp + 0x30]
mov edx, 0x13
mov dword [esp + 0x54], ebx
call fcn.100412f0
add esp, 0xc
test eax, eax
jne 0x10057b3e
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x9c], eax
lea eax, [esp + 0x94]
push eax
push 0xe
push ebx
mov dword [esp + 0xac], 0
push edi
mov dword [edi + 0x1c4], 0
call fcn.10082c70
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x10057b63
cmp dword [esp + 0x94], eax
je 0x10057b3e
mov eax, dword [esp + 0x58]
inc dword [eax]
mov ebx, dword [eax]
mov eax, dword [esp + 0x94]
mov edi, dword [esi + 0x20]
mov ecx, edi
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], edi
jg 0x10057a7a
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x10057a77
mov edi, 1
jmp 0x10057aad
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
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
push 0
push dword [esp + 0x20]
mov edx, edi
mov ecx, esi
call fcn.10022f50
add esp, 8
mov edx, 1
mov ecx, esi
call fcn.10023fd0
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x10057ae9
mov ecx, dword [esi + 0x10]
mov edx, str.result
push 0
push 1
push 0xffffffffffffffff
call fcn.10021f50
add esp, 0xc
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x10057aff
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x10057b2f
inc dword [esi + 0x20]
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x23
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
push dword [esp + 0x94]
call fcn.10004e40
add esp, 4
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
cmp dword [ecx + 0x208], 0
je 0x1005d9aa
mov edx, ebx
call fcn.10004ee0
jmp 0x1005d9dd
cmp edi, 0xc
je 0x10057ba0
mov eax, dword [esp + 0x94]
test eax, eax
je 0x10057b94
push eax
push 0x100f0d10
push dword [esp + 0x2c]
call fcn.10007bb0
add esp, 0xc
push dword [esp + 0x94]
call fcn.10004e40
add esp, 4
mov eax, dword [esp + 0x24]
inc dword [eax + 0x40]
mov dword [eax + 0xc], edi
jmp 0x10057b3e
mov eax, dword [esp + 0x18]
mov edx, 0x37
xor esi, esi
mov dword [esp + 0x20], edx
mov bh, byte [eax]
lea eax, [edx + esi]
mov bl, bh
cdq
sub eax, edx
mov edi, eax
sar edi, 1
mov dword [esp + 0x1c], edi
lea ecx, [edi + edi*2]
mov edx, dword [ecx*4 + 0x100f5050]
test bh, bh
je 0x10057bfc
mov edi, dword [esp + 0x18]
mov al, bh
sub edi, edx
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x100f67d0]
cmp al, byte [ecx + 0x100f67d0]
jne 0x10057bf8
mov al, byte [edi + edx + 1]
inc edx
mov bl, al
test al, al
jne 0x10057bd7
mov edi, dword [esp + 0x1c]
movzx eax, bl
movzx ecx, byte [eax + 0x100f67d0]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x100f67d0]
sub ecx, eax
je 0x10057c2e
test ecx, ecx
lea edx, [edi - 1]
lea eax, [edi + 1]
cmovns edx, dword [esp + 0x20]
cmovns esi, eax
mov dword [esp + 0x20], edx
cmp esi, edx
jle 0x10057bb1
jmp 0x10057c32
mov edx, dword [esp + 0x20]
cmp esi, edx
mov esi, dword [esp + 0x4c]
jg 0x10057b3e
mov ebx, dword [esp + 0x24]
lea edi, [edi + edi*2]
test byte [edi*4 + 0x100f5055], 1
je 0x10057c71
mov ecx, dword [ebx]
cmp byte [ecx + 0x91], 0
jne 0x10057c71
lea edx, [ebx + 4]
call fcn.1005e320
test eax, eax
je 0x10057c71
mov dword [ebx + 0xc], eax
inc dword [ebx + 0x40]
jmp 0x10057b3e
movzx eax, byte [edi*4 + 0x100f5054]
cmp eax, 0x23
ja case.0x10057c82.3
jmp dword [eax*4 + 0x1005da68]
mov eax, dword [esi + 0x60]
mov ecx, dword [esp + 0x28]
bts eax, ecx
mov ebx, dword [esp + 0x34]
mov dword [esi + 0x60], eax
cmp ecx, 1
je 0x10057cb7
mov eax, dword [esi]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ebx + 4]
cmp byte [eax + 9], 0
je 0x10057cb7
mov eax, dword [esi + 0x64]
bts eax, ecx
mov dword [esi + 0x64], eax
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x10057d57
lea edx, [eax + 1]
mov ecx, esi
call fcn.10023fd0
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x10057ceb
mov ecx, dword [esi + 0x10]
mov edx, str.cache_size
push 0
push 1
push 0xffffffffffffffff
call fcn.10021f50
add esp, 0xc
mov edx, dword [esp + 0x58]
push ecx
push 0x100f55bc
mov ecx, esi
add dword [edx], 2
mov edx, 9
call fcn.10022c90
mov ecx, dword [esi + 0x20]
mov edi, eax
mov ebx, dword [esp + 0x30]
add esp, 8
cmp ecx, edi
jbe 0x10057d21
mov ecx, dword [esi + 4]
lea edx, [edi + edi*4]
mov dword [ecx + edx*4 + 4], ebx
mov ecx, dword [esi + 0x20]
lea eax, [edi + 1]
cmp ecx, eax
jbe 0x10057d35
lea ecx, [eax + eax*4]
mov eax, dword [esi + 4]
mov dword [eax + ecx*4 + 4], ebx
mov ecx, dword [esi + 0x20]
mov ebx, dword [esp + 0x18]
add edi, 6
cmp ecx, edi
jbe 0x10057d4e
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4 + 4], 0x7d0
mov ecx, dword [esp + 0x10]
jmp 0x10057b46
lea edx, [esp + 0x20]
mov dword [esp + 0x20], 0
mov ecx, eax
call fcn.100087a0
mov edi, dword [esp + 0x20]
test edi, edi
jns 0x10057d83
cmp edi, 0x80000000
jne 0x10057d81
mov edi, 0x7fffffff
jmp 0x10057d83
neg edi
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0x198]
test eax, eax
cmovne ecx, eax
mov dword [esp + 0x24], ecx
mov eax, dword [ecx]
mov edx, dword [ecx + 0x14c]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
mov eax, 1
shl eax, cl
test edx, eax
jne 0x10057de2
mov eax, dword [esp + 0x1c]
bts edx, ecx
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x14c], edx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ebx + 0xc]
mov ebx, dword [esp + 0x28]
mov eax, dword [eax]
mov dword [ecx + ebx*4 + 0x150], eax
cmp ebx, 1
jne 0x10057dea
call fcn.100482d0
jmp 0x10057de6
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0x148]
bts eax, ebx
mov dword [ecx + 0x148], eax
mov eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x20]
mov ecx, ebx
cmp dword [eax + 0x54], ebx
jg 0x10057e14
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x10057e47
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
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 eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x20]
cmp dword [eax + 0x54], ebx
jg 0x10057e5d
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x10057e91
inc dword [esi + 0x20]
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x28]
mov word [eax + ecx*4], 0x34
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 ebx, dword [esp + 0x30]
mov eax, dword [ebx + 0xc]
mov dword [eax + 0x50], edi
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
mov edx, dword [edx + 0x50]
call fcn.10017f40
jmp 0x10057b3e
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x14]
mov esi, dword [ebx + 4]
test edi, edi
jne 0x10057ee3
test esi, esi
je 0x10057ed4
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x20]
cdq
push edx
push eax
mov edx, str.page_size
jmp 0x10058777
xor eax, eax
cdq
push edx
push eax
mov edx, str.page_size
jmp 0x10058777
lea edx, [esp + 0x20]
mov dword [esp + 0x20], 0
mov ecx, edi
call fcn.100087a0
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
mov dword [eax + 0x48], ebx
cmp byte [esi + 9], 0
mov edi, dword [esi + 4]
je 0x10057f1a
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x10057f1a
mov ecx, esi
call fcn.100160e0
test byte [edi + 0x16], 2
je 0x10057f40
cmp byte [esi + 9], 0
je 0x10057b3e
add dword [esi + 0xc], 0xffffffff
jne 0x10057b3e
mov ecx, esi
call fcn.100160a0
jmp 0x10057b3e
mov eax, dword [edi + 0x20]
lea ecx, [edi + 0x20]
sub eax, dword [edi + 0x24]
mov dword [esp + 0x1c], eax
lea eax, [ebx - 0x200]
cmp eax, 0xfe00
ja 0x10057f7f
lea eax, [ebx - 1]
test ebx, eax
jne 0x10057f7f
mov dword [ecx], ebx
mov eax, dword [edi + 0x50]
test eax, eax
je 0x10057f7f
lea ecx, [eax - 4]
mov dword [edi + 0x50], ecx
call fcn.1000d360
mov dword [edi + 0x50], 0
lea ecx, [edi + 0x20]
mov ebx, dword [esp + 0x1c]
mov edx, ecx
mov ecx, dword [edi]
push ebx
call fcn.100107a0
mov edx, dword [edi + 0x20]
add esp, 4
movzx ecx, bx
sub edx, ecx
mov dword [esp + 0x1c], eax
mov dword [edi + 0x24], edx
cmp byte [esi + 9], 0
je 0x10057fb6
add dword [esi + 0xc], 0xffffffff
jne 0x10057fb6
mov ecx, esi
call fcn.100160a0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
cmp eax, 7
jne 0x10057b4a
mov byte [ecx + 0x40], 1
jmp 0x10057b4a
mov ebx, dword [esp + 0x30]
or ecx, 0xffffffff
mov eax, dword [esp + 0x14]
mov dword [esp + 0x2c], ecx
mov edi, dword [ebx + 4]
mov dword [esp + 0x1c], edi
test eax, eax
je 0x10058008
lea edx, [ecx + 2]
mov ecx, eax
push 0
call fcn.100575a0
xor ecx, ecx
add esp, 4
test al, al
setne cl
mov dword [esp + 0x2c], ecx
mov eax, dword [esp + 0x38]
mov ebx, 0xfffb
cmp dword [eax + 4], 0
jne 0x100580ae
test ecx, ecx
js 0x100580ae
mov eax, dword [esp + 0x10]
xor ebx, ebx
cmp dword [eax + 0x14], ebx
jle 0x100580a9
mov edi, dword [esp + 0x2c]
xor ecx, ecx
mov dword [esp + 0x20], ecx
nop dword [eax + eax]
mov eax, dword [eax + 0x10]
mov esi, dword [eax + ecx + 4]
test esi, esi
je 0x10058094
cmp byte [esi + 9], 0
je 0x10058065
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x10058065
mov ecx, esi
call fcn.100160e0
mov ecx, dword [esp + 0x20]
mov eax, dword [esi + 4]
mov edx, 0xfffb
and word [eax + 0x16], dx
test edi, edi
je 0x1005807d
mov eax, dword [esi + 4]
or word [eax + 0x16], 4
cmp byte [esi + 9], 0
je 0x10058094
add dword [esi + 0xc], 0xffffffff
jne 0x10058094
mov ecx, esi
call fcn.100160a0
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
inc ebx
add ecx, 0x10
mov dword [esp + 0x20], ecx
cmp ebx, dword [eax + 0x14]
jl 0x10058040
mov edi, dword [esp + 0x1c]
mov ebx, 0xfffb
test edi, edi
jne 0x100580b6
xor esi, esi
jmp 0x10058107
cmp byte [edi + 9], 0
je 0x100580cc
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x100580cc
mov ecx, edi
call fcn.100160e0
mov ecx, dword [esp + 0x2c]
test ecx, ecx
js 0x100580e7
mov eax, dword [edi + 4]
and word [eax + 0x16], bx
test ecx, ecx
je 0x100580e7
mov eax, dword [edi + 4]
or word [eax + 0x16], 4
mov eax, dword [edi + 4]
movzx esi, word [eax + 0x16]
shr esi, 2
and esi, 1
cmp byte [edi + 9], 0
je 0x10058107
add dword [edi + 0xc], 0xffffffff
jne 0x10058107
mov ecx, edi
call fcn.100160a0
mov ecx, dword [esp + 0x24]
mov edx, str.secure_delete
push 0
push esi
call fcn.10057690
add esp, 8
jmp 0x10057b3e
mov eax, dword [ebx + 0x198]
test eax, eax
mov ecx, dword [esp + 0x28]
cmovne ebx, eax
mov eax, 1
shl eax, cl
mov dword [esp + 0x24], ebx
mov edx, dword [ebx + 0x14c]
mov edi, dword [ebx]
test edx, eax
jne 0x10058175
bts edx, ecx
mov ecx, dword [esp + 0x24]
mov dword [ebx + 0x14c], edx
mov eax, dword [edi + 0x10]
mov ebx, dword [esp + 0x34]
mov edx, dword [esp + 0x28]
mov eax, dword [eax + ebx + 0xc]
mov eax, dword [eax]
mov dword [ecx + edx*4 + 0x150], eax
cmp edx, 1
jne 0x10058175
call fcn.100482d0
mov eax, dword [esp + 0x58]
inc dword [eax]
mov ebx, dword [eax]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x2c], ebx
movzx eax, byte [eax]
cmp byte [eax + 0x100f67d0], 0x70
jne 0x100581e8
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x100581b0
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005826e
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x28]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x97
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
jmp 0x1005826e
mov eax, dword [esp + 0x14]
xor edi, edi
mov dword [esp + 0x20], edi
test eax, eax
je 0x1005821a
lea edx, [esp + 0x20]
mov ecx, eax
call fcn.100087a0
mov edi, dword [esp + 0x20]
test edi, edi
jns 0x1005821a
cmp edi, 0x80000000
jne 0x10058218
mov edi, 0x7fffffff
jmp 0x1005821a
neg edi
mov eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x20]
mov ecx, ebx
cmp dword [eax + 0x54], ebx
jg 0x10058235
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005826a
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x28]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 4]
mov ebx, dword [esp + 0x2c]
mov word [eax + ecx*4], 0x98
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], edi
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x1005826e
mov ebx, dword [esp + 0x2c]
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x10058284
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x100582b4
inc dword [esi + 0x20]
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x23
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 edx, 1
mov ecx, esi
call fcn.10023fd0
mov eax, dword [esi]
mov ebx, dword [esp + 0x18]
cmp byte [eax + 0x40], 0
jne 0x10057d4e
mov ecx, dword [esi + 0x10]
mov edx, ebx
push 0xffffffffffffffff
push 1
push 0xffffffffffffffff
call fcn.10021f50
mov ecx, dword [esp + 0x1c]
add esp, 0xc
jmp 0x10057b46
mov edi, dword [esp + 0x14]
test edi, edi
je 0x1005839e
mov bl, byte [edi]
mov edx, str.exclusive
mov bh, bl
test bl, bl
je 0x10058335
mov al, bl
sub edi, edx
nop dword [eax]
movzx ecx, byte [edx]
mov bh, al
movzx eax, al
mov al, byte [eax + 0x100f67d0]
cmp al, byte [ecx + 0x100f67d0]
jne 0x10058331
mov al, byte [edi + edx + 1]
inc edx
mov bh, al
test al, al
jne 0x10058310
mov edi, dword [esp + 0x14]
movzx eax, bh
movzx ecx, byte [eax + 0x100f67d0]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x100f67d0]
sub ecx, eax
jne 0x10058354
mov ecx, 1
jmp 0x100583a1
mov edx, str.normal
test bl, bl
je 0x10058382
mov al, bl
sub edi, edx
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x100f67d0]
cmp al, byte [ecx + 0x100f67d0]
jne 0x10058382
mov al, byte [edi + edx + 1]
inc edx
mov bl, al
test al, al
jne 0x10058361
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x100f67d0]
movzx eax, bl
movzx eax, byte [eax + 0x100f67d0]
sub eax, ecx
jne 0x1005839e
xor ecx, ecx
jmp 0x100583a1
or ecx, 0xffffffff
mov eax, dword [esp + 0x38]
cmp dword [eax + 4], 0
jne 0x1005840d
mov eax, dword [esp + 0x10]
cmp ecx, 0xffffffff
jne 0x100583bc
mov al, byte [eax + 0x41]
jmp 0x1005843b
mov edx, 2
cmp dword [eax + 0x14], edx
jle 0x1005840a
mov edi, 0x20
mov esi, eax
nop dword [eax]
mov eax, dword [esi + 0x10]
mov eax, dword [eax + edi + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax]
test ecx, ecx
js 0x100583f9
cmp byte [eax + 0xc], 0
jne 0x100583f9
mov ebx, dword [eax + 0xd0]
test ebx, ebx
je 0x100583f6
cmp byte [ebx + 0x2b], 2
je 0x100583f9
mov byte [eax + 4], cl
inc edx
add edi, 0x10
cmp edx, dword [esi + 0x14]
jl 0x100583d0
mov esi, dword [esp + 0x4c]
mov eax, dword [esp + 0x10]
mov byte [eax + 0x41], cl
mov ebx, dword [esp + 0x30]
mov dl, cl
mov eax, dword [ebx + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax]
test ecx, ecx
js 0x10058438
cmp byte [eax + 0xc], 0
jne 0x10058438
mov ecx, dword [eax + 0xd0]
test ecx, ecx
je 0x10058435
cmp byte [ecx + 0x2b], 2
je 0x10058438
mov byte [eax + 4], dl
mov al, byte [eax + 4]
cmp al, 1
mov ecx, str.exclusive
mov ebx, str.normal
mov edx, 1
cmove ebx, ecx
mov ecx, esi
call fcn.10023fd0
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x10058474
mov ecx, dword [esi + 0x10]
mov edx, str.locking_mode
push 0
push 1
push 0xffffffffffffffff
call fcn.10021f50
add esp, 0xc
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10058496
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x10058493
mov edi, 1
jmp 0x100584cd
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
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
push 0
push ebx
mov edx, edi
mov ecx, esi
call fcn.10022f50
add esp, 8
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x100584f6
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x10057b3e
inc dword [esi + 0x20]
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x23
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
jmp 0x10057b3e
mov edx, 1
mov ecx, esi
call fcn.10023fd0
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x10058559
mov ecx, dword [esi + 0x10]
mov edx, str.journal_mode
push 0
push 1
push 0xffffffffffffffff
call fcn.10021f50
add esp, 0xc
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x1005868b
cmp byte [ebx], 0
mov eax, ebx
je 0x10058576
nop dword [eax]
inc eax
cmp byte [eax], 0
jne 0x10058570
sub eax, ebx
and eax, 0x3fffffff
xor ecx, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
cmp ecx, 6
je 0x1005868b
mov edi, dword [ecx*4 + 0x100f5ec8]
test edi, edi
je 0x1005868b
mov edx, eax
test eax, eax
je 0x100585c6
mov al, byte [ebx]
dec edx
test al, al
je 0x100585c7
movzx ecx, byte [edi]
movzx eax, al
mov al, byte [eax + 0x100f67d0]
cmp al, byte [ecx + 0x100f67d0]
jne 0x100585c7
inc ebx
inc edi
test edx, edx
jg 0x100585a5
dec edx
test edx, edx
js 0x100585f2
movzx eax, byte [edi]
movzx ecx, byte [eax + 0x100f67d0]
movzx eax, byte [ebx]
movzx eax, byte [eax + 0x100f67d0]
sub eax, ecx
je 0x100585f2
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
inc ecx
mov ebx, dword [esp + 0x14]
jmp 0x10058583
mov ebx, dword [esp + 0x20]
cmp ebx, 0xffffffff
je 0x1005868e
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x14]
sub edi, 1
js 0x100584dc
mov edx, edi
shl edx, 4
mov dword [esp + 0x20], edx
nop dword [eax]
mov eax, dword [eax + 0x10]
cmp dword [edx + eax + 4], 0
je 0x100586df
cmp edi, dword [esp + 0x28]
je 0x1005863e
cmp dword [ecx + 4], 0
jne 0x100586df
mov eax, dword [esi + 0x60]
bts eax, edi
mov dword [esi + 0x60], eax
cmp edi, 1
je 0x10058664
mov eax, dword [esi]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + edx + 4]
cmp byte [eax + 9], 0
je 0x10058664
mov eax, dword [esi + 0x64]
bts eax, edi
mov dword [esi + 0x64], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x20]
mov dword [esp + 0x1c], ecx
cmp dword [eax + 0x54], ecx
jg 0x100586b0
mov ecx, esi
call fcn.10022900
mov edx, dword [esp + 0x20]
test eax, eax
jne 0x100586df
mov eax, dword [esi + 0x20]
mov ecx, dword [esp + 0x1c]
jmp 0x100586b2
or ebx, 0xffffffff
mov ecx, dword [esp + 0x38]
cmp dword [ecx + 4], 0
jne 0x10058603
mov dword [esp + 0x28], 0
mov dword [ecx + 4], 1
jmp 0x10058603
mov eax, ecx
inc eax
lea ecx, [ecx + ecx*4]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0xc
mov byte [eax + ecx*4 + 3], 0
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 + 0x38]
sub edx, 0x10
sub edi, 1
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], edx
jns 0x10058620
jmp 0x100584dc
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x68], 0xfffffffe
mov dword [esp + 0x6c], 0xffffffff
mov eax, dword [ebx + 4]
mov eax, dword [eax + 4]
mov esi, dword [eax]
test edi, edi
je 0x10058766
lea edx, [esp + 0x68]
mov ecx, edi
call fcn.10008680
mov ecx, dword [esp + 0x6c]
cmp ecx, 0xffffffff
jg 0x10058746
jl 0x1005873f
mov eax, dword [esp + 0x68]
cmp eax, 0xffffffff
jae 0x1005874a
or eax, 0xffffffff
or ecx, eax
jmp 0x1005874a
mov eax, dword [esp + 0x68]
mov dword [esi + 0xa0], eax
mov dword [esi + 0xa4], ecx
mov edx, dword [esi + 0xd0]
test edx, edx
je 0x10058766
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], ecx
push dword [esi + 0xa4]
mov edx, str.journal_size_limit
push dword [esi + 0xa0]
mov ecx, dword [esp + 0x2c]
call fcn.10057690
mov ecx, dword [esp + 0x18]
add esp, 8
mov ebx, dword [esp + 0x18]
jmp 0x10057b4a
mov ebx, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
mov edi, dword [ebx + 4]
test ecx, ecx
jne 0x100587f3
mov al, byte [edi + 9]
test al, al
je 0x100587b8
inc dword [edi + 0xc]
cmp byte [edi + 0xa], cl
jne 0x100587b8
mov ecx, edi
call fcn.100160e0
mov al, byte [edi + 9]
mov ecx, dword [edi + 4]
xor ebx, ebx
cmp byte [ecx + 0x11], bl
je 0x100587c9
cmp byte [ecx + 0x12], bl
setne bl
inc ebx
test al, al
je 0x100587da
add dword [edi + 0xc], 0xffffffff
jne 0x100587da
mov ecx, edi
call fcn.100160a0
mov ecx, dword [esp + 0x24]
mov edx, str.auto_vacuum
push 0
push ebx
call fcn.10057690
add esp, 8
jmp 0x10057b3e
mov bl, byte [ecx]
mov edx, str.none
mov bh, bl
test bl, bl
je 0x10058835
sub ecx, edx
mov al, bl
mov dword [esp + 0x1c], ecx
mov esi, ecx
nop word [eax + eax]
movzx ecx, byte [edx]
mov bh, al
movzx eax, al
mov al, byte [eax + 0x100f67d0]
cmp al, byte [ecx + 0x100f67d0]
jne 0x10058831
mov al, byte [edx + esi + 1]
inc edx
mov bh, al
test al, al
jne 0x10058810
mov esi, dword [esp + 0x4c]
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x100f67d0]
movzx eax, bh
movzx eax, byte [eax + 0x100f67d0]
sub eax, ecx
jne 0x10058854
xor ebx, ebx
jmp 0x10058936
mov edx, str.full
mov bh, bl
test bl, bl
je 0x10058895
mov ecx, dword [esp + 0x14]
mov al, bl
sub ecx, edx
mov dword [esp + 0x1c], ecx
mov esi, ecx
nop dword [eax]
movzx ecx, byte [edx]
mov bh, al
movzx eax, al
mov al, byte [eax + 0x100f67d0]
cmp al, byte [ecx + 0x100f67d0]
jne 0x10058891
mov al, byte [edx + esi + 1]
inc edx
mov bh, al
test al, al
jne 0x10058870
mov esi, dword [esp + 0x4c]
movzx eax, bh
movzx ecx, byte [eax + 0x100f67d0]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x100f67d0]
sub ecx, eax
jne 0x100588b5
lea ebx, [ecx + 1]
jmp 0x10058936
mov edx, str.incremental
test bl, bl
je 0x100588f5
mov ecx, dword [esp + 0x14]
mov al, bl
sub ecx, edx
mov dword [esp + 0x1c], ecx
mov esi, ecx
nop dword [eax]
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x100f67d0]
cmp al, byte [ecx + 0x100f67d0]
jne 0x100588f1
mov al, byte [edx + esi + 1]
inc edx
mov bl, al
test al, al
jne 0x100588d0
mov esi, dword [esp + 0x4c]
movzx eax, bl
movzx ecx, byte [eax + 0x100f67d0]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x100f67d0]
sub ecx, eax
jne 0x10058912
lea ebx, [ecx + 2]
jmp 0x10058936
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x20]
mov dword [esp + 0x20], 0
call fcn.100087a0
xor ecx, ecx
cmp dword [esp + 0x20], 2
cmovbe ecx, dword [esp + 0x20]
movzx ebx, cl
mov eax, dword [esp + 0x10]
mov edx, ebx
mov ecx, edi
mov byte [eax + 0x42], bl
call fcn.100181a0
test eax, eax
jne 0x10057b3e
cmp ebx, 1
je 0x1005895c
cmp ebx, 2
jne 0x10057b3e
push ecx
push 0x100f7c84
mov edx, 6
mov ecx, esi
call fcn.10022c90
mov ecx, dword [esi + 0x20]
mov edi, eax
add esp, 8
cmp ecx, edi
jbe 0x1005898b
mov ecx, dword [esi + 4]
lea edx, [edi + edi*4]
mov eax, dword [esp + 0x28]
mov dword [ecx + edx*4 + 4], eax
mov ecx, dword [esi + 0x20]
lea eax, [edi + 1]
cmp ecx, eax
jbe 0x100589a3
mov edx, dword [esp + 0x28]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 4]
mov dword [eax + ecx*4 + 4], edx
mov ecx, dword [esi + 0x20]
lea eax, [edi + 2]
cmp ecx, eax
jbe 0x100589ba
lea ecx, [eax + eax*4]
mov eax, dword [esi + 4]
lea edx, [edi + 4]
mov dword [eax + ecx*4 + 8], edx
mov ecx, dword [esi + 0x20]
lea eax, [edi + 4]
cmp ecx, eax
jbe 0x100589d1
lea ecx, [eax + eax*4]
mov eax, dword [esi + 4]
lea edx, [ebx - 1]
mov dword [eax + ecx*4 + 4], edx
mov ecx, dword [esi + 0x20]
add edi, 5
cmp ecx, edi
jbe 0x100589e6
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
mov edx, dword [esp + 0x28]
mov dword [eax + ecx*4 + 4], edx
mov eax, dword [esi + 0x60]
mov ecx, dword [esp + 0x28]
bts eax, ecx
mov dword [esi + 0x60], eax
cmp ecx, 1
je 0x10057b3e
mov eax, dword [esi]
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0x14]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ebx + 4]
mov ebx, dword [esp + 0x18]
cmp byte [eax + 9], 0
je 0x10058a20
mov eax, dword [esi + 0x64]
bts eax, ecx
mov dword [esi + 0x64], eax
mov ecx, dword [esp + 0x10]
jmp 0x10057b4a
mov eax, dword [esp + 0x14]
test eax, eax
je 0x10058a48
lea edx, [esp + 0x1c]
mov ecx, eax
call fcn.100087a0
test eax, eax
je 0x10058a48
mov ebx, dword [esp + 0x1c]
test ebx, ebx
jg 0x10058a4d
mov ebx, 0x7fffffff
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0x198]
test eax, eax
cmovne ecx, eax
mov eax, 1
mov dword [esp + 0x24], ecx
mov edx, dword [ecx + 0x14c]
mov edi, dword [ecx]
mov ecx, dword [esp + 0x28]
shl eax, cl
test edx, eax
jne 0x10058ab2
mov eax, dword [esp + 0x24]
bts edx, ecx
mov ecx, dword [esp + 0x34]
mov dword [eax + 0x14c], edx
mov eax, dword [edi + 0x10]
mov edi, dword [esp + 0x24]
mov eax, dword [eax + ecx + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax]
mov dword [edi + ecx*4 + 0x150], eax
cmp ecx, 1
jne 0x10058ab6
mov ecx, edi
call fcn.100482d0
mov ecx, dword [esp + 0x28]
jmp 0x10058ab6
mov edi, dword [esp + 0x24]
mov eax, dword [edi + 0x148]
bts eax, ecx
mov dword [edi + 0x148], eax
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10058ae0
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x10058b13
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
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 eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10058b35
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x10058b32
mov edi, 1
jmp 0x10058b6c
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x28]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x8d
mov byte [eax + ecx*4 + 3], 0
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 eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x20]
mov ecx, ebx
cmp dword [eax + 0x54], ebx
jg 0x10058b87
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x10058bbe
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x23
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 eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x20]
mov ecx, ebx
cmp dword [eax + 0x54], ebx
jg 0x10058bd9
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x10058c10
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x25
mov byte [eax + ecx*4 + 3], 0
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 eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x20]
mov ecx, ebx
cmp dword [eax + 0x54], ebx
jg 0x10058c2b
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x10058c5e
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x89
mov byte [eax + ecx*4 + 3], 0
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 edx, dword [esi + 0x20]
cmp edx, edi
jbe 0x10058c72
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
lea ecx, [edx - 1]
mov dword [eax + 0x58], ecx
jmp 0x10057b3e
mov edi, dword [esp + 0x14]
test edi, edi
jne 0x10058c9f
mov ebx, dword [esp + 0x30]
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 0x50]
cdq
push edx
push eax
mov edx, str.cache_size
jmp 0x10058777
lea edx, [esp + 0x20]
mov dword [esp + 0x20], 0
mov ecx, edi
call fcn.100087a0
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x20]
mov ecx, dword [ebx + 0xc]
mov dword [ecx + 0x50], eax
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
mov edx, dword [edx + 0x50]
call fcn.10017f40
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
jmp 0x10057b4a
mov edi, dword [esp + 0x14]
test edi, edi
je 0x10058e22
lea edx, [esp + 0x78]
mov ecx, edi
call fcn.10008680
cmp dword [esp + 0x7c], 0
jg 0x10058d15
jl 0x10058d02
cmp dword [esp + 0x78], 0
jae 0x10058d15
mov eax, dword [0x100ffc98]
mov ecx, dword [0x100ffc9c]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x10]
cmp dword [ecx + 4], 0
jne 0x10058d35
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x78]
mov dword [edx + 0x28], eax
mov dword [edx + 0x2c], ecx
mov ecx, dword [esp + 0x38]
mov edi, dword [edx + 0x14]
sub edi, 1
js 0x10058e1e
mov ebx, edi
shl ebx, 4
mov eax, dword [edx + 0x10]
mov esi, dword [ebx + eax + 4]
test esi, esi
je 0x10058e0e
cmp edi, dword [esp + 0x28]
je 0x10058d65
cmp dword [ecx + 4], 0
jne 0x10058e0e
cmp byte [esi + 9], 0
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x7c]
mov ecx, dword [esi + 4]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x40], ecx
je 0x10058d9e
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x10058d9e
mov ecx, esi
call fcn.100160e0
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x40]
mov ecx, dword [ecx]
mov dword [ecx + 0x80], edx
mov dword [ecx + 0x84], eax
mov eax, dword [ecx + 0x3c]
mov eax, dword [eax]
test eax, eax
je 0x10058df7
cmp dword [eax], 3
jl 0x10058df7
mov eax, dword [esp + 0x20]
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], eax
test eax, eax
jl 0x10058dda
jg 0x10058dd6
test edx, edx
je 0x10058dda
mov al, 1
jmp 0x10058ddc
xor al, al
mov byte [ecx + 0x74], al
lea edx, [esp + 0x88]
mov eax, dword [ecx + 0x3c]
push edx
push 0x12
push eax
mov ecx, dword [eax]
mov eax, dword [ecx + 0x28]
call eax
add esp, 0xc
cmp byte [esi + 9], 0
je 0x10058e0a
add dword [esi + 0xc], 0xffffffff
jne 0x10058e0a
mov ecx, esi
call fcn.100160a0
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x38]
sub ebx, 0x10
sub edi, 1
jns 0x10058d46
mov edi, dword [esp + 0x14]
lea eax, [esp + 0x78]
mov dword [esp + 0x78], 0xffffffff
push eax
push 0x12
push dword [esp + 0x50]
mov dword [esp + 0x88], 0xffffffff
push dword [esp + 0x1c]
call fcn.10082c70
add esp, 0x10
test eax, eax
jne 0x10058e62
push dword [esp + 0x7c]
mov edx, str.mmap_size
push dword [esp + 0x7c]
jmp 0x10058777
mov ebx, dword [esp + 0x18]
cmp eax, 0xc
je 0x10058a20
mov ecx, dword [esp + 0x24]
inc dword [ecx + 0x40]
mov dword [ecx + 0xc], eax
mov ecx, dword [esp + 0x10]
jmp 0x10057b4a
mov edi, dword [esp + 0x14]
test edi, edi
jne 0x10058eb1
mov eax, dword [esp + 0x10]
mov ecx, ebx
movzx eax, byte [eax + 0x3f]
cdq
push edx
push eax
mov edx, str.temp_store
call fcn.10057690
mov ecx, dword [esp + 0x18]
add esp, 8
mov ebx, dword [esp + 0x18]
jmp 0x10057b4a
mov bl, byte [edi]
mov al, bl
sub al, 0x30
cmp al, 2
ja 0x10058ec6
movsx ebx, bl
sub ebx, 0x30
jmp 0x10058f65
mov edx, str.file
mov bh, bl
test bl, bl
je 0x10058ef8
mov esi, edi
mov al, bl
sub esi, edx
movzx ecx, byte [edx]
mov bh, al
movzx eax, al
mov al, byte [eax + 0x100f67d0]
cmp al, byte [ecx + 0x100f67d0]
jne 0x10058ef8
mov al, byte [edx + esi + 1]
inc edx
mov bh, al
test al, al
jne 0x10058ed7
movzx eax, bh
movzx ecx, byte [eax + 0x100f67d0]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x100f67d0]
sub ecx, eax
jne 0x10058f15
lea ebx, [ecx + 1]
jmp 0x10058f65
mov edx, str.memory
test bl, bl
je 0x10058f45
mov esi, edi
mov al, bl
sub esi, edx
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x100f67d0]
cmp al, byte [ecx + 0x100f67d0]
jne 0x10058f45
mov al, byte [edx + esi + 1]
inc edx
mov bl, al
test al, al
jne 0x10058f24
movzx eax, bl
movzx ebx, byte [eax + 0x100f67d0]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x100f67d0]
sub ebx, eax
neg ebx
sbb ebx, ebx
and ebx, 0xfffffffe
add ebx, 2
mov edx, dword [esp + 0x24]
mov esi, dword [edx]
movzx eax, byte [esi + 0x3f]
cmp eax, ebx
je 0x10059156
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x10058fa3
cmp byte [esi + 0x3e], 0
je 0x10058fb3
cmp byte [ecx + 8], 0
jne 0x10058fb3
call fcn.10017dc0
mov eax, dword [esi + 0x10]
mov ecx, esi
mov dword [eax + 0x14], 0
call fcn.10042180
mov ecx, dword [esp + 0x10]
mov byte [esi + 0x3f], bl
mov ebx, dword [esp + 0x18]
jmp 0x10057b4a
push str.temporary_storage_cannot_be_changed_from_within_a_transaction
push edx
call fcn.10007bb0
mov ecx, dword [esp + 0x18]
add esp, 8
mov ebx, dword [esp + 0x18]
jmp 0x10057b4a
mov edi, dword [esp + 0x14]
test edi, edi
jne 0x10059014
cmp dword [0x101029bc], edi
je 0x10059156
lea edx, [edi + 1]
mov ecx, esi
call fcn.10023fd0
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x10059009
mov ecx, dword [esi + 0x10]
mov edx, str.temp_store_directory
push edi
push 1
push 0xffffffffffffffff
call fcn.10021f50
add esp, 0xc
mov ebx, dword [0x101029bc]
jmp 0x10058474
cmp byte [edi], 0
je 0x10059048
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x80]
push ecx
push 1
push edi
mov eax, dword [eax]
push eax
mov eax, dword [eax + 0x20]
call eax
add esp, 0x10
test eax, eax
jne 0x10059148
cmp dword [esp + 0x80], eax
je 0x10059148
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x3f], 1
ja 0x10059090
mov esi, dword [ebx]
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x10059090
cmp byte [esi + 0x3e], 0
je 0x10059082
cmp byte [ecx + 8], 0
jne 0x10059082
call fcn.10017dc0
mov eax, dword [esi + 0x10]
mov ecx, esi
mov dword [eax + 0x14], 0
call fcn.10042180
jmp 0x10059090
push str.temporary_storage_cannot_be_changed_from_within_a_transaction
push ebx
call fcn.10007bb0
add esp, 8
push dword [0x101029bc]
call fcn.10004e40
add esp, 4
cmp byte [edi], 0
je 0x100590c3
push edi
push 0x100f0d10
call fcn.10006ff0
mov ecx, dword [esp + 0x18]
add esp, 8
mov ebx, dword [esp + 0x18]
mov dword [0x101029bc], eax
jmp 0x10057b4a
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov dword [0x101029bc], 0
jmp 0x10057b4a
mov edi, dword [esp + 0x14]
test edi, edi
jne 0x1005911c
cmp dword [0x101029b8], edi
je 0x10059156
lea edx, [edi + 1]
mov ecx, esi
call fcn.10023fd0
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x10059111
mov ecx, dword [esi + 0x10]
mov edx, str.data_store_directory
push edi
push 1
push 0xffffffffffffffff
call fcn.10021f50
add esp, 0xc
mov ebx, dword [0x101029b8]
jmp 0x10058474
cmp byte [edi], 0
je 0x10059163
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x84]
push ecx
push 1
push edi
mov eax, dword [eax]
push eax
mov eax, dword [eax + 0x20]
call eax
add esp, 0x10
test eax, eax
jne 0x10059148
cmp dword [esp + 0x84], eax
jne 0x10059163
push str.not_a_writable_directory
push ebx
call fcn.10007bb0
add esp, 8
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
jmp 0x10057b4a
push dword [0x101029b8]
call fcn.10004e40
add esp, 4
cmp byte [edi], 0
je 0x10059196
push edi
push 0x100f0d10
call fcn.10006ff0
mov ecx, dword [esp + 0x18]
add esp, 8
mov ebx, dword [esp + 0x18]
mov dword [0x101029b8], eax
jmp 0x10057b4a
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov dword [0x101029b8], 0
jmp 0x10057b4a
mov edi, dword [esp + 0x14]
test edi, edi
jne 0x100591cf
mov ebx, dword [esp + 0x30]
movzx eax, byte [ebx + 8]
cdq
sub eax, 1
sbb edx, edi
push edx
push eax
mov edx, str.synchronous
jmp 0x10058777
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x3e], 0
jne 0x100591f4
push str.Safety_level_may_not_be_changed_inside_a_transaction
push ebx
call fcn.10007bb0
mov ecx, dword [esp + 0x18]
add esp, 8
mov ebx, dword [esp + 0x18]
jmp 0x10057b4a
push 1
xor edx, edx
mov ecx, edi
call fcn.100575a0
mov ebx, dword [esp + 0x34]
add esp, 4
mov ecx, dword [esp + 0x10]
inc al
mov byte [ebx + 8], al
call fcn.100577b0
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
jmp 0x10057b4a
cmp dword [esp + 0x14], 0
mov eax, dword [edi*4 + 0x100f5058]
mov ecx, dword [esp + 0x10]
push 0
jne 0x10059255
and eax, dword [ecx + 0x18]
mov ecx, ebx
mov edx, dword [edi*4 + 0x100f5050]
neg eax
sbb eax, eax
neg eax
push eax
call fcn.10057690
add esp, 8
jmp 0x10057b3e
mov edi, eax
mov edx, 1
and edi, 0xfff7ffff
cmp byte [ecx + 0x3e], 0
mov ecx, dword [esp + 0x18]
cmovne edi, eax
call fcn.100575a0
mov edx, dword [esp + 0x14]
add esp, 4
mov ecx, dword [edx + 0x18]
test al, al
je 0x10059287
or edi, ecx
mov dword [edx + 0x18], edi
jmp 0x100592ac
mov eax, edi
not eax
and eax, ecx
mov dword [edx + 0x18], eax
cmp edi, 0x1000000
jne 0x100592ac
mov dword [edx + 0x200], 0
mov dword [edx + 0x204], 0
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x100592c2
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x100592f6
inc dword [esi + 0x20]
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x8e
mov byte [eax + ecx*4 + 3], 0
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 + 0x10]
call fcn.100577b0
jmp 0x10057b3e
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
test edi, edi
je 0x1005915a
push dword [esp + 0x48]
mov edx, edi
call fcn.10041ba0
add esp, 4
mov dword [esp + 0x48], eax
test eax, eax
je 0x10059156
mov ecx, dword [eax + 8]
mov dword [esp + 0x20], 0
mov dword [esp + 0x2c], ecx
test ecx, ecx
je 0x10059355
mov eax, dword [ecx + 0x38]
and al, 3
cmp al, 2
je 0x10059351
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x10059341
mov dword [esp + 0x2c], ecx
mov edx, 6
mov ecx, esi
call fcn.10023fd0
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x28]
mov dword [edx], 6
mov edx, ebx
mov eax, dword [ebx + 0x198]
test eax, eax
cmovne edx, eax
mov eax, 1
shl eax, cl
mov edi, dword [edx + 0x14c]
mov ebx, dword [edx]
test edi, eax
jne 0x100593bc
bts edi, ecx
mov ecx, dword [esp + 0x34]
mov dword [edx + 0x14c], edi
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + ecx + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax]
mov dword [edx + ecx*4 + 0x150], eax
cmp ecx, 1
jne 0x100593bc
mov ecx, edx
call fcn.100482d0
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x10059491
mov ecx, dword [esi + 0x10]
mov edx, 0x100f3824
push 0
push 1
push 0xffffffffffffffff
call fcn.10021f50
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x10059491
mov ecx, dword [esi + 0x10]
mov edx, str.name
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x28
call fcn.10021f50
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x10059491
mov ecx, dword [esi + 0x10]
mov edx, str.type
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x50
call fcn.10021f50
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x10059491
mov ecx, dword [esi + 0x10]
mov edx, str.notnull
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x78
call fcn.10021f50
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x10059491
mov ecx, dword [esi + 0x10]
mov edx, str.dflt_value
push 0
push 1
push 0xffffffffffffffff
add ecx, 0xa0
call fcn.10021f50
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x10059491
mov ecx, dword [esi + 0x10]
mov edx, 0x100f384c
push 0
push 1
push 0xffffffffffffffff
add ecx, 0xc8
call fcn.10021f50
add esp, 0xc
mov edi, dword [esp + 0x48]
mov edx, edi
mov ecx, dword [esp + 0x24]
call fcn.10044de0
mov eax, dword [esp + 0x48]
xor ecx, ecx
mov edi, dword [edi + 4]
xor ebx, ebx
mov dword [esp + 0x4c], edi
cmp cx, word [eax + 0x26]
jge 0x10057b3e
nop dword [eax]
test byte [edi + 0x17], 2
je 0x100594cf
inc dword [esp + 0x20]
jmp 0x10059827
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x20]
mov edx, ecx
mov dword [esp + 0x1c], ecx
cmp dword [eax + 0x54], ecx
jg 0x100594f2
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005952a
mov edx, dword [esi + 0x20]
mov ecx, dword [esp + 0x1c]
lea eax, [edx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
lea ecx, [eax + ecx*4]
mov eax, ebx
sub eax, dword [esp + 0x20]
mov dword [ecx + 4], eax
mov dword [ecx + 8], 1
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov eax, dword [edi]
mov edi, dword [esi + 0x20]
mov ecx, edi
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], edi
jg 0x10059552
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x1005954f
mov edi, 1
jmp 0x10059589
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
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
push 0
push dword [esp + 0x20]
mov edx, edi
mov ecx, esi
call fcn.10022f50
mov eax, dword [esp + 0x54]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, 0x100f0188
mov eax, dword [eax + 0xc]
test eax, eax
cmovne ecx, eax
mov eax, dword [esi + 0x18]
mov dword [esp + 0x1c], ecx
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x100595d2
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x100595cf
mov edi, 1
jmp 0x10059609
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
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
push 0
push dword [esp + 0x20]
mov edx, edi
mov ecx, esi
call fcn.10022f50
mov edi, dword [esp + 0x54]
xor eax, eax
mov ecx, dword [esi + 0x20]
add esp, 8
mov dword [esp + 0x1c], ecx
mov edx, ecx
cmp byte [edi + 0x14], al
setne al
mov dword [esp + 0x40], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], ecx
jg 0x1005964e
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x10059685
mov edx, dword [esi + 0x20]
mov ecx, dword [esp + 0x1c]
lea eax, [edx + 1]
mov edx, dword [esp + 0x40]
mov dword [esi + 0x20], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
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 eax, dword [esi + 0x18]
mov edx, dword [edi + 8]
mov edi, dword [esi + 0x20]
mov dword [esp + 0x1c], edx
mov ecx, dword [eax + 0x54]
mov eax, edi
test edx, edx
je 0x100596fd
cmp ecx, edi
jg 0x100596b4
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x100596b1
mov edi, 1
jmp 0x100596e9
mov eax, dword [esi + 0x20]
inc eax
lea ecx, [edi + edi*4]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
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
push 0
push dword [esp + 0x20]
mov edx, edi
mov ecx, esi
call fcn.10022f50
add esp, 8
jmp 0x10059744
cmp ecx, edi
jg 0x1005970f
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x10059744
mov eax, dword [esi + 0x20]
inc eax
lea ecx, [edi + edi*4]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x1c
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 eax, dword [esp + 0x4c]
test byte [eax + 0x17], 1
jne 0x10059752
xor edi, edi
jmp 0x1005977f
mov eax, dword [esp + 0x2c]
mov edi, 1
test eax, eax
je 0x1005977f
mov ecx, dword [esp + 0x48]
movsx edx, word [ecx + 0x26]
cmp edx, edi
jl 0x1005977f
mov ecx, dword [eax + 4]
nop
movsx eax, word [ecx]
cmp eax, ebx
je 0x1005977f
inc edi
add ecx, 2
cmp edi, edx
jle 0x10059770
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x20]
mov edx, ecx
mov dword [esp + 0x1c], ecx
cmp dword [eax + 0x54], ecx
jg 0x100597a2
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x100597d5
mov edx, dword [esi + 0x20]
mov ecx, dword [esp + 0x1c]
lea eax, [edx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], 6
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x100597eb
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005981f
inc dword [esi + 0x20]
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x23
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 eax, dword [esp + 0x48]
mov edi, dword [esp + 0x4c]
movsx eax, word [eax + 0x26]
inc ebx
add edi, 0x18
cmp ebx, eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x4c], edi
jl 0x100594c0
jmp 0x10057b3e
mov ecx, ebx
call fcn.10062450
mov esi, eax
mov edx, 4
mov ecx, esi
call fcn.10023fd0
mov edx, dword [esp + 0x58]
mov eax, 1
mov dword [edx], 4
mov ecx, dword [ebx + 0x198]
test ecx, ecx
cmovne ebx, ecx
mov ecx, dword [esp + 0x28]
shl eax, cl
mov edx, dword [ebx + 0x14c]
mov edi, dword [ebx]
test edx, eax
jne 0x100598b2
bts edx, ecx
mov ecx, dword [esp + 0x34]
mov dword [ebx + 0x14c], edx
mov eax, dword [edi + 0x10]
mov eax, dword [eax + ecx + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax]
mov dword [ebx + ecx*4 + 0x150], eax
cmp ecx, 1
jne 0x100598b2
mov ecx, ebx
call fcn.100482d0
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x10059933
mov ecx, dword [esi + 0x10]
mov edx, str.table
push 0
push 1
push 0xffffffffffffffff
call fcn.10021f50
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x10059933
mov ecx, dword [esi + 0x10]
mov edx, str.index
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x28
call fcn.10021f50
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x10059933
mov ecx, dword [esi + 0x10]
mov edx, str.width
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x50
call fcn.10021f50
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x10059933
mov ecx, dword [esi + 0x10]
mov edx, str.height
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x78
call fcn.10021f50
add esp, 0xc
mov ebx, dword [esp + 0x30]
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x20], eax
test eax, eax
je 0x10057b3e
nop dword [eax]
mov ebx, dword [eax + 8]
mov edi, dword [esi + 0x20]
mov ecx, edi
mov eax, dword [ebx]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], edi
jg 0x1005997b
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x10059978
mov edi, 1
jmp 0x100599b2
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
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
push 0
push dword [esp + 0x20]
mov edx, edi
mov ecx, esi
call fcn.10022f50
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x100599df
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x10059a16
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x1c
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 cx, word [ebx + 0x2a]
call fcn.10009010
mov ecx, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov dword [esp + 0x1c], eax
mov eax, edi
cmp dword [ecx + 0x54], edi
jg 0x10059a3e
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x10059a73
mov eax, dword [esi + 0x20]
mov edx, dword [esp + 0x1c]
lea ecx, [edi + edi*4]
inc eax
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
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 cx, word [ebx + 0x1c]
call fcn.10009010
mov ecx, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov dword [esp + 0x1c], eax
mov eax, edi
cmp dword [ecx + 0x54], edi
jg 0x10059a9b
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x10059ad0
mov eax, dword [esi + 0x20]
mov edx, dword [esp + 0x1c]
lea ecx, [edi + edi*4]
inc eax
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
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 eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x10059ae6
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x10059b1a
inc dword [esi + 0x20]
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x23
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 4
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ebx, dword [ebx + 8]
test ebx, ebx
je 0x10059ca7
mov eax, dword [ebx]
mov edi, dword [esi + 0x20]
mov ecx, edi
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], edi
jg 0x10059b4d
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x10059b4a
mov edi, 1
jmp 0x10059b84
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
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
push 0
push dword [esp + 0x20]
mov edx, edi
mov ecx, esi
call fcn.10022f50
mov cx, word [ebx + 0x30]
add esp, 8
call fcn.10009010
mov ecx, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov dword [esp + 0x1c], eax
mov eax, edi
cmp dword [ecx + 0x54], edi
jg 0x10059bbe
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x10059bf3
mov eax, dword [esi + 0x20]
mov edx, dword [esp + 0x1c]
lea ecx, [edi + edi*4]
inc eax
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
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 eax, dword [ebx + 8]
mov cx, word [eax]
call fcn.10009010
mov ecx, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov dword [esp + 0x1c], eax
mov eax, edi
cmp dword [ecx + 0x54], edi
jg 0x10059c1d
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x10059c52
mov eax, dword [esi + 0x20]
mov edx, dword [esp + 0x1c]
lea ecx, [edi + edi*4]
inc eax
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
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 eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x10059c68
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x10059c9c
inc dword [esi + 0x20]
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x23
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 4
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ebx, dword [ebx + 0x14]
test ebx, ebx
jne 0x10059b25
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
mov dword [esp + 0x20], eax
test eax, eax
jne 0x10059950
jmp 0x10057b3e
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
test edi, edi
je 0x1005915a
push dword [esp + 0x48]
mov edx, edi
call fcn.10041d20
mov edi, eax
add esp, 4
mov dword [esp + 0x50], edi
test edi, edi
je 0x10057b3e
mov eax, dword [edi + 0xc]
mov edx, 3
mov ecx, esi
mov dword [esp + 0x1c], eax
call fcn.10023fd0
mov edx, dword [esp + 0x58]
mov dword [edx], 3
mov ecx, dword [ebx + 0x198]
test ecx, ecx
cmovne ebx, ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x24], ebx
mov eax, dword [esp + 0x24]
mov ebx, dword [ebx]
mov edx, dword [eax + 0x14c]
mov eax, 1
shl eax, cl
test edx, eax
jne 0x10059d64
mov eax, dword [esp + 0x24]
bts edx, ecx
mov ecx, dword [esp + 0x34]
mov dword [eax + 0x14c], edx
mov eax, dword [ebx + 0x10]
mov edx, dword [esp + 0x28]
mov eax, dword [eax + ecx + 0xc]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax]
mov dword [ecx + edx*4 + 0x150], eax
cmp edx, 1
jne 0x10059d64
call fcn.100482d0
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x10059dc4
mov ecx, dword [esi + 0x10]
mov edx, str.seqno
push 0
push 1
push 0xffffffffffffffff
call fcn.10021f50
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x10059dc4
mov ecx, dword [esi + 0x10]
mov edx, 0x100f3824
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x28
call fcn.10021f50
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x10059dc4
mov ecx, dword [esi + 0x10]
mov edx, str.name
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x50
call fcn.10021f50
add esp, 0xc
xor eax, eax
xor ebx, ebx
cmp ax, word [edi + 0x32]
jae 0x10057b3e
mov eax, dword [edi + 4]
mov edi, dword [esi + 0x20]
mov ecx, edi
movzx eax, word [eax + ebx*2]
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], edi
jg 0x10059df8
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x10059e2b
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
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 eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10059e46
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x10059eb0
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
movsx edx, dx
mov word [eax + ecx*4], 0x19
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 eax, dword [esp + 0x1c]
lea ecx, [edx + edx*2]
mov edi, dword [esi + 0x20]
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*8]
mov ecx, edi
mov dword [esp + 0x40], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], edi
jg 0x10059ebc
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x10059eb9
mov edi, 1
jmp 0x10059ef3
mov edx, dword [esp + 0x20]
movsx edx, dx
jmp 0x10059e80
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
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
push 0
push dword [esp + 0x44]
mov edx, edi
mov ecx, esi
call fcn.10022f50
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x10059f1b
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x10059f4f
inc dword [esi + 0x20]
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x23
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 edi, dword [esp + 0x50]
inc ebx
movzx eax, word [edi + 0x32]
cmp ebx, eax
jl 0x10059dd2
jmp 0x10057b3e
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
test edi, edi
je 0x1005915a
push dword [esp + 0x48]
mov edx, edi
call fcn.10041ba0
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x10059156
mov ecx, dword [esp + 0x24]
call fcn.10062450
mov esi, eax
mov edx, 3
mov ecx, esi
call fcn.10023fd0
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x24]
mov dword [edx], 3
mov ecx, dword [eax + 0x198]
test ecx, ecx
cmovne eax, ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x24], eax
mov edx, dword [eax + 0x14c]
mov edi, dword [eax]
mov eax, 1
shl eax, cl
test edx, eax
jne 0x1005a00b
mov eax, dword [esp + 0x24]
bts edx, ecx
mov ecx, dword [esp + 0x34]
mov dword [eax + 0x14c], edx
mov eax, dword [edi + 0x10]
mov edx, dword [esp + 0x28]
mov eax, dword [eax + ecx + 0xc]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax]
mov dword [ecx + edx*4 + 0x150], eax
cmp edx, 1
jne 0x1005a00b
call fcn.100482d0
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x1005a06b
mov ecx, dword [esi + 0x10]
mov edx, 0x100f3868
push 0
push 1
push 0xffffffffffffffff
call fcn.10021f50
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x1005a06b
mov ecx, dword [esi + 0x10]
mov edx, str.name
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x28
call fcn.10021f50
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x1005a06b
mov ecx, dword [esi + 0x10]
mov edx, str.unique
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x50
call fcn.10021f50
add esp, 0xc
mov ebx, dword [ebx + 8]
xor edx, edx
mov dword [esp + 0x20], edx
test ebx, ebx
je 0x10057b3e
nop dword [eax]
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005a09f
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005a0d2
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
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 eax, dword [ebx]
mov edi, dword [esi + 0x20]
mov ecx, edi
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], edi
jg 0x1005a0fa
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x1005a0f7
mov edi, 1
jmp 0x1005a131
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
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
push 0
push dword [esp + 0x20]
mov edx, edi
mov ecx, esi
call fcn.10022f50
mov edi, dword [esi + 0x20]
xor eax, eax
add esp, 8
mov ecx, edi
cmp byte [ebx + 0x36], al
setne al
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], edi
jg 0x1005a16a
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005a1a1
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x1c]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
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 eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x1005a1b7
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005a1eb
inc dword [esi + 0x20]
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x23
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 edx, dword [esp + 0x20]
mov ebx, dword [ebx + 0x14]
inc edx
mov dword [esp + 0x20], edx
test ebx, ebx
jne 0x1005a080
jmp 0x10057b3e
mov edx, 3
mov ecx, esi
call fcn.10023fd0
mov edx, dword [esp + 0x58]
mov dword [edx], 3
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x1005a27a
mov ecx, dword [esi + 0x10]
mov edx, 0x100f3868
push 0
push 1
push 0xffffffffffffffff
call fcn.10021f50
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x1005a27a
mov ecx, dword [esi + 0x10]
mov edx, str.name
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x28
call fcn.10021f50
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x1005a27a
mov ecx, dword [esi + 0x10]
mov edx, str.file
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x50
call fcn.10021f50
add esp, 0xc
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x20], 0
cmp dword [ecx + 0x14], 0
jle 0x10057b42
xor ebx, ebx
mov eax, dword [ecx + 0x10]
cmp dword [ebx + eax + 4], 0
je 0x1005a446
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005a2bb
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005a2f2
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
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 eax, dword [esp + 0x10]
mov edi, dword [esi + 0x20]
mov ecx, edi
mov eax, dword [eax + 0x10]
mov eax, dword [ebx + eax]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], edi
jg 0x1005a322
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x1005a31f
mov edi, 1
jmp 0x1005a359
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
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
push 0
push dword [esp + 0x20]
mov edx, edi
mov ecx, esi
call fcn.10022f50
mov eax, dword [esp + 0x18]
add esp, 8
mov eax, dword [eax + 0x10]
mov eax, dword [ebx + eax + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax]
cmp byte [eax + 0xf], 0
je 0x1005a38b
mov dword [esp + 0x2c], 0x100f0188
jmp 0x1005a395
mov eax, dword [eax + 0xa8]
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x1005a3b2
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x1005a3b2
mov edi, 1
jmp 0x1005a3e6
inc dword [esi + 0x20]
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
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
push 0
push dword [esp + 0x30]
mov edx, edi
mov ecx, esi
call fcn.10022f50
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x1005a40e
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005a442
inc dword [esi + 0x20]
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x23
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 ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
add ebx, 0x10
inc eax
mov dword [esp + 0x20], eax
cmp eax, dword [ecx + 0x14]
jl 0x1005a292
jmp 0x10057b42
mov edx, 2
mov dword [esp + 0x20], 0
mov ecx, esi
call fcn.10023fd0
mov edx, dword [esp + 0x58]
mov dword [edx], 2
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x1005a4bd
mov ecx, dword [esi + 0x10]
mov edx, 0x100f3868
push 0
push 1
push 0xffffffffffffffff
call fcn.10021f50
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x1005a4bd
mov ecx, dword [esi + 0x10]
mov edx, str.name
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x28
call fcn.10021f50
add esp, 0xc
mov ebx, dword [esp + 0x10]
mov ebx, dword [ebx + 0x1b4]
test ebx, ebx
je 0x10057b3e
nop
mov eax, dword [ebx + 8]
mov edi, dword [esi + 0x20]
mov ecx, edi
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], edi
jg 0x1005a4f2
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005a529
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
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 eax, dword [esp + 0x1c]
mov edi, dword [esi + 0x20]
mov ecx, edi
inc dword [esp + 0x20]
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], edi
jg 0x1005a559
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x1005a556
mov edi, 1
jmp 0x1005a590
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
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
push 0
push dword [esp + 0x20]
mov edx, edi
mov ecx, esi
call fcn.10022f50
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x1005a5b8
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005a5ec
inc dword [esi + 0x20]
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x23
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 ebx, dword [ebx]
test ebx, ebx
jne 0x1005a4d0
jmp 0x10057b3e
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
test edi, edi
je 0x1005915a
push dword [esp + 0x48]
mov edx, edi
call fcn.10041ba0
mov ebx, eax
add esp, 4
mov dword [esp + 0x40], ebx
test ebx, ebx
je 0x10059156
mov ecx, dword [esp + 0x24]
call fcn.10062450
mov ebx, dword [ebx + 0x10]
mov esi, eax
mov dword [esp + 0x44], ebx
test ebx, ebx
je 0x10059156
mov edx, 8
mov dword [esp + 0x3c], 0
mov ecx, esi
call fcn.10023fd0
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x24]
mov dword [edx], 8
mov eax, dword [ecx + 0x198]
test eax, eax
cmovne ecx, eax
mov eax, 1
mov dword [esp + 0x24], ecx
mov edx, dword [ecx + 0x14c]
mov edi, dword [ecx]
mov ecx, dword [esp + 0x28]
shl eax, cl
test edx, eax
jne 0x1005a6bc
mov eax, dword [esp + 0x24]
bts edx, ecx
mov ecx, dword [esp + 0x34]
mov dword [eax + 0x14c], edx
mov eax, dword [edi + 0x10]
mov edx, dword [esp + 0x28]
mov eax, dword [eax + ecx + 0xc]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax]
mov dword [ecx + edx*4 + 0x150], eax
cmp edx, 1
jne 0x1005a6bc
call fcn.100482d0
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x1005a7e1
mov ecx, dword [esi + 0x10]
mov edx, 0x100f3874
push 0
push 1
push 0xffffffffffffffff
call fcn.10021f50
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x1005a7e1
mov ecx, dword [esi + 0x10]
mov edx, 0x100f3868
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x28
call fcn.10021f50
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x1005a7e1
mov ecx, dword [esi + 0x10]
mov edx, str.table
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x50
call fcn.10021f50
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x1005a7e1
mov ecx, dword [esi + 0x10]
mov edx, str.from
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x78
call fcn.10021f50
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x1005a7e1
mov ecx, dword [esi + 0x10]
mov edx, 0x100f3880
push 0
push 1
push 0xffffffffffffffff
add ecx, 0xa0
call fcn.10021f50
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x1005a7e1
mov ecx, dword [esi + 0x10]
mov edx, str.on_update
push 0
push 1
push 0xffffffffffffffff
add ecx, 0xc8
call fcn.10021f50
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x1005a7e1
mov ecx, dword [esi + 0x10]
mov edx, str.on_delete
push 0
push 1
push 0xffffffffffffffff
add ecx, 0xf0
call fcn.10021f50
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x1005a7e1
mov ecx, dword [esi + 0x10]
mov edx, str.match
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x118
call fcn.10021f50
add esp, 0xc
mov dword [esp + 0x50], 0x61
xor eax, eax
nop dword [eax + eax]
cmp dword [ebx + 0x14], 0
mov dword [esp + 0x20], 0
jle 0x1005ac52
lea eax, [ebx + 0x24]
mov dword [esp + 0x2c], eax
nop dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x60], eax
movzx eax, byte [ebx + 0x19]
add eax, 0xfffffffa
cmp eax, 3
ja case.default.0x1005a823
jmp dword [eax*4 + 0x1005daf8]
mov dword [esp + 0x54], str.SET_NULL
jmp 0x1005a85a
mov dword [esp + 0x54], str.SET_DEFAULT
jmp 0x1005a85a
mov dword [esp + 0x54], str.CASCADE
jmp 0x1005a85a
mov dword [esp + 0x54], str.RESTRICT
jmp 0x1005a85a
mov dword [esp + 0x54], str.NO_ACTION
movzx eax, byte [ebx + 0x1a]
add eax, 0xfffffffa
cmp eax, 3
ja case.default.0x1005a866
jmp dword [eax*4 + 0x1005db08]
mov ebx, str.SET_NULL
jmp 0x1005a88e
mov ebx, str.SET_DEFAULT
jmp 0x1005a88e
mov ebx, str.CASCADE
jmp 0x1005a88e
mov ebx, str.RESTRICT
jmp 0x1005a88e
mov ebx, str.NO_ACTION
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005a8a9
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005a8e0
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x3c]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
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 eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005a8fb
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005a932
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
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 eax, dword [esp + 0x44]
mov edi, dword [esi + 0x20]
mov ecx, edi
mov eax, dword [eax + 8]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], edi
jg 0x1005a95f
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x1005a95c
mov edi, 1
jmp 0x1005a996
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
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
push 0
push dword [esp + 0x20]
mov edx, edi
mov ecx, esi
call fcn.10022f50
mov eax, dword [esp + 0x34]
add esp, 8
mov edi, dword [esi + 0x20]
mov eax, dword [eax]
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*8]
mov ecx, edi
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], edi
jg 0x1005a9e1
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x1005a9de
mov edi, 1
jmp 0x1005aa18
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
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 + 0x20]
mov edx, edi
mov ecx, esi
call fcn.10022f50
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005aa50
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x1005aa4d
mov edx, dword [esp + 0x60]
mov edi, 1
jmp 0x1005aa95
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x60]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
test edx, edx
lea ecx, [eax + ecx*4]
mov eax, 0x1c
cmovne eax, dword [esp + 0x50]
mov byte [ecx], al
mov byte [ecx + 3], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 5
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov byte [ecx + 1], 0
push 0
push edx
mov edx, edi
mov ecx, esi
call fcn.10022f50
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005aac6
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x1005aac3
mov edi, 1
jmp 0x1005aafd
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 6
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push ebx
mov edx, edi
mov ecx, esi
call fcn.10022f50
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005ab2e
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x1005ab2b
mov edi, 1
jmp 0x1005ab65
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
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
push 0
push dword [esp + 0x58]
mov edx, edi
mov ecx, esi
call fcn.10022f50
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005ab99
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x1005ab96
mov edi, 1
jmp 0x1005abd0
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 8
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push str.NONE
mov edx, edi
mov ecx, esi
call fcn.10022f50
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x1005abf9
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005ac2d
inc dword [esi + 0x20]
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x23
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 8
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x44]
inc ecx
mov eax, dword [esp + 0x2c]
add eax, 8
mov dword [esp + 0x20], ecx
mov dword [esp + 0x2c], eax
cmp ecx, dword [ebx + 0x14]
jl 0x1005a810
mov eax, dword [esp + 0x3c]
mov ebx, dword [ebx + 4]
inc eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x44], ebx
test ebx, ebx
jne 0x1005a7f0
jmp 0x10057b3e
mov edx, dword [esp + 0x58]
mov eax, dword [edx]
lea ecx, [eax + 1]
add eax, 5
mov dword [esp + 0x64], eax
inc eax
mov dword [esp + 0x60], ecx
mov ecx, ebx
mov dword [esp + 0x30], eax
mov dword [edx], eax
call fcn.10062450
mov edi, eax
mov edx, 4
mov ecx, edi
call fcn.10023fd0
mov eax, dword [edi]
cmp byte [eax + 0x40], 0
jne 0x1005ad1c
mov ecx, dword [edi + 0x10]
mov edx, str.table
push 0
push 1
push 0xffffffffffffffff
call fcn.10021f50
mov eax, dword [edi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x1005ad1c
mov ecx, dword [edi + 0x10]
mov edx, str.rowid
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x28
call fcn.10021f50
mov eax, dword [edi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x1005ad1c
mov ecx, dword [edi + 0x10]
mov edx, str.parent
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x50
call fcn.10021f50
mov eax, dword [edi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x1005ad1c
mov ecx, dword [edi + 0x10]
mov edx, str.fkid
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x78
call fcn.10021f50
add esp, 0xc
mov eax, dword [ebx + 0x198]
mov edx, ebx
mov ecx, dword [esp + 0x28]
test eax, eax
cmovne edx, eax
mov eax, 1
shl eax, cl
mov esi, dword [edx + 0x14c]
mov ebx, dword [edx]
test esi, eax
jne 0x1005ad6b
bts esi, ecx
mov dword [edx + 0x14c], esi
mov eax, dword [ebx + 0x10]
mov ebx, dword [esp + 0x34]
mov eax, dword [eax + ebx + 0xc]
mov eax, dword [eax]
mov dword [edx + ecx*4 + 0x150], eax
cmp ecx, 1
jne 0x1005ad6f
mov ecx, edx
call fcn.100482d0
jmp 0x1005ad6f
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x10]
mov eax, dword [ebx + eax + 0xc]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x10057b3e
cmp dword [esp + 0x14], 0
je 0x1005ae25
mov ebx, dword [esp + 0x24]
mov ecx, dword [ebx]
cmp byte [ecx + 0x91], 0
jne 0x1005adbb
lea edx, [ebx + 4]
call fcn.1005e320
test eax, eax
je 0x1005adbb
mov dword [ebx + 0xc], eax
inc dword [ebx + 0x40]
xor ebx, ebx
mov dword [esp + 0x4c], ebx
xor eax, eax
jmp 0x1005ae2e
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0x14]
mov ecx, dword [ebx]
push esi
call fcn.10041ba0
mov ebx, eax
add esp, 4
mov dword [esp + 0x4c], ebx
test ebx, ebx
jne 0x1005ae21
push dword [esp + 0x14]
test esi, esi
je 0x1005ae03
push esi
push str.no_such_table
push str._s:__s._s
push dword [esp + 0x34]
call fcn.10007bb0
mov eax, dword [esp + 0x38]
add esp, 0x14
mov byte [eax + 0x11], 1
xor eax, eax
jmp 0x1005ae2e
push str.no_such_table
push str._s:__s
push dword [esp + 0x30]
call fcn.10007bb0
mov eax, dword [esp + 0x34]
add esp, 0x10
mov byte [eax + 0x11], 1
xor eax, eax
jmp 0x1005ae2e
mov ebx, dword [eax + 8]
mov eax, dword [eax]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], eax
test ebx, ebx
je 0x1005b747
cmp dword [ebx + 0x10], 0
je 0x1005b747
push dword [ebx]
mov esi, dword [esp + 0x28]
mov ecx, esi
mov edx, dword [esp + 0x2c]
push 0
push dword [ebx + 0x20]
call fcn.10041390
mov ecx, dword [esp + 0x64]
add esp, 0xc
movsx eax, word [ebx + 0x26]
add eax, dword [esp + 0x30]
cmp eax, dword [ecx]
jle 0x1005ae6f
mov dword [ecx], eax
push 0x36
push ebx
push dword [esp + 0x30]
xor edx, edx
mov ecx, esi
call fcn.100519a0
mov eax, dword [edi + 0x18]
add esp, 0xc
mov esi, dword [edi + 0x20]
mov ebx, dword [ebx]
cmp dword [eax + 0x54], esi
jg 0x1005aea1
mov ecx, edi
call fcn.10022900
test eax, eax
je 0x1005aea1
mov esi, 1
jmp 0x1005aed5
inc dword [edi + 0x20]
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x60]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
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
push 0
push ebx
mov edx, esi
mov ecx, edi
call fcn.10022f50
mov esi, dword [esp + 0x54]
add esp, 8
mov eax, 1
mov dword [esp + 0x44], eax
mov ebx, dword [esi + 0x10]
test ebx, ebx
je 0x1005b00a
nop dword [eax]
push dword [esp + 0x48]
mov edx, dword [ebx + 8]
mov ecx, dword [esp + 0x14]
call fcn.10041ba0
mov esi, eax
add esp, 4
test esi, esi
je 0x1005aff2
push dword [esi]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
push 0
push dword [esi + 0x20]
mov dword [esp + 0x40], 0
call fcn.10041390
mov ecx, dword [esp + 0x30]
lea eax, [esp + 0x40]
add esp, 0xc
mov edx, esi
push 0
push eax
push ebx
call fcn.1004ee30
add esp, 0xc
test eax, eax
jne 0x10057b3e
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x1005af7b
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x24]
push 0x36
push esi
push dword [esp + 0x30]
call fcn.100519a0
add esp, 0xc
jmp 0x1005aff2
mov eax, dword [eax + 0x2c]
mov esi, dword [edi + 0x20]
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x18]
cmp dword [eax + 0x54], esi
jg 0x1005af98
mov ecx, edi
call fcn.10022900
test eax, eax
jne 0x1005afcc
inc dword [edi + 0x20]
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x44]
mov word [eax + ecx*4], 0x36
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x28]
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x34]
push 0xfffffffffffffffa
push ecx
mov esi, dword [eax + 8]
mov ecx, eax
call fcn.10048d60
add esp, 4
or edx, 0xffffffff
mov ecx, esi
push eax
call fcn.10022f50
add esp, 8
mov eax, dword [esp + 0x44]
mov ebx, dword [ebx + 4]
inc eax
mov dword [esp + 0x44], eax
test ebx, ebx
jne 0x1005af00
mov esi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 0x44], eax
jge 0x1005b016
mov dword [ecx + 0x44], eax
mov eax, dword [edi + 0x18]
mov edx, dword [edi + 0x20]
mov ecx, edx
mov dword [esp + 0x3c], edx
cmp dword [eax + 0x54], edx
jg 0x1005b043
mov ecx, edi
call fcn.10022900
test eax, eax
je 0x1005b03c
mov dword [esp + 0x3c], 1
jmp 0x1005b07a
mov ecx, dword [edi + 0x20]
mov edx, dword [esp + 0x3c]
lea eax, [ecx + 1]
mov dword [edi + 0x20], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 4]
mov word [eax + ecx*4], 0x6c
mov byte [eax + ecx*4 + 3], 0
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 ebx, dword [esi + 0x10]
mov dword [esp + 0x44], 1
mov dword [esp + 0x54], ebx
test ebx, ebx
je 0x1005b6cf
push dword [esp + 0x48]
mov edx, dword [ebx + 8]
mov ecx, dword [esp + 0x14]
call fcn.10041ba0
add esp, 4
mov dword [esp + 0x1c], eax
mov dword [esp + 0x34], 0
mov dword [esp + 0x2c], 0
test eax, eax
je 0x1005b32a
lea ecx, [esp + 0x2c]
mov edx, eax
push ecx
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x2c]
push ebx
call fcn.1004ee30
add esp, 0xc
mov ecx, edi
call fcn.10022a30
cmp dword [esp + 0x34], 0
mov dword [esp + 0x38], eax
jne 0x1005b335
mov eax, dword [edi + 0x18]
mov ebx, dword [ebx + 0x24]
mov esi, dword [edi + 0x20]
mov ecx, dword [eax + 0x54]
mov eax, dword [esp + 0x4c]
movsx eax, word [eax + 0x24]
cmp ebx, eax
mov eax, esi
je 0x1005b20e
cmp ecx, esi
jg 0x1005b11f
mov ecx, edi
call fcn.10022900
test eax, eax
jne 0x1005b150
mov eax, dword [edi + 0x20]
mov edx, dword [esp + 0x30]
lea ecx, [esi + esi*4]
inc eax
mov dword [edi + 0x20], eax
mov eax, dword [edi + 4]
mov word [eax + ecx*4], 0x2f
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
push dword [esp + 0x30]
mov edx, dword [esp + 0x50]
mov ecx, edi
push ebx
call fcn.1006bee0
mov eax, dword [edi + 0x18]
add esp, 8
mov esi, dword [edi + 0x20]
mov ecx, esi
cmp dword [eax + 0x54], esi
jg 0x1005b17e
mov ecx, edi
call fcn.10022900
test eax, eax
jne 0x1005b1b5
mov ecx, dword [edi + 0x20]
mov edx, dword [esp + 0x30]
lea eax, [ecx + 1]
mov dword [edi + 0x20], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov word [eax + ecx*4], 0x4c
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x38]
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [edi + 0x20]
mov ecx, esi
mov eax, dword [edi + 0x18]
lea ebx, [esi + 3]
cmp dword [eax + 0x54], esi
jg 0x1005b1d7
mov ecx, edi
call fcn.10022900
test eax, eax
jne 0x1005b257
mov ecx, dword [edi + 0x20]
mov edx, dword [esp + 0x30]
lea eax, [ecx + 1]
mov dword [edi + 0x20], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov word [eax + ecx*4], 0x26
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], ebx
mov ebx, edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x1005b25b
cmp ecx, esi
jg 0x1005b220
mov ecx, edi
call fcn.10022900
test eax, eax
jne 0x1005b257
mov eax, dword [edi + 0x20]
mov ebx, dword [esp + 0x30]
lea ecx, [esi + esi*4]
inc eax
mov dword [edi + 0x20], eax
mov eax, dword [edi + 4]
mov word [eax + ecx*4], 0x67
mov byte [eax + ecx*4 + 3], 0
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 0x1005b25b
mov ebx, dword [esp + 0x30]
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
mov ecx, esi
cmp dword [eax + 0x54], esi
jg 0x1005b276
mov ecx, edi
call fcn.10022900
test eax, eax
jne 0x1005b2a9
mov ecx, dword [edi + 0x20]
mov edx, dword [esp + 0x44]
lea eax, [ecx + 1]
mov dword [edi + 0x20], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov word [eax + ecx*4], 0x46
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
mov ecx, esi
cmp dword [eax + 0x54], esi
jg 0x1005b2c4
mov ecx, edi
call fcn.10022900
test eax, eax
jne 0x1005b2fd
mov ecx, dword [edi + 0x20]
mov ebx, dword [esp + 0x38]
lea eax, [ecx + 1]
mov dword [edi + 0x20], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov word [eax + ecx*4], 0x10
mov byte [eax + ecx*4 + 3], 0
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 0x1005b301
mov ebx, dword [esp + 0x38]
mov edx, dword [edi + 0x20]
lea eax, [edx - 2]
cmp edx, eax
jbe 0x1005b318
lea ecx, [eax + eax*4]
mov eax, dword [edi + 4]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [edi + 0x20]
mov eax, dword [edi + 0x18]
lea ecx, [edx - 1]
mov dword [esp + 0x38], ebx
mov dword [eax + 0x58], ecx
jmp 0x1005b4e2
mov ecx, edi
call fcn.10022a30
mov dword [esp + 0x38], eax
mov ebx, dword [ebx + 0x14]
xor esi, esi
test ebx, ebx
jle 0x1005b3ec
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x30]
add edx, 0x24
mov dword [esp + 0x20], ecx
mov dword [esp + 0x70], edx
mov eax, dword [esp + 0x2c]
test eax, eax
lea eax, [eax + esi*4]
jne 0x1005b362
mov eax, edx
mov eax, dword [eax]
mov edx, dword [esp + 0x4c]
push ecx
push eax
push 0
mov ecx, edi
call fcn.10039c00
mov eax, dword [edi + 0x18]
add esp, 0xc
mov ebx, dword [edi + 0x20]
mov ecx, ebx
cmp dword [eax + 0x54], ebx
jg 0x1005b391
mov ecx, edi
call fcn.10022900
test eax, eax
jne 0x1005b3c8
mov ecx, dword [edi + 0x20]
mov edx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [edi + 0x20], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [edi + 4]
mov word [eax + ecx*4], 0x4c
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x38]
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 + 0x54]
inc esi
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x20]
add edx, 8
inc ecx
mov dword [esp + 0x70], edx
mov ebx, dword [eax + 0x14]
mov dword [esp + 0x20], ecx
cmp esi, ebx
jl 0x1005b355
cmp dword [esp + 0x1c], 0
je 0x1005b4e2
mov edx, dword [esp + 0x34]
mov ecx, edi
call fcn.10051af0
mov ecx, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x1c], eax
mov eax, esi
cmp dword [ecx + 0x54], esi
jg 0x1005b433
mov ecx, edi
call fcn.10022900
test eax, eax
je 0x1005b430
mov esi, 1
jmp 0x1005b468
mov eax, dword [edi + 0x20]
mov edx, dword [esp + 0x30]
lea ecx, [esi + esi*4]
inc eax
mov dword [edi + 0x20], eax
mov eax, dword [edi + 4]
mov word [eax + ecx*4], 0x31
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x64]
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
push ebx
push dword [esp + 0x44]
mov edx, esi
mov ecx, edi
call fcn.10022f50
mov eax, dword [edi + 0x18]
add esp, 8
mov esi, dword [edi + 0x20]
mov ecx, esi
cmp dword [eax + 0x54], esi
jg 0x1005b49b
mov ecx, edi
call fcn.10022900
test eax, eax
je 0x1005b498
mov esi, 1
jmp 0x1005b4d2
mov ecx, dword [edi + 0x20]
mov edx, dword [esp + 0x44]
lea eax, [ecx + 1]
mov dword [edi + 0x20], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov word [eax + ecx*4], 0x45
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x38]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x64]
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
push 0xfffffffffffffff2
push 0
mov edx, esi
mov ecx, edi
call fcn.10022f50
add esp, 8
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
mov ecx, esi
cmp dword [eax + 0x54], esi
jg 0x1005b4fd
mov ecx, edi
call fcn.10022900
test eax, eax
jne 0x1005b535
mov ecx, dword [edi + 0x20]
lea eax, [ecx + 1]
mov dword [edi + 0x20], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov word [eax + ecx*4], 0x67
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x60]
inc eax
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov eax, dword [esp + 0x54]
mov esi, dword [edi + 0x20]
mov ecx, esi
mov ebx, dword [eax + 8]
mov eax, dword [edi + 0x18]
cmp dword [eax + 0x54], esi
jg 0x1005b55e
mov ecx, edi
call fcn.10022900
test eax, eax
je 0x1005b55b
mov esi, 1
jmp 0x1005b598
mov ecx, dword [edi + 0x20]
lea eax, [ecx + 1]
mov dword [edi + 0x20], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x60]
add eax, 2
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
push 0
push ebx
mov edx, esi
mov ecx, edi
call fcn.10022f50
mov eax, dword [edi + 0x18]
add esp, 8
mov esi, dword [edi + 0x20]
mov ecx, esi
cmp dword [eax + 0x54], esi
jg 0x1005b5c2
mov ecx, edi
call fcn.10022900
test eax, eax
jne 0x1005b5fe
mov ecx, dword [edi + 0x20]
mov ebx, dword [esp + 0x60]
lea eax, [ecx + 1]
mov dword [edi + 0x20], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x44]
dec eax
mov dword [ecx + 4], eax
lea eax, [ebx + 3]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
jmp 0x1005b602
mov ebx, dword [esp + 0x60]
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
cmp dword [eax + 0x54], esi
jg 0x1005b618
mov ecx, edi
call fcn.10022900
test eax, eax
jne 0x1005b648
inc dword [edi + 0x20]
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov word [eax + ecx*4], 0x23
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], 4
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ebx, dword [esp + 0x38]
mov edx, dword [edi + 0x18]
not ebx
test ebx, ebx
js 0x1005b662
mov ecx, dword [edx + 0x70]
test ecx, ecx
je 0x1005b662
mov eax, dword [edi + 0x20]
mov dword [ecx + ebx*4], eax
mov eax, dword [edi + 0x20]
mov ecx, dword [esp + 0x2c]
dec eax
mov dword [edx + 0x58], eax
test ecx, ecx
je 0x1005b6b8
mov ebx, dword [esp + 0x10]
cmp dword [ebx + 0x208], 0
je 0x1005b689
mov edx, ecx
mov ecx, ebx
call fcn.10004ee0
jmp 0x1005b6b8
cmp ecx, dword [ebx + 0x114]
jb 0x1005b6af
cmp ecx, dword [ebx + 0x118]
jae 0x1005b6af
mov eax, dword [ebx + 0x110]
mov dword [ecx], eax
mov dword [ebx + 0x110], ecx
dec dword [ebx + 0xfc]
jmp 0x1005b6b8
push ecx
call fcn.10004e40
add esp, 4
mov ebx, dword [esp + 0x54]
inc dword [esp + 0x44]
mov ebx, dword [ebx + 4]
mov dword [esp + 0x54], ebx
test ebx, ebx
jne 0x1005b091
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
mov ecx, esi
cmp dword [eax + 0x54], esi
jg 0x1005b6ea
mov ecx, edi
call fcn.10022900
test eax, eax
jne 0x1005b722
mov ecx, dword [edi + 0x20]
lea eax, [ecx + 1]
mov dword [edi + 0x20], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov word [eax + ecx*4], 9
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x3c]
inc eax
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov edx, dword [edi + 0x20]
mov eax, dword [esp + 0x3c]
cmp edx, eax
jbe 0x1005b73a
lea ecx, [eax + eax*4]
mov eax, dword [edi + 4]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [edi + 0x20]
mov eax, dword [edi + 0x18]
lea ecx, [edx - 1]
mov dword [eax + 0x58], ecx
mov eax, dword [esp + 0x50]
test eax, eax
jne 0x1005ad85
jmp 0x10057b3e
mov edi, dword [esp + 0x14]
test edi, edi
je 0x10059156
push 0
mov edx, 1
mov ecx, edi
call fcn.100575a0
mov edi, dword [esp + 0x14]
add esp, 4
xor ebx, ebx
mov ecx, 0x100f543c
test al, al
mov esi, 0x100f6180
mov edx, str.like
push 0
push 0
setne bl
test al, al
push 0
cmove esi, ecx
mov ecx, edi
push 0x1004ce00
push esi
push 1
push 2
call fcn.100809d0
add esp, 0x1c
mov edx, str.like
mov ecx, edi
push 0
push 0
push 0
push 0x1004ce00
push esi
push 1
push 3
call fcn.100809d0
add esp, 0x1c
mov edx, str.glob
mov ecx, edi
push 0
push 0
push 0
push 0x1004ce00
push 0x100f6444
push 1
push 2
call fcn.100809d0
add esp, 0x1c
mov eax, str.glob
inc eax
cmp byte [eax], 0
jne 0x1005b7f1
push 0
sub eax, str.glob
mov edx, str.glob
push 1
and eax, 0x3fffffff
mov ecx, edi
push 2
push eax
call fcn.10049790
add esp, 0x10
test eax, eax
je 0x1005b820
or word [eax + 2], 0xc
mov eax, str.like
inc eax
cmp byte [eax], 0
jne 0x1005b825
push 0
sub eax, str.like
mov edx, str.like
push 1
and eax, 0x3fffffff
mov ecx, edi
push 2
push eax
call fcn.10049790
add esp, 0x10
test eax, eax
je 0x1005b861
xor ecx, ecx
test ebx, ebx
setne cl
lea ecx, [ecx*8 + 4]
or word [eax + 2], cx
mov ecx, edi
jmp 0x10057b42
mov eax, dword [esp + 0x18]
or ecx, 0xffffffff
mov edx, dword [esp + 0x58]
movzx eax, byte [eax]
mov al, byte [eax + 0x100f67d0]
mov byte [esp + 0x5f], al
mov eax, dword [esp + 0x38]
cmp dword [eax], 0
mov eax, dword [esp + 0x28]
cmove eax, ecx
mov dword [edx], 6
lea edx, [ecx + 2]
mov dword [esp + 0x28], eax
mov ecx, esi
call fcn.10023fd0
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x1005b8c0
mov ecx, dword [esi + 0x10]
mov edx, str.integrity_check
push 0
push 1
push 0xffffffffffffffff
call fcn.10021f50
add esp, 0xc
mov eax, dword [esp + 0x14]
mov ebx, 0x64
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x50], ebx
test eax, eax
je 0x1005b8f2
lea edx, [esp + 0x50]
mov ecx, eax
call fcn.100087a0
mov ebx, dword [esp + 0x50]
mov eax, 0x64
test ebx, ebx
cmovle ebx, eax
mov dword [esp + 0x1c], ebx
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005b90d
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005b940
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
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 ecx, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x34], eax
cmp dword [ecx + 0x14], eax
jle 0x1005d07d
mov edx, dword [esp + 0x28]
xor ebx, ebx
mov dword [esp + 0x3c], ebx
test edx, edx
js 0x1005b969
cmp eax, edx
jne 0x1005d06f
mov ecx, dword [esp + 0x24]
mov edi, ecx
mov eax, dword [ecx + 0x198]
test eax, eax
mov ecx, dword [esp + 0x34]
cmovne edi, eax
mov eax, dword [edi]
mov edx, dword [edi + 0x14c]
mov dword [esp + 0x40], eax
mov eax, 1
shl eax, cl
test edx, eax
jne 0x1005b9c2
mov eax, dword [esp + 0x40]
bts edx, ecx
mov dword [edi + 0x14c], edx
mov edx, ecx
add edx, edx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + edx*8 + 0xc]
mov eax, dword [eax]
mov dword [edi + ecx*4 + 0x150], eax
cmp ecx, 1
jne 0x1005b9c2
mov ecx, edi
call fcn.100482d0
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005b9e4
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x1005b9e1
mov edi, 1
jmp 0x1005ba0e
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x89
mov byte [eax + ecx*4 + 3], bl
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], ebx
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x20]
mov edx, ecx
mov dword [esp + 0x40], ecx
cmp dword [eax + 0x54], ecx
jg 0x1005ba31
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005ba57
mov edx, dword [esi + 0x20]
mov ecx, dword [esp + 0x40]
lea eax, [edx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x18
mov byte [eax + ecx*4 + 3], bl
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], ebx
mov edx, dword [esi + 0x20]
cmp edx, edi
jbe 0x1005ba6b
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
lea ecx, [edx - 1]
mov dword [eax + 0x58], ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x34]
shl ecx, 4
mov dword [esp + 0x70], ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx + 0xc]
mov dword [esp + 0x2c], eax
mov eax, dword [eax + 0x10]
mov dword [esp + 0x50], eax
test eax, eax
je 0x1005bb8b
nop dword [eax]
mov eax, dword [eax + 8]
mov dword [esp + 0x64], eax
test byte [eax + 0x2c], 0x20
jne 0x1005bb0d
mov eax, dword [eax + 0x20]
mov edi, dword [esi + 0x20]
mov ecx, edi
mov dword [esp + 0x40], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], edi
jg 0x1005bacf
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005bb04
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x40]
mov dword [ecx + 4], eax
lea eax, [ebx + 2]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov eax, dword [esp + 0x64]
inc ebx
mov dword [esp + 0x3c], ebx
mov edi, dword [eax + 8]
test edi, edi
je 0x1005bb79
mov eax, dword [edi + 0x2c]
mov ebx, dword [esi + 0x20]
mov dword [esp + 0x40], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], ebx
jg 0x1005bb31
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005bb69
inc dword [esi + 0x20]
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 4]
mov ebx, dword [esp + 0x3c]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x40]
mov dword [ecx + 4], eax
lea eax, [ebx + 2]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
jmp 0x1005bb6d
mov ebx, dword [esp + 0x3c]
mov edi, dword [edi + 0x14]
inc ebx
mov dword [esp + 0x3c], ebx
test edi, edi
jne 0x1005bb14
mov eax, dword [esp + 0x50]
mov eax, dword [eax]
mov dword [esp + 0x50], eax
test eax, eax
jne 0x1005baa0
mov edx, dword [esp + 0x58]
lea eax, [ebx + 8]
mov ecx, dword [edx]
cmp ecx, eax
cmovle ecx, eax
mov dword [edx], ecx
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005bbb6
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005bbe9
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x7f
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 2
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], 1
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x1005bbfe
mov eax, dword [esi + 0x20]
mov edx, dword [esp + 0x34]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 - 0x11], dl
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005bc20
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x1005bc1d
mov edi, 1
jmp 0x1005bc57
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x4c
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 edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x70]
mov eax, dword [edx + 0x10]
push dword [eax + ecx]
push str._in_database__s__n
push edx
call fcn.10006dc0
mov ecx, dword [esi + 0x18]
add esp, 0xc
mov ebx, dword [esi + 0x20]
mov dword [esp + 0x40], eax
mov eax, ebx
cmp dword [ecx + 0x54], ebx
jg 0x1005bc99
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x1005bc96
mov ebx, 1
jmp 0x1005bcce
mov eax, dword [esi + 0x20]
inc eax
lea ecx, [ebx + ebx*4]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
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
push 0xffffffffffffffff
push dword [esp + 0x44]
mov edx, ebx
mov ecx, esi
call fcn.10022f50
mov eax, dword [esi + 0x18]
add esp, 8
mov ebx, dword [esi + 0x20]
mov ecx, ebx
cmp dword [eax + 0x54], ebx
jg 0x1005bcfb
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005bd32
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x20
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 2
mov dword [eax + ecx*4 + 8], 4
mov dword [eax + ecx*4 + 0xc], 1
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x20]
mov ecx, ebx
cmp dword [eax + 0x54], ebx
jg 0x1005bd4d
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005bd84
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x5e
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 4
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 2
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x20]
mov ecx, ebx
cmp dword [eax + 0x54], ebx
jg 0x1005bd9f
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005bdd6
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x23
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 2
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 + 0x20]
cmp edx, edi
jbe 0x1005bdea
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
lea ecx, [edx - 1]
mov dword [eax + 0x58], ecx
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x40], eax
test eax, eax
je 0x1005d063
mov cl, byte [esp + 0x5f]
nop word [eax + eax]
cmp cl, 0x71
je 0x1005d063
mov eax, dword [eax + 8]
mov dword [esp + 0x48], eax
mov dword [esp + 0x70], 0
mov dword [esp + 0x44], 0xffffffff
mov edx, dword [eax + 8]
test edx, edx
je 0x1005d051
test byte [eax + 0x2c], 0x20
jne 0x1005be50
mov dword [esp + 0x38], 0
jmp 0x1005be64
mov eax, dword [edx + 0x38]
and al, 3
cmp al, 2
je 0x1005be60
mov edx, dword [edx + 0x14]
test edx, edx
jne 0x1005be50
mov dword [esp + 0x38], edx
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005be86
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x1005be83
mov edi, 1
jmp 0x1005bebd
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x89
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 eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x20]
mov ecx, ebx
cmp dword [eax + 0x54], ebx
jg 0x1005bed8
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005bf0f
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x18
mov byte [eax + ecx*4 + 3], 0
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 edx, dword [esi + 0x20]
cmp edx, edi
jbe 0x1005bf23
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
lea ecx, [edx - 1]
mov dword [eax + 0x58], ecx
mov ecx, dword [esp + 0x24]
call fcn.10039e80
mov ebx, dword [esp + 0x48]
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x64]
mov edx, ebx
push eax
push 0
push 1
push 0x36
call fcn.100557b0
mov eax, dword [esi + 0x18]
add esp, 0x14
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005bf6e
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005bfa5
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
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 [ebx + 8]
xor edx, edx
mov dword [esp + 0x2c], edx
test ebx, ebx
je 0x1005c013
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005bfd1
mov ecx, esi
call fcn.10022900
mov edx, dword [esp + 0x2c]
test eax, eax
jne 0x1005c007
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
lea ecx, [eax + ecx*4]
lea eax, [edx + 8]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov ebx, dword [ebx + 0x14]
inc edx
mov dword [esp + 0x2c], edx
test ebx, ebx
jne 0x1005bfb2
mov ebx, dword [esp + 0x58]
lea eax, [edx + 8]
mov ecx, dword [ebx]
cmp ecx, eax
cmovle ecx, eax
mov dword [ebx], ecx
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005c03e
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005c077
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov edi, dword [esp + 0x60]
mov word [eax + ecx*4], 0x6c
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x1005c07b
mov edi, dword [esp + 0x60]
mov eax, dword [esi + 0x18]
mov edx, dword [esi + 0x20]
mov ecx, edx
mov dword [esp + 0x2c], edx
cmp dword [eax + 0x54], edx
jg 0x1005c0a8
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x1005c0a1
mov dword [esp + 0x2c], 1
jmp 0x1005c0df
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x2c]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x25
mov byte [eax + ecx*4 + 3], 0
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
mov ebx, dword [esp + 0x48]
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x64], ecx
cmp ax, word [ebx + 0x26]
jge 0x1005c3da
xor edx, edx
mov dword [esp + 0x3c], edx
nop dword [eax + eax]
movsx eax, word [ebx + 0x24]
cmp ecx, eax
je 0x1005c3be
mov eax, dword [ebx + 4]
cmp byte [edx + eax + 0x14], 0
je 0x1005c3be
push 3
push ecx
push edi
mov edx, ebx
mov ecx, esi
call fcn.10039c00
mov ecx, dword [esi + 4]
add esp, 0xc
test ecx, ecx
je 0x1005c13c
mov eax, dword [esi + 0x20]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 - 0x11], 0x80
mov eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x20]
mov ecx, ebx
mov dword [esp + 0x50], ebx
cmp dword [eax + 0x54], ebx
jg 0x1005c165
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x1005c162
mov dword [esp + 0x50], 1
jmp 0x1005c19c
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x4d
mov byte [eax + ecx*4 + 3], 0
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 eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005c1b7
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005c1ee
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x25
mov byte [eax + ecx*4 + 3], 0
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 edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x3c]
mov eax, dword [edx + 4]
push dword [ecx + eax]
push dword [edx]
push str.NULL_value_in__s._s
push dword [esp + 0x1c]
call fcn.10006dc0
mov ecx, dword [esi + 0x18]
add esp, 0x10
mov edi, dword [esi + 0x20]
mov ebx, eax
mov eax, edi
cmp dword [ecx + 0x54], edi
jg 0x1005c233
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x1005c230
mov edi, 1
jmp 0x1005c268
mov eax, dword [esi + 0x20]
inc eax
lea ecx, [edi + edi*4]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
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
push 0xffffffffffffffff
push ebx
mov edx, edi
mov ecx, esi
call fcn.10022f50
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005c292
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005c2c9
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x23
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 3
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005c2eb
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x1005c2e8
mov edi, 1
jmp 0x1005c322
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x89
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 eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x20]
mov ecx, ebx
cmp dword [eax + 0x54], ebx
jg 0x1005c33d
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005c374
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x18
mov byte [eax + ecx*4 + 3], 0
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 edx, dword [esi + 0x20]
mov eax, dword [esp + 0x50]
cmp edx, eax
jbe 0x1005c38c
lea ecx, [eax + eax*4]
mov eax, dword [esi + 4]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
lea ecx, [edx - 1]
mov dword [eax + 0x58], ecx
mov edx, dword [esi + 0x20]
cmp edx, edi
jbe 0x1005c3a9
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
lea ecx, [edx - 1]
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x48]
mov dword [eax + 0x58], ecx
mov ecx, dword [esp + 0x64]
movsx eax, word [ebx + 0x26]
inc ecx
mov edi, dword [esp + 0x60]
add edx, 0x18
mov dword [esp + 0x64], ecx
mov dword [esp + 0x3c], edx
cmp ecx, eax
jl 0x1005c100
mov edi, dword [ebx + 8]
mov dword [esp + 0x54], 0
mov dword [esp + 0x30], edi
test edi, edi
je 0x1005cc64
mov ecx, esi
call fcn.10022a30
mov ebx, eax
cmp dword [esp + 0x38], edi
je 0x1005cc4d
push dword [esp + 0x44]
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x6c]
push dword [esp + 0x74]
mov edx, edi
push eax
push 0
push 0
push dword [esp + 0x74]
call fcn.1004b510
mov ecx, dword [esi + 0x18]
add esp, 0x18
mov dword [esp + 0x70], edi
mov edi, dword [esi + 0x20]
mov dword [esp + 0x44], eax
mov eax, edi
cmp dword [ecx + 0x54], edi
jg 0x1005c44a
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005c481
mov eax, dword [esi + 0x20]
inc eax
lea ecx, [edi + edi*4]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x25
mov byte [eax + ecx*4 + 3], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x54]
add eax, 8
mov dword [ecx + 4], eax
mov dword [ecx + 8], 1
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov eax, dword [esp + 0x30]
mov edx, dword [esi + 0x20]
mov ecx, edx
mov dword [esp + 0x3c], edx
movzx edi, word [eax + 0x34]
mov eax, dword [esi + 0x18]
mov dword [esp + 0x50], edi
cmp dword [eax + 0x54], edx
jg 0x1005c4bb
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x1005c4b4
mov edx, 1
mov dword [esp + 0x3c], edx
jmp 0x1005c4fe
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x3c]
mov edi, dword [esp + 0x50]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 4]
mov esi, dword [esp + 0x54]
add esi, dword [esp + 0x20]
mov edx, dword [esp + 0x44]
mov word [eax + ecx*4], 0x45
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x4c]
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], edx
mov edx, dword [esp + 0x3c]
mov dword [eax + ecx*4 + 0x10], 0
push 0xfffffffffffffff2
push edi
mov ecx, esi
call fcn.10022f50
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005c526
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005c55d
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x25
mov byte [eax + ecx*4 + 3], 0
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 eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005c57f
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x1005c57c
mov edi, 1
jmp 0x1005c5b6
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
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
push 0xfffffffffffffffe
push str.row
mov edx, edi
mov ecx, esi
call fcn.10022f50
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005c5e4
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005c61b
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x5e
mov byte [eax + ecx*4 + 3], 0
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 eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005c63d
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x1005c63a
mov edi, 1
jmp 0x1005c674
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
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 0xfffffffffffffffe
push str._missing_from_index
mov edx, edi
mov ecx, esi
call fcn.10022f50
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005c6a2
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005c6d9
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x5e
mov byte [eax + ecx*4 + 3], 0
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 eax, dword [esp + 0x30]
mov ebx, dword [esi + 0x20]
mov ecx, ebx
mov dword [esp + 0x50], ebx
mov edi, dword [eax]
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], ebx
jg 0x1005c709
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x1005c706
mov ebx, 1
mov dword [esp + 0x50], ebx
jmp 0x1005c740
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
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 edx, ebx
mov ecx, esi
call fcn.10022f50
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005c76a
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005c7a1
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x5e
mov byte [eax + ecx*4 + 3], 0
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 eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005c7bc
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005c7f3
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x23
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 3
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x20]
mov ecx, ebx
mov dword [esp + 0x64], ebx
cmp dword [eax + 0x54], ebx
jg 0x1005c81c
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x1005c819
mov dword [esp + 0x64], 1
jmp 0x1005c853
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x89
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 eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005c86e
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005c8a5
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x18
mov byte [eax + ecx*4 + 3], 0
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 edx, dword [esi + 0x20]
mov eax, dword [esp + 0x3c]
cmp edx, eax
jbe 0x1005c8bd
lea ecx, [eax + eax*4]
mov eax, dword [esi + 4]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
lea ecx, [edx - 1]
mov edi, dword [esp + 0x30]
mov dword [eax + 0x58], ecx
cmp byte [edi + 0x36], 0
je 0x1005cbf3
mov ecx, esi
call fcn.10022a30
mov dword [esp + 0x3c], eax
xor ecx, ecx
mov eax, dword [esp + 0x30]
xor edi, edi
cmp cx, word [eax + 0x32]
jae 0x1005c96f
jmp 0x1005c8f7
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 4]
movsx eax, word [eax + edi*2]
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 4]
cmp byte [eax + ecx*8 + 0x14], 0
jne 0x1005c962
mov eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x20]
mov ecx, ebx
cmp dword [eax + 0x54], ebx
jg 0x1005c92a
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005c962
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x4c
mov byte [eax + ecx*4 + 3], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x44]
add eax, edi
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov eax, dword [esp + 0x30]
inc edi
movzx eax, word [eax + 0x32]
cmp edi, eax
jl 0x1005c8f3
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005c991
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x1005c98e
mov edi, 1
jmp 0x1005c9d0
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x54]
lea eax, [ecx + 1]
add edx, dword [esp + 0x20]
lea ecx, [edi + edi*4]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
mov esi, dword [esp + 0x4c]
mov word [eax + ecx*4], 9
mov byte [eax + ecx*4 + 3], 0
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 eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x20]
mov ecx, ebx
cmp dword [eax + 0x54], ebx
jg 0x1005c9eb
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005ca22
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x3c]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x10
mov byte [eax + ecx*4 + 3], 0
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 edx, dword [esi + 0x20]
cmp edx, edi
jbe 0x1005ca36
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
lea ecx, [edx - 1]
mov dword [eax + 0x58], ecx
mov eax, dword [esp + 0x30]
mov edi, dword [esi + 0x20]
mov ecx, edi
movzx ebx, word [eax + 0x32]
mov eax, dword [esi + 0x18]
mov dword [esp + 0x74], ebx
cmp dword [eax + 0x54], edi
jg 0x1005ca6d
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x1005ca6a
mov edi, 1
jmp 0x1005cab0
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x54]
lea eax, [ecx + 1]
add edx, dword [esp + 0x20]
lea ecx, [edi + edi*4]
mov ebx, dword [esp + 0x74]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
mov esi, dword [esp + 0x4c]
mov word [eax + ecx*4], 0x72
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x3c]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x44]
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
push 0xfffffffffffffff2
push ebx
mov edx, edi
mov ecx, esi
call fcn.10022f50
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005cada
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005cb11
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x25
mov byte [eax + ecx*4 + 3], 0
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 eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005cb33
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x1005cb30
mov edi, 1
jmp 0x1005cb6a
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
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
push 0xfffffffffffffffe
push str.non_unique_entry_in_index
mov edx, edi
mov ecx, esi
call fcn.10022f50
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005cb98
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005cbcf
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x50]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x10
mov byte [eax + ecx*4 + 3], 0
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 edi, dword [esi + 0x18]
or ecx, 0xffffffff
sub ecx, dword [esp + 0x3c]
js 0x1005cbe8
mov edx, dword [edi + 0x70]
test edx, edx
je 0x1005cbe8
mov eax, dword [esi + 0x20]
mov dword [edx + ecx*4], eax
mov eax, dword [esi + 0x20]
dec eax
mov dword [edi + 0x58], eax
mov edi, dword [esp + 0x30]
mov edx, dword [esi + 0x20]
mov eax, dword [esp + 0x64]
cmp edx, eax
jbe 0x1005cc0b
lea ecx, [eax + eax*4]
mov eax, dword [esi + 4]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
lea ecx, [edx - 1]
mov dword [eax + 0x58], ecx
mov ecx, dword [esp + 0x68]
test ecx, ecx
je 0x1005cc4d
mov eax, dword [esp + 0x24]
not ecx
mov edx, dword [eax + 8]
mov ebx, dword [edx + 0x18]
test ecx, ecx
js 0x1005cc39
mov edi, dword [ebx + 0x70]
test edi, edi
je 0x1005cc39
mov eax, dword [edx + 0x20]
mov dword [edi + ecx*4], eax
mov eax, dword [edx + 0x20]
mov ecx, dword [esp + 0x24]
dec eax
mov dword [ebx + 0x58], eax
call fcn.10039bb0
mov edi, dword [esp + 0x30]
mov edi, dword [edi + 0x14]
inc dword [esp + 0x54]
mov dword [esp + 0x30], edi
test edi, edi
jne 0x1005c3f1
mov ebx, dword [esp + 0x48]
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005cc7f
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005ccb8
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x60]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 9
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x2c]
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x1005ccbc
mov edx, dword [esp + 0x2c]
lea eax, [edx - 1]
mov edx, dword [esi + 0x20]
cmp edx, eax
jbe 0x1005ccd3
lea ecx, [eax + eax*4]
mov eax, dword [esi + 4]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
lea ecx, [edx - 1]
mov dword [eax + 0x58], ecx
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005ccfe
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x1005ccfb
mov edi, 1
jmp 0x1005cd35
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
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
push 0xfffffffffffffffe
push str.wrong__of_entries_in_index
mov edx, edi
mov ecx, esi
call fcn.10022f50
mov eax, dword [ebx + 8]
add esp, 8
mov dword [esp + 0x2c], eax
test eax, eax
je 0x1005d04d
mov edx, dword [esp + 0x38]
mov ecx, 8
mov dword [esp + 0x44], ecx
cmp edx, eax
je 0x1005d039
mov eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x20]
mov ecx, ebx
cmp dword [eax + 0x54], ebx
jg 0x1005cd87
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005cdbd
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x89
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
lea ecx, [eax + ecx*4]
lea eax, [ebx + 2]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005cdd8
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005ce0f
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x18
mov byte [eax + ecx*4 + 3], 0
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 eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005ce2a
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005ce67
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x32
mov byte [eax + ecx*4 + 3], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x44]
add eax, 0xfffffff8
add eax, dword [esp + 0x20]
mov dword [ecx + 4], eax
mov dword [ecx + 8], 3
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005ce82
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005ceb7
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x4f
mov byte [eax + ecx*4 + 3], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x44]
mov dword [ecx + 4], eax
lea eax, [ebx + 8]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 3
mov dword [ecx + 0x10], 0
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x1005cec9
mov eax, dword [esi + 0x20]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 - 0x11], 0x90
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005cee4
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005cf1b
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x25
mov byte [eax + ecx*4 + 3], 0
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 eax, dword [esi + 0x18]
mov ebx, dword [esp + 0x2c]
mov edi, dword [esi + 0x20]
mov ecx, edi
mov ebx, dword [ebx]
cmp dword [eax + 0x54], edi
jg 0x1005cf43
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x1005cf40
mov edi, 1
jmp 0x1005cf7a
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
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
push 0
push ebx
mov edx, edi
mov ecx, esi
call fcn.10022f50
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005cfa4
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005cfdb
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x5e
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 3
mov dword [eax + ecx*4 + 8], 2
mov dword [eax + ecx*4 + 0xc], 7
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005cff6
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005d02d
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x23
mov byte [eax + ecx*4 + 3], 0
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
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x14]
inc ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x44], ecx
test eax, eax
jne 0x1005cd64
mov cl, byte [esp + 0x5f]
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov dword [esp + 0x40], eax
test eax, eax
jne 0x1005be10
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
inc eax
mov dword [esp + 0x34], eax
cmp eax, dword [ecx + 0x14]
jl 0x1005b957
push ecx
push 0x100f82ec
mov edx, 3
mov ecx, esi
call fcn.10022c90
mov edi, dword [esi + 0x20]
mov edx, eax
add esp, 8
cmp edi, edx
jbe 0x1005d0bf
mov eax, dword [esi + 4]
lea ecx, [edx + edx*4]
mov edi, dword [esp + 0x1c]
neg edi
mov dword [eax + ecx*4 + 0xc], edi
mov edi, dword [esi + 0x20]
cmp edi, edx
jbe 0x1005d0bf
mov eax, dword [esi + 4]
lea ecx, [edx + edx*4]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
lea ecx, [edi - 1]
push 0xfffffffffffffffe
push 0x100f394c
inc edx
mov dword [eax + 0x58], ecx
mov ecx, esi
call fcn.10022f50
add esp, 8
jmp 0x10057b3e
mov edi, dword [esp + 0x14]
test edi, edi
jne 0x1005d1ae
mov ecx, dword [ebx]
cmp byte [ecx + 0x91], 0
jne 0x1005d115
lea edx, [ebx + 4]
call fcn.1005e320
test eax, eax
je 0x1005d115
mov ecx, dword [esp + 0x10]
mov dword [ebx + 0xc], eax
inc dword [ebx + 0x40]
mov ebx, dword [esp + 0x18]
jmp 0x10057b4a
mov edx, 1
mov ecx, esi
call fcn.10023fd0
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x1005d13f
mov ecx, dword [esi + 0x10]
mov edx, str.encoding
push 0
push 1
push 0xffffffffffffffff
call fcn.10021f50
add esp, 0xc
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005d15a
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005d191
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
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 eax, dword [ebx]
or edx, 0xffffffff
push 0xfffffffffffffffe
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
movzx eax, byte [eax + 0x4d]
push dword [eax*8 + 0x100f5e80]
jmp 0x100584d2
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x4e]
and al, 5
cmp al, 1
je 0x10059156
mov edx, dword [str.UTF8]
mov edi, 0x100f5e80
test edx, edx
je 0x1005d261
mov ecx, dword [esp + 0x14]
mov bh, byte [ecx]
nop
mov bl, bh
test bh, bh
je 0x1005d211
mov esi, ecx
mov al, bh
sub esi, edx
nop dword [eax]
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x100f67d0]
cmp al, byte [ecx + 0x100f67d0]
jne 0x1005d211
mov al, byte [esi + edx + 1]
inc edx
mov bl, al
test al, al
jne 0x1005d1f0
movzx eax, bl
movzx ecx, byte [eax + 0x100f67d0]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x100f67d0]
sub ecx, eax
je 0x1005d239
mov edx, dword [edi + 8]
add edi, 8
mov ecx, dword [esp + 0x14]
test edx, edx
jne 0x1005d1e0
jmp 0x1005d261
mov cl, byte [edi + 4]
mov edx, 2
test cl, cl
movzx eax, cl
cmovne edx, eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
mov byte [eax + 0x4d], dl
cmp dword [edi], 0
jne 0x10057b3e
mov edi, dword [esp + 0x14]
push edi
push str.unsupported_encoding:__s
push dword [esp + 0x2c]
call fcn.10007bb0
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov ebx, dword [esp + 0x18]
jmp 0x10057b4a
mov eax, dword [esi + 0x60]
mov edi, dword [esp + 0x28]
bts eax, edi
mov dword [esi + 0x60], eax
cmp edi, 1
je 0x1005d2b2
mov eax, dword [esi]
mov ecx, dword [esp + 0x34]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx + 4]
cmp byte [eax + 9], 0
je 0x1005d2b2
mov eax, dword [esi + 0x64]
bts eax, edi
mov dword [esi + 0x64], eax
mov eax, dword [esp + 0x18]
movsx eax, byte [eax]
add eax, 0xffffffbf
cmp eax, 0x32
ja case.0x1005d2c8.66
movzx eax, byte [eax + 0x1005db28]
jmp dword [eax*4 + 0x1005db18]
mov ebx, 8
jmp 0x1005d2e6
xor ebx, ebx
jmp 0x1005d2e6
mov ebx, 1
jmp 0x1005d2e6
mov ebx, 6
cmp dword [esp + 0x14], 0
je 0x1005d392
test ebx, ebx
je 0x1005d392
push ecx
push 0x100f803c
mov edx, 3
mov ecx, esi
call fcn.10022c90
mov edi, dword [esi + 0x20]
add esp, 8
mov dword [esp + 0x40], eax
cmp edi, eax
jbe 0x1005d32a
mov ecx, dword [esi + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x28]
mov dword [ecx + edx*4 + 4], eax
mov edi, dword [esi + 0x20]
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x1c]
mov dword [esp + 0x1c], 0
call fcn.100087a0
mov eax, dword [esp + 0x40]
lea ecx, [eax + 1]
cmp edi, ecx
jbe 0x1005d35f
mov eax, dword [esp + 0x1c]
lea edx, [ecx + ecx*4]
mov ecx, dword [esi + 4]
mov dword [ecx + edx*4 + 4], eax
mov edi, dword [esi + 0x20]
mov eax, dword [esp + 0x40]
lea edx, [eax + 2]
cmp edi, edx
jbe 0x10057b3e
mov eax, dword [esi + 4]
lea ecx, [edx + edx*4]
mov edi, dword [esp + 0x28]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esi + 0x20]
cmp edi, edx
jbe 0x10057b3e
mov eax, dword [esi + 4]
lea ecx, [edx + edx*4]
mov dword [eax + ecx*4 + 8], ebx
jmp 0x10057b3e
push ecx
push 0x100f5414
mov edx, 3
mov ecx, esi
call fcn.10022c90
mov ecx, dword [esi + 0x20]
add esp, 8
cmp ecx, eax
jbe 0x1005d3bb
mov ecx, dword [esi + 4]
lea edx, [eax + eax*4]
mov dword [ecx + edx*4 + 4], edi
mov ecx, dword [esi + 0x20]
lea edx, [eax + 1]
cmp ecx, edx
jbe 0x100582b4
mov eax, dword [esi + 4]
lea ecx, [edx + edx*4]
mov dword [eax + ecx*4 + 4], edi
mov ecx, dword [esi + 0x20]
cmp ecx, edx
jbe 0x100582b4
mov eax, dword [esi + 4]
lea ecx, [edx + edx*4]
mov dword [eax + ecx*4 + 0xc], ebx
jmp 0x100582b4
xor ebx, ebx
mov ecx, esi
lea edx, [ebx + 1]
call fcn.10023fd0
mov edx, dword [esp + 0x58]
mov dword [edx], 1
mov eax, dword [esi]
cmp byte [eax + 0x40], bl
jne 0x1005d420
mov ecx, dword [esi + 0x10]
mov edx, str.compile_option
push ebx
push 1
push 0xffffffffffffffff
call fcn.10021f50
add esp, 0xc
nop dword [eax]
cmp ebx, 1
ja 0x10057b3e
mov eax, dword [ebx*4 + 0x100f8220]
inc ebx
mov dword [esp + 0x68], eax
test eax, eax
je 0x10057b3e
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005d45f
mov ecx, esi
call fcn.10022900
test eax, eax
je 0x1005d45c
mov edi, 1
jmp 0x1005d496
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
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
push 0
push dword [esp + 0x6c]
mov edx, edi
mov ecx, esi
call fcn.10022f50
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x1005d4c2
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005d420
inc dword [esi + 0x20]
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x23
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
jmp 0x1005d420
mov ecx, dword [esp + 0x38]
mov eax, 0xa
mov edi, dword [esp + 0x14]
cmp dword [ecx], 0
cmovne eax, dword [esp + 0x28]
xor ebx, ebx
mov dword [esp + 0x68], eax
test edi, edi
je 0x1005d5c4
mov bl, byte [edi]
mov edx, str.full
mov bh, bl
test bl, bl
je 0x1005d555
mov al, bl
sub edi, edx
nop
movzx ecx, byte [edx]
mov bh, al
movzx eax, al
mov al, byte [eax + 0x100f67d0]
cmp al, byte [ecx + 0x100f67d0]
jne 0x1005d551
mov al, byte [edx + edi + 1]
inc edx
mov bh, al
test al, al
jne 0x1005d530
mov edi, dword [esp + 0x14]
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x100f67d0]
movzx eax, bh
movzx eax, byte [eax + 0x100f67d0]
sub eax, ecx
jne 0x1005d572
lea ebx, [eax + 1]
jmp 0x1005d5c4
mov edx, str.restart
test bl, bl
je 0x1005d5a1
mov al, bl
sub edi, edx
nop
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x100f67d0]
cmp al, byte [ecx + 0x100f67d0]
jne 0x1005d5a1
mov al, byte [edx + edi + 1]
inc edx
mov bl, al
test al, al
jne 0x1005d580
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x100f67d0]
movzx eax, bl
mov ebx, 0
movzx eax, byte [eax + 0x100f67d0]
sub eax, ecx
mov eax, 2
cmove ebx, eax
mov edx, 3
mov ecx, esi
call fcn.10023fd0
mov edx, dword [esp + 0x58]
mov dword [edx], 3
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x1005d63a
mov ecx, dword [esi + 0x10]
mov edx, str.busy
push 0
push 1
push 0xffffffffffffffff
call fcn.10021f50
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x1005d63a
mov ecx, dword [esi + 0x10]
mov edx, 0x100f39d4
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x28
call fcn.10021f50
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x1005d63a
mov ecx, dword [esi + 0x10]
mov edx, str.checkpointed
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x50
call fcn.10021f50
add esp, 0xc
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005d655
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x1005d688
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x68]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0xb
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], 1
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x1005d6a2
mov ecx, esi
call fcn.10022900
test eax, eax
jne 0x10057b3e
inc dword [esi + 0x20]
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x23
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 3
jmp 0x1005851a
mov edi, dword [esp + 0x14]
test edi, edi
je 0x1005d6f6
lea edx, [esp + 0x1c]
mov dword [esp + 0x1c], 0
mov ecx, edi
call fcn.100087a0
push dword [esp + 0x1c]
push dword [esp + 0x14]
call fcn.10081190
add esp, 8
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xd4], 0x100810b0
jne 0x1005d70e
mov eax, dword [eax + 0xd8]
jmp 0x1005d710
xor eax, eax
cdq
push edx
mov edx, str.wal_autocheckpoint
push eax
mov ecx, ebx
call fcn.10057690
mov ecx, dword [esp + 0x18]
add esp, 8
mov ebx, dword [esp + 0x18]
jmp 0x10057b4a
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0xc]
test eax, eax
je 0x1005d744
push eax
call dword [0x100ffc3c]
add esp, 4
mov ecx, esi
call fcn.10016180
mov eax, dword [esi + 0x14]
xor edi, edi
test eax, eax
jle 0x1005d78d
mov ebx, dword [esp + 0x10]
xor esi, esi
nop word [eax + eax]
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + esi + 4]
test eax, eax
je 0x1005d782
mov eax, dword [eax + 4]
mov eax, dword [eax]
mov eax, dword [eax + 0xcc]
push dword [eax + 0x28]
call dword [0x100ffc80]
add esp, 4
mov eax, dword [ebx + 0x14]
inc edi
add esi, 0x10
cmp edi, eax
jl 0x1005d760
xor esi, esi
test eax, eax
mov eax, dword [esp + 0x10]
jle 0x1005d7c9
xor edi, edi
nop dword [eax]
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + edi + 4]
test ecx, ecx
je 0x1005d7bc
cmp byte [ecx + 9], 0
je 0x1005d7bc
add dword [ecx + 0xc], 0xffffffff
jne 0x1005d7bc
call fcn.100160a0
mov eax, dword [esp + 0x10]
inc esi
add edi, 0x10
cmp esi, dword [eax + 0x14]
jl 0x1005d7a0
mov eax, dword [eax + 0xc]
test eax, eax
je 0x10057b3e
push eax
call dword [0x100ffc44]
jmp 0x10057b3b
mov eax, dword [esp + 0x14]
test eax, eax
je 0x1005d807
lea edx, [esp + 0x68]
mov ecx, eax
call fcn.10008680
test eax, eax
jne 0x1005d807
push dword [esp + 0x6c]
push dword [esp + 0x6c]
call fcn.10004810
add esp, 8
call fcn.1007f160
test eax, eax
je 0x1005d817
or esi, 0xffffffff
or edi, esi
jmp 0x1005d849
mov eax, dword [0x10104990]
test eax, eax
je 0x1005d82f
push eax
call dword [0x100ffc3c]
mov eax, dword [0x10104990]
add esp, 4
mov esi, dword [0x10104998]
mov edi, dword [0x1010499c]
test eax, eax
je 0x1005d849
push eax
call dword [0x100ffc44]
add esp, 4
push edi
push esi
mov edx, str.soft_heap_limit
mov ecx, ebx
call fcn.10057690
add esp, 8
jmp 0x10057b3e
mov edi, dword [esp + 0x14]
test edi, edi
je 0x1005d89f
lea edx, [esp + 0x68]
mov ecx, edi
call fcn.10008680
test eax, eax
jne 0x1005d89f
cmp dword [esp + 0x6c], eax
jl 0x1005d89f
mov eax, dword [esp + 0x68]
jg 0x1005d886
test eax, eax
jb 0x1005d89f
mov ecx, 8
and eax, 0x7fffffff
cmp eax, ecx
cmova eax, ecx
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x84], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x84]
cdq
push edx
mov edx, str.threads
jmp 0x1005d717
mov edi, dword [esp + 0x14]
test edi, edi
je 0x1005d981
lea edx, [esp + 0x1c]
mov dword [esp + 0x1c], 0
mov ecx, edi
call fcn.100087a0
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov eax, dword [ecx + 0xc]
test esi, esi
jle 0x1005d936
test eax, eax
je 0x1005d8f8
push eax
call dword [0x100ffc3c]
mov ecx, dword [esp + 0x14]
add esp, 4
mov eax, dword [ecx + 0xc]
mov dword [ecx + 0x1bc], 0x100807b0
mov dword [ecx + 0x1c0], ecx
mov dword [ecx + 0x1c4], 0
mov dword [ecx + 0x1ec], 0
test eax, eax
je 0x1005d92e
push eax
call dword [0x100ffc44]
mov ecx, dword [esp + 0x14]
add esp, 4
mov dword [ecx + 0x1ec], esi
jmp 0x1005d985
test eax, eax
je 0x1005d94b
push eax
call dword [0x100ffc3c]
mov ecx, dword [esp + 0x14]
add esp, 4
mov eax, dword [ecx + 0xc]
mov dword [ecx + 0x1bc], 0
mov dword [ecx + 0x1c0], 0
mov dword [ecx + 0x1c4], 0
mov dword [ecx + 0x1ec], 0
test eax, eax
je 0x1005d985
push eax
call dword [0x100ffc44]
add esp, 4
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x1ec]
mov ecx, ebx
cdq
push edx
push eax
mov edx, str.timeout
call fcn.10057690
mov ecx, dword [esp + 0x18]
add esp, 8
mov ebx, dword [esp + 0x18]
jmp 0x10057b4a
cmp ebx, dword [ecx + 0x114]
jb 0x1005d9d4
cmp ebx, dword [ecx + 0x118]
jae 0x1005d9d4
mov eax, dword [ecx + 0x110]
mov dword [ebx], eax
mov eax, dword [esp + 0x10]
mov dword [eax + 0x110], ebx
dec dword [eax + 0xfc]
jmp 0x1005d9e1
push ebx
call fcn.10004e40
add esp, 4
mov eax, dword [esp + 0x10]
test edi, edi
je 0x1005da52
cmp dword [eax + 0x208], 0
je 0x1005da0c
mov edx, edi
mov ecx, eax
call fcn.10004ee0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x98]
xor ecx, esp
call fcn.100bd09a
mov esp, ebp
pop ebp
ret
cmp edi, dword [eax + 0x114]
jb 0x1005da49
cmp edi, dword [eax + 0x118]
jae 0x1005da49
mov eax, dword [eax + 0x110]
mov dword [edi], eax
mov eax, dword [esp + 0x10]
mov dword [eax + 0x110], edi
dec dword [eax + 0xfc]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x98]
xor ecx, esp
call fcn.100bd09a
mov esp, ebp
pop ebp
ret
push edi
call fcn.10004e40
add esp, 4
mov ecx, dword [esp + 0xa4]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.100bd09a
mov esp, ebp
pop ebp
ret