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

Disassembly:
sub esp, 0x98
push ebx
mov ebx, dword [esp + 0xa4]
mov eax, dword [ebx]
push ebp
add eax, 0xffffffc4
cmp eax, 0x13
push esi
push edi
ja case.0x100223c6.63
movzx eax, byte [eax + 0x10022820]
jmp dword [eax*4 + 0x10022810]
mov ebp, dword [esp + 0xac]
mov eax, dword [ebx + 0x40]
mov ecx, dword [eax + 0x64]
mov edx, dword [ebp + 0x30]
mov ecx, dword [edx + ecx*4 + 8]
mov dword [esp + 0x10], ecx
cmp dword [ebp + 0x24], 2
jne 0x10022408
mov ecx, dword [esp + 0xb4]
test ecx, ecx
je 0x10022408
push eax
push ebp
call fcn.10021c00
add esp, 8
test eax, eax
jne 0x10022802
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
push 0xa0
push 0x44
call dword [edx + 0xc]
xor esi, esi
cmp eax, esi
je 0x1002242a
mov ecx, eax
call fcn.10025f20
mov dword [esp + 0x14], eax
jmp 0x10022430
mov dword [esp + 0x14], esi
mov eax, esi
mov ecx, dword [ebx]
mov dword [eax], ecx
mov dword [eax + 0x20], esi
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
push 0x39
push 0x7c
call dword [edx + 0xc]
mov edi, eax
xor eax, eax
mov esi, edi
mov ecx, 0x1f
rep stosd dword es:[edi], eax
mov eax, dword [ebx + 0x40]
mov ecx, dword [eax]
mov dword [esi], ecx
mov eax, dword [ebx + 0x40]
mov ecx, dword [eax + 0x14]
push 4
lea edx, [esi + 0x14]
push edx
push ecx
push ebp
call fcn.10020900
mov eax, dword [ebx + 0x40]
mov ecx, dword [eax + 0x18]
push 4
lea edx, [esi + 0x18]
push edx
push ecx
push ebp
call fcn.10020900
mov eax, dword [ebx + 0x40]
mov ecx, dword [eax + 0x20]
push 4
lea edx, [esi + 0x20]
push edx
push ecx
push ebp
call fcn.10020900
mov edx, dword [ebx + 0x40]
mov eax, dword [edx + 0x68]
mov dword [esi + 0x68], eax
mov eax, dword [esp + 0xe4]
add esp, 0x30
test eax, eax
je 0x10022571
mov ecx, dword [ebx + 0x40]
mov eax, dword [ecx + 0x78]
test ah, 1
jne 0x10022571
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
call dword [edx + 0x34]
cmp eax, 1
je 0x10022571
mov eax, dword [ebx + 0x40]
push eax
push ebp
call fcn.100219f0
push eax
push 0x100341e4
lea edx, [esp + 0x38]
lea ecx, [eax - 1]
push str._s__d
push edx
mov dword [esi + 0x6c], eax
mov dword [esi + 0x64], ecx
call fcn.10027884
or dword [esi + 0x78], 2
push 4
lea eax, [esi + 0x1c]
mov dword [esi + 0x74], 0xffffffff
mov edi, dword [esi + 0x78]
push eax
lea ecx, [esp + 0x48]
push ecx
or edi, 4
push ebp
mov dword [esi + 0x78], edi
call fcn.10020900
mov edx, dword [ebx + 0x40]
mov eax, dword [edx + 0x24]
add esp, 0x28
test eax, eax
je 0x100226f4
cmp dword [ebp + 0x24], 3
jne 0x100226f4
mov ecx, dword [esi + 0x6c]
push ecx
push eax
lea edx, [esp + 0x30]
push str._s__d
push edx
call fcn.10027884
push 4
lea eax, [esi + 0x24]
push eax
lea ecx, [esp + 0x40]
push ecx
push ebp
call fcn.10020900
mov eax, dword [esp + 0x34]
add esp, 0x20
pop edi
mov dword [eax + 0x40], esi
mov dword [esi + 0x30], esi
pop esi
pop ebp
pop ebx
add esp, 0x98
ret
mov edi, dword [esi + 0x78]
mov ecx, dword [ebx + 0x40]
and edi, 0xfffffffd
or eax, 0xffffffff
test ecx, ecx
mov dword [esi + 0x78], edi
je 0x10022587
mov eax, dword [ecx + 0x74]
mov dword [esi + 0x74], eax
mov dword [esi + 0x64], 0xffffffff
mov edx, dword [ebx + 0x40]
mov eax, dword [edx + 0x78]
mov edx, dword [esi + 0x78]
xor eax, edx
mov edi, edx
and eax, 0x100
xor edi, eax
mov dword [esi + 0x78], edi
mov ecx, dword [ebx + 0x40]
mov edx, dword [ecx + 0x24]
push 4
lea edi, [esi + 0x24]
push edi
push edx
push ebp
call fcn.10020900
push 4
lea eax, [esi + 0x1c]
push eax
mov eax, dword [ebx + 0x40]
mov ecx, dword [eax + 0x1c]
push ecx
push ebp
call fcn.10020900
mov eax, dword [edi]
add esp, 0x20
test eax, eax
jne 0x100225e7
mov edx, dword [esi + 0x1c]
push 4
push edi
push edx
push ebp
call fcn.10020900
add esp, 0x10
mov eax, dword [ebx + 0x40]
mov ecx, dword [eax + 0x78]
test ch, 1
jne 0x10022604
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
call dword [edx + 0x30]
cmp eax, 2
jne 0x100226f4
mov eax, dword [ebx + 0x40]
mov ecx, dword [eax + 0x4c]
push ecx
push ebp
call fcn.10022c10
mov edi, eax
mov dword [esi + 0x4c], edi
mov eax, dword [ebx + 0x40]
mov ecx, dword [eax + 0x5c]
push 3
lea edx, [esi + 0x5c]
push edx
push ecx
push ebp
mov dword [esp + 0x3c], edi
call fcn.10020900
mov eax, dword [edi]
add esp, 0x18
cmp eax, 0x3e
jne 0x100226f4
mov eax, dword [edi + 0x2c]
mov edx, dword [eax]
xor ecx, ecx
cmp edx, 0x3d
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], ecx
je 0x10022658
nop
mov eax, dword [eax + 0x2c]
cmp dword [eax], 0x3d
jne 0x10022650
mov eax, dword [eax + 0x50]
cmp eax, ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], 1
je 0x100226ed
nop
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
push 0x38
push 0x3c
call dword [edx + 0xc]
mov edi, eax
mov ebx, edi
xor eax, eax
mov ecx, 0xf
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
mov dword [ebx], 0x56
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x34], ecx
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
push 0x33
push 0xc
xor edi, edi
call dword [edx + 0xc]
mov ecx, eax
mov dword [ecx], edi
mov dword [ecx + 4], edi
mov dword [ecx + 8], edi
mov ecx, dword [esp + 0x10]
test ecx, ecx
mov dword [eax + 4], ebx
mov dword [eax], edi
jne 0x100226c8
mov dword [esp + 0x10], eax
jmp 0x100226ce
mov edx, dword [esp + 0x1c]
mov dword [edx], eax
mov edx, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
inc edx
test eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
jne 0x10022670
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
mov dword [edi + 0x40], ecx
mov eax, dword [esp + 0x14]
pop edi
mov dword [eax + 0x40], esi
mov dword [esi + 0x30], esi
pop esi
pop ebp
pop ebx
add esp, 0x98
ret
mov ebp, dword [esp + 0xb4]
mov edx, dword [ebx + 0x2c]
mov esi, dword [esp + 0xac]
push ebp
push edx
push esi
call fcn.100223a0
mov edi, eax
mov eax, dword [ebx + 0x2c]
mov ecx, dword [eax + 0x30]
push ebp
push ecx
push esi
call fcn.100223a0
mov ebp, eax
add esp, 0x18
test ebp, ebp
jne 0x10022748
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x98
ret
test edi, edi
jne 0x10022759
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x98
ret
mov ecx, dword [esi + 8]
mov edx, dword [ecx]
push 0xa1
push 0x4c
call dword [edx + 0xc]
test eax, eax
je 0x1002278b
mov ecx, dword [ebx]
push ecx
mov ecx, eax
call fcn.10025f70
mov edx, dword [ebx]
mov dword [eax + 0x2c], edi
mov dword [eax], edx
mov dword [edi + 0x30], ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x98
ret
mov edx, dword [ebx]
xor eax, eax
mov dword [eax + 0x2c], edi
mov dword [eax], edx
mov dword [edi + 0x30], ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x98
ret
mov esi, dword [esp + 0xac]
push ebx
push 1
push esi
call fcn.10020e40
add esp, 0xc
test eax, eax
push ebx
je 0x100227cf
mov ebx, esi
call fcn.10022270
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x98
ret
push esi
call fcn.10022c10
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x98
ret
mov eax, dword [esp + 0xac]
push str.Query_Decomposition:__Unknown_Table_Type
push 0x64a
push str.g:_srcdbengineomni.qdgentree.c
push eax
call fcn.100218e0
add esp, 0x10
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x98
ret