Function at 0x643cb57c
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x3bc
mov eax, dword [0x643e802c]
or eax, 0x11c7cb8
mov dword [0x643e7eb4], eax
mov dword [esp], str.The_string_binding_is_invalid.
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edx, str.Floating_point_division_by_zero.
push edi
mov al, byte [edx]
test al, al
je 0x643cb5cb
sub eax, 0x30
cmp al, 9
jbe 0x643cb5c8
imul eax, dword [0x643e7eb4], 0x967ea15f
mov dword [0x643e7eb4], eax
jmp 0x643cb5cb
inc edx
jmp 0x643cb5aa
mov eax, dword [0x643e7eb4]
mov ecx, str.The_callback_function_must_be_invoked_inline.
mov ebx, 0x1875
and eax, 0xec2669a5
or eax, 0xe0224184
imul eax, eax, 0x1e6cfb01
sub eax, 0x3c45825f
mov dword [0x643e7eb4], eax
movsx edx, byte [ecx]
inc ecx
test dl, dl
je 0x643cb611
add ebx, edx
cmp ebx, 0x26c4
jbe 0x643cb5f4
imul eax, eax, 0x1d48914
mov dword [0x643e7eb4], eax
mov eax, dword [0x643e7eb4]
lea edx, [eax + 0x6b99c4de]
add eax, 0x64256aab
mov dword [0x643e7eb4], edx
mov dword [0x643e802c], eax
mov dword [esp + 8], eax
mov dword [esp + 4], str.The_validation_was_not_successful.
mov dword [esp], str.A_system_shutdown_is_in_progress.
call fcn.643ce2a4
and dword [0x643e7eb4], 0x7bc2f880
sub dword [0x643e802c], 0x4781df21
call fcn.643ce5d4
imul eax, dword [0x643e7eb4], 0xb4131472
xor eax, 0x2aee354
add eax, 0x4758a51b
mov dword [0x643e802c], eax
and eax, 0x2ad2db99
mov dword [0x643e7eb4], eax
call fcn.643ce5d4
cmp byte [str.Floating_point_division_by_zero.], 0
je 0x643cb698
sub dword [0x643e802c], 0x7f85fa00
mov eax, dword [0x643e802c]
xor esi, esi
mov edx, eax
or eax, 0xb417ce84
and edx, 0x2606bd5d
mov dword [0x643e802c], eax
mov dword [0x643e7eb4], edx
call fcn.643cffb4
mov dword [ebp - 0x374], esi
xor eax, eax
imul edx, dword [0x643e802c], 0x77575a25
mov dword [ebp - 0x378], 0x18
mov dword [ebp - 0x36c], esi
mov dword [0x643e802c], edx
cmp byte [eax + str.The_callback_function_must_be_invoked_inline.], 0
je 0x643cb707
inc eax
cmp eax, 0xd20
jne 0x643cb6e4
mov dword [esp], edx
call fcn.643d47ac
or dword [0x643e802c], 0x4dcdbdff
mov eax, dword [0x643e802c]
xor ebx, ebx
xor ecx, ecx
mov dword [ebp - 0x370], ecx
lea edx, [eax + 0x3a473e6c]
mov dword [ebp - 0x368], ebx
sub eax, 0x675fbad8
mov dword [0x643e7eb4], edx
mov dword [ebp - 0x364], ebx
mov dword [ebp - 0x3a4], ebx
mov dword [ebp - 0x3a0], ebx
mov dword [0x643e802c], eax
xor eax, eax
cmp byte [eax + str.Floating_point_division_by_zero.], 0
je 0x643cb76b
inc eax
cmp eax, 0x2be
jne 0x643cb746
call fcn.643cf9a4
imul eax, dword [0x643e7eb4], 0x7bdee817
mov dword [0x643e802c], eax
mov eax, dword [0x643e7eb4]
xor esi, esi
and eax, 0xa6328a45
or eax, 0x4108040
mov dword [0x643e7eb4], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [ebp - 0x244], 0x22c
imul eax, eax, 0xeaa0a98b
add eax, 0x46fd95a
mov dword [0x643e7eb4], eax
mov dword [esp + 4], esi
mov dword [esp], 2
mov eax, dword [0x643d5094]
call dword [eax + 0x34]
push edi
push edi
mov dword [ebp - 0x3ac], eax
lea eax, [ebp - 0x244]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x3ac]
mov dword [esp], eax
mov eax, dword [0x643d5094]
call dword [eax + 0x38]
dec eax
push edx
push edx
je 0x643cba74
mov eax, dword [ebp - 0x3ac]
mov dword [esp], eax
call fcn.643c1065
or eax, 0xffffffff
jmp 0x643cbac9
mov eax, dword [0x643e802c]
lea edi, [ebp - 0x399]
mov esi, 0x643eb8ff
mov ecx, 0xb
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x360]
mov esi, 0x643eb90a
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
sub eax, 0x2ca39fce
cmp byte [str.Floating_point_division_by_zero.], 0
mov dword [0x643e7eb4], eax
je 0x643cb841
call fcn.643d43c0
add dword [0x643e7eb4], 0x2262446a
mov eax, dword [0x643e7eb4]
and eax, 0xb8895fdf
imul eax, eax, 0x5a737982
mov dword [0x643e7eb4], eax
xor eax, eax
mov byte [ebp + eax - 0x344], al
inc eax
cmp eax, 0x100
jne 0x643cb858
xor esi, esi
xor ebx, ebx
mov edi, 0x1b
mov eax, ebx
xor edx, edx
mov cl, byte [ebp + ebx - 0x344]
div edi
movzx eax, byte [ebp + edx - 0x360]
movzx edx, cl
add eax, edx
add eax, esi
movzx esi, al
mov al, byte [ebp + esi - 0x344]
mov byte [ebp + ebx - 0x344], al
inc ebx
mov byte [ebp + esi - 0x344], cl
cmp ebx, 0x100
jne 0x643cb870
xor edi, edi
xor esi, esi
xor ebx, ebx
imul eax, dword [0x643e7eb4], 0x85587487
inc ebx
movzx ebx, bl
mov dword [0x643e802c], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov al, byte [ebp + ebx - 0x344]
lea edx, [eax + esi]
movzx esi, dl
mov edx, dword [0x643e802c]
and edx, 0xe8436943
xor edx, 0xf1ec1fbd
mov dword [0x643e7eb4], edx
imul edx, edx, 0x6c9d8de8
mov dword [0x643e802c], edx
mov dl, byte [ebp + esi - 0x344]
mov byte [ebp + ebx - 0x344], dl
lea edx, [ebp - 0x38e]
mov byte [ebp + esi - 0x344], al
add al, byte [ebp + ebx - 0x344]
movzx eax, al
mov al, byte [ebp + eax - 0x344]
xor al, byte [ebp + edi - 0x399]
movzx eax, al
mov word [edx + edi*2], ax
inc edi
cmp edi, 0xb
jne 0x643cb8b3
mov word [ebp - 0x378], 0
lea eax, [ebp - 0x220]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.643cd924
test eax, eax
jne 0x643cba74
call fcn.643d43c0
mov ebx, 0x1c3a
mov ecx, str.The_callback_function_must_be_invoked_inline.
imul eax, dword [0x643e802c], 0xe50d9c63
lea edx, [eax + 0x7b8d0a8b]
mov dword [0x643e7eb4], eax
mov dword [0x643e802c], edx
movsx edx, byte [ecx]
inc ecx
test dl, dl
je 0x643cba9d
add ebx, edx
cmp ebx, 0x25d8
jbe 0x643cb98e
mov dword [esp], eax
call fcn.643cdca4
or dword [0x643e802c], 0xfefeac03
mov dword [esp], str.A_system_shutdown_is_in_progress.
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push ebx
mov eax, dword [0x643e7eb4]
or eax, 0x7386f795
mov dword [0x643e802c], eax
imul eax, dword [0x643e802c], 0x50a8365f
mov dword [0x643e802c], eax
call fcn.643d43c0
mov eax, dword [0x643e802c]
lea edx, [eax - 0x5e00d1bb]
and eax, 0x62acaf6
mov dword [0x643e7eb4], edx
mov dword [0x643e802c], eax
call fcn.643cf3f4
mov eax, dword [0x643e802c]
lea edx, [eax - 0x93fa9a6]
sub eax, 0x13091e0e
mov dword [0x643e7eb4], edx
mov dword [0x643e802c], eax
mov dword [esp], str.The_requested_error_data_is_not_available_on_the_server.
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push ecx
mov eax, dword [ebp - 0x23c]
xor dword [0x643e7eb4], 0x8f7caa25
mov dword [ebp - 0x3a4], eax
lea eax, [ebp - 0x3a4]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x378]
mov dword [esp + 8], eax
lea eax, [ebp - 0x3a8]
mov dword [esp + 4], 0x1fffff
mov dword [esp], eax
call fcn.643c108d
test eax, eax
jns 0x643cbaac
lea eax, [ebp - 0x244]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x3ac]
mov dword [esp], eax
mov eax, dword [0x643d5094]
call dword [eax + 0x3c]
dec eax
push edx
push edx
je 0x643cb7f6
jmp 0x643cb7e0
sub eax, 0x4c907a74
mov dword [0x643e7eb4], eax
jmp 0x643cb9d3
cmp dword [ebp - 0x3a8], 0
je 0x643cba74
mov eax, dword [ebp - 0x3ac]
mov dword [esp], eax
call fcn.643c1065
mov eax, dword [ebp - 0x3a8]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret