Function at 0x401542
Capabilities:
Encrypt data using rc4 prga

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push ebx
push ecx
sub esp, 0x20
call dbg.__main
mov eax, esp
mov ebx, eax
call sym._random_delay
mov dword [ebp - 0x10], 0x27d
mov eax, dword [ebp - 0x10]
mov edx, eax
sub edx, 1
mov dword [ebp - 0x14], edx
mov edx, 0x10
sub edx, 1
add eax, edx
mov ecx, 0x10
mov edx, 0
div ecx
imul eax, eax, 0x10
call fcn.00402c90
sub esp, eax
mov eax, esp
add eax, 0
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], 0
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
add eax, edx
mov edx, dword [0x403020]
mov dword [eax], edx
mov edx, dword [0x403024]
mov dword [eax + 4], edx
mov edx, dword [0x403028]
mov dword [eax + 8], edx
mov edx, dword [0x40302c]
mov dword [eax + 0xc], edx
mov edx, dword [0x403030]
mov dword [eax + 0x10], edx
mov edx, dword [0x403034]
mov dword [eax + 0x14], edx
mov edx, dword [0x403038]
mov dword [eax + 0x18], edx
mov edx, dword [0x40303c]
mov dword [eax + 0x1c], edx
movzx edx, byte [0x403040]
mov byte [eax + 0x20], dl
add dword [ebp - 0x1c], 0x21
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
add eax, edx
mov edx, dword [0x403060]
mov dword [eax], edx
mov edx, dword [0x403064]
mov dword [eax + 4], edx
mov edx, dword [0x403068]
mov dword [eax + 8], edx
mov edx, dword [0x40306c]
mov dword [eax + 0xc], edx
mov edx, dword [0x403070]
mov dword [eax + 0x10], edx
mov edx, dword [0x403074]
mov dword [eax + 0x14], edx
mov edx, dword [0x403078]
mov dword [eax + 0x18], edx
mov edx, dword [0x40307c]
mov dword [eax + 0x1c], edx
movzx edx, byte [0x403080]
mov byte [eax + 0x20], dl
add dword [ebp - 0x1c], 0x21
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
add eax, edx
mov edx, dword [0x4030a0]
mov dword [eax], edx
mov edx, dword [0x4030a4]
mov dword [eax + 4], edx
mov edx, dword [0x4030a8]
mov dword [eax + 8], edx
mov edx, dword [0x4030ac]
mov dword [eax + 0xc], edx
mov edx, dword [0x4030b0]
mov dword [eax + 0x10], edx
mov edx, dword [0x4030b4]
mov dword [eax + 0x14], edx
mov edx, dword [0x4030b8]
mov dword [eax + 0x18], edx
mov edx, dword [0x4030bc]
mov dword [eax + 0x1c], edx
movzx edx, byte [0x4030c0]
mov byte [eax + 0x20], dl
add dword [ebp - 0x1c], 0x21
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
add eax, edx
mov edx, dword [0x4030e0]
mov dword [eax], edx
mov edx, dword [0x4030e4]
mov dword [eax + 4], edx
mov edx, dword [0x4030e8]
mov dword [eax + 8], edx
mov edx, dword [0x4030ec]
mov dword [eax + 0xc], edx
mov edx, dword [0x4030f0]
mov dword [eax + 0x10], edx
mov edx, dword [0x4030f4]
mov dword [eax + 0x14], edx
mov edx, dword [0x4030f8]
mov dword [eax + 0x18], edx
mov edx, dword [0x4030fc]
mov dword [eax + 0x1c], edx
movzx edx, byte [0x403100]
mov byte [eax + 0x20], dl
add dword [ebp - 0x1c], 0x21
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
add eax, edx
mov edx, dword [0x403120]
mov dword [eax], edx
mov edx, dword [0x403124]
mov dword [eax + 4], edx
mov edx, dword [0x403128]
mov dword [eax + 8], edx
mov edx, dword [0x40312c]
mov dword [eax + 0xc], edx
mov edx, dword [0x403130]
mov dword [eax + 0x10], edx
mov edx, dword [0x403134]
mov dword [eax + 0x14], edx
mov edx, dword [0x403138]
mov dword [eax + 0x18], edx
mov edx, dword [0x40313c]
mov dword [eax + 0x1c], edx
movzx edx, byte [0x403140]
mov byte [eax + 0x20], dl
add dword [ebp - 0x1c], 0x21
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
add eax, edx
mov edx, dword [0x403160]
mov dword [eax], edx
mov edx, dword [0x403164]
mov dword [eax + 4], edx
mov edx, dword [0x403168]
mov dword [eax + 8], edx
mov edx, dword [0x40316c]
mov dword [eax + 0xc], edx
mov edx, dword [0x403170]
mov dword [eax + 0x10], edx
mov edx, dword [0x403174]
mov dword [eax + 0x14], edx
mov edx, dword [0x403178]
mov dword [eax + 0x18], edx
mov edx, dword [0x40317c]
mov dword [eax + 0x1c], edx
movzx edx, byte [0x403180]
mov byte [eax + 0x20], dl
add dword [ebp - 0x1c], 0x21
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
add eax, edx
mov edx, dword [0x4031a0]
mov dword [eax], edx
mov edx, dword [0x4031a4]
mov dword [eax + 4], edx
mov edx, dword [0x4031a8]
mov dword [eax + 8], edx
mov edx, dword [0x4031ac]
mov dword [eax + 0xc], edx
mov edx, dword [0x4031b0]
mov dword [eax + 0x10], edx
mov edx, dword [0x4031b4]
mov dword [eax + 0x14], edx
mov edx, dword [0x4031b8]
mov dword [eax + 0x18], edx
mov edx, dword [0x4031bc]
mov dword [eax + 0x1c], edx
movzx edx, byte [0x4031c0]
mov byte [eax + 0x20], dl
add dword [ebp - 0x1c], 0x21
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
add eax, edx
mov edx, dword [0x4031e0]
mov dword [eax], edx
mov edx, dword [0x4031e4]
mov dword [eax + 4], edx
mov edx, dword [0x4031e8]
mov dword [eax + 8], edx
mov edx, dword [0x4031ec]
mov dword [eax + 0xc], edx
mov edx, dword [0x4031f0]
mov dword [eax + 0x10], edx
mov edx, dword [0x4031f4]
mov dword [eax + 0x14], edx
mov edx, dword [0x4031f8]
mov dword [eax + 0x18], edx
mov edx, dword [0x4031fc]
mov dword [eax + 0x1c], edx
movzx edx, byte [0x403200]
mov byte [eax + 0x20], dl
add dword [ebp - 0x1c], 0x21
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
add eax, edx
mov edx, dword [0x403220]
mov dword [eax], edx
mov edx, dword [0x403224]
mov dword [eax + 4], edx
mov edx, dword [0x403228]
mov dword [eax + 8], edx
mov edx, dword [0x40322c]
mov dword [eax + 0xc], edx
mov edx, dword [0x403230]
mov dword [eax + 0x10], edx
mov edx, dword [0x403234]
mov dword [eax + 0x14], edx
mov edx, dword [0x403238]
mov dword [eax + 0x18], edx
mov edx, dword [0x40323c]
mov dword [eax + 0x1c], edx
movzx edx, byte [0x403240]
mov byte [eax + 0x20], dl
add dword [ebp - 0x1c], 0x21
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
add eax, edx
mov edx, dword [0x403260]
mov dword [eax], edx
mov edx, dword [0x403264]
mov dword [eax + 4], edx
mov edx, dword [0x403268]
mov dword [eax + 8], edx
mov edx, dword [0x40326c]
mov dword [eax + 0xc], edx
mov edx, dword [0x403270]
mov dword [eax + 0x10], edx
mov edx, dword [0x403274]
mov dword [eax + 0x14], edx
mov edx, dword [0x403278]
mov dword [eax + 0x18], edx
mov edx, dword [0x40327c]
mov dword [eax + 0x1c], edx
movzx edx, byte [0x403280]
mov byte [eax + 0x20], dl
add dword [ebp - 0x1c], 0x21
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
add eax, edx
mov edx, dword [0x4032a0]
mov dword [eax], edx
mov edx, dword [0x4032a4]
mov dword [eax + 4], edx
mov edx, dword [0x4032a8]
mov dword [eax + 8], edx
mov edx, dword [0x4032ac]
mov dword [eax + 0xc], edx
mov edx, dword [0x4032b0]
mov dword [eax + 0x10], edx
mov edx, dword [0x4032b4]
mov dword [eax + 0x14], edx
mov edx, dword [0x4032b8]
mov dword [eax + 0x18], edx
mov edx, dword [0x4032bc]
mov dword [eax + 0x1c], edx
movzx edx, byte [0x4032c0]
mov byte [eax + 0x20], dl
add dword [ebp - 0x1c], 0x21
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
add eax, edx
mov edx, dword [str._D5_C]
mov dword [eax], edx
mov edx, dword [0x4032e4]
mov dword [eax + 4], edx
mov edx, dword [0x4032e8]
mov dword [eax + 8], edx
mov edx, dword [0x4032ec]
mov dword [eax + 0xc], edx
mov edx, dword [0x4032f0]
mov dword [eax + 0x10], edx
mov edx, dword [0x4032f4]
mov dword [eax + 0x14], edx
mov edx, dword [0x4032f8]
mov dword [eax + 0x18], edx
mov edx, dword [0x4032fc]
mov dword [eax + 0x1c], edx
movzx edx, byte [0x403300]
mov byte [eax + 0x20], dl
add dword [ebp - 0x1c], 0x21
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
add eax, edx
mov edx, dword [0x403320]
mov dword [eax], edx
mov edx, dword [0x403324]
mov dword [eax + 4], edx
mov edx, dword [0x403328]
mov dword [eax + 8], edx
mov edx, dword [0x40332c]
mov dword [eax + 0xc], edx
mov edx, dword [0x403330]
mov dword [eax + 0x10], edx
mov edx, dword [0x403334]
mov dword [eax + 0x14], edx
mov edx, dword [0x403338]
mov dword [eax + 0x18], edx
mov edx, dword [0x40333c]
mov dword [eax + 0x1c], edx
movzx edx, byte [0x403340]
mov byte [eax + 0x20], dl
add dword [ebp - 0x1c], 0x21
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
add eax, edx
mov edx, dword [0x403360]
mov dword [eax], edx
mov edx, dword [0x403364]
mov dword [eax + 4], edx
mov edx, dword [0x403368]
mov dword [eax + 8], edx
mov edx, dword [0x40336c]
mov dword [eax + 0xc], edx
mov edx, dword [0x403370]
mov dword [eax + 0x10], edx
mov edx, dword [0x403374]
mov dword [eax + 0x14], edx
mov edx, dword [0x403378]
mov dword [eax + 0x18], edx
mov edx, dword [0x40337c]
mov dword [eax + 0x1c], edx
movzx edx, byte [0x403380]
mov byte [eax + 0x20], dl
add dword [ebp - 0x1c], 0x21
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
add eax, edx
mov edx, dword [0x4033a0]
mov dword [eax], edx
mov edx, dword [0x4033a4]
mov dword [eax + 4], edx
mov edx, dword [0x4033a8]
mov dword [eax + 8], edx
mov edx, dword [0x4033ac]
mov dword [eax + 0xc], edx
mov edx, dword [0x4033b0]
mov dword [eax + 0x10], edx
mov edx, dword [0x4033b4]
mov dword [eax + 0x14], edx
mov edx, dword [0x4033b8]
mov dword [eax + 0x18], edx
mov edx, dword [0x4033bc]
mov dword [eax + 0x1c], edx
movzx edx, byte [0x4033c0]
mov byte [eax + 0x20], dl
add dword [ebp - 0x1c], 0x21
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
add eax, edx
mov edx, dword [0x4033e0]
mov dword [eax], edx
mov edx, dword [0x4033e4]
mov dword [eax + 4], edx
mov edx, dword [0x4033e8]
mov dword [eax + 8], edx
mov edx, dword [0x4033ec]
mov dword [eax + 0xc], edx
mov edx, dword [0x4033f0]
mov dword [eax + 0x10], edx
mov edx, dword [0x4033f4]
mov dword [eax + 0x14], edx
mov edx, dword [0x4033f8]
mov dword [eax + 0x18], edx
mov edx, dword [0x4033fc]
mov dword [eax + 0x1c], edx
movzx edx, byte [0x403400]
mov byte [eax + 0x20], dl
add dword [ebp - 0x1c], 0x21
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
add eax, edx
mov edx, dword [0x403420]
mov dword [eax], edx
mov edx, dword [0x403424]
mov dword [eax + 4], edx
mov edx, dword [0x403428]
mov dword [eax + 8], edx
mov edx, dword [0x40342c]
mov dword [eax + 0xc], edx
mov edx, dword [0x403430]
mov dword [eax + 0x10], edx
mov edx, dword [0x403434]
mov dword [eax + 0x14], edx
mov edx, dword [0x403438]
mov dword [eax + 0x18], edx
mov edx, dword [0x40343c]
mov dword [eax + 0x1c], edx
movzx edx, byte [0x403440]
mov byte [eax + 0x20], dl
add dword [ebp - 0x1c], 0x21
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
add eax, edx
mov edx, dword [0x403460]
mov dword [eax], edx
mov edx, dword [0x403464]
mov dword [eax + 4], edx
mov edx, dword [0x403468]
mov dword [eax + 8], edx
mov edx, dword [0x40346c]
mov dword [eax + 0xc], edx
mov edx, dword [0x403470]
mov dword [eax + 0x10], edx
mov edx, dword [0x403474]
mov dword [eax + 0x14], edx
mov edx, dword [0x403478]
mov dword [eax + 0x18], edx
mov edx, dword [0x40347c]
mov dword [eax + 0x1c], edx
movzx edx, byte [0x403480]
mov byte [eax + 0x20], dl
add dword [ebp - 0x1c], 0x21
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
add eax, edx
mov edx, dword [0x4034a0]
mov dword [eax], edx
mov edx, dword [0x4034a4]
mov dword [eax + 4], edx
mov edx, dword [0x4034a8]
mov dword [eax + 8], edx
mov edx, dword [0x4034ac]
mov dword [eax + 0xc], edx
mov edx, dword [0x4034b0]
mov dword [eax + 0x10], edx
mov edx, dword [0x4034b4]
mov dword [eax + 0x14], edx
mov edx, dword [0x4034b8]
mov dword [eax + 0x18], edx
mov edx, dword [0x4034bc]
mov dword [eax + 0x1c], edx
movzx edx, byte [0x4034c0]
mov byte [eax + 0x20], dl
add dword [ebp - 0x1c], 0x21
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
add eax, edx
mov edx, dword [0x4034c4]
mov dword [eax], edx
mov edx, dword [0x4034c8]
mov dword [eax + 4], edx
movzx edx, word [0x4034cc]
mov word [eax + 8], dx
mov dword [ebp - 0xc], 0
jmp 0x401cd9
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xc]
add eax, edx
movzx edx, byte [eax]
movzx eax, byte [0x4034ce]
xor edx, eax
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xc]
add eax, ecx
mov byte [eax], dl
add dword [ebp - 0xc], 1
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x10]
jb 0x401cb7
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
call eax
mov eax, 0
mov esp, ebx
lea esp, [ebp - 8]
pop ecx
pop ebx
pop ebp
lea esp, [ecx - 4]
ret