Function at 0x40c855
Capabilities:
Access peb ldr_data
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
cmp dword [0x4343a0], 0
push esi
push edi
jne 0x40ca77
xor eax, eax
mov edi, eax
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx + 0x18]
test eax, eax
je 0x40ca7e
mov esi, dword [0x4354e8]
mov edx, eax
or esi, 0xf36e55ff
add esi, 0x2506fa00
mov dword [ebp - 0xc], edx
mov eax, dword [edx + 0x3c]
mov eax, dword [eax + edx + 0x78]
test eax, eax
je 0x40c8d2
lea edi, [eax + edx]
mov eax, dword [edi + 0xc]
add eax, edx
mov dword [ebp - 8], eax
mov eax, dword [eax]
or eax, 0x20202020
cmp eax, 0x6c64746e
jne 0x40c8d2
mov eax, dword [ebp - 8]
mov eax, dword [eax + 4]
or eax, 0x20202020
cmp eax, 0x6c642e6c
je 0x40c8db
mov ecx, dword [ecx]
mov eax, dword [ecx + 0x18]
test eax, eax
jne 0x40c88b
mov dword [0x4354e8], esi
test edi, edi
je 0x40ca7e
mov eax, dword [edi + 0x18]
and esi, 0x8c15ebbb
mov ecx, dword [edi + 0x20]
mov dword [ebp - 4], eax
add ecx, edx
mov eax, dword [edi + 0x1c]
add eax, edx
mov dword [0x435c44], edx
mov dword [ebp - 0x10], eax
mov eax, dword [edi + 0x24]
xor edi, edi
add eax, edx
mov dword [ebp - 0x14], esi
mov edx, dword [ebp - 4]
mov esi, edx
lea eax, [eax + edx*2]
mov edx, dword [ebp - 0xc]
add eax, 0xfffffffe
dec esi
mov dword [ebp - 8], eax
lea esi, [ecx + esi*4]
mov ecx, dword [esi]
mov eax, 0x775a
add ecx, edx
cmp word [ecx], ax
mov eax, dword [ebp - 4]
jne 0x40c968
call fcn.0040c837
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
mov dword [edi*8 + 0x4343a4], eax
movzx eax, word [ecx]
mov eax, dword [edx + eax*4]
mov dword [edi*8 + 0x4343a8], eax
inc edi
cmp edi, 0x226
je 0x40c97c
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
jmp 0x40c96b
mov ecx, dword [ebp - 8]
dec eax
sub ecx, 2
sub esi, 4
mov dword [ebp - 4], eax
mov dword [ebp - 8], ecx
test eax, eax
jne 0x40c927
mov esi, dword [ebp - 0x14]
lea eax, [edi - 1]
and esi, 0xb810bb5e
mov dword [0x4343a0], edi
xor ecx, ecx
xor esi, 0xc82234e4
mov dword [0x4354e8], esi
mov edx, ecx
mov dword [ebp - 4], ecx
test eax, eax
je 0x40ca77
mov eax, edi
mov dword [ebp - 8], ecx
sub eax, edx
sub eax, 1
je 0x40ca65
mov eax, dword [ecx*8 + 0x4343a8]
mov dword [ebp - 0xc], eax
mov eax, dword [ecx*8 + 0x4343b0]
cmp dword [ebp - 0xc], eax
jbe 0x40ca54
mov eax, dword [ecx*8 + 0x4343a4]
mov dword [ebp - 0x14], eax
mov eax, dword [ecx*8 + 0x4343ac]
mov dword [ecx*8 + 0x4343a4], eax
mov eax, dword [ecx*8 + 0x4343b0]
mov dword [ecx*8 + 0x4343a8], eax
call fcn.0040c6c9
xor eax, eax
mov edi, eax
add esi, 0xc25c877a
inc edi
cmp word [edi*2 + str.O:WDG:AUD:P_A_NP_FR___WD_], ax
jne 0x40ca02
call fcn.0040c5bd
mov ecx, dword [ebp - 8]
mov eax, esi
mov edx, dword [ebp - 4]
or eax, 0x1d5cbd5c
xor esi, 0x9e69b4b9
cmp edi, 0x2709
cmovne esi, eax
mov eax, dword [ebp - 0x14]
mov dword [ecx*8 + 0x4343ac], eax
mov eax, dword [ebp - 0xc]
mov dword [ecx*8 + 0x4343b0], eax
mov edi, dword [0x4343a0]
mov dword [0x4354e8], esi
mov eax, edi
inc ecx
sub eax, edx
mov dword [ebp - 8], ecx
dec eax
cmp ecx, eax
jb 0x40c9b9
inc edx
lea eax, [edi - 1]
mov dword [ebp - 4], edx
push 0
pop ecx
cmp edx, eax
jb 0x40c9a9
xor eax, eax
inc eax
pop edi
pop esi
leave
ret
xor eax, eax
jmp 0x40ca7a