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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, dword [ebp + 8]
sub esp, 0x74
push ebx
push esi
mov esi, dword [0x100ef48c]
push edi
call fcn.0053ca80
test eax, eax
je 0x525b16
add esi, 0x120
jmp 0x525b1c
add esi, 0x140
lea ebx, [esp + 0x13]
mov edi, esi
mov dword [esp + 0x1c], esi
call fcn.004761f0
test al, al
jne 0x525b37
xor ebx, ebx
mov byte [esp + 0x12], bl
jmp 0x525b42
add dword [esi + 0x10], 1
mov byte [esp + 0x12], 1
xor ebx, ebx
lea eax, [esi + 8]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x14], eax
lea ecx, [ecx]
call fcn.00535fe0
call dword [0x100cf08c]
mov edi, eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
cmp edi, ecx
je 0x525b82
mov edx, dword [eax]
test edx, edx
jne 0x525bd0
push ebx
push edi
push eax
call dword [0x100cf090]
test eax, eax
sete al
cmp al, bl
je 0x525bd0
mov dword [esi + 0x10], ebx
add dword [esi + 0x10], 1
mov al, 1
cmp al, bl
mov edi, dword [esi + 0x18]
je 0x525bc2
add dword [esi + 0x10], 0xffffffff
jne 0x525bc2
mov eax, dword [esp + 0x14]
push ebx
push eax
mov dword [esi + 0x10], ebx
call dword [0x100cf084]
mov ecx, dword [esi + 0xc]
test ecx, ecx
lea eax, [esi + 0xc]
jle 0x525bc2
push eax
call dword [0x100cf080]
mov edx, dword [esi + 0x14]
push ebx
push 1
push edx
call dword [0x100cf088]
cmp edi, ebx
mov dword [esp + 0x18], edi
je 0x525dd7
jmp 0x525be2
push edi
push esi
call fcn.00476270
test al, al
jne 0x525b82
jmp 0x525b88
xor ebx, ebx
call fcn.00535fe0
call dword [0x100cf08c]
mov edi, eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
cmp edi, ecx
je 0x525c1c
mov edx, dword [eax]
test edx, edx
jne 0x525e2d
push ebx
push edi
push eax
call dword [0x100cf090]
test eax, eax
sete al
cmp al, bl
je 0x525e2d
mov dword [esi + 0x10], ebx
add dword [esi + 0x10], 1
mov al, 1
cmp al, bl
mov edi, dword [esp + 0x18]
mov ecx, dword [edi + 4]
mov dword [esp + 0x18], ecx
je 0x525c64
add dword [esi + 0x10], 0xffffffff
jne 0x525c64
mov edx, dword [esp + 0x14]
push ebx
push edx
mov dword [esi + 0x10], ebx
call dword [0x100cf084]
mov ecx, dword [esi + 0xc]
test ecx, ecx
lea eax, [esi + 0xc]
jle 0x525c64
push eax
call dword [0x100cf080]
mov edx, dword [esi + 0x14]
push ebx
push 1
push edx
call dword [0x100cf088]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov ebx, dword [edi + 8]
lea edi, [esp + 0x24]
call fcn.00475be0
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x2c]
mov edx, dword [ebp + 0x28]
mov edi, dword [esp + 0x24]
push eax
mov eax, dword [ebp + 0x24]
push ecx
mov ecx, dword [ebp + 0x20]
push edx
mov edx, dword [ebp + 0x1c]
push eax
mov eax, dword [ebp + 0x18]
push ecx
mov ecx, dword [ebp + 0x14]
push edx
push eax
push ecx
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
mov eax, dword [edx]
push edi
call eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
push eax
mov eax, dword [edx]
push edi
call eax
mov ecx, dword [ebp + 8]
push eax
push edi
push ecx
call fcn.00525ee0
add esp, 0x30
test eax, eax
jne 0x525e58
xor ebx, ebx
cmp edi, ebx
je 0x525dcb
mov eax, 0x100ef4b8
mov dword [esp + 0x34], ebx
mov edx, dword [esp + 0x34]
mov ecx, 0x100ef4b4
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x50], ecx
lea ecx, [esp + 0x40]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], 0xffffffff
mov dword [esp + 0x4c], edx
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], ecx
call fcn.00535fe0
call dword [0x100cf08c]
mov edx, dword [esp + 0x48]
mov edi, eax
mov eax, dword [edx]
cmp edi, eax
je 0x525d58
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx]
test edx, edx
jne 0x525e41
mov eax, dword [esp + 0x48]
push ebx
push edi
push eax
call dword [0x100cf090]
test eax, eax
sete al
cmp al, bl
je 0x525e41
mov ecx, dword [esp + 0x50]
mov dword [ecx], ebx
mov eax, dword [esp + 0x50]
add dword [eax], 1
mov al, 1
mov edx, dword [esp + 0x24]
push edx
mov byte [esp + 0x60], al
mov eax, dword [0x100ef808]
push 1
push eax
call dword [0x100cf260]
cmp byte [esp + 0x5c], bl
je 0x525dbf
mov edi, dword [esp + 0x58]
mov ecx, dword [edi + 0x10]
add dword [ecx], 0xffffffff
mov ecx, dword [edi + 0x10]
cmp dword [ecx], ebx
lea eax, [edi + 0x10]
jne 0x525dbf
mov edx, ecx
mov dword [edx], ebx
mov eax, dword [edi + 8]
push ebx
push eax
call dword [0x100cf084]
mov ecx, dword [edi + 0xc]
test ecx, ecx
lea eax, [edi + 0xc]
jle 0x525dbf
push eax
call dword [0x100cf080]
mov edx, dword [edi + 0x14]
push ebx
push 1
push edx
call dword [0x100cf088]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
cmp dword [esp + 0x18], ebx
jne 0x525be0
xor ebx, ebx
mov eax, dword [esp + 0x20]
add eax, 1
cmp eax, 0xa
mov dword [esp + 0x20], eax
jl 0x525b50
cmp byte [esp + 0x12], bl
je 0x525e24
add dword [esi + 0x10], 0xffffffff
jne 0x525e24
mov ecx, dword [esp + 0x14]
push ebx
push ecx
mov dword [esi + 0x10], ebx
call dword [0x100cf084]
mov edx, dword [esi + 0xc]
test edx, edx
lea eax, [esi + 0xc]
jle 0x525e24
push eax
call dword [0x100cf080]
mov eax, dword [esi + 0x14]
push ebx
push 1
push eax
call dword [0x100cf088]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push edi
push esi
call fcn.00476270
test al, al
jne 0x525c1c
jmp 0x525c22
push edi
lea eax, [esp + 0x44]
call fcn.00535290
test al, al
jne 0x525d58
jmp 0x525d61
test edi, edi
je 0x525e92
push 0x100ef4b8
mov edx, 0x100ef4b4
lea eax, [esp + 0x64]
call fcn.00532c00
mov eax, dword [0x100ef808]
push edi
push 1
push eax
call dword [0x100cf260]
cmp byte [esp + 0x7c], 0
je 0x525e92
mov esi, dword [esp + 0x78]
call fcn.005154d0
mov esi, dword [esp + 0x1c]
cmp byte [esp + 0x12], 0
je 0x525ed2
add dword [esi + 0x10], 0xffffffff
jne 0x525ed2
mov ecx, dword [esp + 0x14]
push 0
push ecx
mov dword [esi + 0x10], 0
call dword [0x100cf084]
mov edx, dword [esi + 0xc]
test edx, edx
lea eax, [esi + 0xc]
jle 0x525ed2
push eax
call dword [0x100cf080]
mov eax, dword [esi + 0x14]
push 0
push 1
push eax
call dword [0x100cf088]
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret