Function at 0x811c18
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 2
add esp, 0xfffff004
push eax
dec eax
jne 0x811c21
mov eax, dword [ebp - 4]
add esp, 0xfffff7e0
push ebx
push esi
xor edx, edx
mov dword [ebp - 0x2824], edx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x81209c
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
push ebp
push 0x81206f
push dword fs:[edx]
mov dword fs:[edx], esp
mov dl, 1
mov eax, dword [0x481cc8]
call fcn.00403dfc
mov dword [ebp - 8], eax
push 0x20
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x30]
mov dl, 1
mov eax, dword [0x481c50]
call fcn.00482e10
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x1c]
call fcn.00404c7c
lea eax, [ebp - 0x18]
call fcn.00404c7c
mov byte [ebp - 0x1d], 1
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax]
call dword [ebx + 0x10]
lea edx, [ebp - 0x281d]
mov ecx, 1
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax]
call dword [ebx + 8]
lea edx, [ebp - 0x281d]
mov ecx, 1
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0xc]
lea edx, [ebp - 0x281d]
mov ecx, 1
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax]
call dword [ebx + 8]
lea edx, [ebp - 0x281d]
mov ecx, 1
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0xc]
lea edx, [ebp - 0x281d]
mov ecx, 1
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax]
call dword [ebx + 8]
cmp byte [ebp - 0x281d], 0xff
jne 0x811cf5
mov byte [ebp - 0xd], 0xff
lea edx, [ebp - 0x281d]
mov ecx, 1
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax]
call dword [ebx + 8]
mov al, byte [ebp - 0x281d]
mov byte [ebp - 0xe], al
lea edx, [ebp - 0x281d]
mov ecx, 1
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax]
call dword [ebx + 8]
mov al, byte [ebp - 0x281d]
mov byte [ebp - 0xf], al
lea edx, [ebp - 0x281d]
mov ecx, 1
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax]
call dword [ebx + 8]
mov al, byte [ebp - 0x281d]
mov byte [ebp - 0x10], al
lea eax, [ebp - 0x18]
call fcn.00404c7c
xor eax, eax
mov al, byte [ebp - 0xf]
mov ebx, eax
shl ebx, 8
xor eax, eax
mov al, byte [ebp - 0x10]
add ebx, eax
sub ebx, 2
test ebx, ebx
jle 0x811de9
mov eax, dword [ebp - 0xc]
call fcn.004244fc
push edx
push eax
mov eax, dword [ebp - 0xc]
call fcn.00424530
sub eax, 1
sbb edx, 0
cmp edx, dword [esp + 4]
jne 0x811db0
cmp eax, dword [esp]
pop edx
pop eax
jbe 0x811de6
jmp 0x811db4
pop edx
pop eax
jle 0x811de6
lea edx, [ebp - 0x281d]
mov ecx, 1
mov eax, dword [ebp - 0xc]
mov esi, dword [eax]
call dword [esi + 8]
lea eax, [ebp - 0x2824]
mov dl, byte [ebp - 0x281d]
call fcn.00404e5c
mov edx, dword [ebp - 0x2824]
lea eax, [ebp - 0x18]
call fcn.00404f4c
dec ebx
jne 0x811d89
mov al, byte [ebp - 0xe]
and al, 0xf0
cmp al, 0xc0
sete al
and al, byte [ebp - 0x1d]
je 0x811eef
mov eax, dword [ebp - 4]
cmp dword [eax + 0x34], 0
je 0x811eef
mov al, 0xff
mov byte [ebp - 0x281d], al
lea edx, [ebp - 0x281d]
mov ecx, 1
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov al, 0xfe
mov byte [ebp - 0x281d], al
lea edx, [ebp - 0x281d]
mov ecx, 1
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34]
call fcn.00404f44
add eax, 2
test eax, eax
jns 0x811e56
add eax, 0xff
sar eax, 8
mov byte [ebp - 0x281d], al
lea edx, [ebp - 0x281d]
mov ecx, 1
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34]
call fcn.00404f44
add eax, 2
and eax, 0x800000ff
jns 0x811e8e
dec eax
or eax, 0xffffff00
inc eax
mov byte [ebp - 0x281d], al
lea edx, [ebp - 0x281d]
mov ecx, 1
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34]
call fcn.00404f44
mov ebx, eax
test ebx, ebx
jle 0x811eeb
mov dword [ebp - 0x14], 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34]
mov edx, dword [ebp - 0x14]
mov al, byte [eax + edx - 1]
mov byte [ebp - 0x281d], al
lea edx, [ebp - 0x281d]
mov ecx, 1
mov eax, dword [ebp - 8]
mov esi, dword [eax]
call dword [esi + 0xc]
inc dword [ebp - 0x14]
dec ebx
jne 0x811ebf
mov byte [ebp - 0x1d], 0
cmp byte [ebp - 0xe], 0xfe
je 0x811fa7
mov al, byte [ebp - 0xd]
mov byte [ebp - 0x281d], al
lea edx, [ebp - 0x281d]
mov ecx, 1
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov al, byte [ebp - 0xe]
mov byte [ebp - 0x281d], al
lea edx, [ebp - 0x281d]
mov ecx, 1
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov al, byte [ebp - 0xf]
mov byte [ebp - 0x281d], al
lea edx, [ebp - 0x281d]
mov ecx, 1
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov al, byte [ebp - 0x10]
mov byte [ebp - 0x281d], al
lea edx, [ebp - 0x281d]
mov ecx, 1
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x18]
call fcn.00404f44
mov ebx, eax
test ebx, ebx
jle 0x811fa7
mov dword [ebp - 0x14], 1
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
mov al, byte [eax + edx - 1]
mov byte [ebp - 0x281d], al
lea edx, [ebp - 0x281d]
mov ecx, 1
mov eax, dword [ebp - 8]
mov esi, dword [eax]
call dword [esi + 0xc]
inc dword [ebp - 0x14]
dec ebx
jne 0x811f7e
mov eax, dword [ebp - 0xc]
call fcn.004244fc
push edx
push eax
mov eax, dword [ebp - 0xc]
call fcn.00424530
sub eax, 1
sbb edx, 0
cmp edx, dword [esp + 4]
jne 0x811fc8
cmp eax, dword [esp]
pop edx
pop eax
je 0x811fd6
cmp byte [ebp - 0xe], 0xda
jne 0x811cf5
mov eax, dword [ebp - 0xc]
call fcn.004244fc
push edx
push eax
mov eax, dword [ebp - 0xc]
call fcn.00424530
sub eax, 1
sbb edx, 0
cmp edx, dword [esp + 4]
jne 0x811ffd
cmp eax, dword [esp]
pop edx
pop eax
jb 0x812029
jmp 0x812001
pop edx
pop eax
jl 0x812029
mov eax, dword [ebp - 0xc]
call fcn.00424530
push edx
push eax
mov eax, dword [ebp - 0xc]
call fcn.004244fc
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
push edx
push eax
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.00424798
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
lea eax, [ebp - 0xc]
call fcn.004120b8
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x30]
mov eax, dword [ebp - 8]
call fcn.00483074
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x812076
cmp dword [ebp - 0xc], 0
je 0x812066
lea eax, [ebp - 0xc]
call fcn.004120b8
lea eax, [ebp - 8]
call fcn.004120b8
ret