Function at 0x4342a8
Capabilities:
Encrypt data using rc4 ksa
Resolve function by parsing pe exports

Disassembly:
push ebx
push esi
push edi
push ebp
push eax
mov eax, 4
add esp, 0xfffff004
push eax
dec eax
jne 0x4342b2
mov eax, dword [esp + 0x4000]
add esp, 0xfffff050
mov ebx, eax
mov eax, dword [ebx + 0x244]
call fcn.0064ad58
mov esi, eax
mov eax, dword [0x66eb44]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
call fcn.00624860
push eax
lea edx, [esp + 0x4fa0]
mov eax, esi
call fcn.00648654
lea eax, [esp + 0x4fa0]
push eax
mov eax, esi
call fcn.00648678
push eax
call sub.user32.dll_FillRect
mov eax, dword [0x66fc50]
test byte [eax], 8
setne al
mov byte [esp + 0x24], al
mov eax, dword [0x66fc50]
and dword [eax], 0xfffffff7
call fcn.005477e8
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x174]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x28]
call fcn.00565830
lea edx, [esp + 0x5c]
mov eax, dword [esp + 0x28]
call fcn.00563fc0
mov edx, 0x19
mov eax, dword [esp + 0x28]
call fcn.0056539c
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x78], eax
mov eax, dword [ebx + 0x244]
mov edx, dword [eax]
call dword [edx + 0x28]
mov edx, eax
mov eax, dword [esp + 0x28]
call fcn.0056539c
mov dword [esp + 0x5c], eax
lea edx, [esp + 0xcc]
mov eax, dword [esp + 0x28]
call fcn.005c5b44
lea eax, [esp + 0xcc]
push eax
lea ecx, [esp + 0x60]
xor edx, edx
mov eax, dword [esp + 0x2c]
call fcn.005cc638
mov dword [esp + 4], 2
mov dword [esp + 8], 1
call fcn.0064e78c
mov dword [esp], eax
mov eax, dword [esp + 4]
dec eax
test eax, eax
jl 0x43454b
inc eax
mov dword [esp + 0x30], eax
xor edi, edi
lea eax, [esp + 0xec]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x58]
mov edx, 0x2758
call fcn.00658ea4
mov eax, dword [esp + 0x58]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
mov dword [eax + 0x10], 0x1388
mov eax, dword [esp + 0x34]
mov dword [eax + 0xcc], 0xff000000
mov eax, dword [ebx + 0x244]
mov edx, dword [eax]
call dword [edx + 0x1c]
sub eax, 0x32
cdq
idiv dword [esp + 4]
mov edx, eax
mov eax, dword [esp + 0x28]
call fcn.0056539c
neg eax
mov edx, dword [esp + 0x34]
mov dword [edx + 0xc], eax
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 8]
mov dword [edx + 0xd8], eax
mov esi, eax
dec esi
cmp esi, 0
jl 0x43452a
imul eax, esi, 0x27
mov edx, dword [esp + 0x34]
lea eax, [edx + eax*4 + 0xdc]
mov dword [eax], 0x80000000
mov edx, dword [ebx + 0x1b0]
mov edx, dword [edx + 0x188]
mov edx, dword [edx + 0x160]
mov dword [eax + 0x88], edx
test edx, edx
jge 0x43449e
mov dword [eax + 0x88], 0xff000000
mov byte [eax + 0x15], 1
test edi, edi
jne 0x4344d0
push esi
push edi
lea esi, [ebx + 0x1d0]
lea edi, [eax + 0x34]
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
push esi
push edi
lea esi, [ebx + 0x224]
lea edi, [eax + 0x6c]
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
jmp 0x4344f8
push esi
push edi
lea esi, [ebx + 0x224]
lea edi, [eax + 0x34]
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
push esi
push edi
lea esi, [ebx + 0x208]
lea edi, [eax + 0x6c]
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
push esi
push edi
lea esi, [ebx + 0x1b4]
lea edi, [eax + 0x18]
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
push esi
push edi
lea esi, [ebx + 0x1ec]
lea edi, [eax + 0x50]
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
dec esi
cmp esi, 0xffffffff
jne 0x434464
mov eax, dword [esp + 0x58]
mov edx, eax
mov eax, dword [esp]
call fcn.0064e9dc
inc edi
add dword [esp + 0x58], 0x2758
dec dword [esp + 0x30]
jne 0x4343f4
lea eax, [esp + 8]
push eax
mov eax, dword [esp + 4]
push eax
lea ecx, [esp + 0xc]
mov dl, 0x3d
mov eax, dword [esp + 0x30]
call fcn.005cc650
mov eax, dword [esp]
call fcn.0064edac
call fcn.0064e140
mov esi, eax
mov edi, 0xfffffffc
mov edx, 0x20
mov eax, esi
call fcn.0064e3a8
inc edi
jne 0x434578
mov edx, 0xb6
mov eax, esi
call fcn.0064e3a8
mov eax, dword [esp + 4]
dec eax
test eax, eax
jl 0x4345cc
inc eax
mov dword [esp + 0x30], eax
xor edi, edi
push 0
mov al, byte [0x434a44]
push eax
xor ecx, ecx
mov edx, edi
mov eax, dword [esp + 0x30]
call fcn.005c0320
mov ecx, esi
mov dl, 0xd
mov eax, dword [esp + 0x28]
call fcn.005cc628
inc edi
dec dword [esp + 0x30]
jne 0x4345a3
mov eax, esi
call fcn.004028c0
mov eax, dword [ebx + 0x244]
mov edx, dword [eax]
call dword [edx + 0x1c]
push eax
mov eax, dword [ebx + 0x244]
mov edx, dword [eax]
call dword [edx + 0x28]
mov edx, eax
mov eax, dword [esp + 0x30]
pop ecx
call fcn.00461b10
mov eax, dword [esp + 0x28]
mov byte [eax + 0x403], 1
mov eax, dword [esp + 0x28]
call fcn.005b9d24
mov edx, dword [0x66f18c]
mov eax, dword [esp + 0x28]
call fcn.00561de0
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0xb0]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
mov eax, dword [eax + 0x30]
call fcn.00558b38
lea ecx, [esp + 0x38]
mov edx, dword [0x66f18c]
call fcn.00558a70
lea eax, [ebx + 0x248]
mov edx, dword [esp + 0x38]
sub edx, 4
dec edx
mov dword [eax], edx
mov edx, dword [eax]
add edx, 9
mov dword [eax + 8], edx
mov edx, dword [esp + 0x3c]
mov dword [eax + 4], edx
lea eax, [ebx + 0x258]
mov edx, dword [esp + 0x38]
mov dword [eax], edx
mov edx, dword [esp + 0x3c]
sub edx, 4
dec edx
mov dword [eax + 4], edx
mov edx, dword [eax + 4]
add edx, 9
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x3c]
mov dword [ebx + 0x26c], eax
mov eax, dword [esp + 0x38]
mov dword [ebx + 0x278], eax
mov eax, dword [esp + 8]
inc eax
imul dword [esp + 4]
mov edx, dword [esp + 0x28]
mov edx, dword [edx + 0xb0]
mov edx, dword [edx + 0x1c]
mov eax, dword [edx + eax*4 - 8]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
mov eax, dword [eax + 0x30]
call fcn.00558b38
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
lea esi, [eax + 0x48]
mov edx, dword [esi + 0xc]
sub edx, dword [esi + 4]
mov eax, dword [esi + 8]
sub eax, dword [esi]
lea ecx, [esp + 0x4fac]
call fcn.0064d54c
lea edx, [esp + 0x4fac]
lea ecx, [esp + 0x44]
mov eax, dword [esp + 0x40]
call fcn.00558a70
mov eax, dword [esp + 0x48]
mov dword [ebx + 0x254], eax
mov eax, dword [esp + 0x44]
mov dword [ebx + 0x260], eax
lea eax, [ebx + 0x268]
mov edx, dword [esp + 0x44]
sub edx, 4
dec edx
mov dword [eax], edx
mov edx, dword [eax]
add edx, 9
mov dword [eax + 8], edx
mov edx, dword [esp + 0x48]
mov dword [eax + 0xc], edx
lea eax, [ebx + 0x278]
mov edx, dword [esp + 0x44]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x48]
sub edx, 4
dec edx
mov dword [eax + 4], edx
mov edx, dword [eax + 4]
add edx, 9
mov dword [eax + 0xc], edx
cmp dword [esp + 4], 1
jne 0x434762
lea eax, [ebx + 0x288]
call fcn.0065377c
jmp 0x4347a1
lea eax, [ebx + 0x288]
mov edx, dword [ebx + 0x248]
add edx, 4
mov dword [eax], edx
mov edx, dword [ebx + 0x270]
sub edx, 4
mov dword [eax + 8], edx
mov edx, dword [ebx + 0x24c]
add edx, dword [ebx + 0x254]
sub edx, 9
sar edx, 1
jns 0x434795
adc edx, 0
mov dword [eax + 4], edx
mov edx, dword [eax + 4]
add edx, 9
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x28]
mov byte [eax + 0x40d], 1
mov eax, dword [esp + 0x28]
mov byte [eax + 0x409], 1
mov eax, dword [esp + 0x28]
mov byte [eax + 0x3f8], 1
mov eax, dword [0x66f65c]
xor edx, edx
mov dword [eax], edx
mov eax, dword [ebx + 0x244]
call fcn.0064ad58
call fcn.00648678
mov esi, eax
mov eax, esi
call fcn.0064bcf8
push 1
push esi
call sub.gdi32.dll_SetBkMode
mov eax, dword [esp + 0x28]
mov byte [eax + 0x486], 1
push 0
push 0
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x13c]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
xor ecx, ecx
mov edx, esi
call fcn.0055bfe0
mov eax, dword [0x66f65c]
xor edx, edx
mov dword [eax], edx
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x268]
call fcn.004028c0
cmp byte [esp + 0x24], 0
je 0x43483a
mov eax, dword [0x66fc50]
or dword [eax], 8
mov eax, ebx
call fcn.00434a48
mov byte [ebx + 0x298], al
mov eax, dword [ebx + 0x244]
call fcn.0064ad58
mov dword [esp + 0x4c], eax
cmp byte [ebx + 0x298], 0xff
je 0x4349ac
xor eax, eax
mov al, byte [ebx + 0x298]
add eax, eax
lea eax, [ebx + eax*8 + 0x248]
mov dword [esp + 0x50], eax
mov eax, dword [0x66eb44]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x54]
movzx eax, byte [eax + 8]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 8]
shr eax, 8
and eax, 0xff
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 8]
shr eax, 0x10
and eax, 0xff
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x50]
mov edi, dword [eax]
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 8]
sub eax, edi
jl 0x4349ac
inc eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x50]
mov esi, dword [eax + 4]
mov eax, dword [esp + 0x50]
mov ebp, dword [eax + 0xc]
sub ebp, esi
jl 0x4349a1
inc ebp
mov ecx, esi
mov edx, edi
mov eax, dword [esp + 0x4c]
call fcn.006485e0
xor edx, edx
mov dl, al
mov ecx, 0xff
sub ecx, edx
mov dword [esp + 0x18], ecx
mov edx, eax
shr edx, 8
and edx, 0xff
mov ecx, 0xff
sub ecx, edx
mov dword [esp + 0x1c], ecx
shr eax, 0x10
and eax, 0xff
mov edx, 0xff
sub edx, eax
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x20]
add eax, eax
mov ecx, 3
cdq
idiv ecx
push eax
mov eax, dword [esp + 0x18]
pop edx
sub eax, edx
call fcn.00653548
push eax
mov eax, dword [esp + 0x20]
add eax, eax
mov ecx, 3
cdq
idiv ecx
push eax
mov eax, dword [esp + 0x18]
pop edx
sub eax, edx
call fcn.00653548
push eax
mov eax, dword [esp + 0x20]
add eax, eax
mov ecx, 3
cdq
idiv ecx
push eax
mov eax, dword [esp + 0x18]
pop edx
sub eax, edx
call fcn.00653548
pop edx
pop ecx
call fcn.00658ebc
push eax
mov ecx, esi
mov edx, edi
mov eax, dword [esp + 0x50]
call fcn.0064860c
inc esi
dec ebp
jne 0x4348ec
inc edi
dec dword [esp + 0x30]
jne 0x4348d5
push 0x11
call sub.user32.dll_GetSysColor
mov edx, eax
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + 0x14]
call fcn.00647c78
lea edx, [esp + 0x4f9c]
mov eax, dword [esp + 0x4c]
call fcn.00648654
lea edx, [esp + 0x4f9c]
mov eax, dword [esp + 0x4c]
call fcn.00648220
mov eax, dword [ebx + 0x1a8]
mov edx, dword [eax]
call dword [edx + 0x28]
lea eax, [ebx + 0x1b4]
cmp dword [eax + 4], 0x80000000
je 0x434a28
cmp dword [eax + 4], 0xff
jne 0x434a2c
cmp dword [eax + 0x20], 0xff
jne 0x434a2c
cmp dword [eax + 0x3c], 0xff
jne 0x434a2c
cmp dword [eax + 0x58], 0xff
jne 0x434a2c
cmp dword [eax + 0x74], 0xff
jne 0x434a2c
xor edx, edx
jmp 0x434a2e
mov dl, 1
mov eax, dword [ebx + 0x1ac]
call fcn.0063fa04
add esp, 0x4fb4
pop ebp
pop edi
pop esi
pop ebx
ret