Function at 0x4fdd60
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x48
push ebx
push ebp
mov ebp, dword [esp + 0x54]
push esi
push edi
mov edi, dword [esp + 0x68]
mov eax, edi
imul eax, dword [esp + 0x6c]
mov esi, dword [ebp]
mov ebx, dword [esi + 8]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x70]
mov dword [esp + 0x14], ebx
push eax
call fcn.006f5041
add esp, 4
mov dword [ebp + 0xc], eax
test eax, eax
jne 0x4fddab
pop edi
pop esi
pop ebp
mov dword [0x7ff270], 0x72b864
pop ebx
add esp, 0x48
ret
mov edx, dword [esp + 0x6c]
mov eax, ebx
mov ebp, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
imul eax, edx
mov dword [esp + 0x38], eax
imul eax, ebp
add eax, 7
shr eax, 3
mov dword [esp + 0x34], eax
inc eax
imul eax, ecx
cmp dword [esi], edx
jne 0x4fdea4
cmp dword [esi + 4], ecx
jne 0x4fdea4
cmp dword [esp + 0x64], eax
jne 0x4fdeae
xor edx, edx
mov dword [esp + 0x30], edx
test ecx, ecx
je 0x4fe5f2
mov ebp, dword [esp + 0x60]
nop
mov eax, dword [esp + 0x5c]
mov ecx, edx
imul ecx, dword [esp + 0x2c]
mov edi, ebx
movzx esi, byte [ebp]
inc ebp
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x30]
add ecx, dword [eax + 0xc]
mov eax, ecx
mov dword [esp + 0x1c], ecx
sub eax, dword [esp + 0x2c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x28], ebx
cmp esi, 4
ja 0x4fe941
cmp dword [esp + 0x74], 8
jge 0x4fde6a
mov eax, dword [esp + 0x2c]
mov edi, 1
sub eax, dword [esp + 0x34]
add ecx, eax
mov dword [esp + 0x28], edi
mov eax, dword [esp + 0x34]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1c], ecx
test edx, edx
jne 0x4fde79
movzx esi, byte [esi + 0x7f5530]
mov dword [esp + 0x18], esi
test edi, edi
jle 0x4fded4
sub eax, ebp
mov edx, ebp
sub ecx, ebp
mov dword [esp + 0x24], eax
mov dword [esp + 0x3c], ecx
nop dword [eax + eax]
cmp dword [esp + 0x18], 6
mov esi, edx
ja case.default.0x4fde9d
mov ebx, dword [esp + 0x18]
jmp dword [ebx*4 + 0x4fecdc]
cmp dword [esp + 0x64], eax
jae 0x4fddec
pop edi
pop esi
pop ebp
mov dword [0x7ff270], 0x72ba90
xor eax, eax
pop ebx
add esp, 0x48
ret
mov ebx, dword [esp + 0x14]
inc edx
sub edi, 1
jne 0x4fde90
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x74]
cmp edx, 8
jne 0x4fdfda
mov edx, dword [esp + 0x68]
cmp ebx, edx
je 0x4fdeed
mov byte [ecx + ebx], 0xff
mov edi, dword [esp + 0x20]
add ebp, ebx
mov ecx, dword [esp + 0x1c]
add edi, edx
mov eax, ebp
mov dword [esp + 0x60], ebp
add ecx, edx
mov dword [esp + 0x24], edi
mov dword [esp + 0x3c], eax
mov dword [esp + 0x20], ecx
jmp 0x4fe004
mov ebx, dword [esp + 0x14]
mov al, byte [edx]
inc edx
mov byte [ecx + esi], al
sub edi, 1
je 0x4fdecc
mov esi, edx
jmp 0x4fdf16
mov ebx, dword [esp + 0x14]
nop dword [eax]
mov al, byte [edx]
inc edx
mov byte [ecx + esi], al
sub edi, 1
je 0x4fdecc
mov esi, edx
jmp 0x4fdf30
mov ebx, dword [esp + 0x14]
mov al, byte [eax + esi]
add al, byte [edx]
inc edx
mov byte [ecx + esi], al
sub edi, 1
je 0x4fdecc
mov eax, dword [esp + 0x24]
mov esi, edx
jmp 0x4fdf43
mov ebx, dword [esp + 0x14]
mov al, byte [eax + esi]
shr al, 1
add al, byte [edx]
inc edx
mov byte [ecx + esi], al
sub edi, 1
je 0x4fdecc
mov eax, dword [esp + 0x24]
mov esi, edx
jmp 0x4fdf61
mov ebx, dword [esp + 0x14]
mov cl, byte [eax + esi]
xor al, al
cmp al, cl
sbb al, al
and al, cl
mov ecx, dword [esp + 0x3c]
add al, byte [edx]
inc edx
mov byte [ecx + esi], al
sub edi, 1
je 0x4fdecc
mov eax, dword [esp + 0x24]
mov esi, edx
jmp 0x4fdf81
mov ebx, dword [esp + 0x14]
nop dword [eax + eax]
mov al, byte [edx]
inc edx
mov byte [ecx + esi], al
sub edi, 1
je 0x4fdecc
mov esi, edx
jmp 0x4fdfb0
mov ebx, dword [esp + 0x14]
mov al, byte [edx]
inc edx
mov byte [ecx + esi], al
sub edi, 1
je 0x4fdecc
mov esi, edx
jmp 0x4fdfc7
mov edi, dword [esp + 0x20]
inc ebp
mov ecx, dword [esp + 0x1c]
inc edi
inc ecx
mov dword [esp + 0x60], ebp
mov dword [esp + 0x3c], ebp
mov eax, ebp
mov dword [esp + 0x24], edi
mov dword [esp + 0x20], ecx
cmp edx, 8
jl 0x4fe572
mov edx, dword [esp + 0x68]
cmp ebx, edx
je 0x4fe572
cmp esi, 6
ja case.default.0x4fe017
mov ebp, eax
jmp dword [esi*4 + 0x4fecf8]
mov eax, dword [esp + 0x6c]
mov esi, dword [esp + 0x3c]
dec eax
mov dword [esp + 0x28], eax
mov ebp, esi
cmp eax, 1
jb case.default.0x4fe017
test ebx, ebx
jle 0x4fe058
mov edi, ebp
mov edx, ecx
sub edi, ecx
mov esi, ebx
mov al, byte [edi + edx]
lea edx, [edx + 1]
mov byte [edx - 1], al
sub esi, 1
jne 0x4fe042
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x28]
mov byte [ebx + ecx], 0xff
add ebp, ebx
add ecx, edx
sub eax, 1
mov dword [esp + 0x28], eax
jne 0x4fe036
jmp case.default.0x4fe017
mov edi, dword [esp + 0x6c]
mov ebp, eax
dec edi
mov dword [esp + 0x3c], edi
cmp edi, 1
jb case.default.0x4fe017
mov eax, ecx
mov dword [esp + 0x60], ebp
sub eax, edx
mov dword [esp + 0x28], eax
nop
xor esi, esi
test ebx, ebx
jle 0x4fe0c0
mov edi, ebp
mov ebp, dword [esp + 0x28]
sub edi, ecx
nop
mov al, byte [esi + ebp]
lea edx, [esi + ecx]
add al, byte [edi + edx]
inc esi
mov byte [edx], al
cmp esi, ebx
jl 0x4fe0a0
mov ebp, dword [esp + 0x60]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x3c]
mov byte [ecx + ebx], 0xff
add ebp, ebx
add eax, edx
mov dword [esp + 0x60], ebp
add ecx, edx
mov dword [esp + 0x28], eax
sub edi, 1
mov dword [esp + 0x3c], edi
jne 0x4fe090
jmp case.default.0x4fe017
mov edx, dword [esp + 0x6c]
mov ebp, eax
dec edx
mov dword [esp + 0x3c], edx
cmp edx, 1
jb case.default.0x4fe017
mov edx, 0x20
mov dword [esp + 0x60], ebp
lea eax, [ecx + ebx]
sub edx, ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x40], edx
nop word [eax + eax]
xor edx, edx
test ebx, ebx
jle 0x4fe291
cmp ebx, 8
jb 0x4fe25a
lea eax, [ebp - 1]
lea esi, [ecx - 1]
add eax, ebx
add esi, ebx
cmp ecx, eax
ja 0x4fe139
cmp esi, ebp
jae 0x4fe25a
lea eax, [edi - 1]
add eax, ebx
cmp ecx, eax
ja 0x4fe14a
cmp esi, edi
jae 0x4fe25a
cmp ebx, 0x40
jb 0x4fe1ff
mov eax, ebx
and eax, 0x8000003f
jns 0x4fe161
dec eax
or eax, 0xffffffc0
inc eax
mov esi, ebx
mov ebx, edi
sub ebx, ebp
sub esi, eax
mov dword [esp + 0x1c], ebx
lea eax, [ebp + 0x10]
mov ebx, ecx
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x40]
sub ebx, ebp
add esi, dword [esp + 0x28]
mov dword [esp + 0x18], ebx
mov ebx, edi
mov ebp, dword [esp + 0x18]
sub ebx, ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x44], ebx
movups xmm0, xmmword [eax - 0x10]
mov ebx, dword [esp + 0x44]
lea eax, [eax + 0x40]
movups xmm1, xmmword [edx + edi]
lea esi, [esi + 0x40]
paddb xmm1, xmm0
movups xmmword [esi - 0x60], xmm1
movups xmm0, xmmword [eax - 0x40]
movups xmm1, xmmword [eax + ecx - 0x40]
paddb xmm1, xmm0
movups xmmword [eax + ebp - 0x40], xmm1
movups xmm1, xmmword [ebx + esi - 0x40]
mov ebx, dword [esp + 0x14]
movups xmm0, xmmword [eax - 0x30]
paddb xmm1, xmm0
movups xmmword [esi - 0x40], xmm1
movups xmm1, xmmword [edi + edx + 0x30]
add edx, 0x40
movups xmm0, xmmword [eax - 0x20]
paddb xmm1, xmm0
movups xmmword [esi - 0x30], xmm1
cmp edx, dword [esp + 0x48]
jl 0x4fe194
mov ecx, dword [esp + 0x20]
mov eax, ebx
mov ebp, dword [esp + 0x60]
and al, 0x3f
cmp al, 8
jb 0x4fe256
mov eax, ebx
and eax, reloc.WS2_32.dll_getsockopt
jns 0x4fe20d
dec eax
or eax, 0xfffffff8
inc eax
mov esi, ebx
mov ebx, edi
sub ebx, ebp
sub esi, eax
mov dword [esp + 0x48], ebx
lea eax, [edx + ebp]
mov ebx, dword [esp + 0x14]
sub ecx, ebp
mov edi, dword [esp + 0x48]
mov dword [esp + 0x44], ecx
nop word [eax + eax]
movq xmm1, qword [eax + edi]
lea eax, [eax + 8]
movq xmm0, qword [eax - 8]
add edx, 8
paddb xmm1, xmm0
movq qword [ecx + eax - 8], xmm1
cmp edx, esi
jl 0x4fe230
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
cmp edx, ebx
jge 0x4fe28d
mov dword [esp + 0x48], edi
lea esi, [edx + ebp]
mov eax, ecx
mov dword [esp + 0x48], ebx
sub eax, ebp
sub edi, ebp
sub ebx, edx
mov dword [esp + 0x44], eax
mov edx, eax
mov al, byte [esi + edi]
lea esi, [esi + 1]
add al, byte [esi - 1]
mov byte [edx + esi - 1], al
sub ebx, 1
jne 0x4fe273
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x68]
add ebp, ebx
mov byte [eax], 0xff
add ecx, edx
add eax, edx
mov dword [esp + 0x60], ebp
add edi, edx
mov dword [esp + 0x20], ecx
sub dword [esp + 0x3c], 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], edi
jne 0x4fe110
jmp case.default.0x4fe017
mov esi, dword [esp + 0x6c]
mov ebp, eax
dec esi
mov dword [esp + 0x3c], esi
cmp esi, 1
jb case.default.0x4fe017
mov eax, ecx
mov dword [esp + 0x60], ebp
sub eax, edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x48], 0
test ebx, ebx
jle 0x4fe348
sub edi, ebp
mov esi, ebp
sub ecx, ebp
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0x48]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x44]
mov ebp, dword [esp + 0x40]
nop word [eax + eax]
mov eax, dword [esp + 0x28]
lea esi, [esi + 1]
movzx edx, byte [eax + edi]
inc edi
movzx eax, byte [esi + ecx - 1]
add edx, eax
shr edx, 1
add dl, byte [esi - 1]
mov byte [esi + ebp - 1], dl
cmp edi, ebx
jl 0x4fe310
mov ecx, dword [esp + 0x20]
mov ebp, dword [esp + 0x60]
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x3c]
mov byte [ecx + ebx], 0xff
add ebp, ebx
add ecx, edx
mov dword [esp + 0x60], ebp
add eax, edx
mov dword [esp + 0x20], ecx
add edi, edx
mov dword [esp + 0x28], eax
sub esi, 1
mov dword [esp + 0x24], edi
mov dword [esp + 0x3c], esi
jne 0x4fe2e0
jmp case.default.0x4fe017
mov esi, dword [esp + 0x6c]
mov ebp, eax
dec esi
mov dword [esp + 0x40], esi
cmp esi, 1
jb case.default.0x4fe017
mov eax, ecx
mov dword [esp + 0x60], ebp
sub eax, edx
mov dword [esp + 0x18], eax
test ebx, ebx
jle 0x4fe45b
mov dword [esp + 0x48], eax
mov edx, edi
mov eax, edi
mov dword [esp + 0x44], ebp
sub eax, ecx
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x48]
sub edx, ebp
mov ecx, ebp
mov dword [esp + 0x50], eax
mov ebp, dword [esp + 0x68]
mov dword [esp + 0x54], edx
movzx eax, byte [eax + ebx]
movzx edi, byte [edx + ecx]
movzx edx, byte [ebx]
mov dword [esp + 0x3c], eax
mov esi, edx
sub esi, eax
mov dword [esp + 0x4c], edi
add edi, esi
mov dword [esp + 0x28], edx
mov eax, edi
sub edi, dword [esp + 0x3c]
sub eax, edx
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0x48], eax
mov eax, esi
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0x44], eax
mov eax, edi
cdq
mov esi, eax
mov eax, dword [esp + 0x48]
xor esi, edx
sub esi, edx
mov edx, dword [esp + 0x44]
cmp eax, edx
jg 0x4fe416
cmp eax, esi
jle 0x4fe425
mov eax, dword [esp + 0x3c]
cmp edx, esi
cmovle eax, dword [esp + 0x4c]
mov dword [esp + 0x28], eax
mov al, byte [ecx]
inc ecx
add al, byte [esp + 0x28]
mov edx, dword [esp + 0x54]
mov byte [ebx + ebp], al
inc ebx
sub dword [esp + 0x1c], 1
mov eax, dword [esp + 0x50]
jne 0x4fe3c4
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x60]
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x40]
mov byte [ecx + ebx], 0xff
add ebp, ebx
add ecx, edx
mov dword [esp + 0x60], ebp
add eax, edx
mov dword [esp + 0x20], ecx
add edi, edx
mov dword [esp + 0x18], eax
sub esi, 1
mov dword [esp + 0x24], edi
mov dword [esp + 0x40], esi
jne 0x4fe396
jmp case.default.0x4fe017
mov edi, dword [esp + 0x6c]
mov ebp, eax
dec edi
mov dword [esp + 0x40], edi
cmp edi, 1
jb case.default.0x4fe017
mov eax, ecx
mov dword [esp + 0x60], ebp
sub eax, edx
mov dword [esp + 0x28], eax
nop dword [eax]
xor esi, esi
test ebx, ebx
jle 0x4fe4e2
mov edi, ebp
mov ebp, dword [esp + 0x28]
sub edi, ecx
nop
mov al, byte [esi + ebp]
lea edx, [esi + ecx]
shr al, 1
inc esi
add al, byte [edi + edx]
mov byte [edx], al
cmp esi, ebx
jl 0x4fe4c0
mov ebp, dword [esp + 0x60]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x40]
mov byte [ecx + ebx], 0xff
add ebp, ebx
add eax, edx
mov dword [esp + 0x60], ebp
add ecx, edx
mov dword [esp + 0x28], eax
sub edi, 1
mov dword [esp + 0x40], edi
jne 0x4fe4b0
jmp case.default.0x4fe017
mov esi, dword [esp + 0x6c]
mov ebp, eax
dec esi
mov dword [esp + 0x40], esi
cmp esi, 1
jb case.default.0x4fe017
mov eax, ecx
mov dword [esp + 0x60], ebp
sub eax, edx
mov dword [esp + 0x28], eax
xor edi, edi
test ebx, ebx
jle 0x4fe552
mov dword [esp + 0x54], ebp
sub ebp, ecx
nop
mov dl, byte [eax + edi]
lea esi, [edi + ecx]
mov al, byte [esi + ebp]
inc edi
add al, dl
mov byte [esi], al
mov eax, dword [esp + 0x28]
cmp edi, ebx
jl 0x4fe530
mov ebp, dword [esp + 0x60]
mov edx, dword [esp + 0x68]
mov esi, dword [esp + 0x40]
mov byte [ecx + ebx], 0xff
add ebp, ebx
add eax, edx
mov dword [esp + 0x60], ebp
add ecx, edx
mov dword [esp + 0x28], eax
sub esi, 1
mov dword [esp + 0x40], esi
jne 0x4fe522
jmp case.default.0x4fe017
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x18]
dec esi
imul esi, ebx
mov dword [esp + 0x1c], esi
cmp eax, 6
ja case.default.0x4fe587
jmp dword [eax*4 + 0x4fed14]
push esi
push ebp
push ecx
call fcn.006e0e90
add esp, 0xc
jmp case.default.0x4fe587
mov edi, dword [esp + 0x1c]
xor esi, esi
test edi, edi
jle 0x4fe5cf
mov eax, ecx
mov dword [esp + 0x54], ebp
sub eax, dword [esp + 0x28]
sub ebp, ecx
mov dword [esp + 0x50], eax
mov ebx, eax
lea edx, [ecx + esi]
mov al, byte [edx + ebp]
add al, byte [ebx + esi]
inc esi
mov byte [edx], al
cmp esi, edi
jl 0x4fe5b7
mov ebp, dword [esp + 0x60]
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
add ebp, esi
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x70]
inc edx
mov dword [esp + 0x30], edx
cmp edx, ecx
jb 0x4fde00
mov edi, dword [esp + 0x68]
mov ebp, dword [esp + 0x74]
cmp ebp, 8
jge 0x4fecce
test ecx, ecx
je 0x4fecce
xor ecx, ecx
mov dword [esp + 0x1c], ecx
nop dword [eax]
mov eax, dword [esp + 0x5c]
mov esi, ecx
sub esi, dword [esp + 0x34]
mov eax, dword [eax + 0xc]
add esi, eax
add esi, dword [esp + 0x2c]
cmp dword [esp + 0x78], 0
lea edx, [ecx + eax]
jne 0x4fe955
mov al, byte [ebp + 0x7f5538]
mov byte [esp + 0x13], al
jmp 0x4fe95a
xor edx, edx
test esi, esi
jle case.default.0x4fe587
cmp esi, 8
jb 0x4fe7b0
lea eax, [ebp - 1]
add eax, esi
cmp ecx, eax
ja 0x4fe665
lea eax, [ecx - 1]
add eax, esi
cmp eax, ebp
jae 0x4fe7b0
lea eax, [edi - 1]
add eax, esi
cmp ecx, eax
ja 0x4fe67b
lea eax, [ecx - 1]
add eax, esi
cmp eax, edi
jae 0x4fe7b0
cmp esi, 0x40
jb 0x4fe741
mov eax, esi
and eax, 0x8000003f
jns 0x4fe692
dec eax
or eax, 0xffffffc0
inc eax
mov ebx, esi
sub ebx, eax
lea eax, [ecx + 0x20]
mov dword [esp + 0x48], ebx
mov ebx, edi
sub ebx, ebp
mov dword [esp + 0x54], eax
mov dword [esp + 0x40], ebx
lea eax, [ebp + 0x10]
mov esi, dword [esp + 0x40]
mov ebx, ecx
sub ebx, ebp
mov dword [esp + 0x50], ebx
mov ebx, edi
mov ebp, dword [esp + 0x50]
sub ebx, ecx
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x54]
mov ecx, dword [esp + 0x4c]
nop dword [eax]
movups xmm0, xmmword [eax - 0x10]
lea eax, [eax + 0x40]
movups xmm1, xmmword [edi + edx]
lea ebx, [ebx + 0x40]
paddb xmm1, xmm0
movups xmmword [ebx - 0x60], xmm1
movups xmm1, xmmword [esi + eax - 0x40]
mov esi, edi
movups xmm0, xmmword [eax - 0x40]
paddb xmm1, xmm0
movups xmmword [eax + ebp - 0x40], xmm1
movups xmm0, xmmword [eax - 0x30]
movups xmm1, xmmword [ecx + ebx - 0x40]
paddb xmm1, xmm0
movups xmmword [ebx - 0x40], xmm1
movups xmm1, xmmword [esi + edx + 0x30]
mov esi, dword [esp + 0x40]
add edx, 0x40
movups xmm0, xmmword [eax - 0x20]
paddb xmm1, xmm0
movups xmmword [ebx - 0x30], xmm1
cmp edx, dword [esp + 0x48]
jl 0x4fe6d0
mov esi, dword [esp + 0x1c]
mov eax, esi
mov ecx, dword [esp + 0x20]
and al, 0x3f
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x60]
cmp al, 8
jb 0x4fe7a8
mov eax, esi
and eax, reloc.WS2_32.dll_getsockopt
jns 0x4fe74f
dec eax
or eax, 0xfffffff8
inc eax
mov ebx, edi
mov dword [esp + 0x28], esi
sub dword [esp + 0x28], eax
sub ebx, ebp
mov dword [esp + 0x54], ebx
lea eax, [edx + ebp]
mov esi, dword [esp + 0x54]
mov ebx, ecx
sub ebx, ebp
mov dword [esp + 0x50], ebx
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x50]
nop word [eax + eax]
movq xmm1, qword [eax + esi]
lea eax, [eax + 8]
movq xmm0, qword [eax - 8]
add edx, 8
paddb xmm1, xmm0
movq qword [edi + eax - 8], xmm1
cmp edx, dword [esp + 0x28]
jl 0x4fe780
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
cmp edx, esi
jge case.default.0x4fe587
mov ebx, dword [esp + 0x1c]
lea esi, [edx + ebp]
sub edi, ebp
sub ecx, ebp
sub ebx, edx
nop dword [eax]
mov al, byte [esi + edi]
lea esi, [esi + 1]
add al, byte [esi - 1]
mov byte [ecx + esi - 1], al
sub ebx, 1
jne 0x4fe7c0
jmp 0x4fe5cb
mov dword [esp + 0x54], 0
test esi, esi
jle case.default.0x4fe587
mov eax, ecx
sub edi, ebp
sub eax, dword [esp + 0x28]
mov ebx, ebp
sub ecx, ebp
mov dword [esp + 0x50], eax
mov ebp, dword [esp + 0x54]
nop dword [eax + eax]
movzx eax, byte [eax + ebp]
lea ebx, [ebx + 1]
movzx edx, byte [ebx + edi - 1]
inc ebp
add edx, eax
mov eax, dword [esp + 0x50]
shr edx, 1
add dl, byte [ebx - 1]
mov byte [ecx + ebx - 1], dl
cmp ebp, esi
jl 0x4fe800
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x60]
jmp case.default.0x4fe587
test esi, esi
jle case.default.0x4fe587
mov eax, edi
mov dword [esp + 0x54], ebp
mov ebx, ecx
mov dword [esp + 0x24], esi
sub ebx, dword [esp + 0x28]
sub eax, ecx
mov dword [esp + 0x48], eax
sub edi, ebp
nop dword [eax]
movzx eax, byte [ebx + eax]
movzx edx, byte [ebx]
movzx esi, byte [edi + ebp]
mov ecx, edx
sub ecx, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x4c], esi
add esi, ecx
mov dword [esp + 0x3c], edx
mov eax, esi
sub esi, dword [esp + 0x40]
sub eax, edx
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0x54], eax
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0x50], eax
mov eax, esi
cdq
mov ecx, eax
mov eax, dword [esp + 0x54]
xor ecx, edx
sub ecx, edx
mov edx, dword [esp + 0x50]
cmp eax, edx
jg 0x4fe8a2
cmp eax, ecx
jle 0x4fe8b1
mov eax, dword [esp + 0x40]
cmp edx, ecx
cmovle eax, dword [esp + 0x4c]
mov dword [esp + 0x3c], eax
mov al, byte [ebp]
inc ebp
mov ecx, dword [esp + 0x28]
add al, byte [esp + 0x3c]
mov byte [ebx + ecx], al
inc ebx
sub dword [esp + 0x24], 1
mov eax, dword [esp + 0x48]
jne 0x4fe850
jmp 0x4fe5c7
mov edi, dword [esp + 0x1c]
xor esi, esi
test edi, edi
jle 0x4fe5cf
mov ebx, ecx
mov eax, ebp
sub ebx, dword [esp + 0x28]
sub eax, ecx
mov dword [esp + 0x54], eax
mov ebp, eax
nop
mov al, byte [ebx + esi]
lea edx, [ecx + esi]
shr al, 1
inc esi
add al, byte [edx + ebp]
mov byte [edx], al
cmp esi, edi
jl 0x4fe8f0
jmp 0x4fe5c7
xor edi, edi
test esi, esi
jle case.default.0x4fe587
mov ebx, ecx
mov dword [esp + 0x54], ebp
sub ebx, dword [esp + 0x28]
sub ebp, ecx
nop dword [eax]
lea esi, [ecx + edi]
mov al, byte [esi + ebp]
add al, byte [ebx + edi]
inc edi
mov byte [esi], al
mov esi, dword [esp + 0x1c]
cmp edi, esi
jl 0x4fe920
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x60]
jmp case.default.0x4fe587
pop edi
pop esi
pop ebp
mov dword [0x7ff270], 0x72baa4
xor eax, eax
pop ebx
add esp, 0x48
ret
mov byte [esp + 0x13], 1
cmp ebp, 4
jne 0x4fe9c6
mov ecx, dword [esp + 0x38]
cmp ecx, 2
jl 0x4fe9b4
mov bl, byte [esp + 0x13]
mov ebp, ecx
shr ebp, 1
mov eax, ebp
neg eax
lea ecx, [ecx + eax*2]
mov dword [esp + 0x54], ecx
nop dword [eax + eax]
movzx ecx, byte [esi]
shr cl, 4
movzx ecx, cl
movzx eax, bl
imul ecx, eax
movzx eax, bl
mov byte [edx], cl
movzx ecx, byte [esi]
inc esi
and cl, 0xf
movzx ecx, cl
imul ecx, eax
mov byte [edx + 1], cl
add edx, 2
sub ebp, 1
jne 0x4fe980
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x54]
test ecx, ecx
jle 0x4fec3c
mov cl, byte [esi]
shr cl, 4
jmp 0x4fec2f
cmp ebp, 2
jne 0x4feaa2
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x28], ecx
cmp ecx, 4
jl 0x4fea52
mov bl, byte [esp + 0x13]
mov ebp, ecx
shr ebp, 2
mov eax, ebp
neg eax
lea ecx, [ecx + eax*4]
mov dword [esp + 0x28], ecx
movzx ecx, byte [esi]
shr cl, 6
movzx ecx, cl
movzx eax, bl
imul ecx, eax
movzx eax, bl
mov byte [edx], cl
movzx ecx, byte [esi]
shr cl, 4
and cl, 3
movzx ecx, cl
imul ecx, eax
movzx eax, bl
mov byte [edx + 1], cl
movzx ecx, byte [esi]
shr cl, 2
and cl, 3
movzx ecx, cl
imul ecx, eax
movzx eax, bl
mov byte [edx + 2], cl
movzx ecx, byte [esi]
inc esi
and cl, 3
movzx ecx, cl
imul ecx, eax
mov byte [edx + 3], cl
add edx, 4
sub ebp, 1
jne 0x4fe9f4
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
test ecx, ecx
jle 0x4fea6d
mov cl, byte [esi]
movzx eax, byte [esp + 0x13]
shr cl, 6
movzx ecx, cl
imul ecx, eax
mov byte [edx], cl
inc edx
mov ecx, dword [esp + 0x28]
cmp ecx, 1
jle 0x4fea8c
mov cl, byte [esi]
movzx eax, byte [esp + 0x13]
shr cl, 4
and cl, 3
movzx ecx, cl
imul ecx, eax
mov byte [edx], cl
inc edx
mov ecx, dword [esp + 0x28]
cmp ecx, 2
jle 0x4fec3c
mov cl, byte [esi]
shr cl, 2
and cl, 3
jmp 0x4fec2f
cmp ebp, 1
jne 0x4fec40
mov ebp, dword [esp + 0x38]
cmp ebp, 8
jl 0x4feb85
mov bl, byte [esp + 0x13]
mov edi, ebp
shr edi, 3
mov eax, edi
neg eax
lea ebp, [ebp + eax*8]
nop dword [eax]
movzx ecx, byte [esi]
shr cl, 7
movzx ecx, cl
movzx eax, bl
imul ecx, eax
movzx eax, bl
mov byte [edx], cl
movzx ecx, byte [esi]
shr cl, 6
and cl, 1
movzx ecx, cl
imul ecx, eax
movzx eax, bl
mov byte [edx + 1], cl
movzx ecx, byte [esi]
shr cl, 5
and cl, 1
movzx ecx, cl
imul ecx, eax
movzx eax, bl
mov byte [edx + 2], cl
movzx ecx, byte [esi]
shr cl, 4
and cl, 1
movzx ecx, cl
imul ecx, eax
movzx eax, bl
mov byte [edx + 3], cl
movzx ecx, byte [esi]
shr cl, 3
and cl, 1
movzx ecx, cl
imul ecx, eax
movzx eax, bl
mov byte [edx + 4], cl
movzx ecx, byte [esi]
shr cl, 2
and cl, 1
movzx ecx, cl
imul ecx, eax
movzx eax, bl
mov byte [edx + 5], cl
movzx ecx, byte [esi]
shr cl, 1
and cl, 1
movzx ecx, cl
imul ecx, eax
movzx eax, bl
mov byte [edx + 6], cl
movzx ecx, byte [esi]
inc esi
and cl, 1
movzx ecx, cl
imul ecx, eax
mov byte [edx + 7], cl
add edx, 8
sub edi, 1
jne 0x4fead0
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x68]
test ebp, ebp
jle 0x4feb9c
mov cl, byte [esi]
movzx eax, byte [esp + 0x13]
shr cl, 7
movzx ecx, cl
imul ecx, eax
mov byte [edx], cl
inc edx
cmp ebp, 1
jle 0x4febb7
mov cl, byte [esi]
movzx eax, byte [esp + 0x13]
shr cl, 6
and cl, 1
movzx ecx, cl
imul ecx, eax
mov byte [edx], cl
inc edx
cmp ebp, 2
jle 0x4febd2
mov cl, byte [esi]
movzx eax, byte [esp + 0x13]
shr cl, 5
and cl, 1
movzx ecx, cl
imul ecx, eax
mov byte [edx], cl
inc edx
cmp ebp, 3
jle 0x4febed
mov cl, byte [esi]
movzx eax, byte [esp + 0x13]
shr cl, 4
and cl, 1
movzx ecx, cl
imul ecx, eax
mov byte [edx], cl
inc edx
cmp ebp, 4
jle 0x4fec08
mov cl, byte [esi]
movzx eax, byte [esp + 0x13]
shr cl, 3
and cl, 1
movzx ecx, cl
imul ecx, eax
mov byte [edx], cl
inc edx
cmp ebp, 5
jle 0x4fec23
mov cl, byte [esi]
movzx eax, byte [esp + 0x13]
shr cl, 2
and cl, 1
movzx ecx, cl
imul ecx, eax
mov byte [edx], cl
inc edx
cmp ebp, 6
jle 0x4fec3c
mov cl, byte [esi]
shr cl, 1
and cl, 1
movzx eax, byte [esp + 0x13]
movzx ecx, cl
imul ecx, eax
mov byte [edx], cl
mov ecx, dword [esp + 0x1c]
cmp ebx, edi
je 0x4fecb7
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
add edx, ecx
mov ecx, dword [esp + 0x6c]
dec ecx
cmp ebx, 1
jne 0x4fec72
test ecx, ecx
js 0x4fecb3
nop
mov byte [edx + ecx*2 + 1], 0xff
mov al, byte [ecx + edx]
mov byte [edx + ecx*2], al
sub ecx, 1
jns 0x4fec60
jmp 0x4fecb3
test ecx, ecx
js 0x4fecb3
lea esi, [ecx*2 + 1]
add esi, edx
lea edx, [edx + ecx*4]
add esi, ecx
add edx, 2
nop word [eax + eax]
sub ecx, 1
mov byte [edx + 1], 0xff
movzx eax, byte [esi + 1]
lea esi, [esi - 3]
mov byte [edx], al
lea edx, [edx - 4]
movzx eax, byte [esi + 3]
mov byte [edx + 3], al
movzx eax, byte [esi + 2]
mov byte [edx + 2], al
jns 0x4fec90
mov ecx, dword [esp + 0x1c]
add ecx, dword [esp + 0x2c]
sub dword [esp + 0x70], 1
mov ebp, dword [esp + 0x74]
mov dword [esp + 0x1c], ecx
jne 0x4fe610
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x48
ret