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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x5c
push ebx
push esi
push edi
mov dword [esp + 0x20], edx
mov ebx, ecx
mov dword [esp + 0x1c], ebx
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x18], edx
inc edx
mov dword [esp + 0x14], edx
inc edx
mov dword [esp + 0x44], edx
inc edx
mov dword [esp + 0x48], edx
inc edx
mov dword [esp + 0x28], edx
inc edx
mov dword [esp + 0x30], edx
inc edx
mov dword [esp + 0x60], edx
inc edx
mov dword [esp + 0x24], edx
inc edx
cmp dword [ebx + 0x2c], edx
mov esi, dword [ebx + 8]
mov ecx, edx
cmovg ecx, dword [ebx + 0x2c]
mov edi, dword [ebx]
mov dword [esp + 0x58], edi
mov byte [esp + 0x50], 1
mov dword [ebp + 0x10], edx
mov dword [ebx + 0x2c], ecx
mov dword [esp + 0x5c], esi
test esi, esi
jne 0x100a936a
cmp dword [ebx + 0x78], esi
jne 0x100a9355
test byte [edi + 0x44], 8
jne 0x100a9355
mov byte [ebx + 0x17], 1
mov ecx, ebx
call fcn.100c9330
mov esi, eax
mov dword [esp + 0x5c], eax
test esi, esi
je 0x100aa0c3
mov eax, dword [esp + 0x20]
test eax, eax
je 0x100aa0c3
cmp dword [eax + 0x1c], 0
je 0x100aa0c3
mov edx, dword [eax]
push 0
push 0x1010559c
mov ecx, str.sqlite__
call fcn.1009c5a0
add esp, 8
test eax, eax
je 0x100aa0c3
mov eax, dword [esp + 0x20]
mov ecx, edi
mov edx, dword [eax + 0x48]
call fcn.1008e910
mov ecx, dword [edi + 0x10]
mov edi, dword [esp + 0x20]
mov edx, eax
add edx, edx
mov dword [esp + 0x40], eax
push dword [ecx + edx*8]
mov edx, 0x1c
push 0
push dword [edi]
mov ecx, ebx
call fcn.100a7070
add esp, 0xc
test eax, eax
jne 0x100aa0c3
push dword [edi]
mov edx, dword [esp + 0x44]
push eax
push dword [edi + 0x1c]
mov ecx, ebx
call fcn.100a6f40
mov ecx, dword [ebp + 0x14]
mov edx, ecx
inc ecx
mov dword [esp + 0x18], ecx
add esp, 0xc
inc ecx
cmp dword [ebx + 0x28], ecx
push 0x68
cmovg ecx, dword [ebx + 0x28]
push edi
push dword [esp + 0x48]
mov dword [ebx + 0x28], ecx
mov ecx, ebx
mov dword [esp + 0x60], edx
call fcn.10097b90
mov edx, dword [esp + 0x3c]
mov ebx, edi
add esp, 0xc
push dword [ebx]
mov ecx, esi
call fcn.100c8e20
mov edi, dword [ebx + 8]
mov eax, dword [ebp + 8]
add esp, 4
mov dword [esp + 0x10], edi
test edi, edi
je 0x100aa00c
jmp 0x100a9440
test eax, eax
je 0x100a944c
cmp eax, edi
jne 0x100a9ffd
mov eax, dword [esp + 0x50]
xor ecx, ecx
cmp dword [edi + 0x24], ecx
movzx eax, al
cmove eax, ecx
test byte [ebx + 0x24], 0x20
mov dword [esp + 0x50], eax
je 0x100a96dd
mov eax, dword [edi + 0x38]
and al, 3
cmp al, 2
jne 0x100a96dd
movzx ecx, word [edi + 0x32]
mov eax, dword [ebx]
mov dword [esp + 0x2c], ecx
lea ebx, [ecx - 1]
push 0
push eax
push 0
push dword [esp + 0x6c]
mov edx, 0x61
push 0
mov ecx, esi
mov dword [esp + 0x48], ebx
call fcn.100c8bd0
mov edx, dword [esp + 0x30]
mov ecx, dword [ebp + 0x10]
add ecx, ebx
add esp, 0x14
cmp dword [edx + 0x2c], ecx
push dword [esp + 0x40]
cmovg ecx, dword [edx + 0x2c]
mov dword [edx + 0x2c], ecx
push dword [edi + 0x2c]
mov edx, 0x68
push dword [esp + 0x14]
mov ecx, esi
call fcn.100c9000
mov ecx, dword [esp + 0x28]
add esp, 0xc
mov edx, edi
call fcn.100c8020
mov edi, dword [esp + 0x14]
mov edx, 0x64
lea eax, [edi + 3]
push eax
push dword [esp + 0x10]
mov ecx, esi
call fcn.100c8eb0
inc edi
push edi
push dword [esp + 0x38]
mov edx, 0x43
mov ecx, esi
call fcn.100c8eb0
mov eax, dword [esp + 0x24]
add eax, 2
push eax
mov eax, dword [esp + 0x24]
mov edx, 0x43
movzx eax, word [eax + 0x32]
push eax
mov ecx, esi
call fcn.100c8eb0
push 0xfffffffffffffff8
push 0x10104a74
push dword [esp + 0x34]
mov edx, 0xa2
push edi
push 0
mov ecx, esi
call fcn.100c8bd0
mov eax, dword [esi + 0x88]
add esp, 0x2c
test eax, eax
jle 0x100a9557
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
mov edx, 3
mov word [eax + ecx*4 - 0x12], dx
mov edi, dword [esp + 0xc]
push edi
mov edx, 0x25
mov ecx, esi
call fcn.100c8f20
add esp, 4
mov edx, 0x43
push dword [esp + 0x44]
mov ecx, esi
push 0
mov dword [esp + 0x6c], eax
call fcn.100c8eb0
mov eax, dword [esi + 0x88]
add esp, 8
mov dword [esp + 0x3c], eax
test ebx, ebx
jle 0x100a980e
mov ecx, esi
call fcn.100c89b0
lea ecx, [ebx*4]
push 0
mov edi, eax
push ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x54], edi
call fcn.100ec7e0
add esp, 8
mov dword [esp + 0x38], eax
test eax, eax
je 0x100a9ff2
mov edx, 0xd
mov ecx, esi
call fcn.100c8f90
mov eax, dword [esi + 0x88]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x10]
cmp ebx, 1
jne 0x100a9605
cmp word [eax + 0x32], bx
jne 0x100a9605
cmp byte [eax + 0x36], 0
je 0x100a9605
push edi
push dword [ebp + 0x10]
lea edx, [ebx + 0x32]
mov ecx, esi
call fcn.100c8eb0
mov eax, dword [esp + 0x18]
add esp, 8
xor ebx, ebx
cmp dword [esp + 0x34], ebx
jle 0x100a969d
mov edx, dword [eax + 0x20]
mov ecx, dword [esp + 0x1c]
mov edx, dword [edx + ebx*4]
call fcn.100a4c20
push dword [esp + 0x44]
mov edx, 0x43
push ebx
mov ecx, esi
mov edi, eax
call fcn.100c8eb0
push dword [esp + 0x30]
mov edx, 0x60
push ebx
push dword [esp + 0x1c]
mov ecx, esi
call fcn.100c9000
mov eax, dword [ebp + 0x10]
add esp, 0x14
add eax, ebx
push 0xfffffffffffffffe
push edi
push eax
push 0
push dword [esp + 0x38]
mov edx, 0x34
mov ecx, esi
call fcn.100c8bd0
mov ecx, dword [esp + 0x4c]
add esp, 0x14
mov dword [ecx + ebx*4], eax
mov eax, dword [esi + 0x88]
test eax, eax
jle 0x100a968a
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
mov edx, 0x80
mov word [eax + ecx*4 - 0x12], dx
mov eax, dword [esp + 0x10]
inc ebx
cmp ebx, dword [esp + 0x34]
jl 0x100a9611
mov edi, dword [esp + 0x4c]
push dword [esp + 0x44]
mov ebx, dword [esp + 0x38]
push ebx
mov edx, 0x43
mov ecx, esi
call fcn.100c8eb0
add esp, 8
mov edx, edi
mov ecx, esi
call fcn.100c8e40
mov ecx, dword [esp + 0x3c]
dec ecx
mov edx, dword [esi + 0x88]
jns 0x100a96ce
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
je 0x100a96fb
mov eax, 0x1012875c
jmp 0x100a9704
test byte [edi + 0x38], 8
movzx ecx, word [edi + 0x34]
mov eax, dword [edi]
mov dword [esp + 0x2c], ecx
je 0x100a9480
movzx ebx, word [edi + 0x32]
dec ebx
jmp 0x100a9483
mov eax, dword [esi + 0x58]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
xor edi, edi
mov dword [eax + 8], edx
test ebx, ebx
jle 0x100a97a4
mov eax, dword [esp + 0x38]
mov edx, dword [esi + 0x88]
mov ecx, dword [eax + edi*4]
test ecx, ecx
jns 0x100a9725
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
je 0x100a9734
mov eax, 0x1012875c
jmp 0x100a973d
mov eax, dword [esi + 0x58]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x100a976a
mov eax, dword [ebp + 0x10]
add eax, edi
push eax
push edi
push dword [esp + 0x14]
mov edx, 0x60
mov ecx, esi
call fcn.100c9070
add esp, 0xc
jmp 0x100a979b
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x58]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0xc]
mov dword [ecx + 4], eax
mov eax, dword [ebp + 0x10]
add eax, edi
mov dword [ecx], 0x60
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x10], 0
inc edi
cmp edi, ebx
jl 0x100a9711
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x100a97c3
mov eax, dword [esp + 0x4c]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [esi + 0x88]
mov dword [ecx], eax
mov ebx, dword [esp + 0x58]
cmp dword [ebx + 0x1d8], 0
je 0x100a97dd
mov edx, dword [esp + 0x38]
mov ecx, ebx
call fcn.100ecc10
jmp 0x100a980a
mov ecx, dword [esp + 0x38]
cmp ecx, dword [ebx + 0x130]
jb 0x100a9801
cmp ecx, dword [ebx + 0x134]
jae 0x100a9801
mov eax, dword [ebx + 0x12c]
mov dword [ecx], eax
mov dword [ebx + 0x12c], ecx
jmp 0x100a980a
push ecx
call sym.SQLite.Interop.dll_sqlite3_free
add esp, 4
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0x20]
test byte [eax + 0x24], 0x20
jne 0x100a9831
push dword [esp + 0x48]
mov edx, 0x82
push edi
mov ecx, esi
call fcn.100c8eb0
add esp, 8
jmp 0x100a99fb
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
mov edi, dword [eax + 8]
test edi, edi
je 0x100a9850
nop
mov eax, dword [edi + 0x38]
and al, 3
cmp al, 2
je 0x100a9850
mov edi, dword [edi + 0x14]
test edi, edi
jne 0x100a9840
movzx edx, word [edi + 0x32]
mov ecx, dword [esp + 0x1c]
call fcn.100ac850
xor ebx, ebx
xor ecx, ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x34], ebx
cmp cx, word [edi + 0x32]
jae 0x100a992f
mov dword [esp + 0x38], eax
jmp 0x100a9880
mov eax, dword [esp + 0x10]
xor ecx, ecx
movzx edx, word [eax + 0x34]
test edx, edx
jle 0x100a98ad
mov eax, dword [edi + 4]
movzx ebx, word [eax + ebx*2]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
lea esp, [esp]
cmp bx, word [eax]
je 0x100a98dc
inc ecx
add eax, 2
cmp ecx, edx
jl 0x100a98a0
or eax, 0xffffffff
mov ecx, dword [esi + 0x88]
movsx edx, ax
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x30], ecx
jg 0x100a98e1
mov ebx, dword [esp + 0x38]
push ebx
push edx
push dword [esp + 0x14]
mov edx, 0x60
mov ecx, esi
call fcn.100c9070
add esp, 0xc
jmp 0x100a9913
movzx eax, cx
jmp 0x100a98b0
mov ebx, dword [esp + 0xc]
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [esp + 0x38]
mov dword [eax + ecx*4], 0x60
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x34]
movzx eax, word [edi + 0x32]
inc ecx
inc ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x34], ecx
mov ebx, ecx
cmp ecx, eax
jl 0x100a9880
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
movzx edx, word [edi + 0x32]
mov ebx, dword [esp + 0x4c]
cmp dword [eax + 0x30], ecx
jg 0x100a995c
push dword [esp + 0x48]
mov ecx, esi
push edx
push ebx
mov edx, 0x63
call fcn.100c9070
add esp, 0xc
jmp 0x100a998a
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x48]
mov dword [eax + ecx*4], 0x63
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
movzx edi, word [edi + 0x32]
cmp edi, 1
jne 0x100a99dd
mov edi, dword [esp + 0x4c]
test edi, edi
je 0x100a99f7
mov edx, dword [esp + 0x1c]
mov bl, byte [edx + 0x13]
cmp bl, 8
jae 0x100a99f7
lea eax, [edx + 0x94]
movzx edx, byte [edx + 0x19]
xor ecx, ecx
test edx, edx
jle 0x100a99c4
cmp dword [eax + 0xc], edi
je 0x100a99d7
inc ecx
add eax, 0x14
cmp ecx, edx
jl 0x100a99b7
mov ecx, dword [esp + 0x1c]
movzx eax, bl
mov dword [ecx + eax*4 + 0x15c], edi
inc byte [ecx + 0x13]
jmp 0x100a99f7
mov byte [eax + 6], 1
jmp 0x100a99f7
mov ecx, dword [esp + 0x1c]
push edi
mov edx, ebx
call fcn.100af590
add esp, 4
cmp edi, dword [ecx + 0x1c]
jle 0x100a99f7
mov dword [ecx + 0x1c], edi
mov dword [ecx + 0x20], ebx
mov edi, dword [esp + 0xc]
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x88]
cmp dword [eax + 0x30], edx
jg 0x100a9a27
mov ebx, dword [esp + 0x28]
push ebx
push dword [esp + 0x18]
mov edx, 0xa2
push 1
mov ecx, esi
call fcn.100c9070
add esp, 0xc
mov edx, eax
jmp 0x100a9a5d
mov ebx, dword [esp + 0x14]
lea eax, [edx + 1]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x58]
lea ecx, [edx + edx*4]
mov dword [eax + ecx*4 + 8], ebx
mov ebx, dword [esp + 0x28]
mov dword [eax + ecx*4], 0xa2
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi]
cmp byte [ecx + 0x49], 0
je 0x100a9a79
push 0x1010980c
mov edx, 0xfffffff8
call fcn.100c8350
add esp, 4
jmp 0x100a9ab4
test edx, edx
jns 0x100a9a84
mov edx, dword [esi + 0x88]
dec edx
mov eax, dword [esi + 0x58]
lea ecx, [edx + edx*4]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
je 0x100a9aa9
push 0xfffffffffffffff8
push 0x1010980c
mov edx, eax
mov ecx, esi
call fcn.100c8130
add esp, 8
jmp 0x100a9ab4
mov dword [eax + 0x10], 0x1010980c
mov byte [eax + 1], 0xf8
mov eax, dword [esi + 0x88]
test eax, eax
jle 0x100a9ace
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
mov edx, 3
mov word [eax + ecx*4 - 0x12], dx
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x100a9af4
push 0
push dword [esp + 0x40]
mov edx, 7
push edi
mov ecx, esi
call fcn.100c9070
add esp, 0xc
jmp 0x100a9b26
mov edx, dword [esp + 0x3c]
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 7
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push dword [esp + 0x24]
mov edx, dword [esp + 0x18]
push 0
mov ecx, esi
call fcn.100aa0d0
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x88]
add esp, 8
cmp dword [eax + 0x30], edx
jg 0x100a9b62
push ebx
push 3
push dword [esp + 0x38]
mov edx, 0x63
mov ecx, esi
call fcn.100c9070
add esp, 0xc
mov edx, eax
jmp 0x100a9b94
mov edi, dword [esp + 0x30]
lea eax, [edx + 1]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x58]
lea ecx, [edx + edx*4]
mov dword [eax + ecx*4], 0x63
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi]
cmp byte [ecx + 0x49], 0
je 0x100a9bad
push 0x100fdb04
xor edx, edx
call fcn.100c8350
add esp, 4
jmp 0x100a9bd2
test edx, edx
jns 0x100a9bb8
mov edx, dword [esi + 0x88]
dec edx
mov eax, dword [esi + 0x58]
lea ecx, [edx + edx*4]
push 0
lea edx, [eax + ecx*4]
push 0x100fdb04
mov ecx, esi
call fcn.100c8130
add esp, 8
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
mov edi, dword [ebp + 0xc]
cmp dword [eax + 0x30], ecx
jg 0x100a9bff
push 0
push dword [esp + 0x1c]
mov edx, 0x73
push edi
mov ecx, esi
call fcn.100c9070
mov edx, dword [esp + 0x24]
add esp, 0xc
jmp 0x100a9c31
mov edx, dword [esp + 0x18]
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0x73
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x100a9c53
push edx
push ebx
push edi
mov edx, 0x74
mov ecx, esi
call fcn.100c9070
add esp, 0xc
jmp 0x100a9c81
mov edx, dword [esp + 0x18]
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0x74
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x88]
test eax, eax
jle 0x100a9c9b
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
mov edx, 8
mov word [eax + ecx*4 - 0x12], dx
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
mov eax, dword [eax + 0x24]
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x1c]
and al, 0x20
add ebx, 4
add edi, ebx
neg al
sbb al, al
and al, 0xfd
add al, 0x20
cmp dword [edx + 0x2c], edi
mov ecx, edi
cmovg ecx, dword [edx + 0x2c]
mov dword [edx + 0x2c], ecx
mov edx, dword [esp + 0x14]
push edi
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0x88]
push 1
mov ecx, esi
mov dword [esp + 0x54], eax
call fcn.100aa0d0
mov ecx, dword [esi + 0x88]
mov eax, dword [esi + 0xc]
add esp, 8
mov dword [esp + 0x3c], ecx
cmp dword [eax + 0x30], ecx
jg 0x100a9d14
push 0
push 0
push edi
mov edx, 0x32
mov ecx, esi
call fcn.100c9070
add esp, 0xc
mov dword [esp + 0x3c], eax
jmp 0x100a9d46
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0x32
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
push dword [esp + 0x24]
mov edx, dword [esp + 0x18]
push 2
mov ecx, esi
call fcn.100aa0d0
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x1c]
inc eax
push eax
push 3
mov ecx, esi
call fcn.100aa0d0
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x24]
add eax, 2
push eax
push 4
mov ecx, esi
call fcn.100aa0d0
mov eax, dword [esp + 0x50]
push 0
push edi
push dword [esp + 0x6c]
movzx edx, al
push dword [esp + 0x78]
mov ecx, esi
call fcn.100c8a80
mov edx, dword [esp + 0x54]
add esp, 0x28
xor edi, edi
test edx, edx
jle 0x100a9dd4
mov esi, dword [esp + 0x10]
lea esp, [esp]
mov ecx, dword [esp + 0x1c]
lea eax, [ebx + edi]
push eax
push edi
push dword [esp + 0x5c]
mov edx, esi
call fcn.100af430
mov edx, dword [esp + 0x38]
inc edi
add esp, 0xc
cmp edi, edx
jl 0x100a9db0
mov esi, dword [esp + 0x5c]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x100a9e00
mov edx, dword [esp + 0x24]
add edx, 3
push edx
push dword [esp + 0x30]
mov edx, 0x63
push ebx
mov ecx, esi
call fcn.100c9070
add esp, 0xc
jmp 0x100a9e31
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x24]
add edx, 3
mov dword [eax + ecx*4], 0x63
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
mov ebx, dword [esp + 0x28]
cmp dword [eax + 0x30], ecx
jg 0x100a9e5b
push ebx
push 6
push dword [esp + 0x38]
mov edx, 0x63
mov ecx, esi
call fcn.100c9070
add esp, 0xc
jmp 0x100a9e8d
mov edx, dword [esp + 0x30]
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0x63
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 6
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [ebp + 0xc]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
inc edi
cmp dword [eax + 0x30], ecx
jg 0x100a9ebb
push 0
push dword [esp + 0x1c]
mov edx, 0x73
push edi
mov ecx, esi
call fcn.100c9070
mov edx, dword [esp + 0x24]
add esp, 0xc
jmp 0x100a9eed
mov edx, dword [esp + 0x18]
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0x73
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x100a9f0f
push edx
push ebx
push edi
mov edx, 0x74
mov ecx, esi
call fcn.100c9070
add esp, 0xc
jmp 0x100a9f3d
mov edx, dword [esp + 0x18]
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0x74
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x100a9f64
push 0
push dword [esp + 0x50]
mov edx, 0xd
push 1
mov ecx, esi
call fcn.100c9070
add esp, 0xc
jmp 0x100a9f9a
mov edx, dword [esp + 0x4c]
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0xd
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x3c]
mov edx, dword [esi + 0x88]
test ecx, ecx
jns 0x100a9fab
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
je 0x100a9fba
mov eax, 0x1012875c
jmp 0x100a9fc3
mov eax, dword [esi + 0x58]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x64]
mov dword [eax + 8], edx
mov edx, dword [esi + 0x88]
test ecx, ecx
jns 0x100a9fd7
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
je 0x100a9fe6
mov eax, 0x1012875c
jmp 0x100a9fef
mov eax, dword [esi + 0x58]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov eax, dword [ebp + 8]
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x10]
mov edi, dword [edi + 0x14]
mov dword [esp + 0x10], edi
test edi, edi
jne 0x100a9440
test eax, eax
jne 0x100aa0c3
cmp byte [esp + 0x50], al
je 0x100aa0c3
mov ebx, dword [esp + 0x24]
push ebx
push dword [esp + 0x58]
lea edx, [eax + 0x64]
mov ecx, esi
call fcn.100c8eb0
push ebx
mov edx, 0x16
mov ecx, esi
call fcn.100c8f20
add esp, 0xc
mov edx, 0x46
push dword [esp + 0x60]
mov ecx, esi
push 0
mov edi, eax
call fcn.100c8eb0
mov ebx, dword [esp + 0x30]
push 0
push 0x100fdb04
push ebx
push 3
push dword [esp + 0x48]
mov edx, 0x63
mov ecx, esi
call fcn.100c8bd0
add esp, 0x1c
mov edx, 0x73
push dword [esp + 0x18]
mov ecx, esi
push dword [ebp + 0xc]
call fcn.100c8eb0
push dword [esp + 0x20]
mov edx, 0x74
push ebx
push dword [ebp + 0xc]
mov ecx, esi
call fcn.100c9000
mov eax, dword [esi + 0x88]
add esp, 0x14
test eax, eax
jle 0x100aa0ba
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
mov edx, 8
mov word [eax + ecx*4 - 0x12], dx
mov edx, edi
mov ecx, esi
call fcn.100c8580
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret