Function at 0x42fc10
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x45e427
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push ebx
push esi
push edi
mov eax, dword [0x472100]
xor eax, esp
push eax
lea eax, [esp + 0x30]
mov dword fs:[0], eax
mov eax, dword [0x474db4]
mov edx, dword [eax + 0xc]
mov ecx, 0x474db4
mov dword [esp + 0x20], 0x80004005
call edx
add eax, 0x10
mov dword [esp + 0x10], eax
mov esi, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
test edx, edx
lea eax, [esi + 8]
mov dword [esp + 0x38], 0
mov dword [esp + 0x14], eax
jne 0x42fc77
xor eax, eax
jmp 0x42fc8f
mov eax, edx
lea edi, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x42fc80
sub eax, edi
sar eax, 1
mov ebx, eax
mov eax, dword [esp + 0x14]
push edx
call fcn.00401960
mov edi, dword [esp + 0x14]
mov ecx, dword [edi]
mov eax, dword [ecx - 0xc]
test eax, eax
je 0x42fcd5
lea edx, [eax - 1]
test edx, edx
jl 0x42ff2e
cmp edx, eax
jg 0x42ff2e
movzx eax, word [ecx + edx*2]
cmp ax, 0x5c
je 0x42fcd5
cmp ax, 0x2f
je 0x42fcd5
mov edx, 0x4664a8
call fcn.004010a0
mov eax, dword [edi]
push eax
call fcn.0042f010
mov ecx, dword [esi + 0x20]
mov ecx, dword [ecx]
lea eax, [esi + 0x1c]
mov esi, ecx
add esp, 4
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], esi
mov ebx, dword [eax + 4]
mov edi, eax
test edi, edi
je 0x42fcff
cmp edi, eax
je 0x42fd04
call fcn.00411167
cmp esi, ebx
je 0x42fee7
test edi, edi
jne 0x42fd15
call fcn.00411167
cmp esi, dword [edi + 4]
jne 0x42fd1f
call fcn.00411167
cmp esi, dword [edi + 4]
lea ebx, [esi + 0xc]
jne 0x42fd2c
call fcn.00411167
mov eax, dword [ebx]
mov ecx, 0x466460
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x42fd59
test dx, dx
je 0x42fd55
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x42fd59
add eax, 4
add ecx, 4
test dx, dx
jne 0x42fd33
xor eax, eax
jmp 0x42fd5e
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
setne al
test al, al
je 0x42fe0a
push ebx
mov ebx, dword [esp + 0x18]
lea ecx, [esp + 0x20]
push ecx
call fcn.00402a90
add esp, 8
mov byte [esp + 0x38], 1
mov ecx, dword [eax]
mov ebx, dword [esp + 0x10]
lea eax, [ecx - 0x10]
add ebx, 0xfffffff0
cmp eax, ebx
je 0x42fdd8
cmp dword [ebx + 0xc], 0
lea edi, [ebx + 0xc]
jl 0x42fdcb
mov edx, dword [eax]
cmp edx, dword [ebx]
jne 0x42fdcb
call fcn.004018f0
mov esi, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x42fdbe
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebx
call eax
add esi, 0x10
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x28]
jmp 0x42fdd8
mov ebx, dword [ecx - 0xc]
push ecx
lea eax, [esp + 0x14]
call fcn.00401960
mov byte [esp + 0x38], 0
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42fdfd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x10]
push ecx
call fcn.0042f010
add esp, 4
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
lea edi, [esi + 0x10]
mov ebx, eax
test edi, edi
lea eax, [esi + 0x10]
mov esi, dword [eax + 4]
je 0x42fe22
cmp edi, eax
je 0x42fe27
call fcn.00411167
cmp ebx, esi
je 0x42fe67
test edi, edi
jne 0x42fe34
call fcn.00411167
cmp ebx, dword [edi + 4]
jne 0x42fe3e
call fcn.00411167
mov eax, dword [ebx + 8]
mov edx, dword [esp + 0x14]
mov ecx, dword [edx]
push eax
call fcn.0042f150
test eax, eax
je 0x42feeb
cmp ebx, dword [edi + 4]
jne 0x42fe5f
call fcn.00411167
mov ebx, dword [ebx]
mov esi, dword [esp + 0x28]
jmp 0x42fe14
mov edx, dword [esp + 0x28]
cmp byte [edx + 0x1d], 0
je 0x42fe83
call fcn.00411167
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x28]
jmp 0x42fcf2
mov ecx, dword [edx + 8]
cmp byte [ecx + 0x1d], 0
jne 0x42fead
mov eax, dword [ecx]
cmp byte [eax + 0x1d], 0
jne 0x42fe9e
mov ecx, eax
mov eax, dword [ecx]
cmp byte [eax + 0x1d], 0
je 0x42fe94
mov eax, dword [esp + 0x18]
mov dword [esp + 0x28], ecx
mov esi, ecx
jmp 0x42fcf2
mov eax, dword [edx + 4]
cmp byte [eax + 0x1d], 0
jne 0x42fed6
jmp 0x42fec4
mov edx, dword [esp + 0x28]
cmp edx, dword [eax + 8]
jne 0x42fed6
mov dword [esp + 0x28], eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x1d], 0
je 0x42fec0
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x28]
jmp 0x42fcf2
xor esi, esi
jmp 0x42feef
mov esi, dword [esp + 0x20]
mov dword [esp + 0x38], 0xffffffff
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42ff17
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, esi
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push 0x80070057
call fcn.00401a20
int3