Function at 0x6caf50
Capabilities:
Access peb ldr_data
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe4
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], ecx
mov ebx, eax
mov esi, dword [0x7e9670]
xor eax, eax
push ebp
push 0x6cb8e4
push dword fs:[eax]
mov dword fs:[eax], esp
mov ecx, ebx
mov dl, 1
mov eax, dword [0x6c8288]
call fcn.0051f2a0
mov dword [esi], eax
mov eax, dword [esi]
mov edx, dword [ebx + 0x3f0]
mov dword [eax + 0x3b4], edx
mov eax, dword [ebx + 0x3f0]
mov eax, dword [eax + 0x68]
mov edx, dword [eax + 0xc]
mov eax, dword [esi]
mov eax, dword [eax + 0x394]
call fcn.005466b0
mov eax, dword [ebx + 0x3f0]
mov eax, dword [eax + 0x68]
mov edx, dword [eax + 0x14]
mov eax, dword [esi]
mov eax, dword [eax + 0x39c]
call fcn.005466b0
mov eax, dword [ebx + 0x3f0]
mov eax, dword [eax + 0x68]
mov edx, dword [eax + 0x30]
mov eax, dword [esi]
mov eax, dword [eax + 0x3a0]
call fcn.005466b0
mov eax, dword [ebx + 0x3f0]
mov eax, dword [eax + 0x68]
mov edx, dword [eax + 0x34]
mov eax, dword [esi]
mov eax, dword [eax + 0x3a4]
call fcn.005466b0
mov eax, dword [ebx + 0x3f0]
mov eax, dword [eax + 0x68]
mov edx, dword [eax + 0x38]
mov eax, dword [esi]
mov eax, dword [eax + 0x398]
call fcn.005466b0
mov eax, dword [ebx + 0x3f0]
mov eax, dword [eax + 0x68]
mov edx, dword [eax + 0x58]
mov eax, dword [esi]
call fcn.005466b0
mov eax, dword [ebx + 0x3f0]
mov eax, dword [eax + 0x68]
mov edx, dword [eax + 0x74]
mov eax, dword [esi]
mov eax, dword [eax + 0x388]
call fcn.005466b0
mov eax, dword [esi]
mov eax, dword [eax + 0x388]
add eax, 0x80
mov edx, dword [ebx + 0x3f0]
mov edx, dword [edx + 0x68]
mov edx, dword [edx + 0x9c]
call fcn.004c1644
mov eax, dword [ebx + 0x3f0]
mov eax, dword [eax + 0x68]
mov edx, dword [eax + 0x78]
mov eax, dword [esi]
mov eax, dword [eax + 0x38c]
call fcn.005466b0
mov eax, dword [esi]
mov eax, dword [eax + 0x38c]
add eax, 0x80
mov edx, dword [ebx + 0x3f0]
mov edx, dword [edx + 0x68]
mov edx, dword [edx + 0x80]
call fcn.004c1644
mov eax, dword [esi]
mov eax, dword [eax + 0x3b0]
xor edx, edx
call fcn.00546598
mov eax, dword [ebx + 0x3f0]
mov edx, dword [eax + 0x44]
cmp byte [edx + 8], 0
je 0x6cb14f
mov edx, dword [eax + 0x3c]
cmp dword [edx + 0x2e8], 0
je 0x6cb14f
mov eax, dword [eax + 0x3c]
mov eax, dword [eax + 0x2e8]
mov edx, dword [eax + 0x34]
add edx, 3
mov eax, dword [esi]
mov eax, dword [eax + 0x3b0]
mov ecx, dword [eax]
call dword [ecx + 0x128]
mov eax, dword [ebx + 0x3f0]
mov eax, dword [eax + 0x3c]
mov eax, dword [eax + 0x2e8]
call fcn.004d3410
mov edi, eax
dec edi
test edi, edi
jl 0x6cb11e
inc edi
mov eax, dword [esi]
mov eax, dword [eax + 0x3b0]
mov eax, dword [eax + 0x2ac]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x38]
dec edi
jne 0x6cb106
mov eax, dword [ebx + 0x3f0]
mov eax, dword [eax + 0x68]
mov edx, dword [eax + 0xa0]
mov eax, dword [esi]
mov eax, dword [eax + 0x3b0]
mov eax, dword [eax + 0x2ac]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [esi]
mov eax, dword [eax + 0x3b0]
mov dl, 1
call fcn.00546598
mov eax, dword [ebx + 0x3d8]
mov edx, dword [eax]
call dword [edx + 0xec]
test eax, eax
jl 0x6cb2cc
mov edi, dword [ebx + 0x3d8]
mov eax, edi
mov edx, dword [eax]
call dword [edx + 0xec]
mov edx, eax
mov eax, dword [edi + 0x280]
mov ecx, dword [eax]
call dword [ecx + 0x18]
test eax, eax
je 0x6cb2cc
mov eax, dword [ebx + 0x3d8]
mov edx, dword [eax]
call dword [edx + 0xec]
mov edx, eax
mov eax, dword [ebx + 0x3d8]
mov eax, dword [eax + 0x280]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov edx, dword [0x6d9c8c]
call fcn.004bf9a8
test al, al
je 0x6cb2cc
mov edi, dword [ebx + 0x3d8]
mov eax, edi
mov edx, dword [eax]
call dword [edx + 0xec]
mov edx, eax
mov eax, dword [edi + 0x280]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov edx, dword [0x6d9c8c]
call fcn.004bf9cc
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x10]
mov eax, dword [esi]
mov eax, dword [eax + 0x3ac]
call fcn.005466b0
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x18]
mov eax, dword [esi]
mov eax, dword [eax + 0x3a8]
call fcn.005466b0
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x14]
mov eax, dword [esi]
mov eax, dword [eax + 0x3a4]
mov ecx, dword [eax]
call dword [ecx + 0xf0]
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x1c]
mov eax, dword [esi]
mov eax, dword [eax + 0x3a0]
mov ecx, dword [eax]
call dword [ecx + 0xf0]
mov eax, dword [esi]
mov eax, dword [eax + 0x3b0]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0x74]
mov eax, dword [ebp - 4]
mov edi, dword [eax + 4]
mov eax, edi
mov edx, dword [0x6ad8e8]
call fcn.004bf9a8
test al, al
je 0x6cb28a
cmp byte [edi + 0x3b3], 0
jne 0x6cb28a
mov eax, dword [esi]
mov eax, dword [eax + 0x3b0]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x74]
mov eax, dword [esi]
mov eax, dword [eax + 0x3b0]
xor edx, edx
call fcn.005466b0
mov eax, dword [esi]
mov eax, dword [eax + 0x3b0]
mov edx, dword [eax]
call dword [edx + 0x5c]
test al, al
je 0x6cb2cc
mov eax, dword [esi]
mov eax, dword [eax + 0x3b0]
mov eax, dword [eax + 0x2ac]
mov edx, dword [eax]
call dword [edx + 0x14]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0xc]
jle 0x6cb2cc
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xc]
mov eax, dword [esi]
mov eax, dword [eax + 0x3b0]
mov ecx, dword [eax]
call dword [ecx + 0xf0]
mov eax, dword [ebx + 0x3f0]
mov eax, dword [eax + 0x44]
movzx edx, byte [eax + 4]
mov eax, dword [esi]
mov eax, dword [eax + 0x3ac]
mov ecx, dword [eax]
call dword [ecx + 0x74]
mov eax, dword [esi]
mov eax, dword [eax + 0x3ac]
movzx edx, byte [eax + 0x59]
mov eax, dword [esi]
mov eax, dword [eax + 0x394]
call fcn.00546598
mov eax, dword [ebx + 0x3f0]
mov eax, dword [eax + 0x44]
movzx edx, byte [eax + 7]
mov eax, dword [esi]
mov eax, dword [eax + 0x3a8]
call fcn.00546598
mov eax, dword [esi]
mov eax, dword [eax + 0x3a8]
movzx edx, byte [eax + 0x59]
mov eax, dword [esi]
mov eax, dword [eax + 0x398]
call fcn.00546598
mov eax, dword [ebx + 0x3f0]
mov eax, dword [eax + 0x44]
movzx edx, byte [eax + 8]
mov eax, dword [esi]
mov eax, dword [eax + 0x3b0]
call fcn.00546598
mov eax, dword [esi]
mov eax, dword [eax + 0x3b0]
movzx edx, byte [eax + 0x59]
mov eax, dword [esi]
mov eax, dword [eax + 0x39c]
call fcn.00546598
mov eax, dword [ebx + 0x3f0]
mov eax, dword [eax + 0x44]
movzx edx, byte [eax + 5]
mov eax, dword [esi]
mov eax, dword [eax + 0x3a4]
call fcn.00546598
mov eax, dword [ebx + 0x3f0]
mov eax, dword [eax + 0x44]
movzx edx, byte [eax + 6]
mov eax, dword [esi]
mov eax, dword [eax + 0x3a0]
call fcn.00546598
mov eax, dword [esi]
mov eax, dword [eax + 0x3a8]
cmp byte [eax + 0x59], 0
jne 0x6cb3f5
mov edx, dword [esi]
mov edx, dword [edx + 0x3b0]
cmp byte [edx + 0x59], 0
je 0x6cb3f5
mov edx, 0x3b
call fcn.00545c50
mov eax, dword [esi]
mov eax, dword [eax + 0x3a8]
mov edx, 0x20
call fcn.00545c84
mov eax, dword [esi]
mov eax, dword [eax + 0x398]
mov edx, 0x23
call fcn.00545c50
mov eax, dword [esi]
mov eax, dword [eax + 0x398]
mov edx, 0x24
call fcn.00545c84
mov eax, dword [esi]
mov eax, dword [eax + 0x3a4]
cmp byte [eax + 0x59], 0
jne 0x6cb42d
mov eax, dword [esi]
mov eax, dword [eax + 0x3a0]
cmp byte [eax + 0x59], 0
je 0x6cb42d
mov edx, 0xb
call fcn.00545c84
mov eax, dword [esi]
mov eax, dword [eax + 0x3a0]
mov edx, 0x8b
call fcn.00545c50
xor edi, edi
mov eax, dword [esi]
mov eax, dword [eax + 0x3ac]
cmp byte [eax + 0x59], 0
je 0x6cb448
mov eax, dword [esi]
mov eax, dword [eax + 0x394]
mov edi, dword [eax + 0x48]
mov eax, dword [esi]
mov eax, dword [eax + 0x3a8]
cmp byte [eax + 0x59], 0
je 0x6cb46a
mov eax, dword [esi]
mov eax, dword [eax + 0x398]
mov edx, dword [eax + 0x48]
mov eax, edi
call fcn.004793c8
mov edi, eax
mov eax, dword [esi]
mov eax, dword [eax + 0x3b0]
cmp byte [eax + 0x59], 0
je 0x6cb48c
mov eax, dword [esi]
mov eax, dword [eax + 0x39c]
mov edx, dword [eax + 0x48]
mov eax, edi
call fcn.004793c8
mov edi, eax
test edi, edi
jle 0x6cb5e5
add edi, 0xc
mov eax, dword [esi]
mov eax, dword [eax + 0x3ac]
mov edx, edi
call fcn.00545c50
mov edx, edi
sub edx, 5
mov eax, dword [esi]
mov eax, dword [eax + 0x394]
sub edx, dword [eax + 0x48]
call fcn.00545c50
mov eax, dword [esi]
mov eax, dword [eax + 0x3a8]
mov edx, edi
call fcn.00545c50
mov edx, edi
sub edx, 5
mov eax, dword [esi]
mov eax, dword [eax + 0x398]
sub edx, dword [eax + 0x48]
call fcn.00545c50
mov eax, dword [esi]
mov eax, dword [eax + 0x3b0]
mov edx, edi
call fcn.00545c50
mov edx, edi
sub edx, 5
mov eax, dword [esi]
mov eax, dword [eax + 0x39c]
sub edx, dword [eax + 0x48]
call fcn.00545c50
mov eax, dword [esi]
mov eax, dword [eax + 0x3ac]
mov edx, dword [eax + 0x48]
add edx, edi
add edx, 4
mov eax, dword [esi]
mov eax, dword [eax + 0x3a4]
mov eax, dword [eax + 0x40]
call fcn.004793c8
mov edx, eax
mov eax, dword [esi]
mov eax, dword [eax + 0x3a4]
call fcn.00545c50
mov eax, dword [esi]
mov eax, dword [eax + 0x3a4]
mov edx, dword [eax + 0x40]
mov eax, dword [esi]
mov eax, dword [eax + 0x3a0]
call fcn.00545c50
mov eax, dword [esi]
mov eax, dword [eax + 0x3a4]
mov edi, dword [eax + 0x40]
mov eax, dword [esi]
mov eax, dword [eax + 0x3ac]
add edi, dword [eax + 0x48]
mov eax, dword [esi]
mov eax, dword [eax + 0x390]
mov eax, dword [eax + 0x48]
cmp edi, eax
jl 0x6cb5ac
mov edx, edi
sub edx, eax
add edx, eax
add edx, 3
mov eax, dword [esi]
mov eax, dword [eax + 0x390]
call fcn.00545cb8
mov eax, dword [esi]
mov eax, dword [eax + 0x390]
mov edi, dword [eax + 0x40]
add edi, dword [eax + 0x48]
mov eax, dword [esi]
mov eax, dword [eax + 0x48]
cmp edi, eax
jl 0x6cb5ac
mov edx, edi
sub edx, eax
add edx, eax
add edx, 6
mov eax, dword [esi]
call fcn.00545cb8
mov eax, dword [esi]
mov edi, dword [eax + 0x48]
sar edi, 1
jns 0x6cb5b8
adc edi, 0
mov eax, dword [esi]
mov eax, dword [eax + 0x388]
mov edx, edi
sub edx, dword [eax + 0x48]
call fcn.00545c50
mov eax, dword [esi]
mov eax, dword [eax + 0x388]
mov edx, dword [eax + 0x40]
add edx, dword [eax + 0x48]
mov eax, dword [esi]
mov eax, dword [eax + 0x38c]
call fcn.00545c50
lea ecx, [ebp - 0xc]
mov edx, 0x78
mov eax, 0x4b
call fcn.0045f4fc
lea ecx, [ebp - 0x14]
lea edx, [ebp - 0xc]
mov eax, ebx
call fcn.00546074
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 8], eax
mov eax, dword [esi]
mov edx, dword [ebp - 8]
call fcn.00525cf8
mov eax, dword [esi]
mov edx, dword [ebp - 0xc]
call fcn.00525cbc
mov eax, dword [ebx + 0x3d8]
mov edx, dword [eax]
call dword [edx + 0xec]
mov edi, eax
mov eax, dword [esi]
mov edx, dword [eax]
call dword [edx + 0x114]
dec eax
jne 0x6cb8be
test edi, edi
jl 0x6cb8be
mov eax, dword [ebx + 0x3d8]
mov eax, dword [eax + 0x280]
mov edx, edi
mov ecx, dword [eax]
call dword [ecx + 0x18]
test eax, eax
je 0x6cb8be
mov eax, dword [ebx + 0x3d8]
mov eax, dword [eax + 0x280]
mov edx, edi
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov edx, dword [0x6d9c8c]
call fcn.004bf9a8
test al, al
je 0x6cb8be
mov eax, dword [ebx + 0x3d8]
mov eax, dword [eax + 0x280]
mov edx, edi
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov edx, dword [0x6d9c8c]
call fcn.004bf9cc
cmp dword [eax + 4], 0
je 0x6cb6e6
mov eax, dword [ebx + 0x3d8]
mov eax, dword [eax + 0x280]
mov edx, edi
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov edx, dword [0x6d9c8c]
call fcn.004bf9cc
mov eax, dword [eax + 4]
mov edx, dword [0x6d1e58]
call fcn.004bf9a8
test al, al
jne 0x6cb78a
mov eax, dword [ebx + 0x3d8]
mov eax, dword [eax + 0x280]
mov edx, edi
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov edx, dword [0x6d9c8c]
call fcn.004bf9cc
mov eax, dword [eax + 4]
mov edx, dword [0x6ad8e8]
call fcn.004bf9a8
test al, al
jne 0x6cb78a
mov eax, dword [ebx + 0x3d8]
mov eax, dword [eax + 0x280]
mov edx, edi
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov edx, dword [0x6d9c8c]
call fcn.004bf9cc
cmp byte [eax + 8], 0
je 0x6cb8be
mov eax, dword [ebx + 0x3d8]
mov eax, dword [eax + 0x280]
mov edx, edi
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov edx, dword [0x6d9c8c]
call fcn.004bf9cc
cmp byte [eax + 0xa], 0
jne 0x6cb78a
mov eax, dword [ebx + 0x3d8]
mov eax, dword [eax + 0x280]
mov edx, edi
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov edx, dword [0x6d9c8c]
call fcn.004bf9cc
cmp byte [eax + 0x29], 0
je 0x6cb8be
mov eax, dword [ebx + 0x3d8]
mov eax, dword [eax + 0x280]
mov edx, edi
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov edx, dword [0x6d9c8c]
call fcn.004bf9cc
mov dword [ebp - 4], eax
lea edx, [ebp - 0x18]
mov eax, dword [esi]
mov eax, dword [eax + 0x3ac]
call fcn.00546678
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
add eax, 0x10
call fcn.004c1644
lea edx, [ebp - 0x1c]
mov eax, dword [esi]
mov eax, dword [eax + 0x3a8]
call fcn.00546678
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 4]
add eax, 0x18
call fcn.004c1644
mov eax, dword [esi]
mov eax, dword [eax + 0x3a0]
mov edx, dword [eax]
call dword [edx + 0xec]
mov edx, dword [ebp - 4]
mov byte [edx + 0x1c], al
mov eax, dword [esi]
mov eax, dword [eax + 0x3a4]
mov edx, dword [eax]
call dword [edx + 0xec]
mov edx, dword [ebp - 4]
mov byte [edx + 0x14], al
mov eax, dword [ebx + 0x3f0]
mov eax, dword [eax + 0x44]
cmp byte [eax + 8], 0
je 0x6cb89e
mov eax, dword [esi]
mov eax, dword [eax + 0x3b0]
mov edx, dword [eax]
call dword [edx + 0x5c]
test al, al
je 0x6cb89e
mov eax, dword [esi]
mov eax, dword [eax + 0x3b0]
mov edx, dword [eax]
call dword [edx + 0xec]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0xc]
je 0x6cb852
mov eax, dword [ebp - 4]
mov byte [eax + 0x28], 1
mov eax, dword [esi]
mov eax, dword [eax + 0x3b0]
mov edx, dword [eax]
call dword [edx + 0xec]
push eax
mov eax, dword [esi]
mov eax, dword [eax + 0x3b0]
mov eax, dword [eax + 0x2ac]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
pop edx
cmp edx, eax
jge 0x6cb894
mov eax, dword [esi]
mov eax, dword [eax + 0x3b0]
mov edx, dword [eax]
call dword [edx + 0xec]
mov edx, dword [ebp - 4]
mov dword [edx + 0xc], eax
jmp 0x6cb89e
mov eax, dword [ebp - 4]
mov dword [eax + 0xc], 0xffffffff
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x10]
mov eax, dword [ebx + 0x3d8]
mov eax, dword [eax + 0x280]
mov edx, edi
mov edi, dword [eax]
call dword [edi + 0x20]
mov eax, ebx
call fcn.006cab04
mov eax, dword [esi]
call fcn.004bf790
xor eax, eax
mov dword [esi], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x6cb8eb
lea eax, [ebp - 0x1c]
mov edx, 2
call fcn.004c12c4
ret