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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x9c
mov eax, dword [0x100fc008]
xor eax, esp
mov dword [esp + 0x98], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov dword [esp + 0x38], 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.10061e50
mov esi, eax
mov dword [esp + 0x48], esi
test esi, esi
je 0x1005d482
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 + 0x40]
push ecx
mov ecx, eax
call fcn.100424c0
mov ecx, eax
add esp, 8
mov dword [esp + 0x28], ecx
test ecx, ecx
js 0x1005d482
mov edx, dword [esp + 0x10]
shl eax, 4
mov dword [esp + 0x38], eax
mov ebx, dword [edx + 0x10]
add ebx, eax
mov dword [esp + 0x30], ebx
cmp ecx, 1
jne 0x100572dd
mov ecx, dword [esp + 0x24]
call fcn.10047dc0
test eax, eax
jne 0x1005d482
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x1005d482
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x10057300
mov dword [esp + 0x18], eax
jmp 0x1005733a
xor eax, eax
add ecx, 1
adc eax, eax
push eax
push ecx
mov ecx, edx
call fcn.10005020
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
je 0x1005733a
push dword [esp + 0x20]
push dword [esp + 0x20]
push eax
call fcn.100bda90
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.10007b80
cmp dword [esp + 0x18], 0
je 0x1005d482
cmp dword [ebp + 0x10], 0
je 0x1005736d
push edi
mov edi, dword [esp + 0x14]
push 0x100f14a4
push edi
call fcn.10006c60
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x14], ecx
jmp 0x100573e5
test edi, edi
je 0x100573db
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x40], ecx
test ecx, ecx
jne 0x10057395
xor eax, eax
mov ecx, eax
mov dword [esp + 0x14], eax
call fcn.10007b80
mov ecx, dword [esp + 0x14]
jmp 0x100573e1
mov ecx, eax
xor eax, eax
add ecx, 1
adc eax, eax
push eax
push ecx
mov ecx, dword [esp + 0x18]
call fcn.10005020
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
je 0x100573ce
mov edi, dword [esp + 0x1c]
push edi
push dword [esp + 0x44]
push eax
call fcn.100bda90
mov eax, dword [esp + 0x20]
add esp, 0xc
mov byte [edi + eax], 0
mov ecx, eax
call fcn.10007b80
mov ecx, dword [esp + 0x14]
jmp 0x100573e1
xor ecx, ecx
mov dword [esp + 0x14], ecx
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x3c]
cmp dword [eax + 4], 0
jbe 0x100573f3
mov ebx, dword [ebx]
jmp 0x100573f5
xor ebx, ebx
push ebx
push ecx
push dword [esp + 0x20]
mov ecx, dword [esp + 0x30]
mov edx, 0x13
mov dword [esp + 0x50], ebx
call fcn.10040e00
add esp, 0xc
test eax, eax
jne 0x1005756e
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.10082570
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x10057593
cmp dword [esp + 0x94], eax
je 0x1005756e
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 0x100574aa
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x100574a7
mov edi, 1
jmp 0x100574dd
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.10022d20
add esp, 8
mov edx, 1
mov ecx, esi
call fcn.10023d90
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x10057519
mov ecx, dword [esi + 0x10]
mov edx, str.result
push 0
push 1
push 0xffffffffffffffff
call fcn.10021c80
add esp, 0xc
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x1005752f
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005755f
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.10004cd0
add esp, 4
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
cmp dword [ecx + 0x208], 0
je 0x1005d3da
mov edx, ebx
call fcn.10004d70
jmp 0x1005d40d
cmp edi, 0xc
je 0x100575d0
mov eax, dword [esp + 0x94]
test eax, eax
je 0x100575c4
push eax
push 0x100ee9f0
push dword [esp + 0x2c]
call fcn.10007a10
add esp, 0xc
push dword [esp + 0x94]
call fcn.10004cd0
add esp, 4
mov eax, dword [esp + 0x24]
inc dword [eax + 0x40]
mov dword [eax + 0xc], edi
jmp 0x1005756e
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 + 0x100f2d30]
test bh, bh
je 0x1005762c
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 + 0x100f44b0]
cmp al, byte [ecx + 0x100f44b0]
jne 0x10057628
mov al, byte [edi + edx + 1]
inc edx
mov bl, al
test al, al
jne 0x10057607
mov edi, dword [esp + 0x1c]
movzx eax, bl
movzx ecx, byte [eax + 0x100f44b0]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x100f44b0]
sub ecx, eax
je 0x1005765e
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 0x100575e1
jmp 0x10057662
mov edx, dword [esp + 0x20]
cmp esi, edx
mov esi, dword [esp + 0x48]
jg 0x1005756e
mov ebx, dword [esp + 0x24]
lea edi, [edi + edi*2]
test byte [edi*4 + 0x100f2d35], 1
je 0x100576a1
mov ecx, dword [ebx]
cmp byte [ecx + 0x91], 0
jne 0x100576a1
lea edx, [ebx + 4]
call fcn.1005dd50
test eax, eax
je 0x100576a1
mov dword [ebx + 0xc], eax
inc dword [ebx + 0x40]
jmp 0x1005756e
movzx eax, byte [edi*4 + 0x100f2d34]
cmp eax, 0x23
ja case.0x100576b2.3
jmp dword [eax*4 + 0x1005d498]
mov eax, dword [esi + 0x60]
mov ecx, dword [esp + 0x28]
bts eax, ecx
mov ebx, dword [esp + 0x38]
mov dword [esi + 0x60], eax
cmp ecx, 1
je 0x100576e7
mov eax, dword [esi]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ebx + 4]
cmp byte [eax + 9], 0
je 0x100576e7
mov eax, dword [esi + 0x64]
bts eax, ecx
mov dword [esi + 0x64], eax
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x10057787
lea edx, [eax + 1]
mov ecx, esi
call fcn.10023d90
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x1005771b
mov ecx, dword [esi + 0x10]
mov edx, str.cache_size
push 0
push 1
push 0xffffffffffffffff
call fcn.10021c80
add esp, 0xc
mov edx, dword [esp + 0x58]
push ecx
push 0x100f329c
mov ecx, esi
add dword [edx], 2
mov edx, 9
call fcn.10022a60
mov ecx, dword [esi + 0x20]
mov edi, eax
mov ebx, dword [esp + 0x30]
add esp, 8
cmp ecx, edi
jbe 0x10057751
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 0x10057765
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 0x1005777e
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4 + 4], 0x7d0
mov ecx, dword [esp + 0x10]
jmp 0x10057576
lea edx, [esp + 0x20]
mov dword [esp + 0x20], 0
mov ecx, eax
call fcn.10008630
mov edi, dword [esp + 0x20]
test edi, edi
jns 0x100577b3
cmp edi, 0x80000000
jne 0x100577b1
mov edi, 0x7fffffff
jmp 0x100577b3
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 0x10057812
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 0x1005781a
call fcn.10047dc0
jmp 0x10057816
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 0x10057844
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x10057877
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 0x1005788d
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x100578c1
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.10017ca0
jmp 0x1005756e
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x14]
mov esi, dword [ebx + 4]
test edi, edi
jne 0x10057913
test esi, esi
je 0x10057904
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x20]
cdq
push edx
push eax
mov edx, str.page_size
jmp 0x100581a7
xor eax, eax
cdq
push edx
push eax
mov edx, str.page_size
jmp 0x100581a7
lea edx, [esp + 0x20]
mov dword [esp + 0x20], 0
mov ecx, edi
call fcn.10008630
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 0x1005794a
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x1005794a
mov ecx, esi
call fcn.10015e90
test byte [edi + 0x16], 2
je 0x10057970
cmp byte [esi + 9], 0
je 0x1005756e
add dword [esi + 0xc], 0xffffffff
jne 0x1005756e
mov ecx, esi
call fcn.10015e50
jmp 0x1005756e
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 0x100579af
lea eax, [ebx - 1]
test ebx, eax
jne 0x100579af
mov dword [ecx], ebx
mov eax, dword [edi + 0x50]
test eax, eax
je 0x100579af
lea ecx, [eax - 4]
mov dword [edi + 0x50], ecx
call fcn.1000d1b0
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.100105d0
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 0x100579e6
add dword [esi + 0xc], 0xffffffff
jne 0x100579e6
mov ecx, esi
call fcn.10015e50
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
cmp eax, 7
jne 0x1005757a
mov byte [ecx + 0x40], 1
jmp 0x1005757a
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 0x10057a38
lea edx, [ecx + 2]
mov ecx, eax
push 0
call fcn.10056fd0
xor ecx, ecx
add esp, 4
test al, al
setne cl
mov dword [esp + 0x2c], ecx
mov eax, dword [esp + 0x3c]
mov ebx, 0xfffb
cmp dword [eax + 4], 0
jne 0x10057ade
test ecx, ecx
js 0x10057ade
mov eax, dword [esp + 0x10]
xor ebx, ebx
cmp dword [eax + 0x14], ebx
jle 0x10057ad9
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 0x10057ac4
cmp byte [esi + 9], 0
je 0x10057a95
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x10057a95
mov ecx, esi
call fcn.10015e90
mov ecx, dword [esp + 0x20]
mov eax, dword [esi + 4]
mov edx, 0xfffb
and word [eax + 0x16], dx
test edi, edi
je 0x10057aad
mov eax, dword [esi + 4]
or word [eax + 0x16], 4
cmp byte [esi + 9], 0
je 0x10057ac4
add dword [esi + 0xc], 0xffffffff
jne 0x10057ac4
mov ecx, esi
call fcn.10015e50
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 0x10057a70
mov edi, dword [esp + 0x1c]
mov ebx, 0xfffb
test edi, edi
jne 0x10057ae6
xor esi, esi
jmp 0x10057b37
cmp byte [edi + 9], 0
je 0x10057afc
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x10057afc
mov ecx, edi
call fcn.10015e90
mov ecx, dword [esp + 0x2c]
test ecx, ecx
js 0x10057b17
mov eax, dword [edi + 4]
and word [eax + 0x16], bx
test ecx, ecx
je 0x10057b17
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 0x10057b37
add dword [edi + 0xc], 0xffffffff
jne 0x10057b37
mov ecx, edi
call fcn.10015e50
mov ecx, dword [esp + 0x24]
mov edx, str.secure_delete
push 0
push esi
call fcn.100570c0
add esp, 8
jmp 0x1005756e
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 0x10057ba5
bts edx, ecx
mov ecx, dword [esp + 0x24]
mov dword [ebx + 0x14c], edx
mov eax, dword [edi + 0x10]
mov ebx, dword [esp + 0x38]
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 0x10057ba5
call fcn.10047dc0
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 + 0x100f44b0], 0x70
jne 0x10057c18
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10057be0
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x10057c9e
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 0x10057c9e
mov eax, dword [esp + 0x14]
xor edi, edi
mov dword [esp + 0x20], edi
test eax, eax
je 0x10057c4a
lea edx, [esp + 0x20]
mov ecx, eax
call fcn.10008630
mov edi, dword [esp + 0x20]
test edi, edi
jns 0x10057c4a
cmp edi, 0x80000000
jne 0x10057c48
mov edi, 0x7fffffff
jmp 0x10057c4a
neg edi
mov eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x20]
mov ecx, ebx
cmp dword [eax + 0x54], ebx
jg 0x10057c65
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x10057c9a
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 0x10057c9e
mov ebx, dword [esp + 0x2c]
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x10057cb4
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x10057ce4
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.10023d90
mov eax, dword [esi]
mov ebx, dword [esp + 0x18]
cmp byte [eax + 0x40], 0
jne 0x1005777e
mov ecx, dword [esi + 0x10]
mov edx, ebx
push 0xffffffffffffffff
push 1
push 0xffffffffffffffff
call fcn.10021c80
mov ecx, dword [esp + 0x1c]
add esp, 0xc
jmp 0x10057576
mov edi, dword [esp + 0x14]
test edi, edi
je 0x10057dce
mov bl, byte [edi]
mov edx, str.exclusive
mov bh, bl
test bl, bl
je 0x10057d65
mov al, bl
sub edi, edx
nop dword [eax]
movzx ecx, byte [edx]
mov bh, al
movzx eax, al
mov al, byte [eax + 0x100f44b0]
cmp al, byte [ecx + 0x100f44b0]
jne 0x10057d61
mov al, byte [edi + edx + 1]
inc edx
mov bh, al
test al, al
jne 0x10057d40
mov edi, dword [esp + 0x14]
movzx eax, bh
movzx ecx, byte [eax + 0x100f44b0]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x100f44b0]
sub ecx, eax
jne 0x10057d84
mov ecx, 1
jmp 0x10057dd1
mov edx, str.normal
test bl, bl
je 0x10057db2
mov al, bl
sub edi, edx
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x100f44b0]
cmp al, byte [ecx + 0x100f44b0]
jne 0x10057db2
mov al, byte [edi + edx + 1]
inc edx
mov bl, al
test al, al
jne 0x10057d91
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x100f44b0]
movzx eax, bl
movzx eax, byte [eax + 0x100f44b0]
sub eax, ecx
jne 0x10057dce
xor ecx, ecx
jmp 0x10057dd1
or ecx, 0xffffffff
mov eax, dword [esp + 0x3c]
cmp dword [eax + 4], 0
jne 0x10057e39
cmp ecx, 0xffffffff
jne 0x10057de9
mov eax, dword [esp + 0x10]
mov al, byte [eax + 0x41]
jmp 0x10057e67
mov ebx, dword [esp + 0x10]
mov edx, 2
cmp dword [ebx + 0x14], edx
jle 0x10057e36
lea edi, [edx + 0x1e]
nop word [eax + eax]
test ecx, ecx
js 0x10057e2d
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + edi + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax]
cmp byte [eax + 0xc], 0
jne 0x10057e2d
mov ebx, dword [eax + 0xd0]
test ebx, ebx
je 0x10057e26
cmp byte [ebx + 0x2b], 2
je 0x10057e29
mov byte [eax + 4], cl
mov ebx, dword [esp + 0x10]
inc edx
add edi, 0x10
cmp edx, dword [ebx + 0x14]
jl 0x10057e00
mov byte [ebx + 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 0x10057e64
cmp byte [eax + 0xc], 0
jne 0x10057e64
mov ecx, dword [eax + 0xd0]
test ecx, ecx
je 0x10057e61
cmp byte [ecx + 0x2b], 2
je 0x10057e64
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.10023d90
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x10057ea0
mov ecx, dword [esi + 0x10]
mov edx, str.locking_mode
push 0
push 1
push 0xffffffffffffffff
call fcn.10021c80
add esp, 0xc
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10057ec2
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x10057ebf
mov edi, 1
jmp 0x10057ef9
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.10022d20
add esp, 8
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x10057f22
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005756e
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 0x1005756e
mov edx, 1
mov ecx, esi
call fcn.10023d90
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x10057f85
mov ecx, dword [esi + 0x10]
mov edx, str.journal_mode
push 0
push 1
push 0xffffffffffffffff
call fcn.10021c80
add esp, 0xc
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x100580bb
cmp byte [ebx], 0
mov eax, ebx
je 0x10057f9e
inc eax
cmp byte [eax], 0
jne 0x10057f98
sub eax, ebx
and eax, 0x3fffffff
xor ecx, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
cmp ecx, 6
je 0x100580bb
mov edi, dword [ecx*4 + 0x100f3ba8]
test edi, edi
je 0x100580bb
mov edx, eax
test eax, eax
je 0x10057ff1
nop dword [eax]
mov al, byte [ebx]
dec edx
test al, al
je 0x10057ff2
movzx ecx, byte [edi]
movzx eax, al
mov al, byte [eax + 0x100f44b0]
cmp al, byte [ecx + 0x100f44b0]
jne 0x10057ff2
inc ebx
inc edi
test edx, edx
jg 0x10057fd0
dec edx
test edx, edx
js 0x1005801d
movzx eax, byte [edi]
movzx ecx, byte [eax + 0x100f44b0]
movzx eax, byte [ebx]
movzx eax, byte [eax + 0x100f44b0]
sub eax, ecx
je 0x1005801d
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
inc ecx
mov ebx, dword [esp + 0x14]
jmp 0x10057fab
mov ebx, dword [esp + 0x20]
cmp ebx, 0xffffffff
je 0x100580be
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x14]
sub edi, 1
js 0x10057f08
mov edx, edi
shl edx, 4
mov dword [esp + 0x20], edx
nop word [eax + eax]
mov eax, dword [eax + 0x10]
cmp dword [edx + eax + 4], 0
je 0x1005810f
cmp edi, dword [esp + 0x28]
je 0x1005806e
cmp dword [ecx + 4], 0
jne 0x1005810f
mov eax, dword [esi + 0x60]
bts eax, edi
mov dword [esi + 0x60], eax
cmp edi, 1
je 0x10058094
mov eax, dword [esi]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + edx + 4]
cmp byte [eax + 9], 0
je 0x10058094
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 0x100580e0
mov ecx, esi
call fcn.100226d0
mov edx, dword [esp + 0x20]
test eax, eax
jne 0x1005810f
mov eax, dword [esi + 0x20]
mov ecx, dword [esp + 0x1c]
jmp 0x100580e2
or ebx, 0xffffffff
mov ecx, dword [esp + 0x3c]
cmp dword [ecx + 4], 0
jne 0x1005802e
mov dword [esp + 0x28], 0
mov dword [ecx + 4], 1
jmp 0x1005802e
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 + 0x3c]
sub edx, 0x10
sub edi, 1
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], edx
jns 0x10058050
jmp 0x10057f08
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 0x10058196
lea edx, [esp + 0x68]
mov ecx, edi
call fcn.10008510
mov ecx, dword [esp + 0x6c]
cmp ecx, 0xffffffff
jg 0x10058176
jl 0x1005816f
mov eax, dword [esp + 0x68]
cmp eax, 0xffffffff
jae 0x1005817a
or eax, 0xffffffff
or ecx, eax
jmp 0x1005817a
mov eax, dword [esp + 0x68]
mov dword [esi + 0xa0], eax
mov dword [esi + 0xa4], ecx
mov edx, dword [esi + 0xd0]
test edx, edx
je 0x10058196
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.100570c0
mov ecx, dword [esp + 0x18]
add esp, 8
mov ebx, dword [esp + 0x18]
jmp 0x1005757a
mov ebx, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
mov edi, dword [ebx + 4]
test ecx, ecx
jne 0x10058223
mov al, byte [edi + 9]
test al, al
je 0x100581e8
inc dword [edi + 0xc]
cmp byte [edi + 0xa], cl
jne 0x100581e8
mov ecx, edi
call fcn.10015e90
mov al, byte [edi + 9]
mov ecx, dword [edi + 4]
xor ebx, ebx
cmp byte [ecx + 0x11], bl
je 0x100581f9
cmp byte [ecx + 0x12], bl
setne bl
inc ebx
test al, al
je 0x1005820a
add dword [edi + 0xc], 0xffffffff
jne 0x1005820a
mov ecx, edi
call fcn.10015e50
mov ecx, dword [esp + 0x24]
mov edx, str.auto_vacuum
push 0
push ebx
call fcn.100570c0
add esp, 8
jmp 0x1005756e
mov bl, byte [ecx]
mov edx, str.none
mov bh, bl
test bl, bl
je 0x10058265
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 + 0x100f44b0]
cmp al, byte [ecx + 0x100f44b0]
jne 0x10058261
mov al, byte [edx + esi + 1]
inc edx
mov bh, al
test al, al
jne 0x10058240
mov esi, dword [esp + 0x48]
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x100f44b0]
movzx eax, bh
movzx eax, byte [eax + 0x100f44b0]
sub eax, ecx
jne 0x10058284
xor ebx, ebx
jmp 0x10058366
mov edx, str.full
mov bh, bl
test bl, bl
je 0x100582c5
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 + 0x100f44b0]
cmp al, byte [ecx + 0x100f44b0]
jne 0x100582c1
mov al, byte [edx + esi + 1]
inc edx
mov bh, al
test al, al
jne 0x100582a0
mov esi, dword [esp + 0x48]
movzx eax, bh
movzx ecx, byte [eax + 0x100f44b0]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x100f44b0]
sub ecx, eax
jne 0x100582e5
lea ebx, [ecx + 1]
jmp 0x10058366
mov edx, str.incremental
test bl, bl
je 0x10058325
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 + 0x100f44b0]
cmp al, byte [ecx + 0x100f44b0]
jne 0x10058321
mov al, byte [edx + esi + 1]
inc edx
mov bl, al
test al, al
jne 0x10058300
mov esi, dword [esp + 0x48]
movzx eax, bl
movzx ecx, byte [eax + 0x100f44b0]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x100f44b0]
sub ecx, eax
jne 0x10058342
lea ebx, [ecx + 2]
jmp 0x10058366
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x20]
mov dword [esp + 0x20], 0
call fcn.10008630
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.10017f00
test eax, eax
jne 0x1005756e
cmp ebx, 1
je 0x1005838c
cmp ebx, 2
jne 0x1005756e
push ecx
push 0x100f5964
mov edx, 6
mov ecx, esi
call fcn.10022a60
mov ecx, dword [esi + 0x20]
mov edi, eax
add esp, 8
cmp ecx, edi
jbe 0x100583bb
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 0x100583d3
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 0x100583ea
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 0x10058401
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 0x10058416
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 0x1005756e
mov eax, dword [esi]
mov ebx, dword [esp + 0x38]
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 0x10058450
mov eax, dword [esi + 0x64]
bts eax, ecx
mov dword [esi + 0x64], eax
mov ecx, dword [esp + 0x10]
jmp 0x1005757a
mov eax, dword [esp + 0x14]
test eax, eax
je 0x10058478
lea edx, [esp + 0x1c]
mov ecx, eax
call fcn.10008630
test eax, eax
je 0x10058478
mov ebx, dword [esp + 0x1c]
test ebx, ebx
jg 0x1005847d
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 0x100584e2
mov eax, dword [esp + 0x24]
bts edx, ecx
mov ecx, dword [esp + 0x38]
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 0x100584e6
mov ecx, edi
call fcn.10047dc0
mov ecx, dword [esp + 0x28]
jmp 0x100584e6
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 0x10058510
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x10058543
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 0x10058565
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x10058562
mov edi, 1
jmp 0x1005859c
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 0x100585b7
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x100585ee
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 0x10058609
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x10058640
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 0x1005865b
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005868e
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 0x100586a2
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 0x1005756e
mov edi, dword [esp + 0x14]
test edi, edi
jne 0x100586cf
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 0x100581a7
lea edx, [esp + 0x20]
mov dword [esp + 0x20], 0
mov ecx, edi
call fcn.10008630
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.10017ca0
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
jmp 0x1005757a
mov edi, dword [esp + 0x14]
test edi, edi
je 0x1005884d
lea edx, [esp + 0x78]
mov ecx, edi
call fcn.10008510
cmp dword [esp + 0x7c], 0
jg 0x10058744
jl 0x10058732
cmp dword [esp + 0x78], 0
jae 0x10058744
mov eax, dword [0x100fcb80]
mov dword [esp + 0x78], eax
mov eax, dword [0x100fcb84]
mov dword [esp + 0x7c], eax
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x10]
cmp dword [ecx + 4], 0
jne 0x10058760
mov eax, dword [esp + 0x78]
mov dword [edx + 0x28], eax
mov eax, dword [esp + 0x7c]
mov dword [edx + 0x2c], eax
mov edi, dword [edx + 0x14]
sub edi, 1
js 0x10058849
mov ebx, edi
shl ebx, 4
mov eax, dword [edx + 0x10]
mov esi, dword [ebx + eax + 4]
test esi, esi
je 0x1005883d
cmp edi, dword [esp + 0x28]
je 0x10058790
cmp dword [ecx + 4], 0
jne 0x1005883d
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 0x100587c9
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x100587c9
mov ecx, esi
call fcn.10015e90
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 0x10058822
cmp dword [eax], 3
jl 0x10058822
mov eax, dword [esp + 0x20]
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], eax
test eax, eax
jl 0x10058805
jg 0x10058801
test edx, edx
je 0x10058805
mov al, 1
jmp 0x10058807
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 0x10058835
add dword [esi + 0xc], 0xffffffff
jne 0x10058835
mov ecx, esi
call fcn.10015e50
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x10]
sub ebx, 0x10
sub edi, 1
jns 0x10058771
mov edi, dword [esp + 0x14]
lea eax, [esp + 0x78]
mov dword [esp + 0x78], 0xffffffff
push eax
push 0x12
push dword [esp + 0x4c]
mov dword [esp + 0x88], 0xffffffff
push dword [esp + 0x1c]
call fcn.10082570
add esp, 0x10
test eax, eax
jne 0x1005888d
push dword [esp + 0x7c]
mov edx, str.mmap_size
push dword [esp + 0x7c]
jmp 0x100581a7
mov ebx, dword [esp + 0x18]
cmp eax, 0xc
je 0x10058450
mov ecx, dword [esp + 0x24]
inc dword [ecx + 0x40]
mov dword [ecx + 0xc], eax
mov ecx, dword [esp + 0x10]
jmp 0x1005757a
mov edi, dword [esp + 0x14]
test edi, edi
jne 0x100588dc
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.100570c0
mov ecx, dword [esp + 0x18]
add esp, 8
mov ebx, dword [esp + 0x18]
jmp 0x1005757a
mov bl, byte [edi]
mov al, bl
sub al, 0x30
cmp al, 2
ja 0x100588f1
movsx ebx, bl
sub ebx, 0x30
jmp 0x10058991
mov edx, str.file
mov bh, bl
test bl, bl
je 0x10058923
mov esi, edi
mov al, bl
sub esi, edx
movzx ecx, byte [edx]
mov bh, al
movzx eax, al
mov al, byte [eax + 0x100f44b0]
cmp al, byte [ecx + 0x100f44b0]
jne 0x10058923
mov al, byte [edx + esi + 1]
inc edx
mov bh, al
test al, al
jne 0x10058902
movzx eax, bh
movzx ecx, byte [eax + 0x100f44b0]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x100f44b0]
sub ecx, eax
jne 0x10058940
lea ebx, [ecx + 1]
jmp 0x10058991
mov edx, str.memory
test bl, bl
je 0x10058971
mov esi, edi
mov al, bl
sub esi, edx
nop
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x100f44b0]
cmp al, byte [ecx + 0x100f44b0]
jne 0x10058971
mov al, byte [edx + esi + 1]
inc edx
mov bl, al
test al, al
jne 0x10058950
movzx eax, bl
movzx ebx, byte [eax + 0x100f44b0]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x100f44b0]
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 0x10058b82
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x100589cf
cmp byte [esi + 0x3e], 0
je 0x100589df
cmp byte [ecx + 8], 0
jne 0x100589df
call fcn.10017b20
mov eax, dword [esi + 0x10]
mov ecx, esi
mov dword [eax + 0x14], 0
call fcn.10041c70
mov ecx, dword [esp + 0x10]
mov byte [esi + 0x3f], bl
mov ebx, dword [esp + 0x18]
jmp 0x1005757a
push str.temporary_storage_cannot_be_changed_from_within_a_transaction
push edx
call fcn.10007a10
mov ecx, dword [esp + 0x18]
add esp, 8
mov ebx, dword [esp + 0x18]
jmp 0x1005757a
mov edi, dword [esp + 0x14]
test edi, edi
jne 0x10058a40
cmp dword [0x100ff8f4], edi
je 0x10058b82
lea edx, [edi + 1]
mov ecx, esi
call fcn.10023d90
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x10058a35
mov ecx, dword [esi + 0x10]
mov edx, str.temp_store_directory
push edi
push 1
push 0xffffffffffffffff
call fcn.10021c80
add esp, 0xc
mov ebx, dword [0x100ff8f4]
jmp 0x10057ea0
cmp byte [edi], 0
je 0x10058a74
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 0x10058b74
cmp dword [esp + 0x80], eax
je 0x10058b74
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x3f], 1
ja 0x10058abc
mov esi, dword [ebx]
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x10058abc
cmp byte [esi + 0x3e], 0
je 0x10058aae
cmp byte [ecx + 8], 0
jne 0x10058aae
call fcn.10017b20
mov eax, dword [esi + 0x10]
mov ecx, esi
mov dword [eax + 0x14], 0
call fcn.10041c70
jmp 0x10058abc
push str.temporary_storage_cannot_be_changed_from_within_a_transaction
push ebx
call fcn.10007a10
add esp, 8
push dword [0x100ff8f4]
call fcn.10004cd0
add esp, 4
cmp byte [edi], 0
je 0x10058aef
push edi
push 0x100ee9f0
call fcn.10006e90
mov ecx, dword [esp + 0x18]
add esp, 8
mov ebx, dword [esp + 0x18]
mov dword [0x100ff8f4], eax
jmp 0x1005757a
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov dword [0x100ff8f4], 0
jmp 0x1005757a
mov edi, dword [esp + 0x14]
test edi, edi
jne 0x10058b48
cmp dword [0x100ff8f0], edi
je 0x10058b82
lea edx, [edi + 1]
mov ecx, esi
call fcn.10023d90
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x10058b3d
mov ecx, dword [esi + 0x10]
mov edx, str.data_store_directory
push edi
push 1
push 0xffffffffffffffff
call fcn.10021c80
add esp, 0xc
mov ebx, dword [0x100ff8f0]
jmp 0x10057ea0
cmp byte [edi], 0
je 0x10058b8f
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 0x10058b74
cmp dword [esp + 0x84], eax
jne 0x10058b8f
push str.not_a_writable_directory
push ebx
call fcn.10007a10
add esp, 8
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
jmp 0x1005757a
push dword [0x100ff8f0]
call fcn.10004cd0
add esp, 4
cmp byte [edi], 0
je 0x10058bc2
push edi
push 0x100ee9f0
call fcn.10006e90
mov ecx, dword [esp + 0x18]
add esp, 8
mov ebx, dword [esp + 0x18]
mov dword [0x100ff8f0], eax
jmp 0x1005757a
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov dword [0x100ff8f0], 0
jmp 0x1005757a
mov edi, dword [esp + 0x14]
test edi, edi
jne 0x10058bfb
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 0x100581a7
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x3e], 0
jne 0x10058c20
push str.Safety_level_may_not_be_changed_inside_a_transaction
push ebx
call fcn.10007a10
mov ecx, dword [esp + 0x18]
add esp, 8
mov ebx, dword [esp + 0x18]
jmp 0x1005757a
push 1
xor edx, edx
mov ecx, edi
call fcn.10056fd0
mov ebx, dword [esp + 0x34]
add esp, 4
mov ecx, dword [esp + 0x10]
inc al
mov byte [ebx + 8], al
call fcn.100571e0
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
jmp 0x1005757a
cmp dword [esp + 0x14], 0
mov eax, dword [edi*4 + 0x100f2d38]
mov ecx, dword [esp + 0x10]
push 0
jne 0x10058c81
and eax, dword [ecx + 0x18]
mov ecx, ebx
mov edx, dword [edi*4 + 0x100f2d30]
neg eax
sbb eax, eax
neg eax
push eax
call fcn.100570c0
add esp, 8
jmp 0x1005756e
mov edi, eax
mov edx, 1
and edi, 0xfff7ffff
cmp byte [ecx + 0x3e], 0
mov ecx, dword [esp + 0x18]
cmovne edi, eax
call fcn.10056fd0
mov edx, dword [esp + 0x14]
add esp, 4
mov ecx, dword [edx + 0x18]
test al, al
je 0x10058cb3
or edi, ecx
mov dword [edx + 0x18], edi
jmp 0x10058cd8
mov eax, edi
not eax
and eax, ecx
mov dword [edx + 0x18], eax
cmp edi, 0x1000000
jne 0x10058cd8
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 0x10058cee
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x10058d22
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.100571e0
jmp 0x1005756e
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
test edi, edi
je 0x10058b86
push dword [esp + 0x44]
mov edx, edi
call fcn.10041690
add esp, 4
mov dword [esp + 0x44], eax
test eax, eax
je 0x10058b82
mov ecx, dword [eax + 8]
mov dword [esp + 0x20], 0
mov dword [esp + 0x2c], ecx
test ecx, ecx
je 0x10058d84
nop dword [eax]
mov eax, dword [ecx + 0x38]
and al, 3
cmp al, 2
je 0x10058d80
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x10058d70
mov dword [esp + 0x2c], ecx
mov edx, 6
mov ecx, esi
call fcn.10023d90
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 0x10058deb
bts edi, ecx
mov ecx, dword [esp + 0x38]
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 0x10058deb
mov ecx, edx
call fcn.10047dc0
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x10058ec0
mov ecx, dword [esi + 0x10]
mov edx, 0x100f1504
push 0
push 1
push 0xffffffffffffffff
call fcn.10021c80
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x10058ec0
mov ecx, dword [esi + 0x10]
mov edx, str.name
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x28
call fcn.10021c80
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x10058ec0
mov ecx, dword [esi + 0x10]
mov edx, str.type
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x50
call fcn.10021c80
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x10058ec0
mov ecx, dword [esi + 0x10]
mov edx, str.notnull
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x78
call fcn.10021c80
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x10058ec0
mov ecx, dword [esi + 0x10]
mov edx, str.dflt_value
push 0
push 1
push 0xffffffffffffffff
add ecx, 0xa0
call fcn.10021c80
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x10058ec0
mov ecx, dword [esi + 0x10]
mov edx, 0x100f152c
push 0
push 1
push 0xffffffffffffffff
add ecx, 0xc8
call fcn.10021c80
add esp, 0xc
mov edi, dword [esp + 0x44]
mov edx, edi
mov ecx, dword [esp + 0x24]
call fcn.100448b0
mov eax, dword [esp + 0x44]
xor ecx, ecx
mov edi, dword [edi + 4]
xor ebx, ebx
mov dword [esp + 0x48], edi
cmp cx, word [eax + 0x26]
jge 0x1005756e
test byte [edi + 0x17], 2
je 0x10058ef7
inc dword [esp + 0x20]
jmp 0x1005924c
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x20]
mov edx, ecx
mov dword [esp + 0x1c], ecx
cmp dword [eax + 0x54], ecx
jg 0x10058f1a
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x10058f52
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 0x10058f7a
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x10058f77
mov edi, 1
jmp 0x10058fb1
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.10022d20
mov eax, dword [esp + 0x50]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, 0x100ede68
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 0x10058ffa
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x10058ff7
mov edi, 1
jmp 0x10059031
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.10022d20
mov edi, dword [esp + 0x50]
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 0x10059076
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x100590ad
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 [edi + 8]
test eax, eax
mov edi, dword [esi + 0x20]
mov ecx, dword [esi + 0x18]
mov dword [esp + 0x1c], eax
mov eax, edi
je 0x10059123
cmp dword [ecx + 0x54], edi
jg 0x100590da
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x100590d7
mov edi, 1
jmp 0x1005910f
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.10022d20
add esp, 8
jmp 0x1005916b
cmp dword [ecx + 0x54], edi
jg 0x10059136
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005916b
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 + 0x48]
test byte [eax + 0x17], 1
jne 0x10059179
xor edi, edi
jmp 0x100591a4
mov eax, dword [esp + 0x2c]
mov edi, 1
test eax, eax
je 0x100591a4
mov ecx, dword [esp + 0x44]
movsx edx, word [ecx + 0x26]
cmp edx, edi
jl 0x100591a4
mov ecx, dword [eax + 4]
movsx eax, word [ecx]
cmp eax, ebx
je 0x100591a4
inc edi
add ecx, 2
cmp edi, edx
jle 0x10059195
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x20]
mov edx, ecx
mov dword [esp + 0x1c], ecx
cmp dword [eax + 0x54], ecx
jg 0x100591c7
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x100591fa
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 0x10059210
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x10059244
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 + 0x44]
mov edi, dword [esp + 0x48]
movsx eax, word [eax + 0x26]
inc ebx
add edi, 0x18
cmp ebx, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x48], edi
jl 0x10058ee8
jmp 0x1005756e
mov ecx, ebx
call fcn.10061e50
mov esi, eax
mov edx, 4
mov ecx, esi
call fcn.10023d90
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 0x100592d7
bts edx, ecx
mov ecx, dword [esp + 0x38]
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 0x100592d7
mov ecx, ebx
call fcn.10047dc0
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x10059358
mov ecx, dword [esi + 0x10]
mov edx, str.table
push 0
push 1
push 0xffffffffffffffff
call fcn.10021c80
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x10059358
mov ecx, dword [esi + 0x10]
mov edx, str.index
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x28
call fcn.10021c80
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x10059358
mov ecx, dword [esi + 0x10]
mov edx, str.width
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x50
call fcn.10021c80
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x10059358
mov ecx, dword [esi + 0x10]
mov edx, str.height
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x78
call fcn.10021c80
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 0x1005756e
nop
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 0x1005939b
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x10059398
mov edi, 1
jmp 0x100593d2
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.10022d20
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x100593ff
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x10059436
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.10008ea0
mov ecx, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov dword [esp + 0x1c], eax
mov eax, edi
cmp dword [ecx + 0x54], edi
jg 0x1005945e
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x10059493
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.10008ea0
mov ecx, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov dword [esp + 0x1c], eax
mov eax, edi
cmp dword [ecx + 0x54], edi
jg 0x100594bb
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x100594f0
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 0x10059506
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005953a
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 0x100596c7
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 0x1005956d
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x1005956a
mov edi, 1
jmp 0x100595a4
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.10022d20
mov cx, word [ebx + 0x30]
add esp, 8
call fcn.10008ea0
mov ecx, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov dword [esp + 0x1c], eax
mov eax, edi
cmp dword [ecx + 0x54], edi
jg 0x100595de
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x10059613
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.10008ea0
mov ecx, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov dword [esp + 0x1c], eax
mov eax, edi
cmp dword [ecx + 0x54], edi
jg 0x1005963d
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x10059672
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 0x10059688
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x100596bc
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 0x10059545
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
mov dword [esp + 0x20], eax
test eax, eax
jne 0x10059370
jmp 0x1005756e
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
test edi, edi
je 0x10058b86
push dword [esp + 0x44]
mov edx, edi
call fcn.10041810
mov edi, eax
add esp, 4
mov dword [esp + 0x50], edi
test edi, edi
je 0x1005756e
mov eax, dword [edi + 0xc]
mov edx, 3
mov ecx, esi
mov dword [esp + 0x1c], eax
call fcn.10023d90
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 0x10059784
mov eax, dword [esp + 0x24]
bts edx, ecx
mov ecx, dword [esp + 0x38]
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 0x10059784
call fcn.10047dc0
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x100597e4
mov ecx, dword [esi + 0x10]
mov edx, str.seqno
push 0
push 1
push 0xffffffffffffffff
call fcn.10021c80
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x100597e4
mov ecx, dword [esi + 0x10]
mov edx, 0x100f1504
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x28
call fcn.10021c80
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x100597e4
mov ecx, dword [esi + 0x10]
mov edx, str.name
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x50
call fcn.10021c80
add esp, 0xc
xor eax, eax
xor ebx, ebx
cmp ax, word [edi + 0x32]
jae 0x1005756e
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 0x10059818
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005984b
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 0x10059866
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x100598d0
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 0x100598dc
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x100598d9
mov edi, 1
jmp 0x10059913
mov edx, dword [esp + 0x20]
movsx edx, dx
jmp 0x100598a0
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.10022d20
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x1005993b
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005996f
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 0x100597f2
jmp 0x1005756e
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
test edi, edi
je 0x10058b86
push dword [esp + 0x44]
mov edx, edi
call fcn.10041690
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x10058b82
mov ecx, dword [esp + 0x24]
call fcn.10061e50
mov esi, eax
mov edx, 3
mov ecx, esi
call fcn.10023d90
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 0x10059a2b
mov eax, dword [esp + 0x24]
bts edx, ecx
mov ecx, dword [esp + 0x38]
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 0x10059a2b
call fcn.10047dc0
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x10059a8b
mov ecx, dword [esi + 0x10]
mov edx, 0x100f1548
push 0
push 1
push 0xffffffffffffffff
call fcn.10021c80
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x10059a8b
mov ecx, dword [esi + 0x10]
mov edx, str.name
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x28
call fcn.10021c80
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x10059a8b
mov ecx, dword [esi + 0x10]
mov edx, str.unique
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x50
call fcn.10021c80
add esp, 0xc
mov ebx, dword [ebx + 8]
xor edx, edx
mov dword [esp + 0x20], edx
test ebx, ebx
je 0x1005756e
nop dword [eax]
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10059abf
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x10059af2
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 0x10059b1a
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x10059b17
mov edi, 1
jmp 0x10059b51
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.10022d20
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 0x10059b8a
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x10059bc1
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 0x10059bd7
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x10059c0b
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 0x10059aa0
jmp 0x1005756e
mov edx, 3
mov ecx, esi
call fcn.10023d90
mov edx, dword [esp + 0x58]
mov dword [edx], 3
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x10059c9a
mov ecx, dword [esi + 0x10]
mov edx, 0x100f1548
push 0
push 1
push 0xffffffffffffffff
call fcn.10021c80
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x10059c9a
mov ecx, dword [esi + 0x10]
mov edx, str.name
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x28
call fcn.10021c80
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x10059c9a
mov ecx, dword [esi + 0x10]
mov edx, str.file
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x50
call fcn.10021c80
add esp, 0xc
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x20], 0
cmp dword [ecx + 0x14], 0
jle 0x10057572
xor ebx, ebx
mov eax, dword [ecx + 0x10]
cmp dword [ebx + eax + 4], 0
je 0x10059e66
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10059cdb
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x10059d12
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 0x10059d42
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x10059d3f
mov edi, 1
jmp 0x10059d79
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.10022d20
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 0x10059dab
mov dword [esp + 0x2c], 0x100ede68
jmp 0x10059db5
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 0x10059dd2
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x10059dd2
mov edi, 1
jmp 0x10059e06
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.10022d20
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x10059e2e
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x10059e62
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 0x10059cb2
jmp 0x10057572
mov edx, 2
mov dword [esp + 0x20], 0
mov ecx, esi
call fcn.10023d90
mov edx, dword [esp + 0x58]
mov dword [edx], 2
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x10059edd
mov ecx, dword [esi + 0x10]
mov edx, 0x100f1548
push 0
push 1
push 0xffffffffffffffff
call fcn.10021c80
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x10059edd
mov ecx, dword [esi + 0x10]
mov edx, str.name
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x28
call fcn.10021c80
add esp, 0xc
mov ebx, dword [esp + 0x10]
mov ebx, dword [ebx + 0x1b4]
test ebx, ebx
je 0x1005756e
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 0x10059f12
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x10059f49
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 0x10059f79
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x10059f76
mov edi, 1
jmp 0x10059fb0
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.10022d20
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x10059fd8
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005a00c
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 0x10059ef0
jmp 0x1005756e
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
test edi, edi
je 0x10058b86
push dword [esp + 0x44]
mov edx, edi
call fcn.10041690
mov ebx, eax
add esp, 4
mov dword [esp + 0x40], ebx
test ebx, ebx
je 0x10058b82
mov ecx, dword [esp + 0x24]
call fcn.10061e50
mov ebx, dword [ebx + 0x10]
mov esi, eax
mov dword [esp + 0x34], ebx
test ebx, ebx
je 0x10058b82
mov edx, 8
mov dword [esp + 0x4c], 0
mov ecx, esi
call fcn.10023d90
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 0x1005a0dc
mov eax, dword [esp + 0x24]
bts edx, ecx
mov ecx, dword [esp + 0x38]
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 0x1005a0dc
call fcn.10047dc0
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x1005a201
mov ecx, dword [esi + 0x10]
mov edx, 0x100f1554
push 0
push 1
push 0xffffffffffffffff
call fcn.10021c80
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x1005a201
mov ecx, dword [esi + 0x10]
mov edx, 0x100f1548
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x28
call fcn.10021c80
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x1005a201
mov ecx, dword [esi + 0x10]
mov edx, str.table
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x50
call fcn.10021c80
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x1005a201
mov ecx, dword [esi + 0x10]
mov edx, str.from
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x78
call fcn.10021c80
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x1005a201
mov ecx, dword [esi + 0x10]
mov edx, 0x100f1560
push 0
push 1
push 0xffffffffffffffff
add ecx, 0xa0
call fcn.10021c80
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x1005a201
mov ecx, dword [esi + 0x10]
mov edx, str.on_update
push 0
push 1
push 0xffffffffffffffff
add ecx, 0xc8
call fcn.10021c80
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x1005a201
mov ecx, dword [esi + 0x10]
mov edx, str.on_delete
push 0
push 1
push 0xffffffffffffffff
add ecx, 0xf0
call fcn.10021c80
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x1005a201
mov ecx, dword [esi + 0x10]
mov edx, str.match
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x118
call fcn.10021c80
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 0x1005a672
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.0x1005a243
jmp dword [eax*4 + 0x1005d528]
mov dword [esp + 0x54], str.SET_NULL
jmp 0x1005a27a
mov dword [esp + 0x54], str.SET_DEFAULT
jmp 0x1005a27a
mov dword [esp + 0x54], str.CASCADE
jmp 0x1005a27a
mov dword [esp + 0x54], str.RESTRICT
jmp 0x1005a27a
mov dword [esp + 0x54], str.NO_ACTION
movzx eax, byte [ebx + 0x1a]
add eax, 0xfffffffa
cmp eax, 3
ja case.default.0x1005a286
jmp dword [eax*4 + 0x1005d538]
mov ebx, str.SET_NULL
jmp 0x1005a2ae
mov ebx, str.SET_DEFAULT
jmp 0x1005a2ae
mov ebx, str.CASCADE
jmp 0x1005a2ae
mov ebx, str.RESTRICT
jmp 0x1005a2ae
mov ebx, str.NO_ACTION
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005a2c9
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005a300
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x4c]
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 0x1005a31b
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005a352
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 + 0x34]
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 0x1005a37f
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x1005a37c
mov edi, 1
jmp 0x1005a3b6
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.10022d20
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 0x1005a401
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x1005a3fe
mov edi, 1
jmp 0x1005a438
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.10022d20
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005a470
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x1005a46d
mov edx, dword [esp + 0x60]
mov edi, 1
jmp 0x1005a4b5
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.10022d20
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005a4e6
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x1005a4e3
mov edi, 1
jmp 0x1005a51d
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.10022d20
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005a54e
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x1005a54b
mov edi, 1
jmp 0x1005a585
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.10022d20
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005a5b9
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x1005a5b6
mov edi, 1
jmp 0x1005a5f0
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.10022d20
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x1005a619
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005a64d
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 + 0x34]
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 0x1005a230
mov eax, dword [esp + 0x4c]
mov ebx, dword [ebx + 4]
inc eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x34], ebx
test ebx, ebx
jne 0x1005a210
jmp 0x1005756e
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 + 0x54], ecx
mov ecx, ebx
mov dword [esp + 0x30], eax
mov dword [edx], eax
call fcn.10061e50
mov edi, eax
mov edx, 4
mov ecx, edi
call fcn.10023d90
mov eax, dword [edi]
cmp byte [eax + 0x40], 0
jne 0x1005a740
mov ecx, dword [edi + 0x10]
mov edx, str.table
push 0
push 1
push 0xffffffffffffffff
call fcn.10021c80
mov eax, dword [edi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x1005a740
mov ecx, dword [edi + 0x10]
mov edx, str.rowid
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x28
call fcn.10021c80
mov eax, dword [edi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x1005a740
mov ecx, dword [edi + 0x10]
mov edx, str.parent
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x50
call fcn.10021c80
mov eax, dword [edi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x1005a740
mov ecx, dword [edi + 0x10]
mov edx, str.fkid
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x78
call fcn.10021c80
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 0x1005a78f
bts esi, ecx
mov dword [edx + 0x14c], esi
mov eax, dword [ebx + 0x10]
mov ebx, dword [esp + 0x38]
mov eax, dword [eax + ebx + 0xc]
mov eax, dword [eax]
mov dword [edx + ecx*4 + 0x150], eax
cmp ecx, 1
jne 0x1005a793
mov ecx, edx
call fcn.10047dc0
jmp 0x1005a793
mov ebx, dword [esp + 0x38]
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 0x1005756e
nop dword [eax]
cmp dword [esp + 0x14], 0
je 0x1005a850
mov ebx, dword [esp + 0x24]
mov ecx, dword [ebx]
cmp byte [ecx + 0x91], 0
jne 0x1005a7e6
lea edx, [ebx + 4]
call fcn.1005dd50
test eax, eax
je 0x1005a7e6
mov dword [ebx + 0xc], eax
inc dword [ebx + 0x40]
xor ebx, ebx
mov dword [esp + 0x3c], ebx
xor eax, eax
jmp 0x1005a859
mov esi, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
mov ecx, dword [ebx]
push esi
call fcn.10041690
mov ebx, eax
add esp, 4
mov dword [esp + 0x3c], ebx
test ebx, ebx
jne 0x1005a84c
push dword [esp + 0x14]
test esi, esi
je 0x1005a82e
push esi
push str.no_such_table
push str._s:__s._s
push dword [esp + 0x34]
call fcn.10007a10
mov eax, dword [esp + 0x38]
add esp, 0x14
mov byte [eax + 0x11], 1
xor eax, eax
jmp 0x1005a859
push str.no_such_table
push str._s:__s
push dword [esp + 0x30]
call fcn.10007a10
mov eax, dword [esp + 0x34]
add esp, 0x10
mov byte [eax + 0x11], 1
xor eax, eax
jmp 0x1005a859
mov ebx, dword [eax + 8]
mov eax, dword [eax]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x50], eax
test ebx, ebx
je 0x1005b176
cmp dword [ebx + 0x10], 0
je 0x1005b176
push dword [ebx]
mov esi, dword [esp + 0x28]
mov ecx, esi
mov edx, dword [esp + 0x2c]
push 0
push dword [ebx + 0x20]
call fcn.10040ea0
mov ecx, dword [esp + 0x64]
add esp, 0xc
movsx eax, word [ebx + 0x26]
add eax, dword [esp + 0x30]
cmp eax, dword [ecx]
jle 0x1005a89a
mov dword [ecx], eax
push 0x36
push ebx
push dword [esp + 0x30]
xor edx, edx
mov ecx, esi
call fcn.10051460
mov eax, dword [edi + 0x18]
add esp, 0xc
mov esi, dword [edi + 0x20]
mov ebx, dword [ebx]
cmp dword [eax + 0x54], esi
jg 0x1005a8cc
mov ecx, edi
call fcn.100226d0
test eax, eax
je 0x1005a8cc
mov esi, 1
jmp 0x1005a900
inc dword [edi + 0x20]
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x54]
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.10022d20
mov esi, dword [esp + 0x44]
add esp, 8
mov eax, 1
mov dword [esp + 0x34], eax
mov ebx, dword [esi + 0x10]
test ebx, ebx
je 0x1005aa3a
nop word [eax + eax]
push dword [esp + 0x44]
mov edx, dword [ebx + 8]
mov ecx, dword [esp + 0x14]
call fcn.10041690
mov esi, eax
add esp, 4
test esi, esi
je 0x1005aa22
push dword [esi]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
push 0
push dword [esi + 0x20]
mov dword [esp + 0x44], 0
call fcn.10040ea0
mov ecx, dword [esp + 0x30]
lea eax, [esp + 0x44]
add esp, 0xc
mov edx, esi
push 0
push eax
push ebx
call fcn.1004e8f0
add esp, 0xc
test eax, eax
jne 0x1005756e
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x1005a9ab
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
push 0x36
push esi
push dword [esp + 0x30]
call fcn.10051460
add esp, 0xc
jmp 0x1005aa22
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 0x1005a9c8
mov ecx, edi
call fcn.100226d0
test eax, eax
jne 0x1005a9fc
inc dword [edi + 0x20]
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x34]
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 + 0x38]
push 0xfffffffffffffffa
push ecx
mov esi, dword [eax + 8]
mov ecx, eax
call fcn.10048840
add esp, 4
or edx, 0xffffffff
mov ecx, esi
push eax
call fcn.10022d20
add esp, 8
mov eax, dword [esp + 0x34]
mov ebx, dword [ebx + 4]
inc eax
mov dword [esp + 0x34], eax
test ebx, ebx
jne 0x1005a930
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 0x44], eax
jge 0x1005aa46
mov dword [ecx + 0x44], eax
mov eax, dword [edi + 0x18]
mov ebx, dword [edi + 0x20]
mov ecx, ebx
mov dword [esp + 0x4c], ebx
cmp dword [eax + 0x54], ebx
jg 0x1005aa6f
mov ecx, edi
call fcn.100226d0
test eax, eax
je 0x1005aa6c
mov dword [esp + 0x4c], 1
jmp 0x1005aaa6
mov ecx, dword [edi + 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], 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 esi, dword [esi + 0x10]
mov dword [esp + 0x34], 1
mov dword [esp + 0x48], esi
test esi, esi
je 0x1005b0fe
nop dword [eax]
push dword [esp + 0x44]
mov edx, dword [esi + 8]
mov ecx, dword [esp + 0x14]
call fcn.10041690
mov ebx, eax
mov dword [esp + 0x3c], 0
add esp, 4
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x2c], 0
test ebx, ebx
je 0x1005ab06
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x3c]
mov edx, ebx
push eax
push esi
call fcn.1004e8f0
add esp, 0xc
mov ecx, edi
call fcn.10022800
mov dword [esp + 0x60], eax
test ebx, ebx
je 0x1005ad55
cmp dword [esp + 0x38], 0
jne 0x1005ad55
mov eax, dword [edi + 0x18]
mov ebx, dword [esi + 0x24]
mov esi, dword [edi + 0x20]
mov ecx, dword [eax + 0x54]
mov eax, dword [esp + 0x3c]
movsx eax, word [eax + 0x24]
cmp ebx, eax
mov eax, esi
je 0x1005ac43
cmp ecx, esi
jg 0x1005ab54
mov ecx, edi
call fcn.100226d0
test eax, eax
jne 0x1005ab85
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 + 0x40]
mov ecx, edi
push ebx
call fcn.1006b8a0
mov eax, dword [edi + 0x18]
add esp, 8
mov esi, dword [edi + 0x20]
mov ecx, esi
cmp dword [eax + 0x54], esi
jg 0x1005abb3
mov ecx, edi
call fcn.100226d0
test eax, eax
jne 0x1005abea
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 + 0x60]
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 0x1005ac0c
mov ecx, edi
call fcn.100226d0
test eax, eax
jne 0x1005ac8c
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 0x1005ac90
cmp ecx, esi
jg 0x1005ac55
mov ecx, edi
call fcn.100226d0
test eax, eax
jne 0x1005ac8c
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 0x1005ac90
mov ebx, dword [esp + 0x30]
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
mov ecx, esi
cmp dword [eax + 0x54], esi
jg 0x1005acab
mov ecx, edi
call fcn.100226d0
test eax, eax
jne 0x1005acde
mov ecx, dword [edi + 0x20]
mov edx, dword [esp + 0x34]
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 0x1005acf9
mov ecx, edi
call fcn.100226d0
test eax, eax
jne 0x1005ad30
mov ecx, dword [edi + 0x20]
mov edx, 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], 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 [edi + 0x20]
lea eax, [edx - 2]
cmp edx, eax
jbe 0x1005ad47
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
jmp 0x1005af00
mov eax, dword [esp + 0x48]
xor esi, esi
mov ebx, dword [eax + 0x14]
test ebx, ebx
jle 0x1005ae0a
mov ecx, dword [esp + 0x30]
add eax, 0x24
mov dword [esp + 0x20], ecx
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x2c]
test edx, edx
je 0x1005ad80
lea eax, [edx + esi*4]
mov eax, dword [eax]
mov edx, dword [esp + 0x3c]
push ecx
push eax
push 0
mov ecx, edi
call fcn.10039780
mov eax, dword [edi + 0x18]
add esp, 0xc
mov ebx, dword [edi + 0x20]
mov ecx, ebx
cmp dword [eax + 0x54], ebx
jg 0x1005adaf
mov ecx, edi
call fcn.100226d0
test eax, eax
jne 0x1005ade6
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 + 0x60]
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x48]
inc esi
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x20]
add eax, 8
inc ecx
mov dword [esp + 0x70], eax
mov ebx, dword [edx + 0x14]
mov dword [esp + 0x20], ecx
cmp esi, ebx
jl 0x1005ad75
cmp dword [esp + 0x1c], 0
je 0x1005af00
mov edx, dword [esp + 0x38]
mov ecx, edi
call fcn.100515b0
mov ecx, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x1c], eax
mov eax, esi
cmp dword [ecx + 0x54], esi
jg 0x1005ae51
mov ecx, edi
call fcn.100226d0
test eax, eax
je 0x1005ae4e
mov esi, 1
jmp 0x1005ae86
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.10022d20
mov eax, dword [edi + 0x18]
add esp, 8
mov esi, dword [edi + 0x20]
mov ecx, esi
cmp dword [eax + 0x54], esi
jg 0x1005aeb9
mov ecx, edi
call fcn.100226d0
test eax, eax
je 0x1005aeb6
mov esi, 1
jmp 0x1005aef0
mov ecx, dword [edi + 0x20]
mov edx, dword [esp + 0x34]
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 + 0x60]
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.10022d20
add esp, 8
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
mov ecx, esi
cmp dword [eax + 0x54], esi
jg 0x1005af1b
mov ecx, edi
call fcn.100226d0
test eax, eax
jne 0x1005af53
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 + 0x54]
inc eax
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov eax, dword [esp + 0x48]
mov esi, dword [edi + 0x20]
mov ecx, esi
mov ebx, dword [eax + 8]
mov eax, dword [edi + 0x18]
cmp dword [eax + 0x54], esi
jg 0x1005af7c
mov ecx, edi
call fcn.100226d0
test eax, eax
je 0x1005af79
mov esi, 1
jmp 0x1005afb6
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 + 0x54]
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.10022d20
mov eax, dword [edi + 0x18]
add esp, 8
mov esi, dword [edi + 0x20]
mov ecx, esi
cmp dword [eax + 0x54], esi
jg 0x1005afe0
mov ecx, edi
call fcn.100226d0
test eax, eax
jne 0x1005b01e
mov ecx, dword [edi + 0x20]
mov ebx, dword [esp + 0x34]
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]
lea eax, [ebx - 1]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x54]
add eax, 3
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
jmp 0x1005b022
mov ebx, dword [esp + 0x34]
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
cmp dword [eax + 0x54], esi
jg 0x1005b038
mov ecx, edi
call fcn.100226d0
test eax, eax
jne 0x1005b06c
inc dword [edi + 0x20]
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x54]
mov word [eax + ecx*4], 0x23
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 4
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x60]
mov eax, edx
mov esi, dword [edi + 0x18]
neg eax
test eax, eax
jle 0x1005b090
mov ecx, dword [esi + 0x70]
test ecx, ecx
je 0x1005b090
lea eax, [edx*4 + 4]
sub ecx, eax
mov eax, dword [edi + 0x20]
mov dword [ecx], eax
mov eax, dword [edi + 0x20]
mov ecx, dword [esp + 0x2c]
dec eax
mov dword [esi + 0x58], eax
test ecx, ecx
je 0x1005b0e6
mov esi, dword [esp + 0x10]
cmp dword [esi + 0x208], 0
je 0x1005b0b7
mov edx, ecx
mov ecx, esi
call fcn.10004d70
jmp 0x1005b0e6
cmp ecx, dword [esi + 0x114]
jb 0x1005b0dd
cmp ecx, dword [esi + 0x118]
jae 0x1005b0dd
mov eax, dword [esi + 0x110]
mov dword [ecx], eax
mov dword [esi + 0x110], ecx
dec dword [esi + 0xfc]
jmp 0x1005b0e6
push ecx
call fcn.10004cd0
add esp, 4
mov esi, dword [esp + 0x48]
inc ebx
mov dword [esp + 0x34], ebx
mov esi, dword [esi + 4]
mov dword [esp + 0x48], esi
test esi, esi
jne 0x1005aac0
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
mov ecx, esi
cmp dword [eax + 0x54], esi
jg 0x1005b119
mov ecx, edi
call fcn.100226d0
test eax, eax
jne 0x1005b151
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 + 0x4c]
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 + 0x4c]
cmp edx, eax
jbe 0x1005b169
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 0x1005a7b0
jmp 0x1005756e
mov edi, dword [esp + 0x14]
test edi, edi
je 0x10058b82
push 0
mov edx, 1
mov ecx, edi
call fcn.10056fd0
mov edi, dword [esp + 0x14]
add esp, 4
xor ebx, ebx
mov ecx, 0x100f311c
test al, al
mov esi, 0x100f3e60
mov edx, str.like
push 0
push 0
setne bl
test al, al
push 0
cmove esi, ecx
mov ecx, edi
push 0x1004c8f0
push esi
push 1
push 2
call fcn.10080330
add esp, 0x1c
mov edx, str.like
mov ecx, edi
push 0
push 0
push 0
push 0x1004c8f0
push esi
push 1
push 3
call fcn.10080330
add esp, 0x1c
mov edx, str.glob
mov ecx, edi
push 0
push 0
push 0
push 0x1004c8f0
push 0x100f4124
push 1
push 2
call fcn.10080330
add esp, 0x1c
mov eax, str.glob
inc eax
cmp byte [eax], 0
jne 0x1005b220
push 0
sub eax, str.glob
mov edx, str.glob
push 1
and eax, 0x3fffffff
mov ecx, edi
push 2
push eax
call fcn.10049280
add esp, 0x10
test eax, eax
je 0x1005b24f
or word [eax + 2], 0xc
mov eax, str.like
inc eax
cmp byte [eax], 0
jne 0x1005b254
push 0
sub eax, str.like
mov edx, str.like
push 1
and eax, 0x3fffffff
mov ecx, edi
push 2
push eax
call fcn.10049280
add esp, 0x10
test eax, eax
je 0x1005b290
xor ecx, ecx
test ebx, ebx
setne cl
lea ecx, [ecx*8 + 4]
or word [eax + 2], cx
mov ecx, edi
jmp 0x10057572
mov eax, dword [esp + 0x18]
or ecx, 0xffffffff
mov edx, dword [esp + 0x58]
movzx eax, byte [eax]
mov al, byte [eax + 0x100f44b0]
mov byte [esp + 0x5f], al
mov eax, dword [esp + 0x3c]
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.10023d90
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x1005b2ef
mov ecx, dword [esi + 0x10]
mov edx, str.integrity_check
push 0
push 1
push 0xffffffffffffffff
call fcn.10021c80
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 0x1005b321
lea edx, [esp + 0x50]
mov ecx, eax
call fcn.10008630
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 0x1005b33c
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005b36f
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 + 0x54], eax
cmp dword [ecx + 0x14], eax
jle 0x1005caaa
mov edx, dword [esp + 0x28]
xor ebx, ebx
mov dword [esp + 0x34], ebx
test edx, edx
js 0x1005b398
cmp eax, edx
jne 0x1005ca9c
mov ecx, dword [esp + 0x24]
mov edi, ecx
mov eax, dword [ecx + 0x198]
test eax, eax
mov ecx, dword [esp + 0x54]
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 0x1005b3f1
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 0x1005b3f1
mov ecx, edi
call fcn.10047dc0
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005b413
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x1005b410
mov edi, 1
jmp 0x1005b43d
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 0x1005b460
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005b486
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 0x1005b49a
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 + 0x54]
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 0x1005b5bb
nop dword [eax]
mov eax, dword [eax + 8]
mov dword [esp + 0x64], eax
test byte [eax + 0x2c], 0x20
jne 0x1005b53d
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 0x1005b4ff
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005b534
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 + 0x34], ebx
mov edi, dword [eax + 8]
test edi, edi
je 0x1005b5a9
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 0x1005b561
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005b599
inc dword [esi + 0x20]
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 4]
mov ebx, dword [esp + 0x34]
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 0x1005b59d
mov ebx, dword [esp + 0x34]
mov edi, dword [edi + 0x14]
inc ebx
mov dword [esp + 0x34], ebx
test edi, edi
jne 0x1005b544
mov eax, dword [esp + 0x50]
mov eax, dword [eax]
mov dword [esp + 0x50], eax
test eax, eax
jne 0x1005b4d0
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 0x1005b5e6
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005b619
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 0x1005b62e
mov eax, dword [esi + 0x20]
mov edx, dword [esp + 0x54]
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 0x1005b650
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x1005b64d
mov edi, 1
jmp 0x1005b687
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.10006c60
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 0x1005b6c9
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x1005b6c6
mov ebx, 1
jmp 0x1005b6fe
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.10022d20
mov eax, dword [esi + 0x18]
add esp, 8
mov ebx, dword [esi + 0x20]
mov ecx, ebx
cmp dword [eax + 0x54], ebx
jg 0x1005b72b
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005b762
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 0x1005b77d
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005b7b4
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 0x1005b7cf
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005b806
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 0x1005b81a
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 0x1005ca90
mov cl, byte [esp + 0x5f]
nop word [eax + eax]
cmp cl, 0x71
je 0x1005ca90
mov eax, dword [eax + 8]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x70], 0
mov dword [esp + 0x34], 0xffffffff
mov edx, dword [eax + 8]
test edx, edx
je 0x1005ca7e
test byte [eax + 0x2c], 0x20
jne 0x1005b880
mov dword [esp + 0x38], 0
jmp 0x1005b894
mov eax, dword [edx + 0x38]
and al, 3
cmp al, 2
je 0x1005b890
mov edx, dword [edx + 0x14]
test edx, edx
jne 0x1005b880
mov dword [esp + 0x38], edx
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005b8b6
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x1005b8b3
mov edi, 1
jmp 0x1005b8ed
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 0x1005b908
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005b93f
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 0x1005b953
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.10039a10
mov ebx, dword [esp + 0x3c]
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x64]
mov edx, ebx
push eax
push 0
push 1
push 0x36
call fcn.10055250
mov eax, dword [esi + 0x18]
add esp, 0x14
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005b99e
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005b9d5
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 0x1005ba43
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005ba01
mov ecx, esi
call fcn.100226d0
mov edx, dword [esp + 0x2c]
test eax, eax
jne 0x1005ba37
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 0x1005b9e2
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 0x1005ba6e
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005baa7
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 0x1005baab
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 0x1005bad8
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x1005bad1
mov dword [esp + 0x2c], 1
jmp 0x1005bb0f
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 + 0x3c]
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x64], ecx
cmp ax, word [ebx + 0x26]
jge 0x1005be0a
xor edx, edx
mov dword [esp + 0x4c], edx
nop dword [eax + eax]
movsx eax, word [ebx + 0x24]
cmp ecx, eax
je 0x1005bdee
mov eax, dword [ebx + 4]
cmp byte [edx + eax + 0x14], 0
je 0x1005bdee
push 3
push ecx
push edi
mov edx, ebx
mov ecx, esi
call fcn.10039780
mov ecx, dword [esi + 4]
add esp, 0xc
test ecx, ecx
je 0x1005bb6c
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 0x1005bb95
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x1005bb92
mov dword [esp + 0x50], 1
jmp 0x1005bbcc
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 0x1005bbe7
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005bc1e
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 + 0x3c]
mov ecx, dword [esp + 0x4c]
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.10006c60
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 0x1005bc63
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x1005bc60
mov edi, 1
jmp 0x1005bc98
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.10022d20
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005bcc2
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005bcf9
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 0x1005bd1b
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x1005bd18
mov edi, 1
jmp 0x1005bd52
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 0x1005bd6d
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005bda4
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 0x1005bdbc
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 0x1005bdd9
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 + 0x4c]
mov ebx, dword [esp + 0x3c]
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 + 0x4c], edx
cmp ecx, eax
jl 0x1005bb30
mov edi, dword [ebx + 8]
mov dword [esp + 0x44], 0
mov dword [esp + 0x30], edi
test edi, edi
je 0x1005c691
mov ecx, esi
call fcn.10022800
mov ebx, eax
cmp dword [esp + 0x38], edi
je 0x1005c67a
push dword [esp + 0x34]
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.1004b010
mov ecx, dword [esi + 0x18]
add esp, 0x18
mov dword [esp + 0x70], edi
mov edi, dword [esi + 0x20]
mov dword [esp + 0x34], eax
mov eax, edi
cmp dword [ecx + 0x54], edi
jg 0x1005be7a
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005beb1
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 + 0x44]
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 + 0x4c], edx
movzx edi, word [eax + 0x34]
mov eax, dword [esi + 0x18]
mov dword [esp + 0x50], edi
cmp dword [eax + 0x54], edx
jg 0x1005beeb
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x1005bee4
mov edx, 1
mov dword [esp + 0x4c], edx
jmp 0x1005bf2e
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x4c]
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 + 0x44]
add esi, dword [esp + 0x20]
mov edx, dword [esp + 0x34]
mov word [eax + ecx*4], 0x45
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x48]
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], edx
mov edx, dword [esp + 0x4c]
mov dword [eax + ecx*4 + 0x10], 0
push 0xfffffffffffffff2
push edi
mov ecx, esi
call fcn.10022d20
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005bf56
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005bf8d
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 0x1005bfaf
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x1005bfac
mov edi, 1
jmp 0x1005bfe6
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.10022d20
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005c014
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005c04b
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 0x1005c06d
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x1005c06a
mov edi, 1
jmp 0x1005c0a4
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.10022d20
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005c0d2
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005c109
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 0x1005c139
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x1005c136
mov ebx, 1
mov dword [esp + 0x50], ebx
jmp 0x1005c170
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.10022d20
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005c19a
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005c1d1
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 0x1005c1ec
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005c223
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 0x1005c24c
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x1005c249
mov dword [esp + 0x64], 1
jmp 0x1005c283
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 0x1005c29e
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005c2d5
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 + 0x4c]
cmp edx, eax
jbe 0x1005c2ed
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 0x1005c620
mov ecx, esi
call fcn.10022800
mov dword [esp + 0x4c], eax
xor ecx, ecx
mov eax, dword [esp + 0x30]
xor edi, edi
cmp cx, word [eax + 0x32]
jae 0x1005c39c
jmp 0x1005c324
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 + 0x3c]
mov eax, dword [eax + 4]
cmp byte [eax + ecx*8 + 0x14], 0
jne 0x1005c38f
mov eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x20]
mov ecx, ebx
cmp dword [eax + 0x54], ebx
jg 0x1005c357
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005c38f
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 + 0x34]
add eax, edi
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x4c]
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 0x1005c320
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005c3be
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x1005c3bb
mov edi, 1
jmp 0x1005c3fd
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x44]
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 + 0x48]
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 0x1005c418
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005c44f
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x4c]
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 0x1005c463
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 0x1005c49a
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x1005c497
mov edi, 1
jmp 0x1005c4dd
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x44]
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 + 0x48]
mov word [eax + ecx*4], 0x72
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x4c]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x34]
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.10022d20
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005c507
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005c53e
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 0x1005c560
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x1005c55d
mov edi, 1
jmp 0x1005c597
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.10022d20
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005c5c5
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005c5fc
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 + 0x4c]
js 0x1005c615
mov edx, dword [edi + 0x70]
test edx, edx
je 0x1005c615
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 0x1005c638
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 0x1005c67a
mov eax, dword [esp + 0x24]
not ecx
mov edx, dword [eax + 8]
mov ebx, dword [edx + 0x18]
test ecx, ecx
js 0x1005c666
mov edi, dword [ebx + 0x70]
test edi, edi
je 0x1005c666
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.10039730
mov edi, dword [esp + 0x30]
mov edi, dword [edi + 0x14]
inc dword [esp + 0x44]
mov dword [esp + 0x30], edi
test edi, edi
jne 0x1005be21
mov ebx, dword [esp + 0x3c]
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005c6ac
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005c6e5
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 0x1005c6e9
mov edx, dword [esp + 0x2c]
lea eax, [edx - 1]
mov edx, dword [esi + 0x20]
cmp edx, eax
jbe 0x1005c700
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 0x1005c72b
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x1005c728
mov edi, 1
jmp 0x1005c762
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.10022d20
mov eax, dword [ebx + 8]
add esp, 8
mov dword [esp + 0x2c], eax
test eax, eax
je 0x1005ca7a
mov edx, dword [esp + 0x38]
mov ecx, 8
mov dword [esp + 0x34], ecx
cmp edx, eax
je 0x1005ca66
mov eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x20]
mov ecx, ebx
cmp dword [eax + 0x54], ebx
jg 0x1005c7b4
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005c7ea
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 0x1005c805
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005c83c
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 0x1005c857
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005c894
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 + 0x34]
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 0x1005c8af
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005c8e4
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 + 0x34]
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 0x1005c8f6
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 0x1005c911
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005c948
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 0x1005c970
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x1005c96d
mov edi, 1
jmp 0x1005c9a7
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.10022d20
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005c9d1
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005ca08
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 0x1005ca23
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005ca5a
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 + 0x34]
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x14]
inc ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x34], ecx
test eax, eax
jne 0x1005c791
mov cl, byte [esp + 0x5f]
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov dword [esp + 0x40], eax
test eax, eax
jne 0x1005b840
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x54]
inc eax
mov dword [esp + 0x54], eax
cmp eax, dword [ecx + 0x14]
jl 0x1005b386
push ecx
push 0x100f5fcc
mov edx, 3
mov ecx, esi
call fcn.10022a60
mov edi, dword [esi + 0x20]
mov edx, eax
add esp, 8
cmp edi, edx
jbe 0x1005caec
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 0x1005caec
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 0x100f162c
inc edx
mov dword [eax + 0x58], ecx
mov ecx, esi
call fcn.10022d20
add esp, 8
jmp 0x1005756e
mov edi, dword [esp + 0x14]
test edi, edi
jne 0x1005cbdb
mov ecx, dword [ebx]
cmp byte [ecx + 0x91], 0
jne 0x1005cb42
lea edx, [ebx + 4]
call fcn.1005dd50
test eax, eax
je 0x1005cb42
mov ecx, dword [esp + 0x10]
mov dword [ebx + 0xc], eax
inc dword [ebx + 0x40]
mov ebx, dword [esp + 0x18]
jmp 0x1005757a
mov edx, 1
mov ecx, esi
call fcn.10023d90
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x1005cb6c
mov ecx, dword [esi + 0x10]
mov edx, str.encoding
push 0
push 1
push 0xffffffffffffffff
call fcn.10021c80
add esp, 0xc
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005cb87
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005cbbe
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 + 0x100f3b60]
jmp 0x10057efe
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 0x10058b82
mov edx, dword [str.UTF8]
mov edi, 0x100f3b60
test edx, edx
je 0x1005cc91
mov ecx, dword [esp + 0x14]
mov bh, byte [ecx]
nop dword [eax + eax]
mov bl, bh
test bh, bh
je 0x1005cc41
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 + 0x100f44b0]
cmp al, byte [ecx + 0x100f44b0]
jne 0x1005cc41
mov al, byte [esi + edx + 1]
inc edx
mov bl, al
test al, al
jne 0x1005cc20
movzx eax, bl
movzx ecx, byte [eax + 0x100f44b0]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x100f44b0]
sub ecx, eax
je 0x1005cc69
mov edx, dword [edi + 8]
add edi, 8
mov ecx, dword [esp + 0x14]
test edx, edx
jne 0x1005cc10
jmp 0x1005cc91
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 0x1005756e
mov edi, dword [esp + 0x14]
push edi
push str.unsupported_encoding:__s
push dword [esp + 0x2c]
call fcn.10007a10
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov ebx, dword [esp + 0x18]
jmp 0x1005757a
mov eax, dword [esi + 0x60]
mov edi, dword [esp + 0x28]
bts eax, edi
mov dword [esi + 0x60], eax
cmp edi, 1
je 0x1005cce2
mov eax, dword [esi]
mov ecx, dword [esp + 0x38]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx + 4]
cmp byte [eax + 9], 0
je 0x1005cce2
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.0x1005ccf8.66
movzx eax, byte [eax + 0x1005d558]
jmp dword [eax*4 + 0x1005d548]
mov ebx, 8
jmp 0x1005cd16
xor ebx, ebx
jmp 0x1005cd16
mov ebx, 1
jmp 0x1005cd16
mov ebx, 6
cmp dword [esp + 0x14], 0
je 0x1005cdc2
test ebx, ebx
je 0x1005cdc2
push ecx
push 0x100f5d1c
mov edx, 3
mov ecx, esi
call fcn.10022a60
mov edi, dword [esi + 0x20]
add esp, 8
mov dword [esp + 0x40], eax
cmp edi, eax
jbe 0x1005cd5a
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.10008630
mov eax, dword [esp + 0x40]
lea ecx, [eax + 1]
cmp edi, ecx
jbe 0x1005cd8f
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 0x1005756e
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 0x1005756e
mov eax, dword [esi + 4]
lea ecx, [edx + edx*4]
mov dword [eax + ecx*4 + 8], ebx
jmp 0x1005756e
push ecx
push 0x100f30f4
mov edx, 3
mov ecx, esi
call fcn.10022a60
mov ecx, dword [esi + 0x20]
add esp, 8
cmp ecx, eax
jbe 0x1005cdeb
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 0x10057ce4
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 0x10057ce4
mov eax, dword [esi + 4]
lea ecx, [edx + edx*4]
mov dword [eax + ecx*4 + 0xc], ebx
jmp 0x10057ce4
xor ebx, ebx
mov ecx, esi
lea edx, [ebx + 1]
call fcn.10023d90
mov edx, dword [esp + 0x58]
mov dword [edx], 1
mov eax, dword [esi]
cmp byte [eax + 0x40], bl
jne 0x1005ce50
mov ecx, dword [esi + 0x10]
mov edx, str.compile_option
push ebx
push 1
push 0xffffffffffffffff
call fcn.10021c80
add esp, 0xc
nop dword [eax]
cmp ebx, 1
ja 0x1005ce5e
mov eax, dword [ebx*4 + 0x100f5f00]
jmp 0x1005ce60
xor eax, eax
inc ebx
mov dword [esp + 0x1c], eax
test eax, eax
je 0x1005756e
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005ce8f
mov ecx, esi
call fcn.100226d0
test eax, eax
je 0x1005ce8c
mov edi, 1
jmp 0x1005cec6
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.10022d20
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x1005cef2
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005ce50
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 0x1005ce50
mov ecx, dword [esp + 0x3c]
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 0x1005cff4
mov bl, byte [edi]
mov edx, str.full
mov bh, bl
test bl, bl
je 0x1005cf85
mov al, bl
sub edi, edx
nop
movzx ecx, byte [edx]
mov bh, al
movzx eax, al
mov al, byte [eax + 0x100f44b0]
cmp al, byte [ecx + 0x100f44b0]
jne 0x1005cf81
mov al, byte [edx + edi + 1]
inc edx
mov bh, al
test al, al
jne 0x1005cf60
mov edi, dword [esp + 0x14]
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x100f44b0]
movzx eax, bh
movzx eax, byte [eax + 0x100f44b0]
sub eax, ecx
jne 0x1005cfa2
lea ebx, [eax + 1]
jmp 0x1005cff4
mov edx, str.restart
test bl, bl
je 0x1005cfd1
mov al, bl
sub edi, edx
nop
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x100f44b0]
cmp al, byte [ecx + 0x100f44b0]
jne 0x1005cfd1
mov al, byte [edx + edi + 1]
inc edx
mov bl, al
test al, al
jne 0x1005cfb0
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x100f44b0]
movzx eax, bl
mov ebx, 0
movzx eax, byte [eax + 0x100f44b0]
sub eax, ecx
mov eax, 2
cmove ebx, eax
mov edx, 3
mov ecx, esi
call fcn.10023d90
mov edx, dword [esp + 0x58]
mov dword [edx], 3
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x1005d06a
mov ecx, dword [esi + 0x10]
mov edx, str.busy
push 0
push 1
push 0xffffffffffffffff
call fcn.10021c80
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x1005d06a
mov ecx, dword [esi + 0x10]
mov edx, 0x100f16b4
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x28
call fcn.10021c80
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x1005d06a
mov ecx, dword [esi + 0x10]
mov edx, str.checkpointed
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x50
call fcn.10021c80
add esp, 0xc
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005d085
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005d0b8
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 0x1005d0d2
mov ecx, esi
call fcn.100226d0
test eax, eax
jne 0x1005756e
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 0x10057f46
mov edi, dword [esp + 0x14]
test edi, edi
je 0x1005d126
lea edx, [esp + 0x1c]
mov dword [esp + 0x1c], 0
mov ecx, edi
call fcn.10008630
push dword [esp + 0x1c]
push dword [esp + 0x14]
call fcn.10080af0
add esp, 8
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xd4], 0x10080a10
jne 0x1005d13e
mov eax, dword [eax + 0xd8]
jmp 0x1005d140
xor eax, eax
cdq
push edx
mov edx, str.wal_autocheckpoint
push eax
mov ecx, ebx
call fcn.100570c0
mov ecx, dword [esp + 0x18]
add esp, 8
mov ebx, dword [esp + 0x18]
jmp 0x1005757a
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0xc]
test eax, eax
je 0x1005d174
push eax
call dword [0x100fcb24]
add esp, 4
mov ecx, esi
call fcn.10015f30
mov eax, dword [esi + 0x14]
xor edi, edi
test eax, eax
jle 0x1005d1bd
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 0x1005d1b2
mov eax, dword [eax + 4]
mov eax, dword [eax]
mov eax, dword [eax + 0xcc]
push dword [eax + 0x28]
call dword [0x100fcb68]
add esp, 4
mov eax, dword [ebx + 0x14]
inc edi
add esi, 0x10
cmp edi, eax
jl 0x1005d190
xor esi, esi
test eax, eax
mov eax, dword [esp + 0x10]
jle 0x1005d1f9
xor edi, edi
nop dword [eax]
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + edi + 4]
test ecx, ecx
je 0x1005d1ec
cmp byte [ecx + 9], 0
je 0x1005d1ec
add dword [ecx + 0xc], 0xffffffff
jne 0x1005d1ec
call fcn.10015e50
mov eax, dword [esp + 0x10]
inc esi
add edi, 0x10
cmp esi, dword [eax + 0x14]
jl 0x1005d1d0
mov eax, dword [eax + 0xc]
test eax, eax
je 0x1005756e
push eax
call dword [0x100fcb2c]
jmp 0x1005756b
mov eax, dword [esp + 0x14]
test eax, eax
je 0x1005d237
lea edx, [esp + 0x68]
mov ecx, eax
call fcn.10008510
test eax, eax
jne 0x1005d237
push dword [esp + 0x6c]
push dword [esp + 0x6c]
call fcn.100046a0
add esp, 8
call fcn.1007eb00
test eax, eax
je 0x1005d247
or esi, 0xffffffff
or edi, esi
jmp 0x1005d279
mov eax, dword [0x100ffca0]
test eax, eax
je 0x1005d25f
push eax
call dword [0x100fcb24]
mov eax, dword [0x100ffca0]
add esp, 4
mov esi, dword [0x100ffca8]
mov edi, dword [0x100ffcac]
test eax, eax
je 0x1005d279
push eax
call dword [0x100fcb2c]
add esp, 4
push edi
push esi
mov edx, str.soft_heap_limit
mov ecx, ebx
call fcn.100570c0
add esp, 8
jmp 0x1005756e
mov edi, dword [esp + 0x14]
test edi, edi
je 0x1005d2cf
lea edx, [esp + 0x68]
mov ecx, edi
call fcn.10008510
test eax, eax
jne 0x1005d2cf
cmp dword [esp + 0x6c], eax
jl 0x1005d2cf
mov eax, dword [esp + 0x68]
jg 0x1005d2b6
test eax, eax
jb 0x1005d2cf
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 0x1005d147
mov edi, dword [esp + 0x14]
test edi, edi
je 0x1005d3b1
lea edx, [esp + 0x1c]
mov dword [esp + 0x1c], 0
mov ecx, edi
call fcn.10008630
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov eax, dword [ecx + 0xc]
test esi, esi
jle 0x1005d366
test eax, eax
je 0x1005d328
push eax
call dword [0x100fcb24]
mov ecx, dword [esp + 0x14]
add esp, 4
mov eax, dword [ecx + 0xc]
mov dword [ecx + 0x1bc], 0x10080110
mov dword [ecx + 0x1c0], ecx
mov dword [ecx + 0x1c4], 0
mov dword [ecx + 0x1ec], 0
test eax, eax
je 0x1005d35e
push eax
call dword [0x100fcb2c]
mov ecx, dword [esp + 0x14]
add esp, 4
mov dword [ecx + 0x1ec], esi
jmp 0x1005d3b5
test eax, eax
je 0x1005d37b
push eax
call dword [0x100fcb24]
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 0x1005d3b5
push eax
call dword [0x100fcb2c]
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.100570c0
mov ecx, dword [esp + 0x18]
add esp, 8
mov ebx, dword [esp + 0x18]
jmp 0x1005757a
cmp ebx, dword [ecx + 0x114]
jb 0x1005d404
cmp ebx, dword [ecx + 0x118]
jae 0x1005d404
mov eax, dword [ecx + 0x110]
mov dword [ebx], eax
mov eax, dword [esp + 0x10]
mov dword [eax + 0x110], ebx
dec dword [eax + 0xfc]
jmp 0x1005d411
push ebx
call fcn.10004cd0
add esp, 4
mov eax, dword [esp + 0x10]
test edi, edi
je 0x1005d482
cmp dword [eax + 0x208], 0
je 0x1005d43c
mov edx, edi
mov ecx, eax
call fcn.10004d70
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x98]
xor ecx, esp
call fcn.100baa39
mov esp, ebp
pop ebp
ret
cmp edi, dword [eax + 0x114]
jb 0x1005d479
cmp edi, dword [eax + 0x118]
jae 0x1005d479
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.100baa39
mov esp, ebp
pop ebp
ret
push edi
call fcn.10004cd0
add esp, 4
mov ecx, dword [esp + 0xa4]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.100baa39
mov esp, ebp
pop ebp
ret