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

Disassembly:
mov eax, dword [edi + 0x1c]
mov ecx, dword fs:[0x30]
mov ecx, dword [ecx + 0xc]
add ecx, 0xc
jmp 0x401af8
xor esi, esi
cmp esi, eax
je 0x401b40
mov ecx, dword [ecx]
mov edx, dword [ecx + 0x30]
test edx, edx
je 0x401af8
test eax, eax
je 0x401b40
movzx ebx, word [edx]
test bx, bx
je 0x401af2
add edx, 2
xor esi, esi
jmp 0x401b32
movzx ebx, bx
add esi, ebx
movzx ebx, word [edx]
add edx, 2
test bx, bx
je 0x401af4
lea ebp, [ebx - 0x41]
cmp bp, 0x1a
jae 0x401b22
add ebx, 0x20
jmp 0x401b22
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x14], eax
mov eax, dword [edi + 0x44]
mov ecx, dword fs:[0x30]
mov ecx, dword [ecx + 0xc]
add ecx, 0xc
jmp 0x401b68
xor esi, esi
cmp esi, eax
je 0x401bb0
mov ecx, dword [ecx]
mov edx, dword [ecx + 0x30]
test edx, edx
je 0x401b68
test eax, eax
je 0x401bb0
movzx ebx, word [edx]
test bx, bx
je 0x401b62
add edx, 2
xor esi, esi
jmp 0x401ba2
movzx ebx, bx
add esi, ebx
movzx ebx, word [edx]
add edx, 2
test bx, bx
lea ebp, [ebx - 0x41]
cmp bp, 0x1a
jae 0x401b92
add ebx, 0x20
jmp 0x401b92
mov eax, dword [ecx + 0x18]
mov dword [esp + 8], eax
mov eax, dword [edi + 0x18]
mov dword [esp], eax
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x3c]
mov ecx, dword [edx + eax + 0x78]
mov eax, dword [edx + ecx + 0x20]
add eax, edx
mov esi, dword [edx + ecx + 0x1c]
mov dword [esp + 4], esi
mov ecx, dword [edx + ecx + 0x24]
mov dword [esp + 0x10], ecx
xor ebp, ebp
nop
nop
mov edx, dword [eax + ebp*4]
add edx, dword [esp + 0x14]
mov ebx, 0xffffffff
xor ecx, ecx
nop
nop
mov esi, ecx
cmp byte [edx + ebx + 1], 0
lea ebx, [ebx + 1]
lea ecx, [ecx + 1]
jne 0x401bf2
test ebx, ebx
je 0x401c32
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movsx ecx, byte [edx]
imul ebx, dword [edi + 0xa8]
movzx ecx, cx
add ebx, ecx
inc edx
dec esi
jne 0x401c12
cmp ebx, dword [esp]
jne 0x401c39
jmp 0x401c3c
xor ebx, ebx
cmp ebx, dword [esp]
je 0x401c3c
inc ebp
jmp 0x401be2
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 4]
add edx, ecx
mov eax, dword [esp + 0x10]
add eax, ecx
movzx eax, word [eax + ebp*2]
mov eax, dword [edx + eax*4]
add eax, ecx
push 0x1d2
push dword [edi + 0xac]
mov dword [esp + 0x38], eax
call eax
mov dword [esp + 0x10], eax
mov ecx, dword [edi + 0x58]
mov edx, dword [esp + 8]
mov eax, dword [edx + 0x3c]
mov eax, dword [edx + eax + 0x78]
mov esi, dword [edx + eax + 0x20]
add esi, edx
mov dword [esp], esi
and al, 0x8b
je 0x401c86
sbb al, 0x89
je 0x401cac
or al, 0x8b
inc esp
add ah, byte [ecx + ecx*4]
inc esp
and al, 0x1c
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ebp, dword [eax + edx*4]
add ebp, dword [esp + 8]
mov eax, 0xffffffff
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, ebx
cmp byte [ebp + eax + 1], 0
lea eax, [eax + 1]
lea ebx, [ebx + 1]
jne 0x401cc2
xor ebx, ebx
test eax, eax
je 0x401cf6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movsx eax, byte [ebp]
imul ebx, dword [edi + 0xa8]
movzx eax, ax
add ebx, eax
inc ebp
dec esi
jne 0x401ce2
cmp ebx, ecx
je 0x401cfd
inc edx
jmp 0x401ca2
mov ecx, dword [esp + 8]
mov esi, dword [esp + 0xc]
add esi, ecx
mov eax, dword [esp + 0x1c]
add eax, ecx
mov dword [esp + 0x1c], eax
movzx eax, word [eax + edx*2]
mov dword [esp + 0xc], esi
mov eax, dword [esi + eax*4]
add eax, ecx
mov ecx, dword [esp + 0x10]
mov dword [ecx + 8], eax
mov eax, dword [edi + 0x9c]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x3c]
mov eax, dword [ecx + eax + 0x78]
mov edx, dword [ecx + eax + 0x20]
add edx, ecx
mov esi, dword [ecx + eax + 0x1c]
mov dword [esp + 0x20], esi
mov eax, dword [ecx + eax + 0x24]
mov dword [esp + 0x28], eax
xor ecx, ecx
mov esi, dword [edx + ecx*4]
add esi, dword [esp + 0x14]
mov eax, 0xffffffff
xor ebp, ebp
nop
nop
mov ebx, ebp
cmp byte [esi + eax + 1], 0
lea eax, [eax + 1]
lea ebp, [ebp + 1]
jne 0x401d62
test eax, eax
je 0x401da2
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movsx ebp, byte [esi]
imul eax, dword [edi + 0xa8]
movzx ebp, bp
add eax, ebp
inc esi
dec ebx
jne 0x401d82
cmp eax, dword [esp + 4]
jne 0x401daa
jmp 0x401dad
xor eax, eax
cmp eax, dword [esp + 4]
je 0x401dad
inc ecx
jmp 0x401d52
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x20]
add ebx, esi
mov eax, dword [esp + 0x28]
add eax, esi
mov dword [esp + 0x28], eax
movzx eax, word [eax + ecx*2]
mov dword [esp + 0x20], ebx
mov ecx, dword [ebx + eax*4]
add ecx, esi
mov eax, dword [esp + 0x10]
mov dword [esp + 0x2c], ecx
mov dword [eax + 0x14], ecx
mov dword [eax + 0x10], esi
mov ecx, dword [esp + 0x30]
mov dword [eax + 0x24], ecx
mov eax, dword [edi + 0x30]
mov dword [esp + 4], eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
mov esi, dword [edx + ecx*4]
add esi, dword [esp + 0x14]
mov eax, 0xffffffff
xor ebp, ebp
nop
nop
mov ebx, ebp
cmp byte [esi + eax + 1], 0
lea eax, [eax + 1]
lea ebp, [ebp + 1]
jne 0x401e02
test eax, eax
je 0x401e42
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movsx ebp, byte [esi]
imul eax, dword [edi + 0xa8]
movzx ebp, bp
add eax, ebp
inc esi
dec ebx
jne 0x401e22
cmp eax, dword [esp + 4]
jne 0x401e4a
jmp 0x401e4d
xor eax, eax
cmp eax, dword [esp + 4]
je 0x401e4d
inc ecx
jmp 0x401df2
mov eax, dword [esp + 0x28]
movzx eax, word [eax + ecx*2]
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + eax*4]
add eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x4c], eax
mov dword [ecx + 0x2c], edi
mov edx, dword [edi + 0x13c]
xor ecx, ecx