Function at 0x50dfe0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x646056
mov eax, dword fs:[0]
push eax
sub esp, 0x64c
mov eax, dword [0x6ae654]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov edi, ecx
mov ecx, dword [ebp + 8]
xor eax, eax
mov dword [ebp - 0x5fc], eax
mov dword [ebp - 0x648], eax
mov dword [ebp - 4], eax
lea eax, [ebp - 0x658]
push eax
mov dword [ebp - 0x61c], ecx
call fcn.0050fd90
mov esi, eax
mov eax, dword [ebp - 0x658]
cdq
mov ecx, esi
mov ebx, eax
mov dword [ebp - 0x638], esi
mov eax, edx
push eax
push ebx
mov dword [ebp - 0x608], eax
call fcn.0052c7f0
lea eax, [ebp - 0x5e8]
mov dword [ebp - 0x5e8], 0
push eax
lea eax, [ebp - 0x420]
mov ecx, edi
push eax
lea eax, [ebp - 0x484]
push eax
lea eax, [ebp - 0x494]
push eax
push esi
call fcn.0050dde0
test eax, eax
jne 0x50e0ab
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.005a4e1e
mov esp, ebp
pop ebp
ret 4
cmp dword [ebp - 0x474], 3
jne 0x50e0c1
push 0xc
lea eax, [ebp - 0x20]
mov ecx, esi
push eax
call fcn.0052c2a0
mov ecx, dword [ebp - 0x480]
mov edx, ecx
movzx eax, word [ebp - 0x476]
mov esi, dword [ebp - 0x47c]
imul edx, eax
mov dword [ebp - 0x62c], ecx
mov dword [ebp - 0x5f4], esi
mov dword [ebp - 0x5f8], eax
mov ecx, edx
and ecx, reloc.jpeg62.dll_Ordinal_31
jns 0x50e0fa
dec ecx
or ecx, 0xffffffe0
inc ecx
mov eax, 0x20
sub eax, ecx
neg ecx
sbb ecx, ecx
and eax, ecx
add eax, edx
mov dword [ebp - 0x64c], eax
cdq
and edx, 7
add eax, edx
sar eax, 3
mov dword [ebp - 0x604], eax
test esi, esi
jle 0x50e165
mov eax, esi
mov dword [ebp - 0x630], 1
cdq
and edx, 0xff
mov dword [ebp - 0x614], 0xffffff00
lea ecx, [edx + eax]
mov eax, esi
and ecx, 0xffffff00
and eax, 0x800000ff
jns 0x50e15a
dec eax
or eax, 0xffffff00
add eax, 1
lea eax, [ecx - 0x100]
cmovne eax, ecx
jmp 0x50e183
neg esi
mov dword [ebp - 0x630], 0
mov dword [ebp - 0x5f4], esi
xor eax, eax
mov dword [ebp - 0x614], 0x100
mov ecx, dword [ebp - 0x48a]
mov esi, 0x100
cmp dword [ebp - 0x5f4], esi
mov dword [ebp - 0x5f0], eax
cmovl esi, dword [ebp - 0x5f4]
imul esi, dword [ebp - 0x604]
mov dword [ebp - 0x610], eax
xor eax, eax
add ecx, ebx
adc eax, dword [ebp - 0x608]
push eax
push ecx
mov ecx, dword [ebp - 0x638]
call fcn.0052c7f0
lea ecx, [ebp - 0x45c]
call fcn.00524180
mov ecx, dword [ebp - 0x474]
mov byte [ebp - 4], 1
mov dword [ebp - 0x644], 0
cmp ecx, 2
je 0x50e202
cmp ecx, 1
je 0x50e202
push esi
lea ecx, [ebp - 0x45c]
call fcn.00524c30
mov ebx, dword [ebp - 0x62c]
jmp 0x50e23c
mov ebx, dword [ebp - 0x62c]
xor eax, eax
cmp ecx, 2
mov dword [ebp - 0x644], 1
mov ecx, edi
sete al
push eax
push dword [ebp - 0x5f8]
lea eax, [ebp - 0x45c]
push dword [ebp - 0x5f4]
push ebx
push eax
push dword [ebp - 0x638]
call fcn.0050db60
lea ecx, [ebp - 0x45c]
call fcn.00524490
mov ecx, dword [ebp - 0x61c]
mov dword [ebp - 0x634], eax
call fcn.004471e0
mov esi, eax
lea ecx, [ebp - 0x58c]
push esi
call fcn.0057e300
mov edi, dword [ebp - 0x5f4]
lea eax, [ebp - 0x440]
push eax
push 1
lea ecx, [ebp - 0x58c]
mov byte [ebp - 4], 2
mov dword [ebp - 0x440], 0
mov dword [ebp - 0x43c], 0
mov dword [ebp - 0x438], ebx
mov dword [ebp - 0x434], edi
call fcn.0057e5f0
mov eax, edi
mov ecx, 0x100
cdq
idiv ecx
test edx, edx
lea ecx, [eax + 1]
cmove ecx, eax
mov eax, ebx
mov dword [ebp - 0x628], ecx
mov ecx, 0x100
cdq
idiv ecx
mov ecx, esi
test edx, edx
lea ebx, [eax + 1]
cmove ebx, eax
mov dword [ebp - 0x618], ebx
call fcn.004430c0
mov esi, dword [ebp - 0x5f8]
and eax, 0x10
mov dword [ebp - 0x650], eax
cmp esi, 0x20
jne 0x50e338
mov esi, ebx
xor ecx, ecx
imul esi, dword [ebp - 0x628]
mov edx, 4
mov eax, esi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.005a59b7
add esp, 4
mov dword [ebp - 0x5fc], eax
lea ecx, [esi*4]
mov dword [ebp - 0x648], eax
push ecx
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov esi, dword [ebp - 0x5f8]
add esp, 0xc
xor eax, eax
mov dword [ebp - 0x5e8], eax
mov dword [ebp - 0x620], eax
mov dword [ebp - 0x608], eax
cmp eax, dword [ebp - 0x628]
jge 0x50ecf1
mov eax, dword [ebp - 0x5f0]
mov ecx, edi
add eax, 0x100
cmp eax, edi
cmovle ecx, eax
mov eax, dword [ebp - 0x5f0]
mov edi, ecx
sub edi, eax
cmp dword [ebp - 0x644], 0
mov dword [ebp - 0x5cc], edi
je 0x50e3a6
mov edx, dword [ebp - 0x5f4]
sub edx, ecx
cmp dword [ebp - 0x630], 0
mov ecx, dword [ebp - 0x604]
cmove edx, eax
imul edx, ecx
add edx, dword [ebp - 0x634]
jmp 0x50e3cd
mov ecx, dword [ebp - 0x638]
mov eax, edi
imul eax, dword [ebp - 0x604]
push eax
push dword [ebp - 0x634]
call fcn.0052c2a0
mov edx, dword [ebp - 0x634]
mov ecx, dword [ebp - 0x604]
cmp dword [ebp - 0x630], 0
mov dword [ebp - 0x624], edx
mov dword [ebp - 0x5d8], ecx
je 0x50e407
lea eax, [edi - 1]
imul eax, ecx
add edx, eax
mov eax, dword [ebp - 0x64c]
mov dword [ebp - 0x624], edx
cdq
and edx, 7
add eax, edx
sar eax, 3
neg eax
mov dword [ebp - 0x5d8], eax
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x640], eax
cmp eax, ebx
jge 0x50ecc4
mov ebx, dword [ebp - 0x62c]
lea eax, [ecx + 0x100]
push dword [ebp - 0x5f0]
cmp eax, ebx
mov dword [ebp - 0x63c], eax
push ecx
cmovle ebx, eax
mov eax, ecx
imul eax, esi
sub ebx, ecx
lea ecx, [ebp - 0x58c]
mov dword [ebp - 0x5dc], ebx
cdq
and edx, 7
lea esi, [edx + eax]
sar esi, 3
add esi, dword [ebp - 0x624]
call fcn.0057e5d0
mov eax, dword [ebp - 0x5f8]
cmp eax, 0x20
jne 0x50e5b9
lea ecx, [ebp - 0x58c]
xor ebx, ebx
call fcn.00446840
lea ecx, [ebp - 0x58c]
mov dword [ebp - 0x5c8], eax
call fcn.0057e5b0
lea ecx, [ebp - 0x58c]
mov dword [ebp - 0x600], eax
call fcn.0041d290
lea ecx, [ebp - 0x58c]
mov dword [ebp - 0x5e4], eax
call fcn.004ad4e0
mov dword [ebp - 0x5d4], eax
test edi, edi
jle 0x50eca0
mov eax, dword [ebp - 0x5c8]
mov ecx, dword [ebp - 0x5dc]
mov edx, dword [ebp - 0x5e4]
mov dword [ebp - 0x5c4], edi
xor edi, edi
test ecx, ecx
jle 0x50e55e
mov ecx, dword [ebp - 0x5e4]
lea edx, [esi + 3]
mov eax, esi
mov dword [ebp - 0x5d0], edx
inc ecx
sub eax, dword [ebp - 0x5e4]
mov dword [ebp - 0x60c], eax
nop dword [eax]
movzx eax, byte [edx - 3]
lea ecx, [ecx + 4]
mov byte [ecx - 5], al
mov eax, dword [ebp - 0x60c]
movzx eax, byte [eax + ecx - 4]
mov byte [ecx - 4], al
movzx eax, byte [edx - 1]
mov byte [ecx - 3], al
mov al, byte [edx]
mov edx, dword [ebp - 0x5c8]
test al, al
mov byte [edi + edx], al
mov eax, 1
mov edx, dword [ebp - 0x5d0]
cmovne ebx, eax
add edx, 4
inc edi
mov dword [ebp - 0x5d0], edx
cmp edi, dword [ebp - 0x5dc]
jl 0x50e500
mov eax, dword [ebp - 0x5c8]
mov ecx, dword [ebp - 0x5dc]
mov edx, dword [ebp - 0x5e4]
add eax, dword [ebp - 0x600]
add edx, dword [ebp - 0x5d4]
add esi, dword [ebp - 0x5d8]
sub dword [ebp - 0x5c4], 1
mov dword [ebp - 0x5c8], eax
mov dword [ebp - 0x5e4], edx
jne 0x50e4d4
mov edi, dword [ebp - 0x5cc]
test ebx, ebx
je 0x50eca0
mov eax, dword [ebp - 0x5fc]
mov ecx, dword [ebp - 0x620]
mov dword [ebp - 0x5e8], 1
mov dword [eax + ecx*4], 1
jmp 0x50eca0
cmp dword [ebp - 0x650], 0
je 0x50e7ae
sub eax, 1
je 0x50e6f9
sub eax, 3
je 0x50e672
sub eax, 4
jne case.0x50e7bf.2
lea ecx, [ebp - 0x58c]
call fcn.0041d290
lea ecx, [ebp - 0x58c]
mov ebx, eax
call fcn.004ad4e0
mov dword [ebp - 0x5c4], eax
test edi, edi
jle case.0x50e7bf.2
mov eax, dword [ebp - 0x5dc]
mov ecx, edi
mov edx, dword [ebp - 0x5c4]
mov edi, dword [ebp - 0x5d8]
mov dword [ebp - 0x5d0], ecx
test eax, eax
jle 0x50e65e
mov edi, esi
mov ecx, ebx
sub edi, ebx
mov edx, eax
nop dword [eax]
movzx eax, byte [edi + ecx]
lea ecx, [ecx + 1]
mov al, byte [ebp + eax*4 - 0x41e]
mov byte [ecx - 1], al
sub edx, 1
jne 0x50e630
mov eax, dword [ebp - 0x5dc]
mov ecx, dword [ebp - 0x5d0]
mov edx, dword [ebp - 0x5c4]
mov edi, dword [ebp - 0x5d8]
add ebx, edx
add esi, edi
sub ecx, 1
mov dword [ebp - 0x5d0], ecx
jne 0x50e621
jmp 0x50ec41
lea ecx, [ebp - 0x58c]
call fcn.0041d290
lea ecx, [ebp - 0x58c]
mov edi, eax
call fcn.004ad4e0
mov edx, dword [ebp - 0x5cc]
mov dword [ebp - 0x5d4], eax
test edx, edx
jle 0x50ec41
mov eax, edx
mov dword [ebp - 0x5c4], edx
xor ecx, ecx
mov edx, 1
test ebx, ebx
jle 0x50e6dd
mov eax, ecx
shr eax, 1
movzx eax, byte [eax + esi]
test edx, edx
je 0x50e6c2
shr eax, 4
jmp 0x50e6c5
and eax, 0xf
mov al, byte [ebp + eax*4 - 0x41e]
xor edx, 1
mov byte [ecx + edi], al
inc ecx
cmp ecx, ebx
jl 0x50e6b1
mov eax, dword [ebp - 0x5c4]
add edi, dword [ebp - 0x5d4]
add esi, dword [ebp - 0x5d8]
sub eax, 1
mov dword [ebp - 0x5c4], eax
jne 0x50e6a6
jmp 0x50ec41
lea ecx, [ebp - 0x58c]
call fcn.0041d290
lea ecx, [ebp - 0x58c]
mov dword [ebp - 0x5c8], eax
call fcn.004ad4e0
mov dword [ebp - 0x5d4], eax
test edi, edi
jle case.0x50e7bf.2
mov eax, dword [ebp - 0x5c8]
mov ecx, dword [ebp - 0x5dc]
mov dword [ebp - 0x5c4], edi
xor edi, edi
mov dl, 0x80
mov ebx, esi
test ecx, ecx
jle 0x50e78e
nop
movzx eax, byte [ebx]
mov ecx, dword [ebp - 0x5c8]
and al, dl
movzx eax, al
neg eax
sbb eax, eax
and eax, 4
shr dl, 1
movzx eax, byte [ebp + eax - 0x41e]
mov byte [edi + ecx], al
mov cl, dl
mov eax, 0x80
movzx edx, dl
cmove edx, eax
inc edi
test cl, cl
lea eax, [ebx + 1]
cmovne eax, ebx
mov ebx, eax
cmp edi, dword [ebp - 0x5dc]
jl 0x50e740
mov eax, dword [ebp - 0x5c8]
mov ecx, dword [ebp - 0x5dc]
add eax, dword [ebp - 0x5d4]
add esi, dword [ebp - 0x5d8]
sub dword [ebp - 0x5c4], 1
mov dword [ebp - 0x5c8], eax
jne 0x50e735
jmp 0x50ec41
dec eax
cmp eax, 0x17
ja case.0x50e7bf.2
movzx eax, byte [eax + 0x50eeb8]
jmp dword [eax*4 + 0x50eea0]
lea ecx, [ebp - 0x58c]
call fcn.0041d290
lea ecx, [ebp - 0x58c]
mov dword [ebp - 0x5d4], eax
call fcn.004ad4e0
mov dword [ebp - 0x5c4], eax
lea eax, [ebx*4]
mov dword [ebp - 0x600], eax
test edi, edi
jle case.0x50e7bf.2
mov ebx, dword [ebp - 0x5d4]
lea edi, [esi + 2]
mov ecx, dword [ebp - 0x5cc]
add ebx, 2
mov edx, dword [ebp - 0x5c4]
mov esi, dword [ebp - 0x5d8]
mov dword [ebp - 0x5d0], ecx
test eax, eax
jle 0x50e868
lea esi, [eax - 1]
mov ecx, ebx
shr esi, 2
mov edx, edi
inc esi
movzx eax, byte [edx - 2]
lea edx, [edx + 3]
mov byte [ecx - 2], al
lea ecx, [ecx + 4]
movzx eax, byte [edx - 4]
mov byte [ecx - 5], al
movzx eax, byte [edx - 3]
mov byte [ecx - 4], al
sub esi, 1
jne 0x50e830
mov eax, dword [ebp - 0x600]
mov ecx, dword [ebp - 0x5d0]
mov edx, dword [ebp - 0x5c4]
mov esi, dword [ebp - 0x5d8]
add ebx, edx
add edi, esi
sub ecx, 1
mov dword [ebp - 0x5d0], ecx
jne 0x50e821
jmp 0x50ec41
xor eax, eax
lea ecx, [ebp - 0x58c]
cmp dword [ebp - 0x474], 3
sete al
mov dword [ebp - 0x5d4], eax
call fcn.0041d290
mov edi, eax
lea ecx, [ebp - 0x58c]
mov dword [ebp - 0x5c8], edi
call fcn.004ad4e0
mov ecx, dword [ebp - 0x5d4]
mov edx, 0xe0
mov dword [ebp - 0x5e0], eax
test ecx, ecx
setne al
add al, 5
test ecx, ecx
mov byte [ebp - 0x5e9], al
mov eax, 0xc0
cmove eax, edx
mov edx, 0x3e0
mov dword [ebp - 0x60c], eax
xor eax, eax
test ecx, ecx
setne al
add eax, 7
test ecx, ecx
movzx eax, ax
mov ecx, 0x7c00
mov dword [ebp - 0x5d4], eax
mov eax, 0x7e0
cmove eax, edx
mov edx, dword [ebp - 0x5cc]
movzx eax, ax
mov dword [ebp - 0x600], eax
mov eax, 0xf800
cmove eax, ecx
movzx ecx, ax
mov dword [ebp - 0x5d0], ecx
test edx, edx
jle 0x50ec41
mov dword [ebp - 0x5e4], edx
nop
xor eax, eax
mov dword [ebp - 0x5c4], eax
test ebx, ebx
jle 0x50e9bb
inc edi
movzx ebx, word [esi + eax*2]
lea edi, [edi + 4]
mov edx, ecx
mov cx, word [ebp - 0x5d4]
and edx, ebx
shr dx, cl
mov cl, byte [ebp - 0x5e9]
mov al, dl
shr al, 5
or al, dl
mov edx, dword [ebp - 0x600]
mov byte [edi - 3], al
mov eax, ebx
shr eax, 2
shr edx, 2
and dl, al
shl bl, 3
mov al, byte [ebp - 0x60c]
and al, dl
shr al, cl
mov ecx, dword [ebp - 0x5d0]
or al, dl
mov byte [edi - 4], al
mov al, bl
shr al, 5
or al, bl
mov ebx, dword [ebp - 0x5dc]
mov byte [edi - 5], al
mov eax, dword [ebp - 0x5c4]
inc eax
mov dword [ebp - 0x5c4], eax
cmp eax, ebx
jl 0x50e941
mov edi, dword [ebp - 0x5c8]
mov edx, dword [ebp - 0x5e4]
add edi, dword [ebp - 0x5e0]
add esi, dword [ebp - 0x5d8]
sub edx, 1
mov dword [ebp - 0x5c8], edi
mov dword [ebp - 0x5e4], edx
jne 0x50e930
jmp 0x50ec41
lea ecx, [ebp - 0x58c]
call fcn.0041d290
lea ecx, [ebp - 0x58c]
mov dword [ebp - 0x5c8], eax
call fcn.004ad4e0
mov dword [ebp - 0x5c4], eax
test edi, edi
jle case.0x50e7bf.2
mov eax, dword [ebp - 0x5c8]
mov ecx, edi
mov edx, dword [ebp - 0x5c4]
mov dword [ebp - 0x5d0], ecx
nop
xor edi, edi
test ebx, ebx
jle 0x50ea76
lea edx, [eax + 2]
nop dword [eax]
movzx eax, byte [edi + esi]
lea edx, [edx + 4]
inc edi
lea ecx, [eax*4]
movzx eax, byte [ebp + ecx - 0x420]
mov byte [edx - 6], al
movzx eax, byte [ebp + ecx - 0x41f]
mov byte [edx - 5], al
movzx eax, byte [ebp + ecx - 0x41e]
mov byte [edx - 4], al
cmp edi, ebx
jl 0x50ea30
mov eax, dword [ebp - 0x5c8]
mov ecx, dword [ebp - 0x5d0]
mov edx, dword [ebp - 0x5c4]
add esi, dword [ebp - 0x5d8]
add eax, edx
sub ecx, 1
mov dword [ebp - 0x5c8], eax
mov dword [ebp - 0x5d0], ecx
jne 0x50ea20
jmp 0x50ec41
lea ecx, [ebp - 0x58c]
call fcn.0041d290
lea ecx, [ebp - 0x58c]
mov dword [ebp - 0x5c8], eax
call fcn.004ad4e0
mov dword [ebp - 0x5e0], eax
test edi, edi
jle case.0x50e7bf.2
mov eax, dword [ebp - 0x5dc]
mov edx, edi
mov ecx, dword [ebp - 0x5c8]
mov dword [ebp - 0x5c4], edx
xor edi, edi
mov ebx, 1
test eax, eax
jle 0x50eb31
lea edx, [ecx + 2]
mov eax, edi
shr eax, 1
movzx ecx, byte [eax + esi]
test ebx, ebx
je 0x50eaf1
shr ecx, 4
jmp 0x50eaf4
and ecx, 0xf
movzx eax, byte [ebp + ecx*4 - 0x420]
inc edi
mov byte [edx - 2], al
xor ebx, 1
movzx eax, byte [ebp + ecx*4 - 0x41f]
mov byte [edx - 1], al
movzx eax, byte [ebp + ecx*4 - 0x41e]
mov byte [edx], al
add edx, 4
mov eax, dword [ebp - 0x5dc]
cmp edi, eax
jl 0x50eae0
mov ecx, dword [ebp - 0x5c8]
mov edx, dword [ebp - 0x5c4]
add ecx, dword [ebp - 0x5e0]
add esi, dword [ebp - 0x5d8]
sub edx, 1
mov dword [ebp - 0x5c8], ecx
mov dword [ebp - 0x5c4], edx
jne 0x50ead2
jmp 0x50ec41
lea ecx, [ebp - 0x58c]
call fcn.0041d290
mov edi, eax
lea ecx, [ebp - 0x58c]
mov dword [ebp - 0x5c4], edi
call fcn.004ad4e0
mov edx, dword [ebp - 0x5cc]
shl ebx, 2
mov dword [ebp - 0x5d4], eax
mov dword [ebp - 0x5e0], ebx
test edx, edx
jle 0x50ec41
mov eax, edx
mov dword [ebp - 0x5d0], edx
mov ecx, esi
mov dl, 0x80
mov dword [ebp - 0x5c8], ecx
test ebx, ebx
jle 0x50ec20
dec ebx
add edi, 2
shr ebx, 2
inc ebx
mov al, dl
lea edi, [edi + 4]
and al, byte [ecx]
movzx ecx, al
neg ecx
sbb ecx, ecx
and ecx, 4
shr dl, 1
movzx eax, byte [ebp + ecx - 0x420]
mov byte [edi - 6], al
movzx eax, byte [ebp + ecx - 0x41f]
mov byte [edi - 5], al
movzx eax, byte [ebp + ecx - 0x41e]
mov cl, dl
mov byte [edi - 4], al
mov eax, 0x80
movzx edx, dl
cmove edx, eax
mov eax, dword [ebp - 0x5c8]
inc eax
test cl, cl
cmovne eax, dword [ebp - 0x5c8]
mov ecx, eax
mov dword [ebp - 0x5c8], ecx
sub ebx, 1
jne 0x50ebb0
mov edi, dword [ebp - 0x5c4]
mov eax, dword [ebp - 0x5d0]
mov ebx, dword [ebp - 0x5e0]
add edi, dword [ebp - 0x5d4]
add esi, dword [ebp - 0x5d8]
sub eax, 1
mov dword [ebp - 0x5c4], edi
mov dword [ebp - 0x5d0], eax
jne 0x50eb96
mov edi, dword [ebp - 0x5cc]
lea ecx, [ebp - 0x58c]
call fcn.00446840
lea ecx, [ebp - 0x58c]
mov esi, eax
call fcn.0057e5b0
lea ecx, [ebp - 0x58c]
mov dword [ebp - 0x5e0], eax
call fcn.0057e5a0
mov ebx, eax
imul ebx, dword [ebp - 0x5dc]
test edi, edi
jle 0x50eca0
nop dword [eax]
push ebx
push 0xff
push esi
call sub.VCRUNTIME140.dll_memset
add esi, dword [ebp - 0x5e0]
add esp, 0xc
sub edi, 1
jne 0x50ec80
mov edi, dword [ebp - 0x5cc]
mov eax, dword [ebp - 0x640]
inc dword [ebp - 0x620]
inc eax
mov ecx, dword [ebp - 0x63c]
mov esi, dword [ebp - 0x5f8]
mov ebx, dword [ebp - 0x618]
jmp 0x50e40b
mov eax, dword [ebp - 0x614]
mov ecx, dword [ebp - 0x61c]
add dword [ebp - 0x5f0], eax
call fcn.0050fc30
test eax, eax
je 0x50ecf1
mov eax, dword [ebp - 0x608]
mov edi, dword [ebp - 0x5f4]
inc eax
jmp 0x50e346
mov ecx, dword [ebp - 0x61c]
call fcn.0050fed0
test eax, eax
jne 0x50ee4f
cmp dword [ebp - 0x5e8], eax
je 0x50ed7f
mov ecx, dword [ebp - 0x5fc]
test ecx, ecx
je 0x50ed7f
xor ebx, ebx
mov dword [ebp - 0x5e8], eax
cmp eax, dword [ebp - 0x628]
jge 0x50ee4f
mov eax, dword [ebp - 0x618]
xor edi, edi
xor esi, esi
cmp esi, eax
jge 0x50ed6a
cmp dword [ecx + ebx*4], 0
jne 0x50ed60
push dword [ebp - 0x610]
lea ecx, [ebp - 0x58c]
push edi
call fcn.0057e520
mov ecx, dword [ebp - 0x5fc]
mov eax, dword [ebp - 0x618]
add edi, 0x100
inc ebx
inc esi
jmp 0x50ed38
mov eax, dword [ebp - 0x614]
add dword [ebp - 0x610], eax
mov eax, dword [ebp - 0x5e8]
inc eax
jmp 0x50ed1c
cmp esi, 0x20
jne 0x50ee4f
push 1
lea eax, [ebp - 0x58c]
push eax
lea ecx, [ebp - 0x5c0]
call fcn.0057e880
mov byte [ebp - 4], 3
lea eax, [ebp - 0x430]
push eax
lea ecx, [ebp - 0x5c0]
call fcn.0056f9d0
test eax, eax
je 0x50ee4f
push dword [ebp - 0x42c]
lea ecx, [ebp - 0x58c]
push dword [ebp - 0x430]
call fcn.0057e5d0
mov eax, dword [ebp - 0x428]
lea ecx, [ebp - 0x58c]
mov edi, dword [ebp - 0x424]
sub eax, dword [ebp - 0x430]
sub edi, dword [ebp - 0x42c]
mov dword [ebp - 0x63c], eax
call fcn.00446840
lea ecx, [ebp - 0x58c]
mov esi, eax
call fcn.0057e5b0
lea ecx, [ebp - 0x58c]
mov dword [ebp - 0x5e0], eax
call fcn.0057e5a0
mov ebx, eax
imul ebx, dword [ebp - 0x63c]
test edi, edi
jle 0x50eda0
nop dword [eax]
push ebx
push 0xff
push esi
call sub.VCRUNTIME140.dll_memset
add esi, dword [ebp - 0x5e0]
add esp, 0xc
sub edi, 1
jne 0x50ee30
jmp 0x50eda0
lea ecx, [ebp - 0x58c]
call fcn.0057e360
lea ecx, [ebp - 0x45c]
call fcn.005241b0
mov eax, dword [ebp - 0x5fc]
test eax, eax
je 0x50ee78
push eax
call fcn.005a5725
add esp, 4
mov eax, 1
jmp 0x50e08d