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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x98
mov eax, dword [0x100df00c]
xor eax, esp
mov dword [esp + 0x94], eax
push esi
mov esi, edx
mov dword [esp + 8], ecx
mov dword [esp + 0x28], esi
mov dword [esp + 0x48], 0
push edi
cmp esi, 3
jl 0x100095c9
lea eax, [esi + esi*2]
lea eax, [eax*8 - 0x10]
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov edi, eax
add esp, 4
mov dword [esp + 0x30], edi
test edi, edi
jne 0x100095df
push 2
call dword [sym.imp.HncFoundation.dll_HncSetError]
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x94]
xor ecx, esp
call fcn.100be194
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0xc]
mov eax, dword [edx + esi*8 - 8]
mov ecx, dword [edx + 4]
cmp dword [edx], eax
jne 0x10009611
cmp ecx, dword [edx + esi*8 - 4]
jne 0x10009611
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x10009607
cmp byte [eax], 1
jne 0x10009611
cmp byte [esi + eax - 2], 1
jne 0x10009611
mov dword [esp + 0x48], 1
jmp 0x10009619
mov dword [esp + 0x48], 0
mov ecx, 1
mov dword [esp + 0x24], 0
cmp esi, ecx
jle 0x10009943
nop
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x1000966d
cmp byte [ecx + eax - 1], 0
jne 0x1000966d
cmp ecx, 1
jne 0x1000964d
mov eax, dword [edx]
mov dword [edi], eax
mov eax, dword [edx + 4]
mov dword [edi + 4], eax
mov esi, dword [esp + 0x24]
mov eax, dword [edx + ecx*8]
mov dword [esp + 0x34], 1
mov dword [edi + esi*8 + 8], eax
mov eax, dword [edx + ecx*8 + 4]
mov dword [edi + esi*8 + 0xc], eax
jmp 0x10009922
lea eax, [esi - 1]
mov dword [esp + 0x34], eax
cmp ecx, eax
jge 0x100096a1
mov eax, dword [edx + ecx*8 + 8]
mov edi, dword [edx + ecx*8 - 4]
mov dword [esp + 0x40], eax
mov eax, dword [edx + ecx*8 + 0xc]
mov dword [esp + 0x44], eax
mov eax, dword [edx + ecx*8]
mov dword [esp + 0x38], eax
mov eax, dword [edx + ecx*8 + 4]
mov dword [esp + 0x3c], eax
mov eax, dword [edx + ecx*8 - 8]
jmp 0x100096c9
mov eax, dword [edx + esi*8 - 8]
mov edi, dword [edx + esi*8 - 0x14]
mov dword [esp + 0x40], eax
mov eax, dword [edx + esi*8 - 4]
mov dword [esp + 0x44], eax
mov eax, dword [edx + esi*8 - 0x10]
mov dword [esp + 0x38], eax
mov eax, dword [edx + esi*8 - 0xc]
mov dword [esp + 0x3c], eax
mov eax, dword [edx + esi*8 - 0x18]
mov dword [esp + 0x10], edi
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x30]
mov dword [esp + 0x54], esi
mov esi, dword [esp + 0x38]
mov dword [esp + 0x68], esi
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x6c], esi
mov esi, dword [esp + 0x40]
mov dword [esp + 0x80], esi
mov esi, dword [esp + 0x44]
mov dword [esp + 0x84], esi
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x28], eax
mov dword [esp + 0x50], eax
cmp ecx, 1
jne 0x100097d0
cmp dword [esp + 0x48], 0
je 0x100097d0
mov edi, dword [edx + esi*8 - 0x10]
mov esi, dword [edx]
lea eax, [edi*8]
sub eax, edi
lea edx, [esi + esi*2]
lea edx, [eax + edx*2]
mov eax, dword [esp + 0xc]
sub edx, dword [eax + 8]
mov eax, 0x2aaaaaab
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
sub esi, eax
mov eax, dword [esp + 0xc]
lea edi, [edi + esi*2]
mov esi, dword [eax + 4]
mov dword [esp + 0x10], edi
mov edi, eax
lea edx, [esi + esi*2]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x2c]
mov eax, dword [edi + edx*8 - 0xc]
shl eax, 3
sub eax, dword [edi + edx*8 - 0xc]
mov edx, dword [esp + 0x28]
lea edx, [eax + edx*2]
mov eax, edi
sub edx, dword [eax + 0xc]
mov eax, 0x2aaaaaab
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, edi
mov edi, dword [esp + 0x2c]
sub esi, eax
mov eax, dword [edx + edi*8 - 0xc]
mov edi, dword [esp + 0x10]
mov dword [esp + 0x58], edi
lea esi, [eax + esi*2]
mov eax, dword [edx + 8]
add eax, edi
mov dword [esp + 0x5c], esi
mov edi, dword [esp + 0x30]
cdq
sub eax, edx
mov edx, dword [esp + 0xc]
pop ecx
test eax, eax
pop ecx
je 0x100099dc
push edi
push esi
push ebx
call fcn.100098c9
add esp, 0xc
call fcn.10009849
and ecx, ebp
shl ah, cl
mov esi, dword [esi + 0x78]
test esi, esi
je 0x100099dc
mov ebx, dword [esi + edi + 0x24]
add esi, edi
add ebx, edi
call fcn.10009849
std
outsd dx, dword [esi]
pop ds
sbb eax, 0x320468b
invalid
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret