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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10222608
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x44
push ebx
mov edx, ecx
xor ebx, ebx
push ebp
mov dword [esp + 0xc], ebx
push esi
mov ebp, dword [edx + 4]
mov dword [esp + 0x14], edx
push edi
test ebp, ebp
je 0x10156ce4
xor eax, eax
xor edi, edi
mov dword [esp + 0x14], eax
mov ecx, dword [ebp + 0x70]
test ecx, ecx
je 0x101569ba
mov ecx, dword [ecx - 4]
jmp 0x101569bc
xor ecx, ecx
cmp edi, ecx
jge 0x10156a4e
mov eax, dword [ebp + 0x70]
mov esi, dword [eax + edi*4]
mov ecx, esi
mov eax, dword [esi]
call dword [eax + 0x78]
cmp eax, 9
jne 0x10156a44
mov eax, dword [esi + 0x5c]
test eax, eax
je 0x10156a44
cmp dword [eax + 0x38], 0
jne 0x10156a11
call fcn.1002c931
mov dword [esp + 0x20], eax
and dword [esp + 0x5c], 0
test eax, eax
je 0x101569fe
mov ecx, eax
call fcn.1002c95e
jmp 0x10156a00
xor eax, eax
or dword [esp + 0x5c], 0xffffffff
mov ecx, dword [esi + 0x5c]
push eax
add ecx, 0x38
call fcn.1000fd99
mov eax, dword [esi + 0x5c]
mov eax, dword [eax + 0x38]
and dword [eax + 0x488], 0
mov esi, dword [esi + 0x5c]
push dword [0x102b7738]
lea ecx, [esi + 0x2c]
call fcn.1000fd99
mov eax, dword [esp + 0x14]
and dword [esi + 0xe0], 0xffff7fff
inc eax
mov dword [esp + 0x14], eax
jmp 0x10156a48
mov eax, dword [esp + 0x14]
inc edi
jmp 0x101569ae
test eax, eax
je 0x10156ce4
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x40]
push dword [eax + 4]
call fcn.1014ca12
lea eax, [esp + 0x38]
mov dword [esp + 0x5c], 1
push eax
lea ecx, [esp + 0x44]
call fcn.1014cd9a
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x10156cc5
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x10156cc5
call fcn.1014d162
mov edi, eax
test edi, edi
je 0x10156b4e
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x78]
cmp eax, 9
jne 0x10156b4e
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x23c]
test eax, eax
je 0x10156ca5
mov eax, dword [edi]
lea ecx, [esp + 0x20]
push ecx
mov ecx, edi
call dword [eax + 0x238]
mov ecx, dword [edi + 0x5c]
mov eax, dword [ecx]
call dword [eax + 0x494]
mov ecx, dword [edi + 0x5c]
mov ebp, eax
mov ecx, dword [ecx + 0x38]
mov dword [ecx + 0x488], 0x80000000
mov esi, dword [edi + 0x5c]
push dword [0x102b7738]
lea ecx, [esi + 0x2c]
call fcn.1000fd99
and dword [esi + 0xe0], 0xffff7fff
test ebp, ebp
je 0x10156ca5
push dword [edi + 0x5c]
mov ecx, ebp
call fcn.10013630
mov esi, dword [edi + 0x5c]
xor ecx, ecx
mov eax, dword [esi + 0x40]
test eax, eax
mov edx, dword [esi + 0x60]
cmovns eax, ecx
add edx, dword [esi + 0x50]
add edx, eax
mov eax, dword [esi + 0x3c]
test eax, eax
cmovns eax, ecx
mov ecx, dword [esi + 0x5c]
add ecx, dword [esi + 0x4c]
add ecx, eax
add edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
jmp 0x10156c93
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x44]
call fcn.1014d00a
mov byte [esp + 0x5c], 2
or ebx, 1
cmp dword [eax], 0
mov dword [esp + 0x14], ebx
je 0x10156ba7
cmp dword [eax + 4], 0
jge 0x10156ba7
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x44]
call fcn.1014d00a
mov dword [esp + 0x5c], 3
or ebx, 2
mov edi, dword [eax]
mov dword [esp + 0x14], ebx
test edi, edi
je 0x10156ba7
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x78]
mov byte [esp + 0x13], 1
cmp eax, 9
je 0x10156bac
mov byte [esp + 0x13], 0
mov dword [esp + 0x5c], 2
test bl, 2
je 0x10156bd2
mov ecx, dword [esp + 0x18]
and ebx, 0xfffffffd
mov dword [esp + 0x14], ebx
test ecx, ecx
je 0x10156bd2
mov eax, dword [ecx]
call dword [eax + 4]
and dword [esp + 0x18], 0
mov dword [esp + 0x5c], 1
test bl, 1
je 0x10156bf4
mov ecx, dword [esp + 0x28]
and ebx, 0xfffffffe
test ecx, ecx
je 0x10156bf4
mov eax, dword [ecx]
call dword [eax + 4]
and dword [esp + 0x28], 0
cmp byte [esp + 0x13], 0
je 0x10156ca5
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x23c]
test eax, eax
je 0x10156ca5
mov eax, dword [edi]
lea ecx, [esp + 0x30]
push ecx
mov ecx, edi
call dword [eax + 0x238]
mov ecx, dword [edi + 0x5c]
mov eax, dword [ecx]
call dword [eax + 0x494]
mov ecx, dword [edi + 0x5c]
mov ebp, eax
mov ecx, dword [ecx + 0x38]
mov dword [ecx + 0x488], 0x80000000
mov esi, dword [edi + 0x5c]
push dword [0x102b7738]
lea ecx, [esi + 0x2c]
call fcn.1000fd99
and dword [esi + 0xe0], 0xffff7fff
test ebp, ebp
je 0x10156ca5
push dword [edi + 0x5c]
mov ecx, ebp
call fcn.10013630
mov esi, dword [edi + 0x5c]
xor ecx, ecx
mov eax, dword [esi + 0x40]
test eax, eax
mov edx, dword [esi + 0x60]
cmovns eax, ecx
add edx, dword [esi + 0x50]
add edx, eax
mov eax, dword [esi + 0x3c]
test eax, eax
cmovns eax, ecx
mov ecx, dword [esi + 0x5c]
add ecx, dword [esi + 0x4c]
add ecx, eax
add edx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
add eax, ecx
mov ecx, ebp
mov dword [esi + 0x78], eax
mov dword [esi + 0x7c], edx
push dword [edi + 0x5c]
call fcn.10013630
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x44]
call fcn.1014cec9
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x10156cc5
mov eax, dword [ecx]
call dword [eax + 4]
and dword [esp + 0x38], 0
lea ecx, [esp + 0x44]
call fcn.1014d43e
lea ecx, [esp + 0x40]
test al, al
jne 0x10156a92
or dword [esp + 0x5c], 0xffffffff
call fcn.1014cd4f
mov ecx, dword [esp + 0x54]
pop edi
mov dword fs:[0], ecx
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret