Function at 0x401bae
Capabilities:
Encode data using xor
Link many functions at runtime

Disassembly:
lea eax, [0x3d]
sub edi, esi
add edi, ebx
mov edi, 0x1c
mov esi, edi
push esi
push 0x11
pop ebx
push ebx
push 5
pop eax
push eax
mov esi, 7
mov edi, esi
push edi
push 0x3128ed
pop ebx
mov dword [0x4c33d6], 0xf17cb
add ebx, dword [0x4c33d6]
push dword [ebx]
pop dword [0x4c3173]
mov ebx, dword [0x4c3173]
call ebx
or eax, eax
jne 0x40148f
mov dword [0x4c3164], 0
mov eax, dword [0x4c3164]
push eax
xor edi, edi
push edi
xor ecx, ecx
push ecx
mov eax, 0
push eax
push 0
pop ecx
push ecx
xor edi, edi
push edi
push 0x202056
pop esi
shl esi, 1
call dword [esi]
mov dword [0x4c316b], eax
push eax
call 0x40151a
inc eax
or edi, 0x5f
lea esi, [1]
sub ebx, 2
dec edi
push 0
pop ebx
push ebx
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
push 5
pop ebx
push ebx
mov edi, 0x4b0b7a
sub edi, 0xacaae
call dword [edi]
or eax, eax
jne 0x40184d
call 0x401b72
int3
xor eax, eax
mov dword [0x4c32c3], 0
mov edx, dword [0x4c32c3]
push edx
mov dword [0x4c32db], 0
mov ecx, dword [0x4c32db]
push ecx
call dword [sym.imp.user32.dll_LoadMenuW]
mov dword [0x4c31c7], eax
mov ecx, 0
mov eax, ecx
lea eax, [eax + 0x4c333d]
sub eax, 0x530
ja 0x401bf3
sub eax, edi
add dword [0x4c3185], eax
mov ecx, eax
inc ecx
sub dword [0x4c33ac], ecx
jmp 0x402b20
push ebp
pop eax
mov edi, eax
push edi
mov dword [0x4c33e3], esp
mov ebp, dword [0x4c33e3]
sub esp, 0x10
push edi
push esi
add edi, ebx
dec esi
push eax
push edi
call fcn.004011d0
lea esi, [esi + 0x4c31ec]
add esi, edi
add esi, dword [0x4c3021]
shl esi, 1
sub esi, dword [0x4c32a8]
sub esi, ebx
shr esi, 1
mov ebx, esi
add dword [0x4c3238], ebx
push 0
push 0
push 0x4c331e
push 0x80000003
mov ebx, dword [sym.imp.ADVAPI32.DLL_RegOpenKeyA]
call ebx
push 0
push 0x321c8
sub edi, eax
lea eax, [0x4c30cc]
push eax
dec ebx
add eax, esi
push 0x8091c
push 0
lea eax, [0x4c318e]
push eax
call fcn.00401190
mov dword [0x4c33b9], eax
or eax, eax
jne 0x402baa
mov ebx, eax
cdq
lea edi, [esi + 0x4c313b]
add edi, edi
sub edi, esi
sub edi, dword [0x4c3159]
add dword [0x4c32eb], edi
lea eax, [0x4c3134]
push eax
lea eax, [0x4c308f]
push eax
call fcn.004011d0
push ebx
call fcn.00401320
mov dword [0x4c31df], eax
or eax, eax
je 0x402be4
mov edx, ebx
push 0
push 0
push 0
push 0
push 0x20205a
pop esi
shl esi, 1
call dword [esi]
mov eax, 0x39d946
mov edi, eax
mov dword [ebp - 0xc], 0x1257ce
add edi, dword [ebp - 0xc]
push edi
mov edi, 0x2d07cb
mov eax, edi
mov edx, 0x1f2842
add eax, edx
push eax
mov edx, 0x17a4fe94
push edx
mov edi, 0x202088
shl edi, 1
call dword [edi]
or eax, eax
je 0x401491
mov dword [0x4c32fc], 0
mov ebx, dword [0x4c32fc]
push ebx
push 1
pop esi
push esi
mov dword [ebp - 0xc], 0xce1ba4
mov edi, dword [ebp - 0xc]
sub edi, 0x8ddac4
call dword [edi]
or eax, eax
jne 0x401b72
lea eax, [0x4c317a]
push eax
push 0x36174
push 0
push 0xa0fc5
push ebx
call fcn.00401130
mov dword [ebp - 0x10], eax
or eax, eax
jne 0x402c81
inc edi
push 0x55e6
push 0x6921f
lea eax, [0x4c3062]
push eax
call fcn.00401368
mov edi, 5
mov esi, edi
push esi
mov edi, dword [sym.imp.gdi32.dll_UnrealizeObject]
call edi
or eax, eax
jne 0x401b72
lea eax, [0x4c3077]
push eax
call fcn.00401320
mov dword [ebp - 0x10], eax
or eax, eax
jne 0x402cc3
inc ebx
push 0x2da58544
pop edx
push edx
mov edx, 0x4688e6
mov dword [0x4c3104], 0x5a876
add edx, dword [0x4c3104]
push edx
mov ebx, 0x2faccb
mov esi, ebx
mov eax, 0x1c842b
add esi, eax
push esi
mov dword [ebp - 0xc], 0
mov edi, dword [ebp - 0xc]
push edi
push 0x30eeaf
pop ecx
add ecx, 0x1b4315
push ecx
push 0x39359d
pop edi
mov dword [ebp - 0xc], 0x12fac7
add edi, dword [ebp - 0xc]
push edi
mov edi, 0x10
mov eax, edi
push eax
mov dword [ebp - 0x10], 0
mov ebx, dword [ebp - 0x10]
push ebx
mov ecx, 0xc04b7d
mov edx, ecx
mov dword [ebp - 0xc], 0x800a71
sub edx, dword [ebp - 0xc]
call dword [edx]
or eax, eax
je 0x401b7e
push 0x71
push 0
push 0
push 0
push 0
mov dword [ebp - 8], 0x20208e
mov eax, dword [ebp - 8]
shl eax, 1
call dword [eax]
xor edi, edi
sub dword [0x4c335d], edi
add edi, 0x208
inc edi
sub edi, 0x963
jns 0x402d7f
add edi, 0x542
jae 0x402d7f
sub edi, eax
mov dword [ebp - 0x10], edi
mov esi, 0
add esi, dword [0x4c3300]
shl esi, 4
add esi, dword [0x4c32c4]
sub esi, 0xcc4
add esi, dword [0x4c30a6]
shr esi, 1
add dword [0x4c3142], esi
add esi, 0xf3b
jae 0x402db8
add esi, dword [0x4c3293]
add dword [0x4c3321], esi
push eax
push eax
push eax
push eax
push eax
mov dword [ebp - 0xc], 0x202090
mov esi, dword [ebp - 0xc]
shl esi, 1
call dword [esi]
lea esi, [ebx + 0x4c334a]
rol esi, 2
dec esi
mov dword [ebp - 4], esi
mov ebx, 0x7f9
sub ebx, dword [0x4c3325]
dec ebx
add ebx, 0x207
add dword [0x4c33a3], ebx
rol ebx, 1
mov dword [ebp - 0x10], ebx
sub eax, 0xfa9296
push 0xcb5
pop ebx
cmp ebx, 0x745
jae 0x402e11
rol ebx, 6
add ebx, dword [0x4c33f7]
ror ebx, 1
add ebx, 0xb69
add ebx, dword [0x4c3184]
dec ebx
sub dword [0x4c31e6], ebx
rol ebx, 1
add dword [0x4c3004], ebx
sub eax, 0x7ecc3ec9
mov dword [0x4c325d], eax
xor edx, edx
push edx
xor edx, edx
push edx
push 0x20204a
pop eax
shl eax, 1
call dword [eax]
or eax, eax
jne 0x4015b7
mov dword [ebp - 8], 0x46
mov edi, dword [ebp - 8]
push edi
mov ecx, 0x45
mov edi, ecx
push edi
mov dword [ebp - 8], 0x5efe92a7
mov edi, dword [ebp - 8]
push edi
mov dword [ebp - 8], 0
mov eax, dword [ebp - 8]
push eax
push 0x202052
pop esi
shl esi, 1
call dword [esi]
or eax, eax
jne 0x401493
mov edx, dword [0x4c325d]
push edx
mov ecx, 0
push ecx
mov edx, 5
mov eax, edx
push eax
push 0x419e0e
pop edi
mov dword [ebp - 8], 0x15d2e
sub edi, dword [ebp - 8]
call dword [edi]
or eax, eax
jne 0x40151a
ret