Function at 0x409250
Capabilities:
Encrypt data using rc4 ksa
Read file on windows

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x42d99e
push eax
mov dword fs:[0], esp
sub esp, 0x358
lea eax, [esp + 0xc]
push ebx
xor ebx, ebx
test eax, eax
push esi
jne 0x409779
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_LockFile]
xor eax, eax
movsx ecx, ax
mov byte [esp + ecx + 8], al
xor eax, eax
lea ecx, [esp + 8]
mov byte [ecx], al
inc eax
inc ecx
cmp ax, 0x100
jl 0x409295
xor eax, eax
lea ecx, [esp + 8]
mov byte [ecx], al
inc eax
inc ecx
cmp ax, 0x100
jl 0x4092a5
inc eax
cmp ax, 0x100
jl 0x409288
xor eax, eax
lea ecx, [esp + 8]
mov byte [ecx], al
inc eax
inc ecx
cmp ax, 0x100
jl 0x4092bc
mov byte [esp + 0x10], bl
push ebp
mov ebp, dword [esp + 0x14]
push edi
mov byte [esp + 0x14], bl
mov byte [esp + 0x15], bl
mov byte [esp + 0x1c], bl
jmp 0x4092e0
xor ebx, ebx
xor eax, eax
lea ecx, [esp + 0x10]
mov byte [ecx], al
inc eax
inc ecx
cmp ax, 0x100
jl 0x4092e6
xor eax, eax
lea ecx, [esp + 0x10]
mov byte [ecx], al
inc eax
inc ecx
cmp ax, 0x100
jl 0x4092f6
xor ecx, ecx
lea eax, [esp + 0x10]
mov byte [eax], cl
inc ecx
inc eax
cmp cx, 0x100
jl 0x409306
mov eax, dword [esp + 0x1c]
xor ebx, ebx
movsx edx, cx
and eax, 0xff
and ebp, 0xff
lea esi, [esp + edx + 0x10]
mov bl, byte [eax + 0x384]
mov dl, byte [esi]
mov edi, edx
and edi, 0xff
add ebx, edi
add ebx, ebp
and ebx, 0x800000ff
jns 0x40934d
dec ebx
or ebx, 0xffffff00
inc ebx
mov byte [esp + 0x18], bl
mov ebp, dword [esp + 0x18]
mov edi, ebp
and edi, 0xff
inc eax
mov bl, byte [esp + edi + 0x10]
lea edi, [esp + edi + 0x10]
mov byte [esi], bl
mov esi, 0x57
mov byte [edi], dl
cdq
idiv esi
inc ecx
cmp cx, 0x100
mov byte [esp + 0x1c], dl
jl 0x4092de
mov edi, ebp
and edi, 0xff
xor eax, eax
lea ecx, [esp + 0x10]
mov byte [ecx], al
inc eax
inc ecx
cmp ax, 0x100
jl 0x409390
xor eax, eax
lea ecx, [esp + 0x10]
mov byte [ecx], al
inc eax
inc ecx
cmp ax, 0x100
jl 0x4093a0
xor ecx, ecx
lea eax, [esp + 0x10]
mov byte [eax], cl
inc ecx
inc eax
cmp cx, 0x100
jl 0x4093b0
movsx eax, cx
mov dl, byte [esp + eax + 0x10]
xor ebx, ebx
lea esi, [esp + eax + 0x10]
mov eax, dword [esp + 0x1c]
and eax, 0xff
mov ebp, edx
and ebp, 0xff
mov bl, byte [eax + 0x384]
add edi, ebx
add ebp, edi
mov ebx, ebp
and ebx, 0x800000ff
jns 0x4093f5
dec ebx
or ebx, 0xffffff00
inc ebx
mov byte [esp + 0x18], bl
mov edi, dword [esp + 0x18]
and edi, 0xff
inc eax
mov bl, byte [esp + edi + 0x10]
mov byte [esi], bl
mov byte [esp + edi + 0x10], dl
cdq
mov esi, 0x57
idiv esi
inc ecx
cmp cx, 0x100
mov byte [esp + 0x1c], dl
jl 0x40938a
xor ebx, ebx
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
xor eax, eax
movsx ecx, ax
mov byte [esp + ecx + 0x10], al
xor eax, eax
lea ecx, [esp + 0x10]
mov byte [ecx], al
inc eax
inc ecx
cmp ax, 0x100
jl 0x409442
xor eax, eax
lea ecx, [esp + 0x10]
mov byte [ecx], al
inc eax
inc ecx
cmp ax, 0x100
jl 0x409452
inc eax
cmp ax, 0x100
jl 0x409435
xor eax, eax
lea ecx, [esp + 0x10]
mov byte [ecx], al
inc eax
inc ecx
cmp ax, 0x100
jl 0x409469
mov byte [esp + 0x18], bl
mov byte [esp + 0x14], bl
mov ebp, dword [esp + 0x18]
mov byte [esp + 0x15], bl
mov byte [esp + 0x1c], bl
jmp 0x40948b
xor ebx, ebx
xor eax, eax
lea ecx, [esp + 0x10]
mov byte [ecx], al
inc eax
inc ecx
cmp ax, 0x100
jl 0x409491
xor eax, eax
lea ecx, [esp + 0x10]
mov byte [ecx], al
inc eax
inc ecx
cmp ax, 0x100
jl 0x4094a1
xor ecx, ecx
lea eax, [esp + 0x10]
mov byte [eax], cl
inc ecx
inc eax
cmp cx, 0x100
jl 0x4094b1
mov eax, dword [esp + 0x1c]
xor ebx, ebx
movsx edx, cx
and eax, 0xff
and ebp, 0xff
lea esi, [esp + edx + 0x10]
mov bl, byte [eax + 0x384]
mov dl, byte [esi]
mov edi, edx
and edi, 0xff
add ebx, edi
add ebx, ebp
and ebx, 0x800000ff
jns 0x4094f8
dec ebx
or ebx, 0xffffff00
inc ebx
mov byte [esp + 0x18], bl
mov ebp, dword [esp + 0x18]
mov edi, ebp
and edi, 0xff
inc eax
mov bl, byte [esp + edi + 0x10]
lea edi, [esp + edi + 0x10]
mov byte [esi], bl
mov esi, 0x57
mov byte [edi], dl
cdq
idiv esi
inc ecx
cmp cx, 0x100
mov byte [esp + 0x1c], dl
jl 0x409489
mov edi, ebp
and edi, 0xff
xor eax, eax
lea ecx, [esp + 0x10]
mov byte [ecx], al
inc eax
inc ecx
cmp ax, 0x100
jl 0x40953b
xor eax, eax
lea ecx, [esp + 0x10]
mov byte [ecx], al
inc eax
inc ecx
cmp ax, 0x100
jl 0x40954b
xor ecx, ecx
lea eax, [esp + 0x10]
mov byte [eax], cl
inc ecx
inc eax
cmp cx, 0x100
jl 0x40955b
movsx eax, cx
mov dl, byte [esp + eax + 0x10]
xor ebx, ebx
lea esi, [esp + eax + 0x10]
mov eax, dword [esp + 0x1c]
and eax, 0xff
mov ebp, edx
and ebp, 0xff
mov bl, byte [eax + 0x384]
add edi, ebx
add ebp, edi
mov ebx, ebp
and ebx, 0x800000ff
jns 0x4095a0
dec ebx
or ebx, 0xffffff00
inc ebx
mov byte [esp + 0x18], bl
mov edi, dword [esp + 0x18]
and edi, 0xff
inc eax
mov bl, byte [esp + edi + 0x10]
mov byte [esi], bl
mov byte [esp + edi + 0x10], dl
cdq
mov esi, 0x57
idiv esi
inc ecx
cmp cx, 0x100
mov byte [esp + 0x1c], dl
jl 0x409535
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor ecx, ecx
xor eax, eax
movsx edx, ax
mov byte [esp + edx + 0x10], al
xor eax, eax
lea edx, [esp + 0x10]
mov byte [edx], al
inc eax
inc edx
cmp ax, 0x100
jl 0x4095e8
xor eax, eax
lea edx, [esp + 0x10]
mov byte [edx], al
inc eax
inc edx
cmp ax, 0x100
jl 0x4095f8
inc eax
cmp ax, 0x100
jl 0x4095db
xor eax, eax
lea edx, [esp + 0x10]
mov byte [edx], al
inc eax
inc edx
cmp ax, 0x100
jl 0x40960f
mov byte [esp + 0x18], cl
mov byte [esp + 0x14], cl
mov ebp, dword [esp + 0x18]
mov byte [esp + 0x15], cl
mov byte [esp + 0x1c], cl
jmp 0x409631
xor ecx, ecx
xor eax, eax
lea edx, [esp + 0x10]
mov byte [edx], al
inc eax
inc edx
cmp ax, 0x100
jl 0x409637
xor eax, eax
lea edx, [esp + 0x10]
mov byte [edx], al
inc eax
inc edx
cmp ax, 0x100
jl 0x409647
lea eax, [esp + 0x10]
mov byte [eax], cl
inc ecx
inc eax
cmp cx, 0x100
jl 0x409655
movsx eax, cx
mov dl, byte [esp + eax + 0x10]
xor ebx, ebx
lea esi, [esp + eax + 0x10]
mov eax, dword [esp + 0x1c]
and eax, 0xff
and ebp, 0xff
mov edi, edx
mov bl, byte [eax + 0x384]
and edi, 0xff
add ebx, ebp
add ebx, edi
and ebx, 0x800000ff
jns 0x40969e
dec ebx
or ebx, 0xffffff00
inc ebx
mov byte [esp + 0x18], bl
mov ebp, dword [esp + 0x18]
mov edi, ebp
and edi, 0xff
inc eax
mov bl, byte [esp + edi + 0x10]
lea edi, [esp + edi + 0x10]
mov byte [esi], bl
mov esi, 0x57
mov byte [edi], dl
cdq
idiv esi
inc ecx
cmp cx, 0x100
mov byte [esp + 0x1c], dl
jl 0x40962f
mov edi, ebp
and edi, 0xff
xor eax, eax
lea ecx, [esp + 0x10]
mov byte [ecx], al
inc eax
inc ecx
cmp ax, 0x100
jl 0x4096e1
xor eax, eax
lea ecx, [esp + 0x10]
mov byte [ecx], al
inc eax
inc ecx
cmp ax, 0x100
jl 0x4096f1
xor ecx, ecx
lea eax, [esp + 0x10]
mov byte [eax], cl
inc ecx
inc eax
cmp cx, 0x100
jl 0x409701
mov eax, dword [esp + 0x1c]
xor ebx, ebx
movsx edx, cx
and eax, 0xff
lea esi, [esp + edx + 0x10]
mov bl, byte [eax + 0x384]
mov dl, byte [esi]
add edi, ebx
mov ebp, edx
and ebp, 0xff
add ebp, edi
mov ebx, ebp
and ebx, 0x800000ff
jns 0x409744
dec ebx
or ebx, 0xffffff00
inc ebx
mov byte [esp + 0x18], bl
mov edi, dword [esp + 0x18]
and edi, 0xff
inc eax
mov bl, byte [esp + edi + 0x10]
mov byte [esi], bl
mov byte [esp + edi + 0x10], dl
cdq
mov esi, 0x57
idiv esi
inc ecx
cmp cx, 0x100
mov byte [esp + 0x1c], dl
jl 0x4096db
pop edi
xor ebx, ebx
pop ebp
push ebx
push 0x7d
push 0x34
push 0x33
push 0x36
push 0x31
push 0x43
push 0x38
push 0x35
push 0x44
push 0x39
push 0x36
push 0x42
push 0x37
push 0x2d
push 0x46
push 0x46
push 0x42
push 0x41
push 0x2d
push 0x66
push 0x36
push 0x34
push 0x34
push 0x2d
push 0x32
push 0x38
push 0x34
push 0x39
push 0x2d
push 0x41
push 0x33
push 0x46
push 0x33
push 0x33
push 0x44
push 0x33
push 0x38
lea eax, [esp + 0x128]
push 0x7b
push eax
call fcn.00408c90
mov edx, dword [0x4353d0]
add esp, 0xa0
lea ecx, [esp + 0x90]
push ecx
push ebx
push 0x1f0003
call dword [edx + 0x30]
mov esi, eax
cmp esi, ebx
jne 0x4097fd
xor eax, eax
jmp 0x40997e
mov eax, dword [0x4353d0]
push esi
call dword [eax + 0x48]
mov ecx, dword [0x4353d0]
push esi
call dword [ecx + 0x44]
mov edx, dword [0x4353d0]
push 0xbb8
call dword [edx + 0x3c]
mov ecx, dword [0x4353d0]
lea eax, [esp + 0x25c]
push eax
push 0x104
call dword [ecx + 0x54]
push ebx
push 0x73
push 0x25
push 0x73
lea edx, [esp + 0x3c]
push 0x25
push edx
call fcn.00408c90
add esp, 0x18
lea eax, [esp + 0xf4]
push ebx
push 0x74
push 0x61
push 0x64
push 0x2e
push 0x7d
push 0x43
push 0x32
push 0x37
push 0x32
push 0x43
push 0x32
push 0x45
push 0x43
push 0x31
push 0x44
push 0x35
push 0x31
push 0x2d
push 0x30
push 0x31
push 0x43
push 0x41
push 0x2d
push 0x65
push 0x64
push 0x63
push 0x34
push 0x2d
push 0x38
push 0x34
push 0x45
push 0x45
push 0x2d
push 0x41
push 0x39
push 0x46
push 0x43
push 0x34
push 0x32
push 0x46
push 0x46
push 0x7b
push eax
call fcn.00408c90
lea ecx, [esp + 0x1a4]
lea edx, [esp + 0x30c]
push ecx
lea eax, [esp + 0xe0]
push edx
mov edx, dword [0x4353d0]
lea ecx, [esp + 0x210]
push eax
push ecx
call dword [edx + 0x1dc]
add esp, 0xc0
push ebx
mov ecx, dword [0x4353d0]
push 0x80
push 3
push ebx
push 1
lea eax, [esp + 0x16c]
push 0x80000000
push eax
call dword [ecx + 0x50]
mov esi, eax
cmp esi, 0xffffffff
jne 0x40990a
xor eax, eax
jmp 0x40997e
mov ecx, dword [0x4353d0]
lea edx, [esp + 0x18]
push ebx
push edx
lea eax, [esp + 0x24]
push 0x10
push eax
push esi
call dword [ecx + 0x4c]
mov edx, dword [0x4353d0]
push esi
call dword [edx + 0x44]
push 0x58
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
cmp eax, ebx
mov dword [esp + 0x368], ebx
je 0x409952
lea ecx, [esp + 0x1c]
push ecx
mov ecx, eax
call fcn.00418ef0
jmp 0x409954
xor eax, eax
mov edx, dword [esp + 0x370]
mov dword [esp + 0x368], 0xffffffff
mov dword [edx], eax
mov ecx, dword [0x4353d0]
lea eax, [esp + 0x158]
push eax
call dword [ecx + 0x40]
mov eax, 1
mov ecx, dword [esp + 0x360]
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x364
ret 4