Function at 0x100041d4
Capabilities:
Access peb ldr_data
Check os version
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0xca4
mov ebx, dword [eax + 0x1c]
mov dword [esp + 0x14], eax
mov edi, dword fs:[0x30]
mov edx, dword [ebx + 0x120]
mov dword [esp + 0x10], edi
mov eax, dword [edi + 0xc]
mov dword [esp + 0xca0], ebx
add eax, 0xc
xor ebx, ebx
mov eax, dword [eax]
mov esi, dword [eax + 0x30]
test esi, esi
je 0x1000420a
test edx, edx
je 0x10004277
movzx ecx, word [esi]
mov edi, ebx
test ecx, ecx
je 0x10004273
mov dword [esp + 0x1c], eax
mov ecx, ebx
mov dword [esp + 0x18], edx
inc ecx
movzx edx, word [esi + ecx*4 - 4]
cmp edx, 0x41
jl 0x1000423e
cmp edx, 0x5a
lea eax, [edx + 0x20]
cmovle edx, eax
movzx eax, dx
add edi, eax
movzx eax, word [esi + ecx*4 - 2]
test eax, eax
je 0x10004267
cmp eax, 0x41
jl 0x1000425d
lea edx, [eax + 0x20]
movzx edx, dx
cmp eax, 0x5a
cmovle eax, edx
add edi, eax
movzx eax, word [esi + ecx*4]
test eax, eax
jne 0x1000422a
nop dword [eax]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
cmp edx, edi
jne 0x1000420a
mov eax, dword [eax + 0x18]
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0xca0]
mov dword [esp + 0xc5c], eax
mov esi, dword [ebx + 0x70]
mov edi, dword [edi + 0xc]
mov dword [esp + 0xca0], ebx
add edi, 0xc
xor ebx, ebx
mov edi, dword [edi]
mov edx, dword [edi + 0x30]
test edx, edx
je 0x1000429e
test esi, esi
je 0x10004307
movzx eax, word [edx]
mov ecx, ebx
test eax, eax
je 0x10004303
mov dword [esp + 0x10], esi
mov eax, ebx
inc eax
movzx esi, word [edx + eax*4 - 4]
cmp esi, 0x41
jl 0x100042ce
cmp esi, 0x5a
lea ebx, [esi + 0x20]
cmovle esi, ebx
movzx ebx, si
add ecx, ebx
movzx ebx, word [edx + eax*4 - 2]
test ebx, ebx
je 0x100042f7
cmp ebx, 0x41
jl 0x100042ed
lea esi, [ebx + 0x20]
movzx esi, si
cmp ebx, 0x5a
cmovle ebx, esi
add ecx, ebx
movzx ebx, word [edx + eax*4]
test ebx, ebx
jne 0x100042ba
nop word [eax + eax]
mov esi, dword [esp + 0x10]
xor ebx, ebx
cmp esi, ecx
jne 0x1000429e
mov eax, dword [edi + 0x18]
mov ebx, dword [esp + 0xca0]
mov dword [esp + 0xa54], eax
add esp, 0xfffffff4
mov ecx, ebx
mov eax, dword [esp + 0xc68]
mov edx, dword [ebx + 0xa0]
call fcn.10003f0c
mov dword [esp + 0x85c], eax
add esp, 0xfffffff4
mov ecx, ebx
mov eax, dword [esp + 0xc68]
mov edx, dword [ebx + 0xac]
call fcn.10003f0c
mov dword [esp + 0x858], eax
add esp, 0xfffffff4
mov ecx, ebx
mov eax, dword [esp + 0xc68]
mov edx, dword [ebx + 0x28]
call fcn.10003f0c
mov dword [esp + 0x854], eax
add esp, 0xfffffff4
mov ecx, ebx
mov eax, dword [esp + 0xa60]
mov edx, dword [ebx + 0x50]
call fcn.10003f0c
mov dword [esp + 0x850], eax
add esp, 0xfffffff4
mov ecx, ebx
mov eax, dword [esp + 0xc68]
mov edx, dword [ebx + 0xa4]
call fcn.10003f0c
mov dword [esp + 0x84c], eax
add esp, 0xfffffff4
mov ecx, ebx
mov eax, dword [esp + 0xc68]
mov edx, dword [ebx + 0x134]
call fcn.10003f0c
mov dword [esp + 0x848], eax
add esp, 0xfffffff4
mov ecx, ebx
mov eax, dword [esp + 0xa60]
mov edx, dword [ebx + 0x140]
call fcn.10003f0c
mov dword [esp + 0x844], eax
add esp, 0xfffffff4
mov ecx, ebx
mov eax, dword [esp + 0xc68]
mov edx, dword [ebx + 0x144]
call fcn.10003f0c
mov dword [esp + 0x840], eax
add esp, 0xfffffff4
mov ecx, ebx
mov eax, dword [esp + 0xc68]
mov edx, dword [ebx + 0x98]
call fcn.10003f0c
mov dword [esp + 0x83c], eax
add esp, 0xfffffff4
mov ecx, ebx
mov eax, dword [esp + 0xc68]
mov edx, dword [ebx + 0x18]
call fcn.10003f0c
mov dword [esp + 0xc94], eax
add esp, 0xfffffff4
mov ecx, ebx
mov eax, dword [esp + 0xc68]
mov edx, dword [ebx + 0xbc]
call fcn.10003f0c
mov dword [esp + 0x18], eax
mov edi, dword [esp + 0xc5c]
mov eax, dword [ebx + 0x4c]
mov dword [esp + 0x23c], eax
mov edx, dword [edi + 0x3c]
mov dword [esp + 0xca0], ebx
mov esi, dword [edx + edi + 0x78]
mov edx, dword [esi + edi + 0x20]
xor esi, esi
add edx, edi
mov dword [esp + 0x238], edx