Function at 0x41dc50
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
mov esi, dword [ebx + 0x99ca8]
and esi, 1
mov dword [ebp - 0xc], esi
je 0x41dc7b
mov ax, word [ebx + 0x99cac]
add ax, ax
add word [ebx + 0x99c62], ax
movzx ecx, word [ebx + 0x99c62]
add ecx, 7
and ecx, 0xfffffff8
mov word [ebx + 0x99c62], cx
test esi, esi
je 0x41dca4
mov ax, word [ebx + 0x99cac]
add ax, ax
add word [ebx + 0x99c5c], ax
movzx eax, word [ebx + 0x99c5c]
inc eax
and eax, 0xfffffffe
movzx eax, ax
mov word [ebx + 0x99c5c], ax
cmp cx, ax
jae 0x41dcc5
mov word [ebx + 0x99c62], ax
cmp dword [0x9492f4], 0
mov edx, dword [ebp + 8]
je 0x41dce6
cmp dword [edx], 0
jne 0x41dce6
cmp dword [0x949400], 0
jne 0x41dce6
mov ecx, 1
jmp 0x41dce8
xor ecx, ecx
mov dword [ebx + 0x9a58c], ecx
test ecx, ecx
je 0x41dd06
test byte [ebx + 0x99ca8], 2
je 0x41dd06
cmp dword [edx + 4], 0
mov eax, 0x20
je 0x41dd0b
mov eax, 0x10
mov dword [ebp + 0xc], eax
mov dword [ebx + 0x9a560], eax
mov eax, dword [edx + 0xc]
mov dword [ebx + 0x9a564], eax
mov dword [ebx + 0x9a578], 0
mov dword [ebx + 0x9a57c], 0
mov dword [ebx + 0x9a580], 0
mov dword [ebx + 0x9a584], 0
mov dword [ebx + 0x9a588], 0
cmp ecx, 1
jne 0x41e0c4
nop dword [eax + eax]
mov eax, dword [0x9493e4]
imul eax, dword [0x9493e0]
mov edi, dword [0x949330]
imul ecx, eax, 0x55
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 4], eax
mov eax, edi
test esi, esi
je 0x41dd94
cdq
sub eax, edx
sar eax, 1
mov ecx, 0x2000
mov dword [ebx + 0x9a0f0], 8
cmp eax, ecx
mov dword [ebx + 0x9a0f4], 8
cmovg eax, ecx
cmp edi, ecx
mov dword [ebp - 8], eax
mov eax, 8
cmovg edi, ecx
cdq
movzx ecx, word [ebx + 0x99c62]
idiv ecx
movzx ecx, word [ebx + 0x99c62]
mov esi, eax
mov eax, 8
cdq
idiv ecx
imul esi, eax
cmp esi, 0x7e8
jge 0x41de7f
movzx ecx, word [ebx + 0x99c62]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
test eax, eax
jle 0x41ddfe
cmp esi, eax
jmp 0x41de13
mov eax, dword [ebx + 0x9a0f4]
imul eax, dword [ebx + 0x9a0f0]
cmp eax, dword [ebp - 4]
jl 0x41de15
cmp esi, 0xa
jge 0x41de84
mov eax, dword [ebx + 0x9a0f0]
cmp eax, dword [ebp - 8]
jl 0x41de34
mov eax, dword [ebx + 0x9a0f4]
cmp eax, edi
jge 0x41de84
add eax, eax
mov dword [ebx + 0x9a0f4], eax
jmp 0x41de5c
mov ecx, dword [ebx + 0x9a0f4]
cmp ecx, edi
jge 0x41de4d
cmp eax, ecx
jle 0x41de4d
lea eax, [ecx + ecx]
mov dword [ebx + 0x9a0f4], eax
jmp 0x41de55
add eax, eax
mov dword [ebx + 0x9a0f0], eax
movzx ecx, word [ebx + 0x99c62]
mov eax, dword [ebx + 0x9a0f0]
cdq
idiv ecx
mov esi, eax
mov eax, dword [ebx + 0x9a0f4]
cdq
idiv ecx
imul esi, eax
cmp esi, 0x7e8
jl 0x41ddf0
mov esi, 0x7e8
mov eax, dword [ebx + 0x9a0f4]
lea edi, [ebx + 0x9a120]
movzx ecx, word [ebx + 0x99c62]
cdq
idiv ecx
mov ecx, 0
mov dword [ebx + 0x96c7c], esi
mov dword [ebx + 0x9a0f8], eax
mov eax, dword [ebx + 0x99ca8]
and eax, 2
sete cl
xor edx, edx
test eax, eax
setne dl
cmp dword [0x949318], 0
je 0x41dfc4
push edi
call fcn.00445af0
add esp, 4
test byte [ebx + 0x99ca8], 2
je 0x41df44
cmp dword [ebx + 0x40], 0
je 0x41def0
mov eax, dword [ebx + 0x58]
cmp eax, 7
je 0x41def0
cmp eax, 8
jne 0x41df44
mov dword [edi + 0x24], 0xff
cmp dword [ebx + 0x9a564], 0
je 0x41df21
xor eax, eax
lea ecx, [edi + 0x29]
mov byte [ecx + 1], al
lea ecx, [ecx + 4]
mov byte [ecx - 4], al
mov byte [ecx - 5], al
mov byte [ecx - 2], al
inc eax
cmp eax, 0x100
jl 0x41df05
jmp 0x41dfe9
xor ecx, ecx
lea eax, [edi + 0x29]
mov byte [eax + 2], cl
lea eax, [eax + 4]
inc ecx
mov word [eax - 4], 0xffff
mov byte [eax - 5], 0xff
cmp ecx, 0x100
jl 0x41df26
jmp 0x41dfe9
xor esi, esi
mov dword [edi + 0x24], 0xf
lea ecx, [edi + 0x29]
cmp dword [ebx + 0x9a564], esi
je 0x41df92
nop dword [eax + eax]
mov eax, 0x88888889
lea ecx, [ecx + 4]
imul esi
add edx, esi
add esi, 0xff
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [ecx - 3], al
mov byte [ecx - 4], al
mov byte [ecx - 5], al
mov byte [ecx - 2], al
cmp esi, 0xff0
jl 0x41df60
jmp 0x41dfe9
mov eax, 0x88888889
mov word [ecx], 0xffff
imul esi
mov byte [ecx - 1], 0xff
lea ecx, [ecx + 4]
add edx, esi
add esi, 0xff
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [ecx - 2], al
cmp esi, 0xff0
jl 0x41df92
jmp 0x41dfe9
xor eax, eax
cmp dword [ebp + 0xc], 0x10
push 0
setne al
push eax
push ecx
push edx
call fcn.0042c510
mov ecx, 0x10a
mov esi, eax
rep movsd dword es:[edi], dword [esi]
add esp, 0x10
lea edi, [ebx + 0x9a120]
mov eax, dword [ebp - 0xc]
movzx ecx, byte [edi + 4]
inc eax
mov dword [edi + 0x438], 0
mov dword [edi + 0x43c], 0
imul eax, dword [ebx + 0x9a0f0]
push 0x16ec
push str...........SourceLibraryMainDxFont.cpp
mov dword [edi + 0x428], eax
imul ecx, dword [edi + 0x428]
mov eax, dword [ebx + 0x9a0f4]
mov dword [edi + 0x42c], eax
imul eax, ecx
mov dword [edi + 0x430], ecx
push eax
call fcn.0045a440
add esp, 0xc
mov dword [edi + 0x434], eax
test eax, eax
je 0x41e0e4
cmp dword [0x949318], 0
push 0
je 0x41e062
push 0
push 0
push 0
jmp 0x41e082
cmp dword [ebx + 0x9a564], 0
je 0x41e073
push 0
push 0
push 0
jmp 0x41e082
push 0xff
push 0xff
push 0xff
push edi
call fcn.00447b10
mov edi, dword [ebp + 0x10]
add esp, 0x14
mov dword [ebx + 0x9a11c], 1
push edi
push ebx
call fcn.0041d630
add esp, 8
test eax, eax
jns 0x41e200
push 0x6b83c8
call fcn.00459730
mov edx, dword [ebp + 8]
add esp, 4
mov dword [ebx + 0x9a58c], 0
mov eax, dword [ebx + 0x99ca8]
mov dword [ebp + 0xc], 0
cmp eax, 0x33
ja case.0x41e0dd.4
movzx eax, byte [eax + 0x41e27c]
jmp dword [eax*4 + 0x41e270]
push 0x6b838c
call fcn.00459730
add esp, 4
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [ebp + 0xc], 1
jmp case.0x41e0dd.4
mov dword [ebp + 0xc], 8
mov eax, dword [edx + 8]
mov dword [ebx + 0x96c7c], eax
test eax, eax
jne 0x41e13a
movzx ecx, word [ebx + 0x99c62]
mov eax, 0x50000
imul ecx, ecx
cdq
idiv ecx
mov ecx, 0x14
cmp eax, ecx
cmovl eax, ecx
mov dword [ebx + 0x96c7c], eax
cmp dword [ebx + 0x96c7c], 0x7e8
jle 0x41e150
mov dword [ebx + 0x96c7c], 0x7e8
movzx esi, word [ebx + 0x99c62]
imul esi, dword [ebx + 0x96c7c]
movzx ecx, word [ebx + 0x99c62]
movzx edi, word [ebx + 0x99c62]
mov dword [ebx + 0x9a0f0], edi
push 0x1740
mov eax, esi
mov dword [ebx + 0x9a0f4], esi
cdq
idiv ecx
push str...........SourceLibraryMainDxFont.cpp
mov dword [ebx + 0x96c7c], eax
mov dword [ebx + 0x9a0f8], eax
mov eax, dword [ebp + 0xc]
imul edi, eax
mov dword [ebx + 0x96c88], eax
add edi, 7
shr edi, 3
imul esi, edi
mov dword [ebx + 0x96c84], edi
push esi
call fcn.0045a440
add esp, 0xc
mov dword [ebx + 0x96c80], eax
test eax, eax
jne 0x41e1d8
push 0x6b83f8
call fcn.00459730
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp + 0x10]
push edi
push ebx
call fcn.0041d630
add esp, 8
test eax, eax
jns 0x41e200
push 0x6b8458
call fcn.00459730
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, word [ebx + 0x99c62]
add eax, 4
imul eax, eax
push 0x1751
push str...........SourceLibraryMainDxFont.cpp
push eax
mov dword [ebx + 0x9a100], eax
call fcn.0045a440
add esp, 0xc
mov dword [ebx + 0x9a0fc], eax
test eax, eax
jne 0x41e247
push 0x6b8488
call fcn.00459730
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push edi
push ebx
push dword [ebp + 8]
call fcn.0049f770
add esp, 0xc
test eax, eax
js 0x41e0f1
push edi
push ebx
call fcn.0041c570
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret