Function at 0x434d54
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 0x434d5e
mov eax, dword [esp + 0x4000]
add esp, 0xfffff050
mov ebx, eax
mov eax, dword [ebx + 0x244]
call fcn.0064e3d0
mov esi, eax
mov eax, dword [0x671bac]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
call fcn.00627d3c
push eax
lea edx, [esp + 0x4fa0]
mov eax, esi
call fcn.0064bccc
lea eax, [esp + 0x4fa0]
push eax
mov eax, esi
call fcn.0064bcf0
push eax
call sub.user32.dll_FillRect
mov eax, dword [0x672cb4]
test byte [eax], 8
setne al
mov byte [esp + 0x24], al
mov eax, dword [0x672cb4]
and dword [eax], 0xfffffff7
call fcn.0054a7a0
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.005687e8
lea edx, [esp + 0x5c]
mov eax, dword [esp + 0x28]
call fcn.00566f78
mov edx, 0x19
mov eax, dword [esp + 0x28]
call fcn.00568354
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.00568354
mov dword [esp + 0x5c], eax
lea edx, [esp + 0xcc]
mov eax, dword [esp + 0x28]
call fcn.005c8b04
lea eax, [esp + 0xcc]
push eax
lea ecx, [esp + 0x60]
xor edx, edx
mov eax, dword [esp + 0x2c]
call fcn.005cf5f8
mov dword [esp + 4], 2
mov dword [esp + 8], 1
call fcn.00651de8
mov dword [esp], eax
mov eax, dword [esp + 4]
dec eax
test eax, eax
jl 0x434ff7
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.0065c4dc
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.00568354
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 0x434fd6
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 0x434f4a
mov dword [eax + 0x88], 0xff000000
mov byte [eax + 0x15], 1
test edi, edi
jne 0x434f7c
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 0x434fa4
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 0x434f10
mov eax, dword [esp + 0x58]
mov edx, eax
mov eax, dword [esp]
call fcn.00652038
inc edi
add dword [esp + 0x58], 0x2758
dec dword [esp + 0x30]
jne 0x434ea0
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.005cf610
mov eax, dword [esp]
call fcn.00652408
call fcn.0065179c
mov esi, eax
mov edi, 0xfffffffc
mov edx, 0x20
mov eax, esi
call fcn.00651a04
inc edi
jne 0x435024
mov edx, 0xb6
mov eax, esi
call fcn.00651a04
mov eax, dword [esp + 4]
dec eax
test eax, eax
jl 0x435078
inc eax
mov dword [esp + 0x30], eax
xor edi, edi
push 0
mov al, byte [0x4354f0]
push eax
xor ecx, ecx
mov edx, edi
mov eax, dword [esp + 0x30]
call fcn.005c32e0
mov ecx, esi
mov dl, 0xd
mov eax, dword [esp + 0x28]
call fcn.005cf5e8
inc edi
dec dword [esp + 0x30]
jne 0x43504f
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.004629e4
mov eax, dword [esp + 0x28]
mov byte [eax + 0x403], 1
mov eax, dword [esp + 0x28]
call fcn.005bccdc
mov edx, dword [0x6721f4]
mov eax, dword [esp + 0x28]
call fcn.00564d98
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.0055baf0
lea ecx, [esp + 0x38]
mov edx, dword [0x6721f4]
call fcn.0055ba28
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.0055baf0
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.00650bbc
lea edx, [esp + 0x4fac]
lea ecx, [esp + 0x44]
mov eax, dword [esp + 0x40]
call fcn.0055ba28
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 0x43520e
lea eax, [ebx + 0x288]
call fcn.00656da4
jmp 0x43524d
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 0x435241
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 [0x6726c4]
xor edx, edx
mov dword [eax], edx
mov eax, dword [ebx + 0x244]
call fcn.0064e3d0
call fcn.0064bcf0
mov esi, eax
mov eax, esi
call fcn.0064f370
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.0055ef98
mov eax, dword [0x6726c4]
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 0x4352e6
mov eax, dword [0x672cb4]
or dword [eax], 8
mov eax, ebx
call fcn.004354f4
mov byte [ebx + 0x298], al
mov eax, dword [ebx + 0x244]
call fcn.0064e3d0
mov dword [esp + 0x4c], eax
cmp byte [ebx + 0x298], 0xff
je 0x435458
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 [0x671bac]
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 0x435458
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 0x43544d
inc ebp
mov ecx, esi
mov edx, edi
mov eax, dword [esp + 0x4c]
call fcn.0064bc58
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.00656b80
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.00656b80
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.00656b80
pop edx
pop ecx
call fcn.0065c4f4
push eax
mov ecx, esi
mov edx, edi
mov eax, dword [esp + 0x50]
call fcn.0064bc84
inc esi
dec ebp
jne 0x435398
inc edi
dec dword [esp + 0x30]
jne 0x435381
push 0x11
call sub.user32.dll_GetSysColor
mov edx, eax
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + 0x14]
call fcn.0064b2f0
lea edx, [esp + 0x4f9c]
mov eax, dword [esp + 0x4c]
call fcn.0064bccc
lea edx, [esp + 0x4f9c]
mov eax, dword [esp + 0x4c]
call fcn.0064b898
mov eax, dword [ebx + 0x1a8]
mov edx, dword [eax]
call dword [edx + 0x44]
lea eax, [ebx + 0x1b4]
cmp dword [eax + 4], 0x80000000
je 0x4354d4
cmp dword [eax + 4], 0xff
jne 0x4354d8
cmp dword [eax + 0x20], 0xff
jne 0x4354d8
cmp dword [eax + 0x3c], 0xff
jne 0x4354d8
cmp dword [eax + 0x58], 0xff
jne 0x4354d8
cmp dword [eax + 0x74], 0xff
jne 0x4354d8
xor edx, edx
jmp 0x4354da
mov dl, 1
mov eax, dword [ebx + 0x1ac]
call fcn.006430e0
add esp, 0x4fb4
pop ebp
pop edi
pop esi
pop ebx
ret