Function at 0x42fc00
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x45e327
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 0x42fc67
xor eax, eax
jmp 0x42fc7f
mov eax, edx
lea edi, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x42fc70
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 0x42fcc5
lea edx, [eax - 1]
test edx, edx
jl 0x42ff1e
cmp edx, eax
jg 0x42ff1e
movzx eax, word [ecx + edx*2]
cmp ax, 0x5c
je 0x42fcc5
cmp ax, 0x2f
je 0x42fcc5
mov edx, 0x4664a8
call fcn.004010a0
mov eax, dword [edi]
push eax
call fcn.0042f000
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 0x42fcef
cmp edi, eax
je 0x42fcf4
call fcn.00411167
cmp esi, ebx
je 0x42fed7
test edi, edi
jne 0x42fd05
call fcn.00411167
cmp esi, dword [edi + 4]
jne 0x42fd0f
call fcn.00411167
cmp esi, dword [edi + 4]
lea ebx, [esi + 0xc]
jne 0x42fd1c
call fcn.00411167
mov eax, dword [ebx]
mov ecx, 0x466460
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x42fd49
test dx, dx
je 0x42fd45
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x42fd49
add eax, 4
add ecx, 4
test dx, dx
jne 0x42fd23
xor eax, eax
jmp 0x42fd4e
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
setne al
test al, al
je 0x42fdfa
push ebx
mov ebx, dword [esp + 0x18]
lea ecx, [esp + 0x20]
push ecx
call fcn.00402a70
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 0x42fdc8
cmp dword [ebx + 0xc], 0
lea edi, [ebx + 0xc]
jl 0x42fdbb
mov edx, dword [eax]
cmp edx, dword [ebx]
jne 0x42fdbb
call fcn.004018f0
mov esi, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x42fdae
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 0x42fdc8
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 0x42fded
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.0042f000
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 0x42fe12
cmp edi, eax
je 0x42fe17
call fcn.00411167
cmp ebx, esi
je 0x42fe57
test edi, edi
jne 0x42fe24
call fcn.00411167
cmp ebx, dword [edi + 4]
jne 0x42fe2e
call fcn.00411167
mov eax, dword [ebx + 8]
mov edx, dword [esp + 0x14]
mov ecx, dword [edx]
push eax
call fcn.0042f140
test eax, eax
je 0x42fedb
cmp ebx, dword [edi + 4]
jne 0x42fe4f
call fcn.00411167
mov ebx, dword [ebx]
mov esi, dword [esp + 0x28]
jmp 0x42fe04
mov edx, dword [esp + 0x28]
cmp byte [edx + 0x1d], 0
je 0x42fe73
call fcn.00411167
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x28]
jmp 0x42fce2
mov ecx, dword [edx + 8]
cmp byte [ecx + 0x1d], 0
jne 0x42fe9d
mov eax, dword [ecx]
cmp byte [eax + 0x1d], 0
jne 0x42fe8e
mov ecx, eax
mov eax, dword [ecx]
cmp byte [eax + 0x1d], 0
je 0x42fe84
mov eax, dword [esp + 0x18]
mov dword [esp + 0x28], ecx
mov esi, ecx
jmp 0x42fce2
mov eax, dword [edx + 4]
cmp byte [eax + 0x1d], 0
jne 0x42fec6
jmp 0x42feb4
mov edx, dword [esp + 0x28]
cmp edx, dword [eax + 8]
jne 0x42fec6
mov dword [esp + 0x28], eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x1d], 0
je 0x42feb0
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x28]
jmp 0x42fce2
xor esi, esi
jmp 0x42fedf
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 0x42ff07
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.00401a00
int3