Function at 0x4a2b54
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0xa6
push 0
push 0
dec ecx
jne 0x4a2b5c
push ebx
push esi
push edi
mov dword [ebp - 4], eax
lea edi, [ebp - 8]
xor eax, eax
push ebp
push 0x4a34f1
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [edi], 0x52
lea eax, [ebp - 6]
push eax
mov al, byte [edi]
push eax
push 0
call sub.MasterRD.dll_rf_request
test eax, eax
jne 0x4a34c6
lea eax, [ebp - 7]
push eax
lea eax, [ebp - 0xf2]
push eax
push 4
push 0
call sub.MasterRD.dll_rf_anticoll
test eax, eax
je 0x4a2bbd
mov eax, dword [ebp - 4]
mov dword [eax + 0x308], 0x407
jmp 0x4a34c6
lea eax, [ebp - 7]
push eax
push 4
lea eax, [ebp - 0xf2]
push eax
push 0
call sub.MasterRD.dll_rf_select
test eax, eax
je 0x4a2be7
mov eax, dword [ebp - 4]
mov dword [eax + 0x308], 0x408
jmp 0x4a34c6
mov byte [edi], 0x60
mov byte [ebp - 9], 8
mov eax, dword [ebp - 4]
cmp dword [eax + 0x320], 0xb
jne 0x4a2c0c
lea eax, [ebp - 0x14]
mov edx, dword [0x4b1968]
mov edx, dword [edx]
call fcn.004040e8
jmp 0x4a2c1c
lea eax, [ebp - 0x14]
mov edx, dword [0x4b1714]
mov edx, dword [edx]
call fcn.004040e8
mov bl, 6
lea esi, [ebp - 0x1bb]
lea edx, [ebp - 0x10]
mov eax, 0x4a3508
call fcn.00402cac
mov byte [esi], al
inc esi
dec bl
jne 0x4a2c24
mov eax, dword [ebp - 0x14]
call fcn.00404310
sar eax, 1
jns 0x4a2c47
adc eax, 0
test al, al
jbe 0x4a2ca1
mov byte [ebp - 0x29], al
mov bl, 1
lea esi, [ebp - 0x1bb]
lea eax, [ebp - 0x4e8]
push eax
xor eax, eax
mov al, bl
dec eax
mov edx, eax
add edx, edx
inc edx
mov ecx, 2
mov eax, dword [ebp - 0x14]
call fcn.00404570
mov ecx, dword [ebp - 0x4e8]
lea eax, [ebp - 0x4e4]
mov edx, 0x4a3514
call fcn.0040435c
mov eax, dword [ebp - 0x4e4]
lea edx, [ebp - 0x10]
call fcn.00402cac
mov byte [esi], al
inc ebx
inc esi
dec byte [ebp - 0x29]
jne 0x4a2c56
lea eax, [ebp - 0x1bb]
push eax
mov al, byte [ebp - 9]
push eax
mov al, byte [edi]
push eax
push 0
call sub.MasterRD.dll_rf_M1_authentication2
test eax, eax
je 0x4a2ccc
mov eax, dword [ebp - 4]
mov dword [eax + 0x308], 0x409
jmp 0x4a34c6
push edi
lea eax, [ebp - 0x284]
push eax
push 8
push 0
call sub.MasterRD.dll_rf_M1_read
test eax, eax
je 0x4a2cf3
mov eax, dword [ebp - 4]
mov dword [eax + 0x308], 0x40a
jmp 0x4a34c6
push edi
lea eax, [ebp - 0x34d]
push eax
push 9
push 0
call sub.MasterRD.dll_rf_M1_read
test eax, eax
je 0x4a2d1a
mov eax, dword [ebp - 4]
mov dword [eax + 0x308], 0x40a
jmp 0x4a34c6
push edi
lea eax, [ebp - 0x416]
push eax
push 0xa
push 0
call sub.MasterRD.dll_rf_M1_read
test eax, eax
je 0x4a2d41
mov eax, dword [ebp - 4]
mov dword [eax + 0x308], 0x40a
jmp 0x4a34c6
mov eax, dword [ebp - 4]
cmp dword [eax + 0x320], 0xb
jne 0x4a2d74
push edi
lea eax, [ebp - 0x4df]
push eax
push 0xb
push 0
call sub.MasterRD.dll_rf_M1_read
test eax, eax
je 0x4a2d74
mov eax, dword [ebp - 4]
mov dword [eax + 0x308], 0x40a
jmp 0x4a34c6
lea eax, [ebp - 0x14]
call fcn.00404050
mov bl, 0xd
lea esi, [ebp - 0x284]
lea eax, [ebp - 0x4ec]
mov dl, byte [esi]
call fcn.00404238
mov edx, dword [ebp - 0x4ec]
lea eax, [ebp - 0x14]
call fcn.00404318
inc esi
dec bl
jne 0x4a2d84
lea edx, [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
call fcn.0049f234
lea eax, [ebp - 0x14]
call fcn.00404050
mov byte [edi], 0x4d
mov bl, 0x10
lea esi, [ebp - 0x34d]
lea eax, [ebp - 0x4f0]
mov dl, byte [esi]
xor dl, byte [edi]
call fcn.00404238
mov edx, dword [ebp - 0x4f0]
lea eax, [ebp - 0x14]
call fcn.00404318
inc esi
dec bl
jne 0x4a2dc2
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x14]
call fcn.004040e8
lea eax, [ebp - 0x14]
call fcn.00404050
mov bl, 0x10
lea esi, [ebp - 0x416]
lea eax, [ebp - 0x4f4]
mov dl, byte [esi]
call fcn.00404238
mov edx, dword [ebp - 0x4f4]
lea eax, [ebp - 0x14]
call fcn.00404318
inc esi
dec bl
jne 0x4a2dff
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 0x14]
call fcn.0049f220
mov eax, dword [ebp - 4]
cmp dword [eax + 0x320], 0xa
jne 0x4a2ef4
xor eax, eax
push ebp
push 0x4a2e6f
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0x4f8]
mov eax, dword [ebp - 0x20]
call fcn.004087c4
mov eax, dword [ebp - 0x4f8]
call fcn.0040a700
fistp qword [ebp - 0x28]
wait
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a2e90
mov eax, dword [ebp - 4]
add eax, 0x30c
mov edx, dword [ebp - 0x1c]
call fcn.004040a4
lea edx, [ebp - 0x4fc]
mov eax, dword [ebp - 0x18]
call fcn.004087c4
mov edx, dword [ebp - 0x4fc]
mov eax, dword [ebp - 4]
add eax, 0x310
call fcn.004040a4
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x28]
mov dword [eax + 0x318], edx
mov edx, dword [ebp - 0x24]
mov dword [eax + 0x31c], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x300]
call fcn.004a0918
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x308], edx
jmp 0x4a34c6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x320]
dec eax
je 0x4a2f62
dec eax
je 0x4a2fcc
dec eax
je 0x4a2fe3
sub eax, 8
jne 0x4a2fed
xor eax, eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
lea edx, [ebp - 0x500]
xor eax, eax
call fcn.0049f234
mov edx, dword [ebp - 0x500]
mov eax, dword [ebp - 4]
add eax, 0x30c
call fcn.004040a4
mov eax, dword [ebp - 4]
add eax, 0x310
call fcn.00404050
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x318], edx
mov dword [eax + 0x31c], edx
jmp 0x4a3002
xor eax, eax
push ebp
push 0x4a2f97
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0x504]
mov eax, dword [ebp - 0x20]
call fcn.004087c4
mov eax, dword [ebp - 0x504]
call fcn.0040a700
fistp qword [ebp - 0x28]
wait
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a2fb8
fild qword [ebp - 0x28]
mov eax, dword [ebp - 4]
fild qword [eax + 0x318]
faddp st(1)
fistp qword [ebp - 0x28]
wait
jmp 0x4a3002
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x318]
mov dword [ebp - 0x28], edx
mov edx, dword [eax + 0x31c]
mov dword [ebp - 0x24], edx
jmp 0x4a3002
xor eax, eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
jmp 0x4a3002
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x318]
mov dword [ebp - 0x28], edx
mov edx, dword [eax + 0x31c]
mov dword [ebp - 0x24], edx
fild qword [ebp - 0x28]
fcomp dword [0x4a3518]
fnstsw ax
sahf
jae 0x4a3022
mov eax, dword [ebp - 4]
mov dword [eax + 0x308], 0x3f1
jmp 0x4a34c6
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x320]
test ebx, ebx
je 0x4a3059
cmp ebx, 0xb
je 0x4a3059
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x30c]
call fcn.0040445c
je 0x4a3059
mov eax, dword [ebp - 4]
mov dword [eax + 0x308], 0x3f0
jmp 0x4a34c6
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x30c]
call fcn.0040445c
je 0x4a30e8
mov eax, dword [ebp - 0x1c]
mov edx, 0x4a3524
call fcn.0040445c
je 0x4a30e8
lea edx, [ebp - 0x508]
mov eax, dword [ebp - 0x1c]
call fcn.004087c4
cmp dword [ebp - 0x508], 0
je 0x4a30e8
push 0x4a353c
push dword [ebp - 0x1c]
push 0x4a3554
push 0x4a3560
push 0x4a356c
mov eax, dword [ebp - 4]
push dword [eax + 0x30c]
push 0x4a3584
push 0x4a3560
push 0x4a3590
lea eax, [ebp - 0x50c]
mov edx, 9
call fcn.004043d0
mov eax, dword [ebp - 0x50c]
mov dx, pe_nt_image_headers32
call fcn.0049ebd8
test al, al
je 0x4a34c6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x320]
test eax, eax
je 0x4a30fa
cmp eax, 0xb
jne 0x4a3161
lea ecx, [ebp - 0x14]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30c]
mov edx, 0x10
call fcn.0049f484
mov eax, dword [ebp - 0x14]
call fcn.00404310
test al, al
jbe 0x4a313b
mov byte [ebp - 0x29], al
mov bl, 1
lea eax, [ebp - 0xf2]
xor edx, edx
mov dl, bl
mov ecx, dword [ebp - 0x14]
mov dl, byte [ecx + edx - 1]
mov byte [eax], dl
inc ebx
inc eax
dec byte [ebp - 0x29]
jne 0x4a3127
lea eax, [ebp - 0xf2]
push eax
push 8
push 0
call sub.MasterRD.dll_rf_M1_write
test eax, eax
je 0x4a3161
mov eax, dword [ebp - 4]
mov dword [eax + 0x308], 0x40b
jmp 0x4a34c6
mov eax, dword [ebp - 4]
cmp dword [eax + 0x320], 3
je 0x4a32ac
push dword [ebp - 0x24]
push dword [ebp - 0x28]
lea edx, [ebp - 0x510]
mov eax, 0x4a35ac
call fcn.0040a5d0
mov eax, dword [ebp - 0x510]
lea ecx, [ebp - 0x14]
mov edx, 0x10
call fcn.0049f484
lea eax, [ebp - 0x20]
call fcn.00404050
mov byte [edi], 0x4d
mov eax, dword [ebp - 0x14]
call fcn.00404310
test al, al
jbe 0x4a31e2
mov byte [ebp - 0x29], al
mov bl, 1
lea eax, [ebp - 0x514]
xor edx, edx
mov dl, bl
mov ecx, dword [ebp - 0x14]
mov dl, byte [ecx + edx - 1]
xor dl, byte [edi]
call fcn.00404238
mov edx, dword [ebp - 0x514]
lea eax, [ebp - 0x20]
call fcn.00404318
inc ebx
dec byte [ebp - 0x29]
jne 0x4a31b6
mov eax, dword [ebp - 0x20]
call fcn.00404310
test al, al
jbe 0x4a320d
mov byte [ebp - 0x29], al
mov bl, 1
lea eax, [ebp - 0xf2]
xor edx, edx
mov dl, bl
mov ecx, dword [ebp - 0x20]
mov dl, byte [ecx + edx - 1]
mov byte [eax], dl
inc ebx
inc eax
dec byte [ebp - 0x29]
jne 0x4a31f9
lea eax, [ebp - 0xf2]
push eax
push 9
push 0
call sub.MasterRD.dll_rf_M1_write
test eax, eax
je 0x4a3233
mov eax, dword [ebp - 4]
mov dword [eax + 0x308], 0x40c
jmp 0x4a34c6
mov byte [edi], 0x60
push edi
lea eax, [ebp - 0x34d]
push eax
push 9
push 0
call sub.MasterRD.dll_rf_M1_read
test eax, eax
je 0x4a325d
mov eax, dword [ebp - 4]
mov dword [eax + 0x308], 0x420
jmp 0x4a34c6
lea eax, [ebp - 0x14]
call fcn.00404050
mov bl, 0x10
lea esi, [ebp - 0x34d]
lea eax, [ebp - 0x518]
mov dl, byte [esi]
call fcn.00404238
mov edx, dword [ebp - 0x518]
lea eax, [ebp - 0x14]
call fcn.00404318
inc esi
dec bl
jne 0x4a326d
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
call fcn.0040445c
je 0x4a32ac
mov eax, dword [ebp - 4]
mov dword [eax + 0x308], 0x40f
jmp 0x4a34c6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x320]
cmp eax, 3
je 0x4a32c7
test eax, eax
je 0x4a32c7
cmp eax, 0xb
jne 0x4a33e5
lea ecx, [ebp - 0x51c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x310]
mov edx, 8
call fcn.0049f484
mov eax, dword [ebp - 0x51c]
lea edx, [ebp - 0x14]
call fcn.0049f20c
mov eax, dword [ebp - 0x14]
call fcn.00404310
test al, al
jbe 0x4a3319
mov byte [ebp - 0x29], al
mov bl, 1
lea esi, [ebp - 0xf2]
xor eax, eax
mov al, bl
mov edx, dword [ebp - 0x14]
mov al, byte [edx + eax - 1]
mov byte [esi], al
inc ebx
inc esi
dec byte [ebp - 0x29]
jne 0x4a3305
lea eax, [ebp - 0xf2]
push eax
push 0xa
push 0
call sub.MasterRD.dll_rf_M1_write
test eax, eax
je 0x4a333f
mov eax, dword [ebp - 4]
mov dword [eax + 0x308], 0x40d
jmp 0x4a34c6
mov byte [edi], 0x60
push edi
lea eax, [ebp - 0x34d]
push eax
push 0xa
push 0
call sub.MasterRD.dll_rf_M1_read
test eax, eax
je 0x4a3369
mov eax, dword [ebp - 4]
mov dword [eax + 0x308], 0x420
jmp 0x4a34c6
lea eax, [ebp - 0x14]
call fcn.00404050
mov bl, 0x10
lea esi, [ebp - 0x34d]
lea eax, [ebp - 0x520]
mov dl, byte [esi]
call fcn.00404238
mov edx, dword [ebp - 0x520]
lea eax, [ebp - 0x14]
call fcn.00404318
inc esi
dec bl
jne 0x4a3379
lea ecx, [ebp - 0x528]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x310]
mov edx, 8
call fcn.0049f484
mov eax, dword [ebp - 0x528]
lea edx, [ebp - 0x524]
call fcn.0049f20c
mov edx, dword [ebp - 0x524]
mov eax, dword [ebp - 0x14]
call fcn.0040445c
je 0x4a33e5
mov eax, dword [ebp - 4]
mov dword [eax + 0x308], 0x421
jmp 0x4a34c6
mov eax, dword [ebp - 4]
cmp dword [eax + 0x320], 0xb
jne 0x4a34ad
lea eax, [ebp - 0x14]
mov edx, dword [0x4b1714]
mov edx, dword [edx]
call fcn.004040e8
mov bl, 6
lea esi, [ebp - 0x4df]
lea edx, [ebp - 0x10]
mov eax, 0x4a3508
call fcn.00402cac
mov byte [esi], al
inc esi
dec bl
jne 0x4a340d
mov eax, dword [ebp - 0x14]
call fcn.00404310
sar eax, 1
jns 0x4a3430
adc eax, 0
test al, al
jbe 0x4a348a
mov byte [ebp - 0x29], al
mov bl, 1
lea esi, [ebp - 0x4df]
lea eax, [ebp - 0x530]
push eax
xor eax, eax
mov al, bl
dec eax
mov edx, eax
add edx, edx
inc edx
mov ecx, 2
mov eax, dword [ebp - 0x14]
call fcn.00404570
mov ecx, dword [ebp - 0x530]
lea eax, [ebp - 0x52c]
mov edx, 0x4a3514
call fcn.0040435c
mov eax, dword [ebp - 0x52c]
lea edx, [ebp - 0x10]
call fcn.00402cac
mov byte [esi], al
inc ebx
inc esi
dec byte [ebp - 0x29]
jne 0x4a343f
lea eax, [ebp - 0x4df]
push eax
push 0xb
push 0
call sub.MasterRD.dll_rf_M1_write
test eax, eax
je 0x4a34ad
mov eax, dword [ebp - 4]
mov dword [eax + 0x308], 0x40e
jmp 0x4a34c6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x300]
call fcn.004a0918
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x308], edx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4a34f8
lea eax, [ebp - 0x530]
mov edx, 0x14
call fcn.00404074
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.00404074
ret