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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x120
push ebx
push esi
push edi
call 0x3c077d
pop ecx
lea edx, [ecx + 0x367]
xor eax, eax
push edx
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0x20], ecx
mov eax, dword [ecx - 0x54]
mov dword [ebp - 4], eax
cmp dword [ebp + 0x18], 0
je 0x3c07a4
mov edx, dword [eax + 0x268]
jmp 0x3c07aa
mov edx, dword [eax + 0x168]
mov dword [ebp - 0x1c], edx
mov edi, dword [ebp + 8]
mov ebx, edi
add edi, dword [edi + 0x3c]
mov eax, dword [edi + 0x78]
add eax, ebx
mov dword [ebp - 8], eax
mov edx, dword [edi + 0x7c]
mov dword [ebp - 0xc], edx
mov edi, eax
cmp dword [ebp + 0x10], 0
jne 0x3c08ce
mov ecx, dword [ebp + 0x14]
test ecx, ecx
je 0x3c08a4
mov esi, ebx
add esi, dword [edi + 0x20]
mov dword [ebp - 0x18], esi
mov edx, dword [edi + 0x18]
cmp edx, 0x20
jb 0x3c08a4
mov ecx, dword [ebp + 0x1c]
test ecx, ecx
je 0x3c07f7
mov ecx, dword [ecx]
lea eax, [ecx - 1]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
mov ecx, edx
sub ecx, eax
cmp ecx, 1
jle 0x3c0828
add edx, eax
shr edx, 1
mov cl, byte [ebp + 0x14]
mov eax, dword [esi + edx*4]
cmp byte [ebx + eax], cl
jb 0x3c0823
mov dword [ebp - 0x14], edx
jmp 0x3c0800
mov dword [ebp - 0x10], edx
jmp 0x3c0800
mov eax, dword [ebp - 0x14]
cmp eax, dword [edi + 0x18]
je 0x3c0a5b
mov dl, byte [ebp + 0x14]
lea esi, [esi + eax*4]
mov eax, dword [esi]
cmp byte [ebx + eax], dl
jne 0x3c0a5b
mov eax, dword [esi]
add eax, ebx
mov cl, byte [ebp + 0x14]
cmp byte [eax], cl
jne 0x3c0a5b
push 0
push eax
call dword [ebp - 0x1c]
cmp eax, dword [ebp + 0xc]
je 0x3c0875
mov edx, dword [edi + 0x18]
add esi, 4
lea edx, [ebx + edx*4]
add edx, dword [edi + 0x20]
cmp esi, edx
jae 0x3c0a5b
jmp 0x3c0845
sub esi, dword [edi + 0x20]
sub esi, ebx
shr esi, 2
mov edx, dword [ebp + 0x1c]
test edx, edx
je 0x3c0886
mov dword [edx], esi
mov eax, dword [edi + 0x24]
add eax, ebx
movzx eax, word [eax + esi*2]
mov ecx, ebx
add ebx, dword [edi + 0x1c]
cmp eax, dword [edi + 0x14]
ja 0x3c0a5b
mov eax, dword [ebx + eax*4]
add eax, ecx
jmp 0x3c08ea
mov esi, ebx
add esi, dword [edi + 0x20]
mov eax, dword [esi]
add eax, ebx
push 0
push eax
call dword [ebp - 0x1c]
cmp eax, dword [ebp + 0xc]
je 0x3c0875
mov edx, dword [edi + 0x18]
add esi, 4
lea edx, [ebx + edx*4]
add edx, dword [edi + 0x20]
cmp esi, edx
jae 0x3c0a5b
jmp 0x3c08a9
mov ebx, dword [ebp + 8]
mov eax, ebx
add eax, dword [edi + 0x1c]
mov edx, dword [ebp + 0x10]
sub edx, dword [edi + 0x10]
cmp edx, dword [edi + 0x14]
ja 0x3c0a5b
mov eax, dword [eax + edx*4]
add eax, ebx
mov edx, dword [ebp - 8]
cmp eax, edx
jb 0x3c0a33
add edx, dword [ebp - 0xc]
cmp eax, edx
jae 0x3c0a33
lea edi, [ebp - 0x120]
mov esi, eax
xor eax, eax
xor ebx, ebx
mov al, byte [esi]
cmp al, 0x2e
jne 0x3c091b
mov byte [edi], 0
inc esi
inc edi
mov ebx, edi
jmp 0x3c090c
test ebx, ebx
jne 0x3c0929
cmp al, 0x41
jb 0x3c0929
cmp al, 0x5a
ja 0x3c0929
add al, 0x20
mov byte [edi], al
inc esi
inc edi
test al, al
jne 0x3c090c
mov edi, dword [ebp - 4]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx + 0x2f4]
test eax, eax
jne 0x3c0961
push 0
push 0x47
push 0
push 0xb1866570
push dword [edi + 0x368]
call dword [edi + 0x12c]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x2f4], eax
lea esi, [ebp - 0x120]
push esi
push eax
call dword [edi + 0x170]
test eax, eax
jne 0x3c09ad
mov eax, dword [ecx + 0x2f8]
test eax, eax
jne 0x3c099d
push 0
push 0x4c
push 0
push 0x3fc1bd8d
push dword [edi + 0x368]
call dword [edi + 0x12c]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x2f8], eax
push esi
push eax
call dword [edi + 0x170]
test eax, eax
je 0x3c0a5b
mov esi, ebx
mov ebx, eax
cmp dword [ebp - 0x120], 0x2d697061
je 0x3c09c9
cmp dword [ebp - 0x120], 0x2d747865
jne 0x3c0a12
lea eax, [esi - 2]
push eax
call fcn.003c0a79
test eax, eax
je 0x3c0a12
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx + 0x2f0]
test eax, eax
jne 0x3c0a03
push 0
push 0x47
push 0
push 0xc97c1fff
push dword [edi + 0x368]
call dword [edi + 0x12c]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x2f0], eax
push esi
push ebx
push eax
call dword [edi + 0x170]
test eax, eax
je 0x3c0a5b
jmp 0x3c0a33
cmp byte [esi], 0x23
je 0x3c0a45
push 0
push esi
call dword [edi + 0x168]
movzx edx, byte [esi]
push 0
push edx
push 0
push eax
push ebx
call fcn.003c074f
test eax, eax
je 0x3c0a5b
pop dword fs:[0]
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
push esi
call fcn.003c0ab6
xor edx, edx
push edx
push edx
push eax
push edx
push ebx
call fcn.003c074f
test eax, eax
jne 0x3c0a33
xor eax, eax
pop dword fs:[eax]
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18