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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x80
mov ecx, dword [ebp + 8]
xor esi, esi
test ecx, ecx
je 0x10023803
mov eax, dword [ebp + 0x18]
test eax, eax
jne 0x100235ab
mov eax, dword [ecx + 0x3c]
add eax, ecx
cmp dword [eax + 0x7c], 0
je 0x10023803
mov edi, eax
mov eax, dword [edi + 0x78]
mov dword [esp + 0x2c], eax
mov ebx, dword [eax + ecx + 0x1c]
mov esi, dword [eax + ecx + 0x24]
mov edx, dword [eax + ecx + 0x20]
mov eax, dword [ebp + 0xc]
movzx eax, byte [eax]
add ebx, ecx
add esi, ecx
mov dword [esp + 0x20], esi
add edx, ecx
mov dword [esp + 0x28], edx
cmp eax, 0xef
ja 0x10023613
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], edi
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0xc]
mov esi, eax
mov dword [esp], esi
mov edi, ecx
call fcn.10010640
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.10053b70
mov ecx, edi
jmp 0x10023637
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], edi
not eax
and eax, 0xf
imul eax, eax, 0x4f40
mov edx, dword [ebp + 0x14]
xor edx, eax
mov dword [esp + 0x14], edx
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 1]
xor eax, edx
mov dword [esp + 0x24], eax
xor edi, edi
mov eax, dword [esp + 0x2c]
cmp dword [ecx + eax + 0x18], 0
mov esi, 0
je 0x10023803
nop word cs:[eax + eax]
mov eax, dword [esp + 0x28]
mov ebx, dword [eax + edi*4]
test ebx, ebx
je 0x1002368b
add ebx, ecx
mov dword [esp], ebx
mov esi, ecx
call fcn.10010640
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.10053b70
mov ecx, esi
cmp dword [esp + 0x24], eax
je 0x1002369d
inc edi
xor esi, esi
mov eax, dword [esp + 0x2c]
cmp edi, dword [ecx + eax + 0x18]
jb 0x10023660
jmp 0x10023803
mov eax, dword [esp + 0x20]
movzx eax, word [eax + edi*2]
mov edx, dword [esp + 0x18]
mov esi, dword [edx + eax*4]
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0x78]
cmp esi, eax
jb 0x1002376b
add eax, dword [edx + 0x7c]
cmp esi, eax
jae 0x1002376b
add esi, ecx
mov dword [esp], esi
lea esi, [esp + 0x60]
mov ecx, esi
call fcn.10047b30
sub esp, 4
mov dword [esp + 4], 0
mov dword [esp], 0x2e
mov ecx, esi
call fcn.10009760
sub esp, 8
mov esi, eax
cmp esi, 0xffffffff
je 0x1002378d
mov dword [esp + 8], esi
lea eax, [esp + 0x48]
mov dword [esp], eax
mov dword [esp + 4], 0
lea ecx, [esp + 0x60]
call fcn.1000c3a0
sub esp, 0xc
lea ecx, [esp + 0x48]
call fcn.10005220
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
sub esp, 4
mov edi, eax
mov ecx, dword [ebp + 8]
cmp edi, ecx
jne 0x1002374c
lea eax, [esp + 0x60]
mov dword [esp], eax
mov edi, ecx
call fcn.1004ae00
mov ecx, edi
mov edi, eax
test edi, edi
je 0x10023754
cmp edi, ecx
jne 0x1002379a
mov dword [esp + 4], ebx
mov dword [esp], ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
sub esp, 8
mov esi, eax
jmp 0x100237f1
mov eax, dword [ebp + 0x10]
test al, 1
je 0x10023779
add esi, ecx
jmp 0x10023803
mov dword [esp + 4], ebx
mov dword [esp], ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
sub esp, 8
mov esi, eax
jmp 0x10023803
lea ecx, [esp + 0x60]
call fcn.1001f340
xor esi, esi
jmp 0x10023803
inc esi
mov dword [esp + 4], esi
lea eax, [esp + 0x30]
mov dword [esp], eax
mov dword [esp + 8], 0xffffffff
lea ecx, [esp + 0x60]
call fcn.1000c3a0
sub esp, 0xc
lea ecx, [esp + 0x30]
call fcn.10005220
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc], ecx
mov ecx, dword [ebp + 0x10]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [esp + 0x10], 0
call fcn.10023580
mov esi, eax
lea ecx, [esp + 0x30]
call fcn.1001f340
lea ecx, [esp + 0x48]
call fcn.1001f340
lea ecx, [esp + 0x60]
call fcn.1001f340
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret