Function at 0x48cd52
Capabilities:
Encode data using xor

Disassembly:
push 0x674
mov eax, 0x4dfbb3
call fcn.004b6799
mov eax, dword [ebp + 8]
mov esi, 0x579040
xor ebx, ebx
mov dword [ebp - 0x664], ebx
push esi
mov dword [ebp - 0x658], eax
mov dword [ebp - 0x680], esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, 0x200
push edi
lea eax, [ebp - 0x640]
push ebx
push eax
mov dword [ebp - 4], ebx
call fcn.004b62d0
add esp, 0xc
call fcn.0049219b
push eax
lea ecx, [ebp - 0x65c]
call fcn.00402802
mov byte [ebp - 4], 1
call fcn.0049219b
push eax
lea ecx, [ebp - 0x660]
call fcn.00402802
push dword [ebp + 0xc]
lea eax, [ebp - 0x65c]
push 0x5305bc
push eax
mov byte [ebp - 4], 2
call fcn.00402a07
add esp, 0xc
lea eax, [ebp - 0x660]
push eax
push dword [ebp - 0x65c]
mov ecx, 0x57a8dc
call fcn.004a059e
test eax, eax
je 0x48ce2d
mov ecx, dword [ebp - 0x658]
lea eax, [ebp - 0x660]
push eax
call fcn.004022fa
mov ecx, dword [ebp - 0x660]
add ecx, 0xfffffff0
call fcn.00402845
mov ecx, dword [ebp - 0x65c]
add ecx, 0xfffffff0
call fcn.00402845
push esi
jmp 0x48d898
push edi
lea eax, [ebp - 0x640]
push ebx
push eax
call fcn.004b62d0
add esp, 0xc
push edi
lea eax, [ebp - 0x440]
push ebx
push eax
call fcn.004b62d0
add esp, 0xc
call fcn.0049219b
push eax
lea ecx, [ebp - 0x64c]
call fcn.00402802
push dword [ebp + 0xc]
mov byte [ebp - 4], 3
push dword [0x57a8d0]
lea eax, [ebp - 0x64c]
push eax
call fcn.00402a07
add esp, 8
lea eax, [ebp - 0x64c]
mov dword [ebp - 0x654], esp
mov ecx, esp
push eax
lea esi, [ebp - 0x440]
call fcn.004022fa
mov ecx, esi
call fcn.0048cc04
pop ecx
test al, al
je 0x48d17e
cmp dword [ebp + 0xc], 6
push 7
pop ecx
mov esi, str.Microsoft_Visual_C_Library
lea edi, [ebp - 0x30]
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov esi, 0x101
lea eax, [ebp - 0x138]
push esi
je 0x48d016
mov ebx, dword [0x57a8d8]
xor edi, edi
push edi
push eax
call fcn.004b62d0
add esp, 0xc
push esi
lea eax, [ebp - 0x240]
push edi
push eax
call fcn.004b62d0
add esp, 0xc
xor eax, eax
lea ecx, [esi - 1]
mov byte [ebp + eax - 0x138], al
inc eax
cmp eax, ecx
jb 0x48cef2
mov eax, dword [ebx - 0xc]
xor esi, esi
cmp eax, edi
je 0x48cf1f
cmp esi, eax
jb 0x48cf0d
xor esi, esi
mov dl, byte [ebx + esi*2]
inc esi
mov byte [ebp + edi - 0x240], dl
inc edi
cmp edi, ecx
jb 0x48cf07
jmp 0x48cf39
xor eax, eax
cmp esi, 0x1c
jb 0x48cf28
xor esi, esi
mov dl, byte [ebp + esi - 0x30]
inc esi
mov byte [ebp + eax - 0x240], dl
inc eax
cmp eax, ecx
jb 0x48cf21
xor edx, edx
mov dword [ebp - 0x648], edx
mov eax, 0xff
movzx edi, byte [ebp + edx - 0x240]
add edi, dword [ebp - 0x648]
lea esi, [ebp + edx - 0x138]
mov bl, byte [esi]
mov byte [ebp - 0x641], bl
movzx ebx, bl
add ebx, edi
and ebx, eax
mov edi, ebx
movzx bx, byte [ebp - 0x641]
movzx ebx, bx
mov dword [ebp - 0x648], edi
lea edi, [ebp + edi - 0x138]
mov dword [ebp - 0x654], ebx
mov bl, byte [edi]
mov byte [esi], bl
mov bl, byte [ebp - 0x654]
inc edx
mov byte [edi], bl
cmp edx, ecx
jb 0x48cf46
xor edi, edi
mov dword [ebp - 0x648], edi
mov dword [ebp - 0x650], edi
inc edi
and edi, eax
lea ecx, [ebp + edi - 0x138]
mov dl, byte [ecx]
movzx esi, dl
add esi, dword [ebp - 0x648]
movzx dx, dl
and esi, eax
movzx edx, dx
mov dword [ebp - 0x648], esi
lea esi, [ebp + esi - 0x138]
mov bl, byte [esi]
mov byte [ecx], bl
mov byte [esi], dl
movzx ecx, byte [ecx]
movzx edx, dl
add ecx, edx
mov edx, dword [ebp - 0x650]
and ecx, eax
movzx cx, byte [ebp + ecx - 0x138]
movzx ecx, cx
lea edx, [ebp + edx - 0x440]
xor byte [edx], cl
inc dword [ebp - 0x650]
cmp dword [ebp - 0x650], 0x1fe
jb 0x48cfa9
jmp 0x48d138
push ebx
push eax
call fcn.004b62d0
add esp, 0xc
push esi
lea eax, [ebp - 0x240]
push ebx
push eax
call fcn.004b62d0
add esp, 0xc
xor eax, eax
mov ecx, 0x100
mov byte [ebp + eax - 0x138], al
inc eax
cmp eax, ecx
jb 0x48d038
xor esi, esi
xor edi, edi
cmp esi, 0x1c
jb 0x48d04f
xor esi, esi
mov al, byte [ebp + esi - 0x30]
inc esi
mov byte [ebp + edi - 0x240], al
inc edi
cmp edi, ecx
jb 0x48d048
mov dword [ebp - 0x648], ebx
xor edx, edx
mov eax, 0xff
movzx edi, byte [ebp + edx - 0x240]
add edi, dword [ebp - 0x648]
lea esi, [ebp + edx - 0x138]
mov bl, byte [esi]
mov byte [ebp - 0x641], bl
movzx ebx, bl
add ebx, edi
and ebx, eax
mov edi, ebx
movzx bx, byte [ebp - 0x641]
movzx ebx, bx
mov dword [ebp - 0x648], edi
lea edi, [ebp + edi - 0x138]
mov dword [ebp - 0x654], ebx
mov bl, byte [edi]
mov byte [esi], bl
mov bl, byte [ebp - 0x654]
inc edx
mov byte [edi], bl
cmp edx, ecx
jb 0x48d06d
xor edi, edi
mov dword [ebp - 0x648], edi
mov dword [ebp - 0x650], edi
inc edi
and edi, eax
lea edx, [ebp + edi - 0x138]
mov cl, byte [edx]
movzx esi, cl
add esi, dword [ebp - 0x648]
movzx cx, cl
and esi, eax
movzx ecx, cx
mov dword [ebp - 0x648], esi
lea esi, [ebp + esi - 0x138]
mov bl, byte [esi]
mov byte [edx], bl
mov byte [esi], cl
movzx edx, byte [edx]
movzx ecx, cl
add ecx, edx
mov edx, dword [ebp - 0x650]
and ecx, eax
movzx cx, byte [ebp + ecx - 0x138]
movzx ecx, cx
lea edx, [ebp + edx - 0x440]
xor byte [edx], cl
inc dword [ebp - 0x650]
cmp dword [ebp - 0x650], 0x1fe
jb 0x48d0d0
push eax
lea eax, [ebp - 0x440]
push eax
lea eax, [ebp - 0x640]
xor ecx, ecx
push eax
mov word [ebp - 0x242], cx
call fcn.004b3b7a
add esp, 0xc
cmp dword [ebp + 0xc], 6
jne 0x48d16f
lea eax, [ebp - 0x640]
push eax
mov ecx, 0x57a8d8
call fcn.0040272d
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x64c]
jmp 0x48d844
mov ecx, dword [ebp - 0x64c]
add ecx, 0xfffffff0
call fcn.00402845
lea eax, [ebp - 0x654]
mov ebx, SysReAllocStringLen
push eax
lea esi, [ebp - 0x67c]
mov dword [ebp - 0x654], ebx
call fcn.0040acc7
mov byte [ebp - 4], 4
call fcn.0049219b
push eax
lea ecx, [ebp - 0x650]
call fcn.00402802
push dword [ebp + 0xc]
mov byte [ebp - 4], 5
push dword [0x57a8c0]
lea eax, [ebp - 0x650]
push dword [0x57a8c8]
push eax
call fcn.00402a07
add esp, 0x10
call fcn.0049219b
push eax
lea ecx, [ebp - 0x654]
call fcn.00402802
mov byte [ebp - 4], 6
mov dword [ebp - 0x664], edi
mov edi, dword [ebp - 0x650]
push 1
push edi
push ebx
mov dword [ebp - 0x67c], 0x20019
call fcn.0040ace3
mov ebx, dword [ebp - 0x654]
test eax, eax
je 0x48d53a
push ebx
mov eax, esi
push eax
call fcn.0040ad54
test eax, eax
je 0x48d81f
lea eax, [ebp - 0x664]
push eax
lea eax, [ebp - 0x440]
push eax
push ebx
mov eax, esi
push eax
call fcn.0040af3c
test eax, eax
je 0x48d81f
call fcn.0040ad41
push 7
pop ecx
mov esi, str.Microsoft_Visual_C_Library
lea edi, [ebp - 0x30]
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov esi, 0x101
xor edi, edi
cmp dword [ebp + 0xc], 6
push esi
lea eax, [ebp - 0x138]
push edi
push eax
je 0x48d3c7
mov ebx, dword [0x57a8d8]
call fcn.004b62d0
add esp, 0xc
push esi
lea eax, [ebp - 0x240]
push edi
push eax
call fcn.004b62d0
add esp, 0xc
xor eax, eax
lea ecx, [esi - 1]
mov byte [ebp + eax - 0x138], al
inc eax
cmp eax, ecx
jb 0x48d2a3
mov eax, dword [ebx - 0xc]
xor esi, esi
cmp eax, edi
je 0x48d2d0
cmp esi, eax
jb 0x48d2be
xor esi, esi
mov dl, byte [ebx + esi*2]
inc esi
mov byte [ebp + edi - 0x240], dl
inc edi
cmp edi, ecx
jb 0x48d2b8
jmp 0x48d2ea
xor eax, eax
cmp esi, 0x1c
jb 0x48d2d9
xor esi, esi
mov dl, byte [ebp + esi - 0x30]
inc esi
mov byte [ebp + eax - 0x240], dl
inc eax
cmp eax, ecx
jb 0x48d2d2
xor edx, edx
mov dword [ebp - 0x648], edx
mov eax, 0xff
movzx edi, byte [ebp + edx - 0x240]
add edi, dword [ebp - 0x648]
lea esi, [ebp + edx - 0x138]
mov bl, byte [esi]
mov byte [ebp - 0x641], bl
movzx ebx, bl
add ebx, edi
and ebx, eax
mov edi, ebx
movzx bx, byte [ebp - 0x641]
movzx ebx, bx
mov dword [ebp - 0x648], edi
lea edi, [ebp + edi - 0x138]
mov dword [ebp - 0x64c], ebx
mov bl, byte [edi]
mov byte [esi], bl
mov bl, byte [ebp - 0x64c]
inc edx
mov byte [edi], bl
cmp edx, ecx
jb 0x48d2f7
xor edi, edi
mov dword [ebp - 0x648], edi
mov dword [ebp - 0x64c], edi
inc edi
and edi, eax
lea edx, [ebp + edi - 0x138]
mov cl, byte [edx]
movzx esi, cl
add esi, dword [ebp - 0x648]
movzx cx, cl
and esi, eax
movzx ecx, cx
mov dword [ebp - 0x648], esi
lea esi, [ebp + esi - 0x138]
mov bl, byte [esi]
mov byte [edx], bl
mov byte [esi], cl
movzx edx, byte [edx]
movzx ecx, cl
add ecx, edx
mov edx, dword [ebp - 0x64c]
and ecx, eax
movzx cx, byte [ebp + ecx - 0x138]
movzx ecx, cx
lea edx, [ebp + edx - 0x440]
xor byte [edx], cl
inc dword [ebp - 0x64c]
cmp dword [ebp - 0x64c], 0x1fe
jb 0x48d35a
jmp 0x48d4e7
call fcn.004b62d0
add esp, 0xc
push esi
lea eax, [ebp - 0x240]
push edi
push eax
call fcn.004b62d0
add esp, 0xc
xor eax, eax
mov ecx, 0x100
mov byte [ebp + eax - 0x138], al
inc eax
cmp eax, ecx
jb 0x48d3e7
xor eax, eax
xor esi, esi
cmp eax, 0x1c
jb 0x48d3fe
xor eax, eax
mov dl, byte [ebp + eax - 0x30]
inc eax
mov byte [ebp + esi - 0x240], dl
inc esi
cmp esi, ecx
jb 0x48d3f7
mov dword [ebp - 0x648], edi
xor edx, edx
mov eax, 0xff
movzx edi, byte [ebp + edx - 0x240]
add edi, dword [ebp - 0x648]
lea esi, [ebp + edx - 0x138]
mov bl, byte [esi]
mov byte [ebp - 0x641], bl
movzx ebx, bl
add ebx, edi
and ebx, eax
mov edi, ebx
movzx bx, byte [ebp - 0x641]
movzx ebx, bx
mov dword [ebp - 0x648], edi
lea edi, [ebp + edi - 0x138]
mov dword [ebp - 0x64c], ebx
mov bl, byte [edi]
mov byte [esi], bl
mov bl, byte [ebp - 0x64c]
inc edx
mov byte [edi], bl
cmp edx, ecx
jb 0x48d41c
xor edi, edi
mov dword [ebp - 0x648], edi
mov dword [ebp - 0x64c], edi
inc edi
and edi, eax
lea edx, [ebp + edi - 0x138]
mov cl, byte [edx]
movzx esi, cl
add esi, dword [ebp - 0x648]
movzx cx, cl
and esi, eax
movzx ecx, cx
mov dword [ebp - 0x648], esi
lea esi, [ebp + esi - 0x138]
mov bl, byte [esi]
mov byte [edx], bl
mov byte [esi], cl
movzx edx, byte [edx]
movzx ecx, cl
add ecx, edx
mov edx, dword [ebp - 0x64c]
and ecx, eax
movzx cx, byte [ebp + ecx - 0x138]
movzx ecx, cx
lea edx, [ebp + edx - 0x440]
xor byte [edx], cl
inc dword [ebp - 0x64c]
cmp dword [ebp - 0x64c], 0x1fe
jb 0x48d47f
push eax
lea eax, [ebp - 0x440]
push eax
lea eax, [ebp - 0x640]
xor ecx, ecx
push eax
mov word [ebp - 0x242], cx
call fcn.004b3b7a
add esp, 0xc
cmp dword [ebp + 0xc], 6
jne 0x48d51e
lea eax, [ebp - 0x640]
push eax
mov ecx, 0x57a8d8
call fcn.0040272d
mov ecx, dword [ebp - 0x654]
add ecx, 0xfffffff0
call fcn.00402845
mov ecx, dword [ebp - 0x650]
add ecx, 0xfffffff0
jmp 0x48d82a
push 1
push edi
push reloc.OLEAUT32.dll_SysReAllocString
lea esi, [ebp - 0x67c]
call fcn.0040ace3
test eax, eax
je 0x48d81f
push ebx
mov eax, esi
push eax
call fcn.0040ad54
test eax, eax
je 0x48d81f
lea eax, [ebp - 0x664]
push eax
lea eax, [ebp - 0x440]
push eax
push ebx
mov eax, esi
push eax
call fcn.0040af3c
test eax, eax
je 0x48d81f
call fcn.0040ad41
push 7
pop ecx
mov esi, str.Microsoft_Visual_C_Library
lea edi, [ebp - 0x30]
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov esi, 0x101
xor edi, edi
cmp dword [ebp + 0xc], 6
push esi
lea eax, [ebp - 0x138]
push edi
push eax
je 0x48d6fa
mov ebx, dword [0x57a8d8]
call fcn.004b62d0
add esp, 0xc
push esi
lea eax, [ebp - 0x240]
push edi
push eax
call fcn.004b62d0
add esp, 0xc
xor eax, eax
lea ecx, [esi - 1]
mov byte [ebp + eax - 0x138], al
inc eax
cmp eax, ecx
jb 0x48d5d6
mov eax, dword [ebx - 0xc]
xor esi, esi
cmp eax, edi
je 0x48d603
cmp esi, eax
jb 0x48d5f1
xor esi, esi
mov dl, byte [ebx + esi*2]
inc esi
mov byte [ebp + edi - 0x240], dl
inc edi
cmp edi, ecx
jb 0x48d5eb
jmp 0x48d61d
xor eax, eax
cmp esi, 0x1c
jb 0x48d60c
xor esi, esi
mov dl, byte [ebp + esi - 0x30]
inc esi
mov byte [ebp + eax - 0x240], dl
inc eax
cmp eax, ecx
jb 0x48d605
xor edx, edx
mov dword [ebp - 0x648], edx
mov eax, 0xff
movzx edi, byte [ebp + edx - 0x240]
add edi, dword [ebp - 0x648]
lea esi, [ebp + edx - 0x138]
mov bl, byte [esi]
mov byte [ebp - 0x641], bl
movzx ebx, bl
add ebx, edi
and ebx, eax
mov edi, ebx
movzx bx, byte [ebp - 0x641]
movzx ebx, bx
mov dword [ebp - 0x648], edi
lea edi, [ebp + edi - 0x138]
mov dword [ebp - 0x64c], ebx
mov bl, byte [edi]
mov byte [esi], bl
mov bl, byte [ebp - 0x64c]
inc edx
mov byte [edi], bl
cmp edx, ecx
jb 0x48d62a
xor edi, edi
mov dword [ebp - 0x648], edi
mov dword [ebp - 0x64c], edi
inc edi
and edi, eax
lea ecx, [ebp + edi - 0x138]
mov dl, byte [ecx]
movzx esi, dl
add esi, dword [ebp - 0x648]
movzx dx, dl
and esi, eax
movzx edx, dx
mov dword [ebp - 0x648], esi
lea esi, [ebp + esi - 0x138]
mov bl, byte [esi]
mov byte [ecx], bl
mov byte [esi], dl
movzx ecx, byte [ecx]
movzx edx, dl
add ecx, edx
mov edx, dword [ebp - 0x64c]
and ecx, eax
movzx cx, byte [ebp + ecx - 0x138]
movzx ecx, cx
lea edx, [ebp + edx - 0x440]
xor byte [edx], cl
inc dword [ebp - 0x64c]
cmp dword [ebp - 0x64c], 0x1fe
jb 0x48d68d
jmp 0x48d4e7
call fcn.004b62d0
add esp, 0xc
push esi
lea eax, [ebp - 0x240]
push edi
push eax
call fcn.004b62d0
add esp, 0xc
xor eax, eax
mov ecx, 0x100
mov byte [ebp + eax - 0x138], al
inc eax
cmp eax, ecx
jb 0x48d71a
xor eax, eax
xor esi, esi
cmp eax, 0x1c
jb 0x48d731
xor eax, eax
mov dl, byte [ebp + eax - 0x30]
inc eax
mov byte [ebp + esi - 0x240], dl
inc esi
cmp esi, ecx
jb 0x48d72a
mov dword [ebp - 0x648], edi
xor edx, edx
mov eax, 0xff
movzx edi, byte [ebp + edx - 0x240]
add edi, dword [ebp - 0x648]
lea esi, [ebp + edx - 0x138]
mov bl, byte [esi]
mov byte [ebp - 0x641], bl
movzx ebx, bl
add ebx, edi
and ebx, eax
mov edi, ebx
movzx bx, byte [ebp - 0x641]
movzx ebx, bx
mov dword [ebp - 0x648], edi
lea edi, [ebp + edi - 0x138]
mov dword [ebp - 0x64c], ebx
mov bl, byte [edi]
mov byte [esi], bl
mov bl, byte [ebp - 0x64c]
inc edx
mov byte [edi], bl
cmp edx, ecx
jb 0x48d74f
xor edi, edi
mov dword [ebp - 0x648], edi
mov dword [ebp - 0x64c], edi
inc edi
and edi, eax
lea edx, [ebp + edi - 0x138]
mov cl, byte [edx]
movzx esi, cl
add esi, dword [ebp - 0x648]
movzx cx, cl
and esi, eax
movzx ecx, cx
mov dword [ebp - 0x648], esi
lea esi, [ebp + esi - 0x138]
mov bl, byte [esi]
mov byte [edx], bl
mov byte [esi], cl
movzx edx, byte [edx]
movzx ecx, cl
add ecx, edx
mov edx, dword [ebp - 0x64c]
and ecx, eax
movzx cx, byte [ebp + ecx - 0x138]
movzx ecx, cx
lea edx, [ebp + edx - 0x440]
xor byte [edx], cl
inc dword [ebp - 0x64c]
cmp dword [ebp - 0x64c], 0x1fe
jb 0x48d7b2
jmp 0x48d4e7
lea ecx, [ebx - 0x10]
call fcn.00402845
lea ecx, [edi - 0x10]
call fcn.00402845
lea esi, [ebp - 0x67c]
mov byte [ebp - 4], 2
call fcn.0040ad41
mov ecx, dword [ebp - 0x674]
add ecx, 0xfffffff0
call fcn.00402845
mov esi, dword [ebp - 0x65c]
push esi
mov ecx, 0x57a8dc
call fcn.004a071a
lea ecx, [ebp - 0x640]
push ecx
mov ecx, eax
call fcn.0040272d
mov ecx, dword [ebp - 0x658]
lea eax, [ebp - 0x640]
push eax
call fcn.0040254f
mov ecx, dword [ebp - 0x660]
add ecx, 0xfffffff0
call fcn.00402845
lea ecx, [esi - 0x10]
call fcn.00402845
push 0x579040
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [ebp - 0x658]
call fcn.004b681c
ret 8