Function at 0x405f30
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x42d258
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x34
mov eax, dword [0x4310d8]
xor edx, edx
mov dword [esp + 0x30], eax
push ebx
mov dword [esp + 0x30], 0xf
mov dword [esp + 0x2c], edx
mov byte [esp + 0x1c], dl
movzx eax, byte [esp + 7]
movzx ebx, byte [0x431c84]
mov ecx, dword [esp + 0x4c]
and ebx, eax
xor ebx, 0x3b7
imul ebx, ebx, 0x128b
xor ebx, 0x1a
mov al, bl
xor al, 7
cmp ecx, edx
mov dword [esp + 0x40], edx
mov dword [esp + 0xc], edx
jbe 0x40623d
push ebp
push esi
push edi
jmp 0x405fa2
mov al, byte [esp + 0x13]
or ebx, 0x7df3
mov cl, bl
and cl, al
xor cl, 0x5a
mov al, cl
mov ecx, dword [esp + 0x54]
cmp byte [ecx + edx], 0x40
mov byte [esp + 0x13], al
jne 0x406215
movzx ecx, al
mov ebx, 0x18
sub ebx, ecx
mov cl, bl
and cl, al
xor cl, 0x82
test edx, edx
mov byte [esp + 0x13], cl
je 0x406215
mov ecx, dword [esp + 0x58]
lea ebp, [edx - 1]
lea eax, [ebp + 6]
cmp eax, ecx
jae 0x406215
test ebp, ebp
mov edi, ebp
mov dword [esp + 0x20], edi
je 0x406058
mov ebx, 0x71
mov byte [esp + 0x13], 0x38
mov ecx, dword [esp + 0x54]
mov al, byte [edi + ecx]
cmp al, 0x1e
mov byte [esp + 0x14], al
jle 0x406053
movsx esi, al
push esi
call fcn.004253a6
add esp, 4
test eax, eax
jne 0x406042
push esi
call fcn.004253e5
add esp, 4
test eax, eax
jne 0x406042
mov al, byte [esp + 0x14]
cmp al, 0x2e
je 0x406042
cmp al, 0x2d
je 0x406042
cmp al, 0x5f
jne 0x40604f
mov edx, dword [esp + 0x18]
dec edi
mov dword [esp + 0x20], edi
je 0x406058
jmp 0x406006
mov edx, dword [esp + 0x18]
inc edi
mov dword [esp + 0x20], edi
movzx eax, byte [esp + 0x13]
imul eax, ebx
imul eax, eax, 0xe
xor eax, 0x1a
cmp edi, edx
jae 0x40608b
mov esi, dword [esp + 0x54]
mov edi, edi
mov cl, byte [edi + esi]
cmp cl, 0x2e
je 0x406082
cmp cl, 0x2d
je 0x406082
cmp cl, 0x5f
jne 0x406087
inc edi
cmp edi, edx
jb 0x406070
mov dword [esp + 0x20], edi
mov cl, al
xor cl, 7
movzx ebx, cl
imul ebx, eax
imul ebx, ebx, 0x6f
xor ebx, 0x1a
cmp edi, edx
mov byte [esp + 0x13], cl
je 0x406215
mov cl, byte [0x431c84]
mov eax, dword [esp + 0x58]
or cl, 0x61
add ebp, 2
mov byte [esp + 0x14], 0
mov byte [0x431c84], cl
mov esi, ebp
cmp ebp, eax
jae 0x40612e
mov eax, dword [esp + 0x54]
mov al, byte [esi + eax]
cmp al, 0x1e
mov byte [esp + 0x1c], al
jle 0x40612d
movsx edi, al
push edi
call fcn.004253a6
add esp, 4
test eax, eax
jne 0x406105
push edi
call fcn.004253e5
add esp, 4
test eax, eax
jne 0x406105
mov al, byte [esp + 0x1c]
cmp al, 0x2e
je 0x406105
cmp al, 0x2d
je 0x406105
cmp al, 0x5f
jne 0x406125
mov ecx, dword [esp + 0x54]
cmp byte [esi + ecx], 0x2e
jne 0x406114
mov byte [esp + 0x14], 1
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
inc esi
cmp esi, eax
jmp 0x4060c7
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
dec esi
mov cl, byte [esp + 0x13]
mov al, bl
imul ebx, ebx, 0x2c76
and al, cl
mov cl, byte [0x431c84]
add cl, 0x19
xor al, cl
mov byte [esp + 0x13], al
mov al, byte [esp + 0x14]
test al, al
je 0x406215
cmp esi, edx
je 0x406178
jmp 0x406160
mov eax, dword [esp + 0x54]
mov al, byte [esi + eax]
cmp al, 0x2e
je 0x406173
cmp al, 0x2d
je 0x406173
cmp al, 0x5f
jne 0x406178
dec esi
cmp esi, edx
jne 0x406160
cmp esi, ebp
jbe 0x406215
mov cl, byte [esp + 0x13]
mov al, byte [0x431c84]
sub al, cl
mov cl, bl
shl cl, 6
or al, cl
mov byte [0x431c84], al
movsx eax, al
imul eax, ebx
imul eax, eax, 0x39
mov ecx, esi
xor eax, 0x1a
sub ecx, edi
cmp ecx, 7
mov byte [esp + 0x13], 0x38
mov ebx, eax
jb 0x406215
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x28]
inc esi
cmp edx, 0x10
mov eax, ecx
jae 0x4061c7
lea eax, [esp + 0x28]
mov ebp, dword [esp + 0x38]
add eax, ebp
cmp edx, 0x10
jae 0x4061d6
lea ecx, [esp + 0x28]
mov edx, dword [esp + 0x54]
add esi, edx
push esi
add edi, edx
push edi
push eax
push ecx
lea ecx, [esp + 0x34]
call fcn.00405e90
cmp dword [esp + 0x3c], 0x10
mov eax, dword [esp + 0x28]
mov byte [0x431c84], 0xd2
jae 0x406201
lea eax, [esp + 0x28]
mov ecx, dword [esp + 0x5c]
push 1
push 1
push 0
push eax
call fcn.0040b300
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x58]
inc edx
cmp edx, eax
mov dword [esp + 0x18], edx
jb 0x405f9e
cmp dword [esp + 0x3c], 0x10
pop edi
pop esi
pop ebp
jb 0x40623d
mov edx, dword [esp + 0x1c]
push edx
call fcn.00424bcd
add esp, 4
mov ecx, dword [esp + 0x38]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x34]
pop ebx
call fcn.00424873
add esp, 0x40
ret